--- tags: [infrastructure, server, gcp, oliver-internal] updated: 2026-04-24 --- # optical — optical-web-1 (Main AI Production) > SSH alias: `optical` → `vadym.samoilenko@10.220.168.5:22` > Key: `~/.ssh/id_rsa_vadym` ## Overview Main Oliver Agency AI production server. Hosts ~35 client and internal AI applications as systemd services (mix of Python/FastAPI, Node.js, Docker Compose). The biggest server in the fleet — many apps share resources on a single GCP instance. - **Hostname**: optical-web-1 - **Platform**: GCP (europe-west2 assumed) - **OS**: Ubuntu 22.04.4 LTS - **IP**: 10.220.168.5 - **Web server**: Apache 2.4 (no Nginx) - **Domain**: ai-sandbox.oliver.solutions - **Disk**: 116 GB total ## Running Applications (`/opt/`) | App | Service | Port | Tech | |-----|---------|------|------| | agent_collector | agent_collector.service | — | Python | | AgentHub / agent_tracker | agent_tracker.service | 17000 | Python/FastAPI | | AI QC | ai_qc.service | — | Python | | Box→Bynder | box2bynder.service | — | Python | | Brief Extractor | brief-extractor.service | — | Python | | Cannes Video Generator | cannes-video-generator.service | — | Python | | Contract Query | contract-query.service | — | Python | | Ferrero CreativeX | creativex-service.service | — | Python | | Ferrero AC Booking | ferrero-ac.service | — | Python | | Ferrero Orchestrator | ferrero-orchestrator-prod.service | — | Python | | Hiring Calculator | hiring_calculator.service | 8127 | Flask/Gunicorn | | H&M EMS | hm-ems.service | 3001 (Node) | Node.js | | HP Chatbot | hp_chatbot.service | — | Python | | JustEight | justeight.service | 7395 | Python | | Markdown→PDF | markdown2pdf.service | — | Python | | MSFT Melanie Bot | melanie_bot.service | 8475/8505 | Python | | Netflix Chatbot | netflix_chatbot.service | — | Python | | Netflix V2 | netflix_v2.service | — | Python | | PDF Extract | pdf_extract.service | 8746 | Python | | Semblance | semblance.service | 8001 | Python | | Veo Video Generator | veo-video-generator.service | 7394 | Python | | Video Optimizer | video-optimizer-backend.service | 8003 | Python | | Video Query | video_query.service | 8000 | Python | | Voice→Text (Whisper) | voice2text-api.service | 8100 | Python | | PM2 apps (vadym) | pm2-vadym.samoilenko.service | 3000, 4000, 3100, 3456 | Node.js | **Other `/opt/` dirs**: apac-ops-bot, apac-strategy-dashboard, build-a-squad, enterprise-ai-hub-nexus, ferrero-opentext, hm-ems-data, hm_ai_qc, hm_ems_report, loreal-sla-calculator, lusa-back-planner, mongodb, oliver-metadata-tool, ollie-brandtech-strategic-intelligence, pimco-charts, rackham-meeting-analyzer, sandbox-notebookllamalm-nextjs, smartcrop26, veo3, video-accessibility, video-subtitle, backups, agent-sync ## Port Map | Port | Service | Notes | |------|---------|-------| | 80 / 443 | Apache | ai-sandbox.oliver.solutions | | 3000 | PM2 / Node.js | — | | 3001 | H&M EMS Node | — | | 3100 | PM2 / Node.js | — | | 3456 | Node.js (fac) | ProxyPass /fac/ → :3456 | | 4000 | PM2 / Node.js | — | | 5000 | Gunicorn (localhost) | — | | 5432 / 5433 / 5437 | PostgreSQL | Three instances | | 6174 / 6175 / 6176 | Redis internal | — | | 6333 | Qdrant | Vector DB (internal: 10.220.168.5:6333) | | 6379 / 6380 / 6399 | Redis | Three instances | | 7474 / 7475 | Neo4j HTTP | — | | 7687 / 7688 | Neo4j Bolt | — | | 7394 / 7395 | JustEight | — | | 8000 | Video Query | — | | 8001 | Semblance | — | | 8003 | Video Optimizer | — | | 8038 / 8048 | Various | — | | 8080 | — | — | | 8100 | Voice2Text | — | | 8127 | Hiring Calculator | — | | 8475 / 8505 | Melanie Bot | — | | 8746 | PDF Extract | — | | 8877 / 8569 | Internal only (localhost) | — | | 9000 / 9001 | — | — | | 17000 | AgentHub | — | | 27017 / 27019 / 27021 | MongoDB | Three instances | ## Databases Running - **PostgreSQL**: :5432, :5433, :5437 (three instances) - **MongoDB**: :27017, :27019, :27021 (three instances) - **Redis**: :6379, :6380, :6399 + internal on 6174–6176 - **Qdrant** (vector DB): :6333 (bound to 10.220.168.5 only) - **Neo4j**: :7474/:7475 (HTTP), :7687/:7688 (Bolt) - Also: internal Redis exposed to optical-dev via :15432 (PG) and :16379 (Redis) ## Apache Config - Single vhost: `ai-sandbox.oliver.solutions` - SSL termination: upstream (GCP load balancer) - PHP 8.1-FPM running alongside - ProxyPass: `/fac/` → `http://127.0.0.1:3456/` ## Key Takeaways - This is the **main workhorse** — don't restart services carelessly - Multiple databases of each type — always confirm which port before connecting - Apps deployed in `/opt/{name}/` as systemd services — manage with `sudo systemctl {start|stop|status} {service-name}` - Also some Docker Compose apps (loreal-sla-calculator, enterprise-ai-hub-nexus, video-accessibility, pdf-accessibility, pimco-charts, ac-helper, sandbox apps) - PM2 manages Node.js apps under `vadym.samoilenko` user ## Related - [[wiki/infrastructure/server-optical-dev|server-optical-dev]] — Docker staging server - [[wiki/infrastructure/ssh-aliases|ssh-aliases]] — all server quick reference - [[wiki/architecture/docker-compose-deploy|docker-compose-deploy]]