Wiki.js

A modern, open-source wiki built on Node.js. Fast, feature-rich, and designed for teams.

yaml

docker-compose.yml

services:
  db:
    image: postgres:15-alpine
    container_name: wikijs-db
    environment:
      POSTGRES_DB: ${POSTGRES_DB:-wiki}
      POSTGRES_USER: ${POSTGRES_USER:-wikijs}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-wikijsrocks}
    logging:
      driver: none
    restart: unless-stopped
    volumes:
      - db-data:/var/lib/postgresql/data
    healthcheck:
      test:
        - CMD-SHELL
        - pg_isready -U ${POSTGRES_USER:-wikijs} -d ${POSTGRES_DB:-wiki}
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - wikijs-net
  wiki:
    image: ghcr.io/requarks/wiki:2
    container_name: wikijs
    depends_on:
      db:
        condition: service_healthy
    environment:
      DB_TYPE: postgres
      DB_HOST: db
      DB_PORT: 5432
      DB_USER: ${POSTGRES_USER:-wikijs}
      DB_PASS: ${POSTGRES_PASSWORD:-wikijsrocks}
      DB_NAME: ${POSTGRES_DB:-wiki}
    restart: unless-stopped
    ports:
      - ${WIKI_HTTP_PORT:-3000}:3000
      - ${WIKI_HTTPS_PORT:-3443}:3443
    volumes:
      - wiki-data:/wiki/data
      - wiki-assets:/wiki/assets
    healthcheck:
      test:
        - CMD-SHELL
        - wget -qO- http://localhost:3000/healthz || exit 1
      interval: 30s
      timeout: 10s
      retries: 3
    networks:
      - wikijs-net
volumes:
  db-data:
    name: wikijs-db-data
  wiki-data:
    name: wikijs-data
  wiki-assets:
    name: wikijs-assets
networks:
  wikijs-net:
    name: wikijs-net
    driver: bridge

.ENV

.env example

# =============================================================================
# Wiki.js — Environment Variables
# =============================================================================

# ─── Database ────────────────────────────────────────────────────────────────
POSTGRES_DB=wiki
POSTGRES_USER=wikijs
POSTGRES_PASSWORD=wikijsrocks
# Example alternatives (commented):
POSTGRES_DB=mywiki
POSTGRES_USER=mywikijs
POSTGRES_PASSWORD=P@ssw0rd!2024

# ─── Network Ports ───────────────────────────────────────────────────────────
# Wiki.js HTTP port  (maps to container port 3000)
WIKI_HTTP_PORT=3000
# Wiki.js HTTPS port (maps to container port 3443)
WIKI_HTTPS_PORT=3443
# Example alternatives:
WIKI_HTTP_PORT=8080
WIKI_HTTPS_PORT=8443

# ─── First-run Admin Account ─────────────────────────────────────────────────
# Set these BEFORE first startup to auto-create an admin account.
ADMIN_EMAIL=[email protected]
ADMIN_PASSWORD=changeme123
ADMIN_NAME=Wiki Admin

# ─── Site URL ─────────────────────────────────────────────────────────────────
BASE_URL=https://wiki.yourdomain.com

deployment

Quick Start

  1. Create a working directory named after the service.
  2. Copy the compose file and generated `.env` into that directory.
  3. Review the variables and replace placeholders with real values.
  4. Run `docker compose up -d`.
mkdir wiki-postgres
cd wiki-postgres
# create docker-compose.yml
# create .env
docker compose up -d