prod-slab

Homelab setup and configuration.

Stars
2
Committers
1

prod-slab

Compose files for deploying applications in my homelab.

Summary

Preparing my setup for an upcoming move, experimenting with configurations for Homebox, Coder, and Traefik.


Apps

Monitoring

Infra

Apps

Homepage

Homepage dashboards services and bookmarks with static YAML files and Docker labels.

Homebox

Homebox manages inventory. Using a forked image ecshreve/homebox-dev with UI tweaks.

Gitea

Gitea backs up GitHub repos and experiments with git hooks. Uses a MySQL database accessible via Adminer.

Coder

Coder manages dev environments with templates and workspaces. Currently running in a bespoke and slightly brittle local setup. The application isn't really designed for a single developer use case, but I've found it much more fun than VSCode devcontainers or GitHub codespaces

Observability

Monitoring and Metrics

cAdvisor and Node Exporter collect metrics.

Grafana visualizes via Prometheus.

Dashboards

Logging

Network logs sent to Synology log server.

Docker container logs are collected via Loki and Promtail, and visualized in Grafana.

A fragment like this one could be used to directly use the loki logging driver in service defs

x-logging-loki: &loki-logging
  driver: loki
  options:
    loki-url: "http://loki:3100/loki/api/v1/push"

Network

Traefik

Traefik routes requests using CONTAINER_NAME.ecs.lan.

DNS

Router uses wildcard DNS A record for *.ecs.lan pointing to the Traefik container's local network IP, which is advertised as a subnet route in tailscale.

Tailscale

Tailscale secures connections between hosts and containers.

Note

This setup is in progress and not suitable for internet exposure without additional configuration.

TODO

  • Add raycast snippets for the coder start/stop scripts
  • Terraform a DO droplet to use as a host or workspace target
  • Add Kavita e-reader app
  • Migrate secrets to HashiCorp Vault
  • [-] Add Jaeger for tracing
  • Add backup Synology host to tailnet
  • Backup volumes to vault2 (rename needed)
  • Implement metric snapshot emails
  • Backup strategy for GitHub -> Gitea
  • Check on open Coder deployment issue on macOS
  • Coder server via Docker on remote host, workspaces on laptop's Docker daemon
  • Configure workspaces to connect to tailnet
  • Bake dotfiles into Coder image
  • Automation: auto commit-push if idle
  • Move Coder templates into this repo
  • Include Pihole in repo
  • Set up secondary backup Pihole (deprecated primary)
  • Resolve CNAME issue (moved DNS handling to Synology)
  • Fix Tailscale-state volume issue on down/up
Related Projects