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

75 lines
1.5 KiB
Markdown

# 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
```bash
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:
```bash
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:
```bash
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:
```bash
docker compose up -d open-seo
```
- Pull latest published image and restart:
```bash
docker compose pull && docker compose up -d
```
- Stop:
```bash
docker compose down
```
- Stop and remove volumes:
```bash
docker compose down -v
```