updating documentation
This commit is contained in:
@@ -1,8 +1,47 @@
|
|||||||
Before using this playbook, the target hosts must have:
|
# Albert’s Self-hosting Project
|
||||||
- Public key of control node in ~/.ssh/authorized_keys
|
|
||||||
- Passwordless sudo enabled (see: <https://spinupwp.com/doc/passwordless-sudo/>)
|
My goal here is to host some SaaS inside the home to reduce dependency on cloud providers.
|
||||||
- Docker installed
|
|
||||||
- Add user to docker group
|
## 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
|
|
||||||
Reference in New Issue
Block a user