102 lines
3.5 KiB
Markdown
102 lines
3.5 KiB
Markdown
# systems-prod-01 - OVHcloud VPS
|
|
|
|
**Provider**: OVHcloud VPS-3 (8 vCores, 24GB RAM, 200GB SSD)
|
|
**Location**: Virginia, US East
|
|
**IP**: 15.204.247.153
|
|
|
|
## Quick Access
|
|
|
|
```bash
|
|
# Server access
|
|
ssh jared@15.204.247.153
|
|
|
|
# Traefik Dashboard
|
|
# URL: https://traefik.hyperthrive.app
|
|
# Login: admin / dH1CtZuVLBUMig7P
|
|
|
|
# Docker status
|
|
ssh jared@15.204.247.153 "docker ps"
|
|
ssh jared@15.204.247.153 "docker stats --no-stream"
|
|
|
|
# System health
|
|
ssh jared@15.204.247.153 "syshealth"
|
|
ssh jared@15.204.247.153 "logsummary"
|
|
```
|
|
|
|
## Live Services
|
|
|
|
✅ **BestSolarTech.com** - WordPress site migrated from DigitalOcean
|
|
✅ **LandHomeTeam** - static "Coming Soon" page
|
|
✅ **n8n** (prod + test) - n8n.hyperthrive.io / testn8n.hyperthrive.io
|
|
✅ **Formbricks** - formbricks.hyperthrive.io
|
|
✅ **Vaultwarden** - password manager
|
|
✅ **Invoice Ninja** - invoice.hyperthrive.io
|
|
✅ **NocoDB** - nocodb.hyperthrive.io
|
|
✅ **n8n-swanson** - personal instance
|
|
✅ **Forgejo** - git hosting
|
|
✅ **Traefik** - Reverse proxy with automatic SSL
|
|
✅ **Watchtower** - automated container updates
|
|
✅ **Monitoring** - Automated health checks & maintenance (see CLAUDE.md)
|
|
|
|
See [docs/services-inventory.md](./docs/services-inventory.md) for full details.
|
|
|
|
## Status
|
|
|
|
✅ **Infrastructure Ready** - Docker, Traefik, monitoring configured
|
|
✅ **Automated Recovery** - Health monitor runs every 10 min, daily maintenance at 3 AM
|
|
✅ **Migration COMPLETE** - All services migrated from DigitalOcean; the old
|
|
DigitalOcean VPS (`hyperthrive-docker-services`, 161.35.12.75) was **deleted
|
|
on 2026-06-24**. This OVH box is now the sole production host.
|
|
|
|
See [migrations/migration-plan.md](./migrations/migration-plan.md) for the historical migration record.
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
systems-prod-01/
|
|
├── README.md # This file
|
|
├── CLAUDE.md # AI assistant context
|
|
├── profile.yaml # Server specifications
|
|
├── credentials.md # Service credentials
|
|
├── configs/ # Configuration templates
|
|
│ ├── service-template.yml # Docker service template
|
|
│ ├── wordpress-docker-migration-guide.md # WordPress migration lessons
|
|
│ └── traefik configs # Reverse proxy setup
|
|
└── migrations/ # Migration documentation
|
|
├── migration-plan.md # Overall strategy & progress
|
|
└── completed/ # Finished migrations
|
|
└── bestsolartech.md # BestSolarTech details
|
|
```
|
|
|
|
## Service Management
|
|
|
|
### Deploy New Service
|
|
```bash
|
|
# Create service directory
|
|
ssh jared@15.204.247.153 "mkdir -p ~/services/SERVICE_NAME"
|
|
|
|
# Deploy with Docker Compose
|
|
scp docker-compose.yml jared@15.204.247.153:~/services/SERVICE_NAME/
|
|
ssh jared@15.204.247.153 "cd ~/services/SERVICE_NAME && docker compose up -d"
|
|
```
|
|
|
|
### WordPress Quick Commands
|
|
```bash
|
|
# Update WordPress database URLs
|
|
ssh jared@15.204.247.153 "docker exec CONTAINER_DB mysql -u USER -pPASS -e \"
|
|
USE DATABASE;
|
|
UPDATE wp_options SET option_value = 'https://domain.com' WHERE option_name IN ('siteurl', 'home');
|
|
\""
|
|
|
|
# View container logs
|
|
ssh jared@15.204.247.153 "docker logs CONTAINER_NAME --tail 50"
|
|
```
|
|
|
|
## Key Learnings
|
|
|
|
- Use MariaDB 10.11 for WordPress migrations
|
|
- Disable Real Simple SSL plugin when using Traefik
|
|
- Escape `$$` in Docker Compose environment variables
|
|
- Use `||` operator for multiple Traefik host rules
|
|
|
|
For detailed guidance, see [configs/wordpress-docker-migration-guide.md](./configs/wordpress-docker-migration-guide.md) |