Skip to content

Runbook

Operational procedures for sepia.

Docker Operations

List all services

docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"

View logs

docker logs -f <container>

Restart a service

docker compose -f /opt/compose.yaml restart <service>

Rebuild and restart

docker compose -f /opt/compose.yaml up -d --build <service>

Adding a New Service

  1. Create compose.<service>.yaml in /opt/
  2. Add include to /opt/compose.yaml
  3. Set appropriate ports, volumes, health checks
  4. Run docker compose -f /opt/compose.yaml up -d

Monitoring

Check system health

docker ps --filter "health=unhealthy"

View Grafana

  • URL: https://grafana.uitgeest.veenboer.xyz (port 3333 internally)

Database Access

TimescaleDB

psql -h localhost -p 6543 -U timescaleuser

DSMR PostgreSQL

psql -h localhost -p 5432 -U dsmrreader dsmrreader

InfluxDB

docker exec -it influxdb influx

Troubleshooting

Container won't start

  1. Check logs: docker logs <container>
  2. Check config syntax
  3. Verify environment variables are set
  4. Check port conflicts

Storage issues

  • Check disk space: df -h
  • Check mounts: mount | grep /media
  • Verify permissions on /opt/ directories

DNS issues

  • Check DNS ad-blocker: docker logs dns-ad-blocker

Backup Strategy

Backup is handled by Borgmatic — deduplicated archives stored locally.

Borgmatic

  • Image: b3vis/borgmatic:v1.1.10-1.4.21
  • Schedule: Daily (via crontab.txt)
  • Cache: /opt/borgmatic/cache
  • Logs: /opt/borgmatic/log

Sources (all mounted read-only from host / into /sepia/):

Config Source Notes
opt /sepia/opt Container configs
User configs /sepia/home Home directories

Check borgmatic status

docker logs borgmatic

List borg archives

docker exec borgmatic borgmatic list -c /config/opt.yaml

Manual borgmatic run

docker exec borgmatic borgmatic -c /config/opt.yaml