--- tags: [infrastructure, server, gcp, oliver-internal] updated: 2026-04-24 --- # optical-dev — Docker App Dev/Staging Server > SSH alias: `optical-dev` → `vadym.samoilenko@10.220.168.9:22` > Key: `~/.ssh/id_rsa_vadym` ## Overview Primary Docker-based development and staging server for Oliver internal tools. All apps run as Docker Compose stacks in `/opt/{name}/`. Apache handles routing on port 80 (SSL terminated at upstream load balancer). - **Hostname**: (GCP instance, europe-west2) - **Platform**: GCP - **OS**: Ubuntu (likely 24.04) - **IP**: 10.220.168.9 - **Web server**: Apache 2.4 (single vhost: `optical-dev.oliver.solutions`) - **Domain**: optical-dev.oliver.solutions - **Disk**: 532 GB / 288 GB used (55%) ## Docker Containers Running | Container | Image | Exposed Port | Status | |-----------|-------|-------------|--------| | cc-dashboard-app-1 | cc-dashboard-app | 8800 | Up 4 weeks | | cc-dashboard-db-1 | postgres:16-alpine | — | Up 4 weeks | | ppt-tool-web-1 | ppt-tool-web | 127.0.0.1:3000 | Up 3 weeks | | ppt-tool-api-1 | ppt-tool-api | 127.0.0.1:8001 | Up 3 weeks | | ppt-tool-worker-1 | ppt-tool-worker | — | Up 3 weeks | | ppt-tool-postgres-1 | postgres:16-alpine | — | Up 4 weeks | | ppt-tool-redis-1 | redis:7-alpine | — | Up 4 weeks | | semblance-backend-1 | semblance-backend | 127.0.0.1:5137 | Up 4 weeks | | semblance-mongo-1 | mongo:7 | 127.0.0.1:27017 | Up 4 weeks | | olivas-backend-1 | olivas-backend | 0.0.0.0:8000 | Up 4 weeks | | olivas-postgres-1 | postgres:16-alpine | — | Up 4 weeks | | barclays-banner-builder-api-1 | barclays-banner-builder-api | 127.0.0.1:8010 | Up 3 days | | barclays-banner-builder-worker-1 | — | — | Up 3 days | | barclays-banner-builder-redis-1 | redis:7-alpine | — | Up 6 days | | barclays-banner-builder-postgres-1 | pgvector/pgvector:pg16 | — | Up 6 days | | social-mi-bi-api-1 | social-mi-bi-api | 127.0.0.1:8302 | Up 3 days | | social-mi-bi-worker-1 | — | — | Up 3 days | | social-mi-bi-minio-1 | minio/minio | 127.0.0.1:8303→9000 | Up 3 days | | social-mi-bi-db-1 | postgres:16-alpine | — | Up 3 days | | social-mi-bi-redis-1 | redis:7-alpine | — | Up 3 days | | social-reporting-social-listening-1 | social-reporting | 127.0.0.1:3456 | Up 8 days | | social-reporting-db-1 | postgres:16-alpine | 0.0.0.0:5436 | Up 8 days | | amazon-transcreation-frontend-1 | — | 127.0.0.1:3050 | Up 7 days | | amazon-transcreation-backend-1 | — | 127.0.0.1:8040 | Up 7 days | | amazon-transcreation-celery_worker-1 | — | — | Up 7 days | | amazon-transcreation-db-1 | postgres:16 | 127.0.0.1:5492 | Up 7 days | | amazon-transcreation-redis-1 | redis:7-alpine | 127.0.0.1:6389 | Up 7 days | | gmal-scope-builder-backend-1 | — | 127.0.0.1:8002 | Up 10 days | | gmal-scope-builder-db-1 | postgres:16-alpine | — | Up 3 weeks | | salary-benchmark-app | salary-benchmark-app | 127.0.0.1:8100 | Up 3 days | | salary-benchmark-db | postgres:16-alpine | — | Up 3 days | | hp-prod-tracker-app-1 | hp-prod-tracker-app | 0.0.0.0:3001 | Up 7 days (unhealthy) | | hp-prod-tracker-db-1 | pgvector/pgvector:pg17 | 0.0.0.0:5491 | Up 8 days | | dow-prod-tracker-app-1 | dow-prod-tracker-app | 0.0.0.0:3002 | Up 41 hours (unhealthy) | | dow-prod-tracker-db-1 | pgvector/pgvector:pg17 | 0.0.0.0:5493 | Up 41 hours | | hp-studios-ai-content-agent-frontend-1 | — | 127.0.0.1:22970 | Up 37 hours | | hp-studios-ai-content-agent-api-1 | — | 127.0.0.1:22409 | Up 37 hours | | hp-studios-ai-content-agent-worker-1 | — | — | Up 37 hours | | hp-studios-ai-content-agent-redis-1 | redis:7-alpine | — | Up 37 hours | | hp-studios-ai-content-agent-postgres-1 | pgvector/pgvector:pg16 | — | Up 37 hours | ## Apache Routing (optical-dev.oliver.solutions) SSL terminated upstream. Single vhost on `:80`. | Path | Backend | App | |------|---------|-----| | `/ppt-tool/api/v1/` | :8001 | DeckForge FastAPI | | `/ppt-tool` | :3000 | DeckForge Next.js | | `/api/` | :8000 | OliVAS FastAPI | | `/olivas/` | static `/var/www/html/olivas` | OliVAS SPA | | `/semblance_back/` | :5137 | Semblance Quart backend (WebSocket) | | `/semblance/` | static `/var/www/html/semblance` | Semblance SPA | | `/cc-dashboard/api/` | :8800 | CC Dashboard FastAPI | | `/cc-dashboard/` | static `/var/www/html/cc-dashboard` | CC Dashboard SPA | | `/gsb/api/` | :8002 | GMAL Scope Builder API | | `/gsb/` | static `/var/www/html/gmal-scope-builder` | GMAL SPA | | `/hp-prod-tracker/` | :3001 | HP Prod Tracker | | `/amazon-transcreation/` | :8040 / :3050 | via Include | | `/barclays*` | :8010 | Barclays Banner Builder via Include | | `/salary-benchmark*` | :8100 | via Include | | `/social-mi-bi*` | :8302 | via Include | | `/dow-prod-tracker*` | :3002 | via Include | | `/ai-qc*` | — | via Include | | `/hp-content-agent*` | :22409 / :22970 | via Include | Each app defines its own Apache include at `/opt/{name}/deploy/apache-*.conf`. ## Deployment Pattern ```bash # Standard deploy cd /opt/{app-name} git pull docker compose -f docker-compose.prod.yml build docker compose -f docker-compose.prod.yml up -d # or docker compose up -d --build ``` Static SPA builds go to `/var/www/html/{app-name}/`. ## Key Takeaways - All apps in `/opt/{name}/` as Docker Compose stacks - Apache config: `/etc/apache2/sites-enabled/optical-dev.oliver.solutions.conf` - Per-app Apache includes let each project own its routing config - `hp-prod-tracker` and `dow-prod-tracker` currently **unhealthy** — check logs - `deploy-api` service is running (uvicorn on :9000) — deployment automation - Exposed Postgres ports 5436/5491/5493 accessible from GCP internal network ## Related - [[wiki/infrastructure/server-optical|server-optical]] — main production server - [[wiki/infrastructure/ssh-aliases|ssh-aliases]] - [[wiki/architecture/docker-compose-deploy|docker-compose-deploy]]