From 5eb134ffa84ca3ab592364a93645cc783a3e25db Mon Sep 17 00:00:00 2001 From: manohar Date: Fri, 29 May 2026 13:25:41 +0000 Subject: [PATCH] Update README.md --- README.md | 41 +++++++++++++++++------------------------ 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 5c53350..41bc18f 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,32 @@ + # Manohar's Infrastructure Self-hosted stack on Hetzner CX32 (Helsinki), deployed via Dokploy + Traefik. ## Services -App URL Purpose -Forgejo Self-hosted Git - -n8n Workflow automation - -Apprise Notification API (Tailscale only) - -Miniflux RSS reader - -ChangeDetection Webpage change monitor - -Paperless-ngx Document OCR + search - -Tiger Agent AI orchestration - -Dokploy Docker orchestration - -Uptime Kuma Monitoring - -Umami Web analytics +| App | URL | Purpose | +|---|---|---| +| Forgejo | https://git.manohargupta.com | Self-hosted Git | +| n8n | https://automate.manohargupta.com | Workflow automation | +| Apprise | https://notify.manohargupta.com | Notification API (Tailscale only) | +| Miniflux | https://feeds.manohargupta.com | RSS reader | +| ChangeDetection | https://watch.manohargupta.com | Webpage change monitor | +| Paperless-ngx | https://docs.manohargupta.com | Document OCR + search | +| Tiger Agent | https://agent.manohargupta.com | AI orchestration | +| Dokploy | https://dokploy.manohargupta.com | Docker orchestration | +| Uptime Kuma | https://status.manohargupta.com | Monitoring | +| Umami | https://analytics.manohargupta.com | Web analytics | ## Stack - **Server**: Hetzner CX32, Ubuntu 24.04, Helsinki (hel1) - **Orchestration**: Dokploy (Docker Swarm) - **Reverse proxy**: Traefik with Let's Encrypt TLS -- **Access**: Tailscale SSH only (`ssh root@manohar-ubuntu`) +- **Access**: Tailscale SSH only `ssh root@manohar-ubuntu` - **DNS**: Namecheap → [manohargupta.com](http://manohargupta.com) -## Deployment notes +## Deployment Notes - All compose files are in `deployments/` - Every compose declares `dokploy-network` as `external: true` @@ -41,9 +34,9 @@ Umami Web analytics - Secrets set in Dokploy Env tab, never hardcoded (except bcrypt hashes in labels which Dokploy cannot substitute) - Apprise and ChangeDetection restricted to Tailscale CGNAT range (100.64.0.0/10) -## Key learnings +## Key Learnings - Forgejo Docker image uses /data as root, not /var/lib/gitea - n8n WEBHOOK_URL must match public domain exactly or webhook URLs are wrong - htpasswd hashes in Traefik labels need $$ escaping (Compose interpolates single $) -- Dokploy env var substitution works in environment: blocks but NOT in labels: +- Dokploy env var substitution works in environment: blocks but NOT in labels: \ No newline at end of file