All checks were successful
CI / skip-ci-check (pull_request) Successful in 6s
CI / ansible-validation (pull_request) Successful in 46s
CI / lint-and-test (pull_request) Successful in 51s
CI / secret-scanning (pull_request) Successful in 6s
CI / dependency-scan (pull_request) Successful in 15s
CI / license-check (pull_request) Successful in 13s
CI / sast-scan (pull_request) Successful in 24s
CI / vault-check (pull_request) Successful in 11s
CI / container-scan (pull_request) Successful in 6s
CI / sonar-analysis (pull_request) Successful in 5s
CI / playbook-test (pull_request) Successful in 25s
CI / workflow-summary (pull_request) Successful in 4s
Inventory and Caddy playbook for levkin LXC 220; Makefile target caddy-levkin. Document git-ci-01 disk (64G), capacity 2, prune cron, and pve201 RAM limits in host_vars and homelab guides. Co-authored-by: Cursor <cursoragent@cursor.com>
67 lines
3.2 KiB
Markdown
67 lines
3.2 KiB
Markdown
# Homelab status — 2026-05-22
|
||
|
||
Quick checklist after monitoring / sites / git pass.
|
||
|
||
## Done (automation)
|
||
|
||
| Item | Notes |
|
||
|------|--------|
|
||
| Mailcow `alerts@levkine.ca` | Created via API |
|
||
| Kuma + Dockge + Umami | LXC 218 @ `10.0.10.22`; Dockge stack **monitoring** active |
|
||
| Old Kuma pve201 LXC 305 | Stopped, `onboot` off |
|
||
| `stats.levkin.ca` | Caddy → Umami `:3000` |
|
||
| Tracking scripts | levkin.ca + caseware + auto + portfolio (`iliadobkin.com`) |
|
||
| **levkin.ca** | LXC **220** @ `10.0.10.60`; Caddy → nginx; `/` = spec, `/folders/` = stack |
|
||
| Portfolio `iliadobkin.com` | Migrated pve201 LXC **306** → pve10 LXC **219** @ `10.0.10.106`; Caddy → nginx `:80` |
|
||
| Kuma SMTP | Working (user confirmed) |
|
||
| Git remote | `git@git.levkin.ca:ilia/...` (SSH → `10.0.10.169` via `~/.ssh/config` on site LXCs) |
|
||
| auto repo | Pushed/pulled on `git.levkin.ca` |
|
||
| caseware repo | Pushed to Gitea via bundle on server; LXCs pull via internal SSH |
|
||
| Vault | Mailcow, Umami, Mattermost in vault; `make vault-export-env` → `.env`; `make vault-pull-infra-secrets` = hosts → vault |
|
||
| Caddy root SSH | Works (`make bootstrap-root-ssh-caddy`) |
|
||
| Hermes Mattermost | `mattermost.env` on VM; Telegram optional/off |
|
||
|
||
## Your list — still to do
|
||
|
||
### You (UI / hardware / DNS)
|
||
|
||
- [x] **Kuma SMTP** — working
|
||
- [ ] **DNS `levkin.ca` + `www`** — A records → home IP (`142.180.237.136`); apex currently parked at AWS, not homelab
|
||
- [ ] **Gitea deploy key (levkin LXC 220)** — add `deploy-levkin-levkin.ca` pubkey in repo settings (SSH pull); HTTPS clone works meanwhile
|
||
- [ ] **UniFi DHCP reservations** — [unifi-static-dhcp.md](unifi-static-dhcp.md) @ https://192.168.2.1/
|
||
- [ ] **Cal.com → Authentik OIDC** — first SSO (~1–2 h) — [levkin-selfhost-plan-2.md](levkin-selfhost-plan-2.md)
|
||
- [ ] **Nextcloud VM 201 retire** — remove Kuma monitor, Caddy `nextcloud.levkin.ca`, stop VM
|
||
- [ ] **NAS.SP00 disk replace** — then start Jellyfin (VM 101)
|
||
- [x] **Gitea deploy key (portfolio)** — `git pull` works on LXC 219; Gitea VM SSH fixed (`/home/git/.ssh/authorized_keys` + `sudo` to `gitea`)
|
||
- [ ] **`.env`** — optional mirror: `make vault-export-env` (vault already has secrets)
|
||
- [ ] **Rotate** any secrets pasted in chat (Hermes token, etc.)
|
||
|
||
### Later / defer
|
||
|
||
- [ ] Caddy → edge LXC `.20`
|
||
- [ ] Immich, Crater, Beszel
|
||
- [ ] Public SSH for `git.levkin.ca:22` (optional Caddy `layer4` or DNS split)
|
||
|
||
## Site LXCs (marketing)
|
||
|
||
| VMID | Name | IP | Git remote |
|
||
|------|------|-----|------------|
|
||
| 220 | levkin | 10.0.10.60 | `git@git.levkin.ca:ilia/levkin.ca.git` |
|
||
| 215 | caseware | 10.0.10.105 | `git@git.levkin.ca:ilia/caseware.git` |
|
||
| 216 | auto | 10.0.10.59 | `git@git.levkin.ca:ilia/auto.git` |
|
||
| 219 | portfolio | 10.0.10.106 | `git@git.levkin.ca:ilia/sdetProfile.git` |
|
||
|
||
**Git SSH note:** `git.levkin.ca` in the URL; traffic goes to **10.0.10.169:22** (not `10.0.30.169`, not public `:22`).
|
||
|
||
```ssh
|
||
# On each site LXC /root/.ssh/config
|
||
Host git.levkin.ca
|
||
HostName 10.0.10.169
|
||
User git
|
||
IdentityFile ~/.ssh/id_ed25519
|
||
```
|
||
|
||
## Dockge
|
||
|
||
Stack **monitoring** in UI = correct. Compose at `/opt/stacks/monitoring/compose.yaml`. Live stack also at `/opt/monitoring` (same containers). Use Dockge for edits/restarts; avoid starting a second copy.
|