From 8b0e4a46780497eba74ddb36952380e4df2c2b54 Mon Sep 17 00:00:00 2001 From: Chris Zerafa Date: Mon, 3 Aug 2026 15:38:36 -0400 Subject: [PATCH] Add Edge01 Server Book --- edge01/README.md | 73 +++++++++++++++++++++++++++++++ edge01/docs/BACKUP.md | 16 +++++++ edge01/docs/BUILD.md | 23 ++++++++++ edge01/docs/CHANGELOG.md | 11 +++++ edge01/docs/NETWORK.md | 22 ++++++++++ edge01/docs/OPERATIONS.md | 10 +++++ edge01/docs/RECOVERY-CHECKLIST.md | 13 ++++++ edge01/docs/RESTORE.md | 12 +++++ edge01/docs/SECURITY.md | 11 +++++ edge01/docs/SERVICES.md | 9 ++++ 10 files changed, 200 insertions(+) create mode 100644 edge01/README.md create mode 100644 edge01/docs/BACKUP.md create mode 100644 edge01/docs/BUILD.md create mode 100644 edge01/docs/CHANGELOG.md create mode 100644 edge01/docs/NETWORK.md create mode 100644 edge01/docs/OPERATIONS.md create mode 100644 edge01/docs/RECOVERY-CHECKLIST.md create mode 100644 edge01/docs/RESTORE.md create mode 100644 edge01/docs/SECURITY.md create mode 100644 edge01/docs/SERVICES.md diff --git a/edge01/README.md b/edge01/README.md new file mode 100644 index 0000000..46d2584 --- /dev/null +++ b/edge01/README.md @@ -0,0 +1,73 @@ +# Edge01 Server Book + +## Overview + +Edge01 is the public-facing infrastructure server for the Zerafa environment. + +It provides: + +- Reverse proxy (Caddy) +- Git hosting (Gitea) +- Mail filtering (Rspamd) +- Container management (Portainer) +- Voyager infrastructure dashboard +- WireGuard gateway +- Automated Restic backups + +--- + +## Platform + +| Item | Value | +|------|-------| +| Hostname | edge01 | +| Operating System | Debian GNU/Linux 13 (Trixie) | +| Virtualization | KVM | +| Runtime | Docker Compose | +| Public IP | 208.113.210.193 | + +--- + +## Public Services + +| Service | URL | +|---------|-----| +| Voyager | https://edge01.zerafa.com | +| Gitea | https://git.zerafa.com | +| Portainer | https://portainer.zerafa.com | +| Rspamd | https://rspamd.zerafa.com | + +--- + +## Docker Stacks + +- Caddy +- Gitea +- Portainer +- Rspamd + +--- + +## Documentation + +- docs/BUILD.md +- docs/RESTORE.md +- docs/SERVICES.md +- docs/NETWORK.md +- docs/BACKUP.md +- docs/SECURITY.md +- docs/OPERATIONS.md +- docs/RECOVERY-CHECKLIST.md +- docs/CHANGELOG.md + +--- + +## Git Repositories + +Infrastructure + + /opt/git/infrastructure + +Applications + + /opt/git/voyager diff --git a/edge01/docs/BACKUP.md b/edge01/docs/BACKUP.md new file mode 100644 index 0000000..9a4f9e0 --- /dev/null +++ b/edge01/docs/BACKUP.md @@ -0,0 +1,16 @@ +# Backups + +Backup software: + +- Restic + +Schedule: + +- Nightly backup +- Weekly retention + +Protected data: + +- Docker runtime +- Databases +- Configuration diff --git a/edge01/docs/BUILD.md b/edge01/docs/BUILD.md new file mode 100644 index 0000000..8e0a299 --- /dev/null +++ b/edge01/docs/BUILD.md @@ -0,0 +1,23 @@ +# Build Edge01 + +## Phase 1 + +- Create VPS +- Install Debian +- Update system +- Install Docker +- Install Git + +## Phase 2 + +- Clone infrastructure repository +- Restore secrets +- Restore Docker configuration + +## Phase 3 + +- Start Docker stacks +- Verify networking +- Verify WireGuard +- Verify backups +- Verify public services diff --git a/edge01/docs/CHANGELOG.md b/edge01/docs/CHANGELOG.md new file mode 100644 index 0000000..23e4ef2 --- /dev/null +++ b/edge01/docs/CHANGELOG.md @@ -0,0 +1,11 @@ +# Changelog + +## 2026-08-03 + +- Added Caddy configuration to Git +- Added Rspamd configuration to Git +- Added Gitea configuration to Git +- Added Portainer configuration to Git +- Standardized Docker stack layout +- Removed duplicate Voyager Git repository +- Created Edge01 Server Book diff --git a/edge01/docs/NETWORK.md b/edge01/docs/NETWORK.md new file mode 100644 index 0000000..80db238 --- /dev/null +++ b/edge01/docs/NETWORK.md @@ -0,0 +1,22 @@ +# Network + +## Public Interface + +208.113.210.193 + +## WireGuard + +172.31.255.1/30 + +## Docker Networks + +- proxy +- gitea-internal +- rspamd-internal + +## Public DNS + +- edge01.zerafa.com +- git.zerafa.com +- portainer.zerafa.com +- rspamd.zerafa.com diff --git a/edge01/docs/OPERATIONS.md b/edge01/docs/OPERATIONS.md new file mode 100644 index 0000000..097c3d6 --- /dev/null +++ b/edge01/docs/OPERATIONS.md @@ -0,0 +1,10 @@ +# Operations + +Routine Tasks + +- Update Debian +- Update Docker images +- Verify backups +- Verify certificates +- Review logs +- Commit infrastructure changes to Git diff --git a/edge01/docs/RECOVERY-CHECKLIST.md b/edge01/docs/RECOVERY-CHECKLIST.md new file mode 100644 index 0000000..58021ea --- /dev/null +++ b/edge01/docs/RECOVERY-CHECKLIST.md @@ -0,0 +1,13 @@ +# Recovery Checklist + +- [ ] Build VPS +- [ ] Install Debian +- [ ] Install Docker +- [ ] Clone Git repositories +- [ ] Restore secrets +- [ ] Restore Docker runtime +- [ ] Restore databases +- [ ] Start containers +- [ ] Verify networking +- [ ] Verify public services +- [ ] Verify backups diff --git a/edge01/docs/RESTORE.md b/edge01/docs/RESTORE.md new file mode 100644 index 0000000..f6f2ba3 --- /dev/null +++ b/edge01/docs/RESTORE.md @@ -0,0 +1,12 @@ +# Restore Edge01 + +## Restore Order + +1. Restore operating system +2. Restore Docker configuration +3. Restore runtime data +4. Restore PostgreSQL +5. Restore Gitea repositories +6. Restore Redis +7. Start containers +8. Verify services diff --git a/edge01/docs/SECURITY.md b/edge01/docs/SECURITY.md new file mode 100644 index 0000000..23b07f1 --- /dev/null +++ b/edge01/docs/SECURITY.md @@ -0,0 +1,11 @@ +# Security + +Components + +- UFW +- Fail2Ban +- WireGuard +- TLS certificates +- Docker isolation + +Secrets are never stored in Git. diff --git a/edge01/docs/SERVICES.md b/edge01/docs/SERVICES.md new file mode 100644 index 0000000..f6f7ca1 --- /dev/null +++ b/edge01/docs/SERVICES.md @@ -0,0 +1,9 @@ +# Services + +| Service | Purpose | Configuration | Runtime Data | Backup | +|----------|----------|---------------|--------------|--------| +| Caddy | Reverse proxy | Git | Certificates | Yes | +| Gitea | Git server | Git | PostgreSQL + repositories | Yes | +| Rspamd | Mail filtering | Git | Redis + Bayes | Yes | +| Portainer | Docker management | Git | Database | Yes | +| Voyager | Infrastructure dashboard | Git | Runtime JSON | Yes |