From a863d91bb5e16cd6e27e8ac8cd5e630d4be09b33 Mon Sep 17 00:00:00 2001 From: Amolith Date: Tue, 21 Dec 2021 00:27:31 -0500 Subject: [PATCH] Replace README.org with README.md --- README.md | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++++ README.org | 139 -------------------------------------------------- 2 files changed, 146 insertions(+), 139 deletions(-) create mode 100644 README.md delete mode 100644 README.org diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..1f235151b6c64009104a71860043d5a042799f06 --- /dev/null +++ b/README.md @@ -0,0 +1,146 @@ +# Codies + +This is a fork of [eltmon/codies](https://github.com/eltmon/codies) from GitHub. +I run my own instance of it but, it's just for friends; the old one run by the +original creator, [codies.xyz](https://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 +[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). + +![Screenshot of the web UI](docs/screenshot1.png) + +# Manual installation + +## Prerequisites + +First, you'll need Golang 1.15 and Node 14 for building codies. Take a look at +golang's [download](https://golang.org/dl/) page and follow the related +documentation for [installing with the binary](https://golang.org/doc/install) +or [from source](https://golang.org/doc/install/source), then for Node, try +[NodeSource](https://github.com/nodesource/distributions). + +## 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. + +``` shell +useradd -Ums /bin/bash codies +su -c /bin/bash - codies +git clone https://git.sr.ht/~amolith/codies +cd codies +``` + + +## Building the frontend + +``` shell +cd frontend +yarn install --frozen-lockfile +yarn build +``` + +## Building the backend + +``` shell +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" . +``` + +## Running +Execute the binary to ensure it all works properly: + +``` shell +./codies --debug +``` + +## 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~. + +``` shell +[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 +``` + +## Reverse proxy +Runing codies behind a reverse proxy is recommended. With +[Caddy](https://caddyserver.com/), this is as simple as + +``` shell +example.com { + encode zstd gzip + reverse_proxy localhost:5000 +} +``` + +For NGINX, the vhost could look something like this + +``` shell +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; + } +} +``` + +# Docker installation +The Dockerfile will only be kept as long as it continues working. My goal in +forking the app is to rip Docker out and package the entire thing up in a single +statically-linked binary. + +I don't know whether this will actually succeed, but here you go! + +``` shell +docker build -t codies . +docker run -p 5000:5000 codies +``` diff --git a/README.org b/README.org deleted file mode 100644 index 79abb4f1e3909f5e17905b146641b95070aae4ed..0000000000000000000000000000000000000000 --- a/README.org +++ /dev/null @@ -1,139 +0,0 @@ -* Codies - -This is a fork of [[https://github.com/eltmon/codies][eltmon/codies]] from GitHub. I run my own instance of it -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]] - -* Manual 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 - -* Docker installation -The Dockerfile will only be kept as long as it continues working. My -goal in forking the app is to rip Docker out and package the entire -thing up in a single statically-linked binary. - -I don't know whether this will actually succeed, but here you go! -#+BEGIN_SRC bash - docker build -t codies . - docker run -p 5000:5000 codies -#+END_SRC