Wiki.js
v1.0.0A collaborative wiki with Markdown editing and flexible authentication.
x-arcane:
icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/wiki-js.svg"
urls:
- "https://docs.requarks.io/install/docker"
services:
wiki:
image: "ghcr.io/requarks/wiki:latest"
restart: "unless-stopped"
ports:
- "${PORT:-8080}:3000"
environment:
DB_TYPE: "postgres"
DB_HOST: "db"
DB_PORT: "5432"
DB_USER: "wiki"
DB_PASS: "${DB_PASSWORD:?Set DB_PASSWORD in .env}"
DB_NAME: "wiki"
depends_on:
db:
condition: "service_healthy"
labels:
com.getarcaneapp.arcane.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/wiki-js.svg"
db:
image: "postgres:16-alpine"
restart: "unless-stopped"
environment:
POSTGRES_DB: "wiki"
POSTGRES_USER: "wiki"
POSTGRES_PASSWORD: "${DB_PASSWORD:?Set DB_PASSWORD in .env}"
volumes:
- "db-data:/var/lib/postgresql/data"
healthcheck:
test:
- "CMD-SHELL"
- "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
interval: "10s"
timeout: "5s"
retries: 10
start_period: "30s"
labels:
com.getarcaneapp.arcane.icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/postgresql.svg
volumes:
db-data: {}
# Replace every change-me with an independent secret before deployment.
# Generate secrets with: openssl rand -hex 32
PORT=8080
DB_PASSWORD=change-me
README
A collaborative wiki with Markdown editing and flexible authentication.
Copy .env.example to .env, review the settings, then run docker compose up -d. In Arcane, import the template and supply the same environment variables. Replace every change-me value before starting. Generate independent secrets with openssl rand -hex 32; use hexadecimal database passwords so connection URLs need no escaping. Use docker compose ps and docker compose logs to check startup.
Open http://localhost:8080 and complete the setup wizard to choose the administrator email, password, and site URL. PostgreSQL stores pages, assets, and settings. Configure the public URL in the wizard or administration settings if using a reverse proxy.
Named volumes preserve server data across container recreation. Back up these volumes before upgrades; docker compose down -v deletes them. Set PORT to an unused host port. For remote browser access, put HTTPS in front of the application and update its public URL setting where provided.
Upstream documentation: Wiki.js deployment.