replace readme.d with readme.org

Amolith created

Change summary

README.md  |  17 -------
README.org | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 128 insertions(+), 17 deletions(-)

Detailed changes

README.md 🔗

@@ -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).
-
-![Game board](/docs/screenshot1.png?raw=true 'Game board')

README.org 🔗

@@ -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