From 0d89135826d9ff9b7143d601f55207f8c8538c25 Mon Sep 17 00:00:00 2001 From: fichince Date: Wed, 13 May 2026 14:49:09 -0400 Subject: [PATCH] updating documentation --- README.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e56a87b..5aa7343 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,47 @@ -Before using this playbook, the target hosts must have: -- Public key of control node in ~/.ssh/authorized_keys -- Passwordless sudo enabled (see: ) -- Docker installed -- Add user to docker group +# Albert’s Self-hosting Project + +My goal here is to host some SaaS inside the home to reduce dependency on cloud providers. + +## Services + +This list will hopefully grow as I add more. + +| Service | Replaces | Address | +| -------- | -------- | ------- | +| Gitea | GitHub | https://git.tingker.ddns.net | + +## Set up + +The servers will run in Docker containers managed by a Compose file. I’ve started with an old MacBook, but may add more nodes in the future. These steps assume that the nodes are running Linux. + +- [Docker Engine](https://docs.docker.com/engine/install/) +- Add login user to the `docker` access group: + +``` +$ sudo groupadd docker +$ sudo usermod -aG docker $USER +``` + +## Networking + +In order to make the server accessible via the Internet, some networking configuration is required on our home router. + +1. Configure router to use [NoIP.com](https://noip.com) to create a dynamic DNS record. This makes it so that we have a fixed domain name that translates to the IP address of our home Internet connection, updating as required if our ISP changes our IP address. + - We have registered the domain name `tingker.ddns.net`. +2. Configure router to reserve a fixed IP address for each of the server nodes. +3. Configure router to forward ports to the server nodes. The following ports are required: + +| External Port | Internal Port | Reason | +| ------------- | ------------- | ------ | +| 80 | 80 | [Caddy](https://caddyserver.com/) listens for all HTTP and HTTPS requests and will route to applications | +| 443 | 443 | Ditto | +| 22 | 2222 | Gitea support for pushing and pulling repositories via SSH | + +## TODOs + +- Setup off-site backup solution +- Setup Gitea action runners + - Host alchoi.com website repo here, and set up deployment action to DigitalOcean (or we can switch hosting providers) +- Setup NextCloud (file sharing) +- Setup some kind of notes app (e.g. Joplin) -On this local machine: -- Create docker context for the remote host \ No newline at end of file