Self-hosted services using Docker Compose.
| Service | Port | Description |
|---|---|---|
| Portainer | 9000 | Docker management UI |
| Nginx Proxy Manager | 81 | Reverse proxy with SSL |
| Ghost Blog | 2368 | Modern blogging platform |
| Navidrome | 4533 | Music server |
| Beszel | 8090 | Self-hosted service |
# Start all services
./start-all.sh
# Or start individually
cd <service-name> && docker-compose up -dBefore starting, configure:
- Ghost: Set database passwords in
ghost-blog/docker-compose.yml - Nginx Proxy Manager: Access at
http://localhost:81(default:admin@example.com/changeme)
All data persists in subdirectories:
portainer_data/,beszel_data/,navidrome-data/- Service dataghost-blog/content/,ghost-blog/mysql/- Ghost content & databasenginx/config/,nginx/letsencrypt/- NPM config & SSL certs
# View logs
docker-compose logs -f
# Stop all
docker-compose down
# Update
docker-compose pull && docker-compose up -d