Welcome to the StableDynamic HomeLab Wiki!
Central knowledge base for all infrastructure, services, and documentation.
| Component |
Provider |
Details |
| Root Server |
Netcup |
Ubuntu Server 24.04 LTS |
| Domain |
Manitu |
stabledynamic.com |
| VPN/Mesh |
Tailscale |
Secure remote access |
| Reverse Proxy |
Caddy |
Auto-HTTPS, Docker |
| Git |
Forgejo |
git.stabledynamic.com |
| Wiki |
Wiki.js |
hs.stabledynamic.com |
| Service |
Subdomain |
Notes |
| App 1 |
app1.stabledynamic.com |
TBD |
| App 2 |
app2.stabledynamic.com |
TBD |
| Monitoring |
status.stabledynamic.com |
Uptime Kuma? |
βββββββββββββββββββββββββββββββββββββββββββββββ
β Netcup Root Server β
β Ubuntu 24.04 LTS β
β β
β ββββββββββββ βββββββββββ ββββββββββββββ β
β β Caddy β β Forgejo β β Wiki.js β β
β β :80/443 β β :3000 β β :3000 β β
β ββββββ¬ββββββ ββββββ¬βββββ βββββββ¬βββββββ β
β β β β β
β βββββββββββββββ΄ββββββββββββββ β
β proxy-network β
β β
β ββββββββββββββββββββββββββββββββββββββββ β
β β Tailscale (tailscale0) β β
β ββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββ
~/
βββ caddy/
β βββ docker-compose.yml
β βββ Caddyfile
βββ forgejo/
β βββ docker-compose.yml
β βββ forgejo-data/
βββ wikijs/
β βββ docker-compose.yml
β βββ config.yml
β βββ data/
βββ (future apps)/
ΒΆ π§ Quick Commands
| Task |
Command |
| List running containers |
docker ps |
| View logs |
docker compose logs -f <service> |
| Restart a service |
cd ~/<app> && docker compose restart |
| Stop a service |
cd ~/<app> && docker compose down |
| Start a service |
cd ~/<app> && docker compose up -d |
| Task |
Command |
| Reload config |
docker exec caddy caddy reload --config /etc/caddy/Caddyfile |
| Format Caddyfile |
docker exec caddy caddy fmt --overwrite /etc/caddy/Caddyfile |
| View logs |
docker compose -f ~/caddy/docker-compose.yml logs -f |
| Task |
Command |
| Check status |
tailscale status |
| Get Tailscale IP |
tailscale ip -4 |
| Check connectivity |
tailscale ping <device> |
| Task |
Command |
| Update system |
sudo apt update && sudo apt upgrade -y |
| Check disk space |
df -h |
| Check memory |
free -h |
| Firewall status |
sudo ufw status |
- β
Installed Ubuntu Server 24.04 LTS on Netcup via SCP
- β
Installed Tailscale for secure remote access
- β
Installed Docker & Docker Compose
- β
Created
proxy-network Docker network
- β
Deployed Caddy reverse proxy with auto-HTTPS
- β
Deployed Forgejo at
git.stabledynamic.com
- β
Deployed Wiki.js at
hs.stabledynamic.com
- β
Configured DNS at Manitu (wildcard or per-subdomain)
Standard procedure for every new app:
- Create directory:
mkdir -p ~/newapp && cd ~/newapp
- Create
docker-compose.yml connected to proxy-network
- Start it:
docker compose up -d
- Add DNS record at Manitu (if no wildcard)
- Add entry to
~/caddy/Caddyfile
- Reload Caddy:
docker exec caddy caddy reload --config /etc/caddy/Caddyfile
- Document it here! βοΈ
Last updated: 2026-04-05