This is a dedicated workspace for managing the systems-prod-01 server (OVHcloud VPS, IP: 15.204.247.153) with a focus on Docker containerization and Traefik reverse proxy.
**Migration status:** The original purpose was migrating services off a DigitalOcean VPS (`hyperthrive-docker-services`, 161.35.12.75). That migration is **complete** and the DigitalOcean VPS was **deleted on 2026-06-24** — this OVH box is now the sole production host with no DigitalOcean fallback. The project's ongoing role is operating and maintaining this server.
- **Containerization**: All services run in Docker containers with Docker Compose
- **Reverse Proxy**: Traefik v3.0 handles SSL termination and routing
- **Service Structure**: Services live in `/home/jared/services/` on the remote server with shallow directory structure (e.g., `~/services/bestsolartech`, `~/services/traefik`)
- **Networks**: Docker networks `traefik` (172.20.0.0/16) for external-facing services and `internal` (172.21.0.0/16) for backend communication
ssh jared@15.204.247.153 "cd ~/services/SERVICE_NAME && docker compose up -d"
```
## Important Context
1.**Remote-Only Operations**: This project manages a remote server. Never install services locally - all deployments target 15.204.247.153.
2.**Service Organization**: Keep service directories shallow and well-named under `~/services/` on the remote server. Avoid deep nesting.
3.**Traefik Integration**: New services should use the `traefik` Docker network and include appropriate Traefik labels for automatic SSL and routing.
4.**Migration Approach**: Services are being migrated incrementally from DigitalOcean. Always verify services work on temporary domains before DNS cutover.
5.**Credentials**: Server credentials are documented in `credentials.md`.
## Service Deployment Pattern
When deploying a new service:
1. Create service directory on remote server: `ssh jared@15.204.247.153 "mkdir -p ~/services/SERVICE_NAME"`
2. Adapt a service template from `configs/` directory (see [Configuration Reference](docs/configuration-reference.md))
3. Deploy to server and connect to Traefik network
4. Test on temporary domain before production DNS changes
5.**Update documentation**: See [Documentation Maintenance](docs/documentation-maintenance.md)
6.**Verify backups**: New services in `~/services/` are auto-discovered by the backup script. Run `~/services/backup.sh` manually to confirm the service is included.
## Specialized Documentation
For detailed operational guides, consult these specialized documents:
- **[Services Inventory](docs/services-inventory.md)** - Current active services, domains, and container details (🔄 **updated frequently**)
- **[WordPress Operations](docs/wordpress-operations.md)** - WordPress-specific deployment, configuration, and troubleshooting
- **[Monitoring & Automation](docs/monitoring-automation.md)** - Automated health checks, maintenance scripts, and log analysis