Initial commit

This commit is contained in:
2026-03-05 17:47:01 +01:00
commit 563202f986
20 changed files with 1136 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
# Docker Stacks Layout
This page is my reference for how I structure Docker stacks on the home server.
## Scope
- Where stacks live on disk.
- How I name stacks, services, and volumes.
- How I update or recreate a stack safely.
## Notes / TODO
- Describe `/srv/ssd` layout in detail.
- Document a real example stack (e.g. monitoring or media).
- Add a short “update procedure” for a stack.
@@ -0,0 +1,19 @@
# Caddy Reverse Proxy Home Server Implementation
This page is my reference for how I use Caddy as a reverse proxy on the home server.
For generic concepts, see:
- [Network / Reverse Proxy](../../../Network/ReverseProxy.md) (when written)
- [Security / Certificates](../../../Security/Certificates.md)
## Scope
- Caddy virtual hosts for `.lan` domains.
- TLS with the internal CA (`tls internal`).
- How I add a new internal HTTPS service.
## Notes / TODO
- Document the Caddyfile pattern I use for HTTP → HTTPS.
- Add a checklist for adding a new service (DNS + Caddy + Docker + Caddy).
@@ -0,0 +1,19 @@
# dnsmasq Home Server Implementation
This page is my reference for how I configured dnsmasq as internal DNS on the home server.
For generic DNS concepts, see:
- [Network / DNS](../../../Network/DNS.md)
## Scope
- dnsmasq config for `.lan` internal domains.
- How clients use the home server as DNS.
- How this integrates with Caddy and WireGuard.
## Notes / TODO
- Add example dnsmasq config for `vaultwarden.lan`, `home.lan`, etc.
- Document how I point LAN clients and VPN clients to this DNS.
- Add a short troubleshooting section (cache, logs, typical mistakes).
@@ -0,0 +1,15 @@
# Monitoring and Dashboard
This page is my overview of the monitoring stack on the home server.
## Scope
- Homepage, Uptime Kuma, Dozzle, Glances.
- How they are wired together (ports, Caddy, DNS, Docker).
- What I check first when something looks wrong.
## Notes / TODO
- Summarise the docker-compose layout for `/srv/ssd/stacks/monitoring`.
- Add examples of Homepage widgets and Kuma checks I use.
- Document a basic "health check" routine for the server.
@@ -0,0 +1,24 @@
# WireGuard VPN Home Server Implementation
This page is my reference for how I use WireGuard for remote access to the home server.
For generic concepts, see:
- [Network / VPN Basics](../../../Network/VPN/Basics.md)
- [Security / Certificates](../../../Security/Certificates.md)
For the original full step-by-step guide I used at the beginning, see:
- WireGuard v1 doc (legacy) to be migrated here.
## Scope
- IP plans for LAN and VPN.
- Server and client roles.
- How I add a new peer safely.
## Notes / TODO
- Summarise the `wg0.conf` structure from the v1 doc.
- Document the exact steps I follow to add a new client.
- Add a short troubleshooting section (common mistakes).
+117
View File
@@ -0,0 +1,117 @@
# Home Server Overview
---
## 1. Goals
- Central point for my home-lab and dev-ops learning.
- Self-hosted services for media viewers, git, password manager, home assistant, etc.
- Clean separation between OS, data, and Docker stacks.
- Easy to maintain, backup, and rebuild if needed.
---
## 2. Hardware and Base OS
- Hardware: ZimaBoard used as a low-power home server.
- OS: Debian installed on the internal eMMC.
- Role: main server for the home LAN and VPN clients.
Linux basics and commands:
- [Linux / Basics](../Linux/Basics.md)
- [Linux / Administration](../Linux/Administration.md)
- [Linux / Cheat Sheet](../Linux/CheatSheet.md)
---
## 3. Storage Layout
OS, Docker, and data are clearly separated:
- eMMC: system root (`/`), `/boot`, and base Debian.
- NVMe SSD mounted on `/srv/ssd` for Docker (data-root, stacks, appdata).
- Data disks:
- `/srv/ebooks` (sda1, ext4) for ebooks and comics.
- `/srv/media` (sdb1, ext4) for movies, series, etc.
Key idea: Docker stacks and appdata live on the NVMe (`/srv/ssd`), not on `/`.
- [Linux / Storage](../Linux/Storage.md)
---
## 4. Docker and Application Stacks
Docker runs on the Debian host and is my main way to deploy services.
- Docker data-root and volumes live under `/srv/ssd`.
- Stacks are organised under `/srv/ssd/stacks/<stack-name>/`.
- Typical services:
- Media: Komga (ebooks), Jellyfin (videos).
- Dev: Gitea + Postgres.
- Security: Vaultwarden.
- Monitoring: Homepage, Uptime Kuma, Dozzle, Glances.
- Containers use `restart: unless-stopped` so they come back after reboot.
Containerisation, Docker concepts and commands:
- [Containerisation](../Containerisation/Basics.md)
- [Containerisation / Docker](../Containerisation/Docker/Basics.md)
- [Containerisation / Docker / Commands](../Containerisation/Docker/Commands.md)
---
## 5. Networking, DNS, and Reverse Proxy
Home server is the central point for internal names and HTTPS access.
- Internal DNS: `dnsmasq` on the host, listening on `0.0.0.0:53`.
- Resolves `*.lan` names (vaultwarden.lan, komga.lan, home.lan, etc.) to the server IP (for example 192.168.1.18).
- Forwards public domains to external resolvers.
- Reverse proxy: Caddy in front of services on ports 80/443.
- Exposes internal virtual hosts like `vaultwarden.lan`, `home.lan`, `status.lan`, `logs.lan`, `metrics.lan`, `komga.lan`, `gitea.lan`, `jellyfin.lan`.
- Uses `tls internal` with an internal CA; I install the root CA certificate on clients so browsers trust `*.lan`.
Networking, DNS, and Reverse Proxy Documentation
- [Network / Basics](../Network/Basics.md)
- [Network / DNS](../Network/DNS.md)
- [Network / Reverse Proxy](../Network/ReverseProxy.md)
---
## 6. Remote Access
Remote access is provided by a WireGuard VPN running on the Debian host.
- Server interface: `wg0` with address `10.10.10.1/24`, listening on UDP 51820.
- Clients (PC, smartphone, etc.) get one IP each in `10.10.10.0/24`.
- NAT rules allow VPN clients to reach the home LAN (`192.168.1.0/24`).
- Clients send both VPN and LAN traffic through the tunnel via `AllowedIPs = 10.10.10.0/24, 192.168.1.0/24`.
- DNS for clients is the home server itself (10.10.10.1) so `.lan` names always work.
Remote access documentation:
- [Network / VPN Basics](../Network/VPN/Basics.md)
- [Security / Certificates](../Security/Certificates.md)
- [Home-Server / WireGuard implementation](../Home-Server/Implementations/VPN/WireGuard.md)
---
## 7. Monitoring and Dashboard
Monitoring is based on a lightweight stack under `/srv/ssd/stacks/monitoring`:
- Homepage: main dashboard and entry point for services, with basic widgets.
- Uptime Kuma: service availability checks.
- Dozzle: realtime Docker logs.
- Glances: system metrics (CPU, RAM, disks, Docker, network).
These services are exposed internally via Caddy and DNS:
- `https://home.lan` → Homepage
- `https://status.lan` → Uptime Kuma
- `https://logs.lan` → Dozzle
- `https://metrics.lan` → Glances
---