Files
2026-04-23 18:59:23 +00:00

81 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# carloselugo.com — Docker Stack
Self-hosted infrastructure running on a single server, reverse-proxied by Caddy with automatic HTTPS.
## Services
| Service | URL | Description |
|---|---|---|
| Frontend | [carloselugo.com](https://carloselugo.com) | Personal site — Vite + nginx (multi-stage build) |
| Uptime Kuma | [uptime.carloselugo.com](https://uptime.carloselugo.com) | Uptime monitoring |
| Netdata | [metrics.carloselugo.com](https://metrics.carloselugo.com) | System metrics |
| ntfy | [ntfy.carloselugo.com](https://ntfy.carloselugo.com) | Push notifications |
| Dozzle | [logs.carloselugo.com](https://logs.carloselugo.com) | Container log viewer |
| Gitea | [git.carloselugo.com](https://git.carloselugo.com) | Self-hosted Git |
> uptime, metrics, and logs are restricted to whitelisted IPs + basic auth.
## Structure
```
/opt/web/
├── Caddyfile # Reverse proxy config (TLS, routing, auth)
├── docker-compose.yml # All services
├── frontend/ # Personal site source
│ ├── Dockerfile
│ ├── src/
│ └── nginx.conf
├── ntfy/
│ └── config/
│ └── server.yml
└── dozzle/
└── data/
```
## Stack
- **Reverse proxy** — Caddy 2 (automatic HTTPS via Let's Encrypt, HTTP/3)
- **Frontend** — Vite build → nginx:alpine
- **Git** — Gitea (SQLite, SSH on port 2222)
- **Monitoring** — Netdata (host metrics) + Uptime Kuma (endpoint checks)
- **Notifications** — ntfy (push to mobile, auth-protected)
- **Logs** — Dozzle
## Usage
```bash
# Start all services
docker compose up -d
# Start a single service
docker compose up -d gitea
# View logs
docker compose logs -f caddy
# Reload Caddy config without downtime
docker exec caddy caddy reload --config /etc/caddy/Caddyfile
```
## Git workflow
Push to this repo from the server:
```bash
git remote add origin ssh://git@localhost:2222/carlitosbond/web.git
git push
```
From an external machine (port 2222 must be open in firewall):
```bash
git remote add origin ssh://git@git.carloselugo.com:2222/carlitosbond/web.git
git push
```
## Notes
- Umami analytics is disabled (commented out in `docker-compose.yml`) — uncomment to re-enable.
- Netdata is pinned to CPUs 01 with low CPU priority to avoid impacting other workloads.
- ntfy denies all access by default — users must be created with `ntfy user add`.