Our Docker Compose stack on OCI Frankfurt

The OpsForge company site runs on a single OCI VM in eu-frankfurt-1 — not k3s, not managed WordPress. We chose Docker Compose for simplicity, debuggability, and a path solo founders can replicate.

Architecture

Cloudflare

Nginx

WordPress 6.7

MariaDB 11

Stack choices

  • wordpress:6.7-php8.2-apache — official image, predictable upgrades
  • mariadb:11 — persistent data on a named volume
  • nginx:1.27-alpine — reverse proxy, Cloudflare-friendly headers
  • wp-cli — one-shot container for bootstrap and content apply

Deploy path

From the monorepo: ./scripts/setup-opsforge-frankfurt-vm.sh for first install, or --apply-only for content-only updates. DNS and TLS go through Cloudflare (Flexible SSL today; origin cert on the roadmap).

Lessons from our first deploy

We initially tried k3s + Bitnami Helm on the same VM — ImagePullBackOff, wp-config parse errors, and long blind waits. Pivoting to Compose got us to HTTP 200 in hours. The runbook is in our repo for anyone repeating the same mistakes.

Platform overview · Book a demo

Similar Posts