Docker Container Inventory
Comprehensive listing of all Docker containers running across HandyManny infrastructure.
VPS Servers
srv1139900 (31.97.211.9)
Primary production server hosting most applications and services.
SSH: ssh -i ~/.ssh/id_hostinger root@srv1139900.hstgr.cloud
Production Applications
| Container Name | Image | Port(s) | Traefik Route | Status |
|---|---|---|---|---|
expediente | node:18-alpine | 3000 | expediente.handymanny.cloud | Running |
charos-expediente | node:18-alpine | 3000 | charos.handymanny.cloud | Running |
u1st-expediente | node:18-alpine | 3001 | u1st.handymanny.cloud | Running |
fftracking | node:18-alpine | 3000 | fftracking.handymanny.cloud | Running |
mission-control | node:18-alpine | 3000 | mc.handymanny.cloud | Running |
sales-mc | python:3.11 | 8001 | sales.handymanny.cloud | Running |
wsi-mc | python:3.11 | 8002 | wsi.handymanny.cloud | Running |
via-plan | nginx:alpine | 80 | via.handymanny.cloud | Running |
via-plan-api | python:3.11 | 8000 | via.handymanny.cloud/api | Running |
consultin | nginx:alpine | 80 | consultin.handymanny.cloud | Running |
handymanny-landing | nginx:alpine | 80 | handymanny.cloud | Running |
documentation | nginx:alpine | 80 | documentation.handymanny.cloud | Running |
Database Containers
| Container Name | Image | Port(s) | Used By | Backup Schedule |
|---|---|---|---|---|
expediente-db | postgres:16-alpine | 5432 | Expediente | Daily 2 AM |
charos-db | postgres:16-alpine | 5432 | CHAROS | Daily 2 AM |
u1st-db | postgres:16-alpine | 5432 | U1ST | Daily 2 AM |
fftracking-db | postgres:16-alpine | 5432 | FFTracking | Daily 2 AM |
mission-control-db | better-sqlite3 (embedded) | N/A | Mission Control | Daily 2 AM |
sales-mc-db | postgres:16-alpine | 5432 | Sales MC | Daily 2 AM |
via-postgres | timescale/timescaledb:latest-pg16 | 5432 | VIA Platform | Daily 2 AM |
Infrastructure Services
| Container Name | Image | Port(s) | Purpose | Web UI |
|---|---|---|---|---|
traefik | traefik:v2.10 | 80, 443, 8080 | Reverse proxy + SSL | :8080 (internal) |
headless-browser | browserless/chrome | 3000 | Ocean tracking scraping | No |
n8n | n8nio/n8n:latest | 5678 | Workflow automation | n8n.srv1139900.hstgr.cloud |
srv1379713 (187.77.195.95)
Secondary server for isolated workloads.
SSH: ssh -i ~/.ssh/id_hostinger root@187.77.195.95
Applications
| Container Name | Image | Port(s) | Purpose | Status |
|---|---|---|---|---|
openclaw | python:3.11 | 8000 | Telegram bot orchestrator | Running |
Container Details
Expediente
Purpose: Main freight forwarding portal Stack: Next.js 14 + Prisma + PostgreSQL Resources:
- CPU Limit: 1.0
- Memory Limit: 512MB
- Storage: 20GB
Environment Variables:
DATABASE_URL- PostgreSQL connection stringNEXTAUTH_SECRET- NextAuth.js secretNEXTAUTH_URL- https://expediente.handymanny.cloud
Health Check:
- Endpoint:
/api/health - Interval: 30s
- Timeout: 10s
Logs: docker logs -f expediente
CHAROS Expediente
Purpose: CHAROS-branded multi-tenant portal Stack: Next.js 14 + Prisma + PostgreSQL Resources:
- CPU Limit: 1.0
- Memory Limit: 512MB
Brand Configuration:
NEXT_PUBLIC_BRAND_NAME=CHAROSNEXT_PUBLIC_BRAND_COLOR=#DC2626NEXT_PUBLIC_BRAND_LOGO=/logos/charos.png
Logs: docker logs -f charos-expediente
U1ST Expediente
Purpose: U1ST-branded multi-tenant portal Stack: Next.js 14 + Prisma + PostgreSQL Resources:
- CPU Limit: 1.0
- Memory Limit: 512MB
Brand Configuration:
NEXT_PUBLIC_BRAND_NAME=U1STNEXT_PUBLIC_BRAND_COLOR=#2563EBNEXT_PUBLIC_BRAND_LOGO=/logos/u1st.png
Logs: docker logs -f u1st-expediente
FFTracking
Purpose: Freight forwarding tracking portal Stack: Next.js 14 + Prisma + PostgreSQL Features:
- Shipment tracking
- Booking management
- Document uploads
- Customer notifications
Logs: docker logs -f fftracking
Mission Control v3
Purpose: Unified operations dashboard Stack: React + Express.js + SQLite Features:
- 23 dashboard sections
- Real-time polling (30-60s)
- Command palette (Ctrl+K)
- Dark mode
Logs: docker logs -f mission-control
Sales Mission Control
Purpose: Sales analytics dashboard Stack: Python + Jinja2 + PostgreSQL Data Sources:
- Salesforce
- CargoWise
- DataMyne
Features:
- Customer intelligence with AI grading
- Route analytics with map visualization
- Profit/revenue analysis
Logs: docker logs -f sales-mc
WSI Mission Control
Purpose: WSI operations dashboard Stack: Python + Jinja2 Features:
- Follow-up tasks
- AN Audit status
- AP Invoice tracking
- Email recap
Logs: docker logs -f wsi-mc
VIA Platform
Purpose: Mexico convoy management platform Stack: FastAPI + PostgreSQL + TimescaleDB + HTML Features:
- Convoy formation
- Speed enforcement
- NOM compliance
- Terminal sequencing
- Hazmat route planning
Containers:
via-plan(nginx frontend)via-plan-api(FastAPI backend)via-postgres(TimescaleDB)
API Endpoints: 46 total (via.handymanny.cloud/api/docs)
Logs:
- Frontend:
docker logs -f via-plan - API:
docker logs -f via-plan-api - Database:
docker logs -f via-postgres
n8n
Purpose: Workflow automation platform Stack: n8n official image Workflows: 63+ active workflows Categories:
- Ocean tracking (16 workflows)
- WSI/CargoWise operations (40 workflows)
- AI bots (7 workflows)
Access: https://n8n.srv1139900.hstgr.cloudCredentials:
- User: admin
- Password: [REDACTED]
Logs: docker logs -f n8n
Traefik
Purpose: Reverse proxy and SSL termination Version: v2.10 Features:
- Automatic HTTPS (Let's Encrypt)
- SSL certificate management
- Dynamic routing
- Load balancing
Dashboard: Internal only (:8080)
Configuration:
- Static:
traefik.yml - Dynamic: Docker labels
Logs: docker logs -f traefik
Headless Browser
Purpose: Puppeteer/Playwright browser for web scraping Stack: browserless/chrome Used By:
- Ocean tracking workflows
- CHAROS trucking tracking
Features:
- Anti-detection measures
- Cookie/session management
- Screenshot capability
Endpoint: http://headless-browser:3000 (internal)
Logs: docker logs -f headless-browser
OpenClaw
Purpose: Telegram bot orchestrator and daily sync Stack: Python 3.11 Features:
- Daily briefings
- Security patrols
- Task notifications
- Multi-bot coordination
Runs: Every 4 hours (Windows Scheduled Task)
Logs: docker logs -f openclaw
Docker Networks
root_default (srv1139900)
Type: Bridge network Subnet: 172.20.0.0/16
Containers:
- All production apps
- All databases
- Traefik
- headless-browser
- n8n
Purpose: Internal communication between containers
traefik_default (srv1139900)
Type: External network Purpose: Traefik routing to containers
Volume Management
Named Volumes
| Volume | Container | Purpose | Size |
|---|---|---|---|
expediente_postgres_data | expediente-db | Database persistence | ~2GB |
charos_postgres_data | charos-db | Database persistence | ~3GB |
u1st_postgres_data | u1st-db | Database persistence | ~1GB |
fftracking_postgres_data | fftracking-db | Database persistence | ~500MB |
sales_mc_postgres_data | sales-mc-db | Database persistence | ~1GB |
via_postgres_data | via-postgres | Database persistence | ~100MB |
n8n_data | n8n | Workflow + credentials | ~500MB |
traefik_acme | traefik | SSL certificates | ~50MB |
Bind Mounts
| Path (Host) | Path (Container) | Container | Purpose |
|---|---|---|---|
/root/expediente | /app | expediente | Application code |
/root/charos-expediente | /app | charos-expediente | Application code |
/root/mission-control | /app | mission-control | Application code |
/root/via-plan-deploy | /usr/share/nginx/html | via-plan | Static files |
Resource Usage
Total Allocated:
- CPU: ~15 cores
- RAM: ~8GB
- Disk: ~50GB
Per Container Limits:
- Standard app: 1 CPU, 512MB RAM
- Database: 0.5 CPU, 256MB RAM
- Infrastructure: No limits (Traefik, n8n)
Container Health Monitoring
Health Check Endpoints
| Container | Endpoint | Expected Response |
|---|---|---|
| expediente | /api/health | 200 OK |
| charos-expediente | /api/health | 200 OK |
| fftracking | /api/health | 200 OK |
| mission-control | /api/health | 200 OK |
| sales-mc | /health | 200 OK |
| via-plan-api | /api/health | 200 OK |
| n8n | /healthz | 200 OK |
Monitoring Commands
# Check all containers on VPS
ssh -i ~/.ssh/id_hostinger root@srv1139900.hstgr.cloud 'docker ps'
# Check specific container status
docker inspect [container-name] | grep Status
# Check container resource usage
docker stats [container-name]
# Check all container logs
for container in $(docker ps --format '{{.Names}}'); do
echo "=== $container ==="
docker logs --tail 20 $container
doneMaintenance Tasks
Daily
- [Automated] Database backups (2 AM)
- [Automated] Container health checks
- [Automated] SSL certificate renewal checks
Weekly
- [ ] Review container logs for errors
- [ ] Check disk space on VPS
- [ ] Verify all containers healthy
Monthly
- [ ] Update Docker images
- [ ] Clean old Docker images (
docker system prune) - [ ] Review and optimize resource limits
- [ ] Test backup restoration
Quarterly
- [ ] Security audit of containers
- [ ] Review Docker Compose configurations
- [ ] Update base images (Node, Python, PostgreSQL)
- [ ] Performance optimization
Common Commands
Start/Stop Containers
# Start all containers in project
cd /root/[project] && docker compose up -d
# Stop all containers in project
cd /root/[project] && docker compose down
# Restart single container
docker restart [container-name]
# Restart all containers (preserve state)
docker compose restartLogs & Debugging
# Tail logs
docker logs -f [container-name]
# Last 100 lines
docker logs --tail 100 [container-name]
# Logs with timestamps
docker logs -f --timestamps [container-name]
# Enter container shell
docker exec -it [container-name] sh
# or for bash:
docker exec -it [container-name] bashResource Management
# Check disk usage
docker system df
# Clean up unused resources
docker system prune -a --volumes
# Remove stopped containers
docker container prune
# Remove unused images
docker image prune -a
# Remove unused volumes (CAREFUL!)
docker volume pruneDatabase Operations
# Backup PostgreSQL database
docker exec [db-container] pg_dump -U [user] [dbname] > backup.sql
# Restore PostgreSQL database
docker exec -i [db-container] psql -U [user] -d [dbname] < backup.sql
# Access PostgreSQL shell
docker exec -it [db-container] psql -U [user] -d [dbname]
# List databases
docker exec [db-container] psql -U postgres -c "\l"Troubleshooting
Container Won't Start
- Check logs:
docker logs [container-name] - Inspect container:
docker inspect [container-name] - Check docker-compose.yml syntax
- Verify environment variables
- Check port conflicts:
netstat -tulpn | grep [port]
Container Keeps Restarting
- Check exit code:
docker inspect [container] | grep ExitCode - Review startup logs
- Check database connectivity
- Verify all dependencies available
High Resource Usage
- Check stats:
docker stats - Review application logs
- Check for memory leaks
- Adjust resource limits in docker-compose.yml
Last Updated: 2026-02-28 Related: Deployment SOP, Infrastructure Overview