metatron-open-seo/SELF_HOSTING_DOCKER.md
Ben Senescu 33173f5c04
chore: publish OpenSEO Docker images and use image-first self-host flow (#18)
* chore: add published Docker image workflow and self-host image flow

* fix: align Docker publish and build paths

Use the canonical GHCR image name and correct Dockerfile path references so CI publishing and documented local builds work as expected.

* fix: restore Docker self-host runtime defaults

Use the full Node base image and expose Compose env vars to the Cloudflare Vite runtime so local self-hosting keeps auth bindings and outbound HTTPS working.
2026-03-12 19:28:45 -04:00

1.5 KiB

Docker Self-Hosting

Run OpenSEO locally with Docker.

In Docker mode, OpenSEO uses AUTH_MODE=local_noauth (no auth checks, local admin user admin@localhost).

The default compose.yaml uses the published GHCR image:

  • ghcr.io/every-app/open-seo:latest

Prerequisites

  • Docker Desktop (or Docker Engine + Docker Compose)

Quickstart

cp .env.example .env
docker compose up -d

Set DATAFORSEO_API_KEY in .env, then open http://localhost:<PORT> (default 3001).

Docker Compose passes .env values into the container, and compose.yaml enables CLOUDFLARE_INCLUDE_PROCESS_ENV=true so the Cloudflare Vite runtime can read them as Worker bindings during local self-hosting.

Optional env values:

  • PORT (defaults to 3001)
  • AUTH_MODE=local_noauth (already set in compose)
  • OPEN_SEO_IMAGE (defaults to ghcr.io/every-app/open-seo:latest)

Pin to a specific image tag

Set OPEN_SEO_IMAGE in .env and restart:

OPEN_SEO_IMAGE=ghcr.io/every-app/open-seo:v1.2.3
docker compose up -d

Build your own image locally

If you are testing local code changes, build and run a local tag:

docker build -f Dockerfile.selfhost -t open-seo:local .
OPEN_SEO_IMAGE=open-seo:local docker compose up -d

Common commands

  • Restart service after env changes:
docker compose up -d open-seo
  • Pull latest published image and restart:
docker compose pull && docker compose up -d
  • Stop:
docker compose down
  • Stop and remove volumes:
docker compose down -v