Update README.md
This commit is contained in:
parent
723e724e0a
commit
5eb134ffa8
1 changed files with 17 additions and 24 deletions
41
README.md
41
README.md
|
|
@ -1,39 +1,32 @@
|
||||||
|
|
||||||
# Manohar's Infrastructure
|
# Manohar's Infrastructure
|
||||||
|
|
||||||
Self-hosted stack on Hetzner CX32 (Helsinki), deployed via Dokploy + Traefik.
|
Self-hosted stack on Hetzner CX32 (Helsinki), deployed via Dokploy + Traefik.
|
||||||
|
|
||||||
## Services
|
## Services
|
||||||
|
|
||||||
App URL Purpose
|
| App | URL | Purpose |
|
||||||
Forgejo <https://git.manohargupta.com> Self-hosted Git
|
|---|---|---|
|
||||||
|
| Forgejo | https://git.manohargupta.com | Self-hosted Git |
|
||||||
n8n <https://automate.manohargupta.com> Workflow automation
|
| n8n | https://automate.manohargupta.com | Workflow automation |
|
||||||
|
| Apprise | https://notify.manohargupta.com | Notification API (Tailscale only) |
|
||||||
Apprise <https://notify.manohargupta.com> Notification API (Tailscale only)
|
| Miniflux | https://feeds.manohargupta.com | RSS reader |
|
||||||
|
| ChangeDetection | https://watch.manohargupta.com | Webpage change monitor |
|
||||||
Miniflux <https://feeds.manohargupta.com> RSS reader
|
| Paperless-ngx | https://docs.manohargupta.com | Document OCR + search |
|
||||||
|
| Tiger Agent | https://agent.manohargupta.com | AI orchestration |
|
||||||
ChangeDetection <https://watch.manohargupta.com> Webpage change monitor
|
| Dokploy | https://dokploy.manohargupta.com | Docker orchestration |
|
||||||
|
| Uptime Kuma | https://status.manohargupta.com | Monitoring |
|
||||||
Paperless-ngx <https://docs.manohargupta.com> Document OCR + search
|
| Umami | https://analytics.manohargupta.com | Web analytics |
|
||||||
|
|
||||||
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
|
## Stack
|
||||||
|
|
||||||
- **Server**: Hetzner CX32, Ubuntu 24.04, Helsinki (hel1)
|
- **Server**: Hetzner CX32, Ubuntu 24.04, Helsinki (hel1)
|
||||||
- **Orchestration**: Dokploy (Docker Swarm)
|
- **Orchestration**: Dokploy (Docker Swarm)
|
||||||
- **Reverse proxy**: Traefik with Let's Encrypt TLS
|
- **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)
|
- **DNS**: Namecheap → [manohargupta.com](http://manohargupta.com)
|
||||||
|
|
||||||
## Deployment notes
|
## Deployment Notes
|
||||||
|
|
||||||
- All compose files are in `deployments/`
|
- All compose files are in `deployments/`
|
||||||
- Every compose declares `dokploy-network` as `external: true`
|
- Every compose declares `dokploy-network` as `external: true`
|
||||||
|
|
@ -41,9 +34,9 @@ Umami <https://analytics.manohargupta.com>Web analytics
|
||||||
- Secrets set in Dokploy Env tab, never hardcoded (except bcrypt hashes in labels which Dokploy cannot substitute)
|
- 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)
|
- 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
|
- Forgejo Docker image uses /data as root, not /var/lib/gitea
|
||||||
- n8n WEBHOOK_URL must match public domain exactly or webhook URLs are wrong
|
- n8n WEBHOOK_URL must match public domain exactly or webhook URLs are wrong
|
||||||
- htpasswd hashes in Traefik labels need $$ escaping (Compose interpolates single $)
|
- 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:
|
||||||
Loading…
Add table
Reference in a new issue