Site Tools


guides:add_new_service

Adding a New Service to the Homelab

A repeatable checklist for deploying a new self-hosted service.

Prerequisites

  • Docker image name and version
  • Decided subdomain (e.g. service.folk.zone)
  • Container's internal port

Checklist

1. Add to docker-compose.yml

service-name:
  image: image:tag
  container_name: service-name
  restart: unless-stopped
  environment:
    - KEY=value
  volumes:
    - ./service/data:/data
  networks:
    - cafe_net

2. Add Caddy route

In caddy/Caddyfile:

@service host service.folk.zone
handle @service {
    reverse_proxy service-name:port
}

For password protection, add basic_auth inside the handle block. Generate hash:

docker exec cafe-caddy-1 caddy hash-password --plaintext 'password'

3. Deploy

scp cafe/docker-compose.yml brennan@192.168.1.65:/home/brennan/cafe/docker-compose.yml
scp cafe/caddy/Caddyfile brennan@192.168.1.65:/home/brennan/cafe/caddy/Caddyfile
ssh brennan@192.168.1.65 "cd /home/brennan/cafe && docker compose up -d service-name"
ssh brennan@192.168.1.65 "docker exec cafe-caddy-1 caddy reload --config /etc/caddy/Caddyfile"

4. Add Cloudflare Tunnel hostname

Zero Trust → Networks → Tunnels → cafe → Public Hostnames → Add:

Do NOT edit the local config.yml — it is overridden by the dashboard config.

5. Add to Uptime Kuma

https://status.folk.zone → Add New Monitor → HTTP(s), URL: https://service.folk.zone, interval: 60s.

6. Add to Dashboard and Services page

Edit dashboard/index.html and dashboard/services.html, then:

scp dashboard/index.html brennan@192.168.1.65:/home/brennan/cafe/dashboard/index.html
scp dashboard/services.html brennan@192.168.1.65:/home/brennan/cafe/dashboard/services.html

7. Add a wiki page

Create :folkzone:services:service-name following the service page template.

See Also

guides/add_new_service.txt · Last modified: by 127.0.0.1