# 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)