From b3e76159ad5e53cc98db8b450c6082d7ae373331 Mon Sep 17 00:00:00 2001 From: 0XC7R <0xC7R@proton.me> Date: Sun, 3 May 2026 01:55:57 +0100 Subject: [PATCH 1/2] Added
+ summary for shorter readme lets ppl select the information they wish to read instead of doom scrolling. Added short desc. Added the ability to copy all "Set" instructions instead of them being individual and seperate. You can also set the size of the "Set", the lower the header it might get a colour. ("Set" is a refernence to instructions telling you to set `OVERLORD_FATHERFUDDER_CROSSOVER=TRUE` as example) --- README.md | 96 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 7c75216..c4759e1 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,10 @@ Hello, I made this project for fun. +It is written using a combination of Typescript + Node.JS for tue server and GOLang for the client.
+Connections are done via encrypted websockets to connect to the server from the client.
+You need to use docker to get this to run easier/for quicker deployment.
+ --- - [Quick Start (Docker)](#quick-start-docker) @@ -24,6 +28,10 @@ If you just want it running fast, use this. > **⚠️ The compose file below is for Linux ONLY.** If you are on **Windows** or **macOS**, use `docker-compose.windows.yml` instead. See [Docker Install By OS](#docker-install-by-os) for the correct commands. +
+ +Installation instructions for Linux + 1. Create a `docker-compose.yml` file and paste this: ```yaml @@ -114,10 +122,15 @@ Keep that file private and backed up. Default bootstrap login is `admin` / `admin` unless you set `OVERLORD_USER` and `OVERLORD_PASS`. +
+ ## Docker Install By OS ### Windows +
+ Installation instructions for Windows +
Install Docker Desktop (includes Docker Compose): - https://docs.docker.com/desktop/setup/install/windows-install/ @@ -217,8 +230,15 @@ docker --version docker compose version ``` +
+ ### macOS + +
+ Installation instructions for Mac +
+ Install Docker Desktop: - https://docs.docker.com/desktop/setup/install/mac-install/ @@ -250,17 +270,29 @@ To rebuild after an update: docker compose -f docker-compose.windows.yml up --build -d ``` +
+ ## No Docker (.bat / .sh) -If you do not want Docker, use the included scripts. +
+ If you do not want Docker, use the included scripts. +
Prerequisites for local (non-Docker) runs: - Bun in PATH - Go 1.21+ in PATH +
+ +
+ ### Windows +
+ Script instructions for Windows +
+ Development mode (starts server + client): ```bat @@ -273,14 +305,22 @@ Production mode (build + run server executable): start-prod.bat ``` -Build client binaries: +Build client binaries (adds client builds to the build queue): ```bat build-clients.bat ``` +
+ +
+ ### Linux / macOS +
+ Installation instructions for Linux / Mac +
+ Make scripts executable once: ```bash @@ -311,6 +351,8 @@ Production mode: ./start-prod.sh ``` +
+ ## Production Package Scripts Build a production-ready package where the server can still build client binaries at runtime. @@ -334,6 +376,10 @@ Package output: ## Docker Notes (TLS, reverse proxy, cache) +

Here we will store some notes for you to read depending on what it is. Configs, work arounds etc.

+ +
+ ### BuildKit cache for faster rebuilds `docker-compose.yml` includes `build.cache_from` and `build.cache_to` using `.docker-cache/buildx`. @@ -344,6 +390,8 @@ Rebuild: docker compose up --build -d ``` +
+ ### Runtime client build cache The compose setup uses a persistent volume for runtime client builds: @@ -352,34 +400,40 @@ The compose setup uses a persistent volume for runtime client builds: - mount: `/app/client-build-cache` - env: `OVERLORD_CLIENT_BUILD_CACHE_DIR` (default `/app/client-build-cache`) +
+ ### Certbot TLS To use certbot certificates in production Docker: -- Set `OVERLORD_TLS_CERTBOT_ENABLED=true` -- Set `OVERLORD_TLS_CERTBOT_DOMAIN=your-domain.com` +#### Set: + OVERLORD_TLS_CERTBOT_ENABLED=true +#### Set: + OVERLORD_TLS_CERTBOT_DOMAIN=your-domain.com + - Mount letsencrypt into container read-only (example: `/etc/letsencrypt:/etc/letsencrypt:ro`) -Default cert paths: +#### Default cert paths: + cert: /etc/letsencrypt/live//fullchain.pem + key: /etc/letsencrypt/live//privkey.pem + ca: /etc/letsencrypt/live//chain.pem -- cert: `/etc/letsencrypt/live//fullchain.pem` -- key: `/etc/letsencrypt/live//privkey.pem` -- ca: `/etc/letsencrypt/live//chain.pem` +#### Override with: + OVERLORD_TLS_CERTBOT_LIVE_PATH + OVERLORD_TLS_CERTBOT_CERT_FILE + OVERLORD_TLS_CERTBOT_KEY_FILE + OVERLORD_TLS_CERTBOT_CA_FILE -Override with: - -- `OVERLORD_TLS_CERTBOT_LIVE_PATH` -- `OVERLORD_TLS_CERTBOT_CERT_FILE` -- `OVERLORD_TLS_CERTBOT_KEY_FILE` -- `OVERLORD_TLS_CERTBOT_CA_FILE` +
### Reverse proxy TLS offload (Render, etc.) -If your platform terminates TLS before traffic reaches Overlord, set: - -- `OVERLORD_TLS_OFFLOAD=true` -- `OVERLORD_HEALTHCHECK_URL=http://localhost:5173/health` -- `OVERLORD_PUBLISH_HOST=127.0.0.1` (recommended for local proxies like ngrok) +#### If your platform terminates TLS before traffic reaches Overlord, set: + + OVERLORD_TLS_OFFLOAD=true + OVERLORD_HEALTHCHECK_URL=http://localhost:5173/health + OVERLORD_PUBLISH_HOST=127.0.0.1 + (recommended for local proxies like ngrok) When enabled: @@ -388,6 +442,8 @@ When enabled: - health checks should use `http://localhost:$PORT/health` inside the container - do not expose internal container HTTP port directly to the internet +
+ For ngrok/local reverse proxy use, a common setup is: ```sh @@ -402,6 +458,8 @@ Then point ngrok at local HTTP: ngrok http http://127.0.0.1:5173 ``` +
+ Notes: - Keep `HOST=0.0.0.0` inside the container. Limiting exposure should be done with publish binding (`OVERLORD_PUBLISH_HOST`), not server bind host. From 1a2bbdbf6024b25df0eba1fac82b728c99472b7a Mon Sep 17 00:00:00 2001 From: 0XC7R <0xC7R@proton.me> Date: Sun, 3 May 2026 02:04:11 +0100 Subject: [PATCH 2/2] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c4759e1..7f06dc0 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Hello, I made this project for fun. -It is written using a combination of Typescript + Node.JS for tue server and GOLang for the client.
+It is written using a combination of Typescript + Node.JS for the server and GOLang for the client.
Connections are done via encrypted websockets to connect to the server from the client.
You need to use docker to get this to run easier/for quicker deployment.