@@ -1,17 +0,0 @@
-# codies--Yet another Codenames webapp. Featuring:--- Custom word packs-- Timed mode-- Quick room joining-- Dark/light mode-- Responsiveness for mobile play-- And more!--This is entirely inspired by the wonderful [codenames.plus](https://github.com/Joooop/codenames.plus),-which works very well, but hasn't been scaling too well recently. I wanted an opportunity-to learn TypeScript and React, and figured I could make something that worked just as well-with a few extra niceties (and a more stable backend).--
@@ -0,0 +1,128 @@
+* Codies
+
+This is a fork of [[https://github.com/eltmon/codies][eltmon/codies]] from GitHub. I run my own instance of it
+but, but it's just for friends; the old one run by the original creator
+[[https://codies.xyz][codies.xyz]] was taken down due to copyright issues and I would prefer to
+avoid the same thing happening to mine. If you would like to host this
+yourself, please follow the included instructions.
+
+From the original README:
+
+Yet another Codenames webapp. Featuring:
+
+- Custom word packs
+- Timed mode
+- Quick room joining
+- Dark/light mode
+- Responsiveness for mobile play
+- And more!
+
+This is entirely inspired by the wonderful [[https://github.com/Joooop/codenames.plus][codenames.plus]], which works
+very well, but hasn't been scaling too well recently. I wanted an
+opportunity to learn TypeScript and React, and figured I could make
+something that worked just as well with a few extra niceties (and a more
+stable backend).
+
+[[file:docs/screenshot1.png]]
+
+* Installation
+
+** Prerequisites
+
+First, you'll need Golang 1.15 and Node 14 for building codies. Take a
+look at golang's [[https://golang.org/dl/][download]] page and follow the related documentation for
+[[https://golang.org/doc/install][installing with the binary]] or [[https://golang.org/doc/install/source][from source]], then for Node, try
+[[https://github.com/nodesource/distributions][NodeSource]].
+
+** Creating users
+Running codies as root is not recommended. Please run the following
+commands to create a new unprivileged user and execute all of the
+commands in the following section as that user.
+
+#+BEGIN_SRC bash
+ useradd -Ums /bin/bash codies
+ su -c /bin/bash - codies
+ git clone https://git.nixnet.services/Misc-Mirrors/codies.git
+ cd codies
+#+END_SRC
+
+** Building the frontend
+#+BEGIN_SRC bash
+ cd frontend
+ yarn install --frozen-lockfile
+ yarn build
+#+END_SRC
+
+** Building the backend
+#+BEGIN_SRC bash
+ go mod download
+ go run github.com/markbates/pkger/cmd/pkger
+ go run github.com/markbates/pkger/cmd/pkger -o internal/pkger
+ go build -ldflags="-X github.com/zikaeroh/codies/internal/version.version=1.15" .
+#+END_SRC
+
+** Running
+Execute the binary to ensure it all works properly:
+#+BEGIN_SRC bash
+./codies --debug
+#+END_SRC
+
+** Daemonizing
+If you want it to start as soon as your machine boots and that it
+restarts on crash, you'll need to run it with a supervisor like OpenRC,
+runit, or systemd.
+
+Below is a service file for systemd. If you want to use it, paste the
+contents into ~/etc/systemd/system/codies.service~.
+
+#+BEGIN_SRC text
+[Unit]
+Description=Codies
+After=network.target network-online.target
+Requires=network-online.target
+
+[Service]
+Type=simple
+User=codies
+Group=codies
+WorkingDirectory=/home/codies/codies
+ExecStart=/home/codies/codies/codies --debug
+TimeoutStopSec=5s
+PrivateTmp=true
+ProtectSystem=full
+
+[Install]
+WantedBy=multi-user.target
+#+END_SRC
+
+** Reverse proxy
+Runing codies behind a reverse proxy is recommended. With [[https://caddyserver.com/][Caddy]], this is
+as simple as
+
+#+BEGIN_SRC text
+ example.com {
+ encode zstd gzip
+ reverse_proxy localhost:5000
+ }
+#+END_SRC
+
+For NGINX, the vhost could look something like this
+#+BEGIN_SRC text
+ server {
+ listen 443 ssl http2;
+ listen [::]:443 ssl http2;
+
+ server_name example.com;
+
+ ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
+
+ location /
+ proxy_pass http://localhost:5000;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "Upgrade";
+ proxy_set_header Host $host;
+ }
+ }
+#+END_SRC