Wiki.js runs on the production server in Docker at https://wiki.yealin.com.au.
Location: /opt/wikijs/docker-compose.yml
services:
wikijs:
image: ghcr.io/requarks/wiki:2
container_name: wikijs
depends_on:
- wikijs-db
environment:
DB_TYPE: postgres
DB_HOST: wikijs-db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: wikijspassword
DB_NAME: wikijs
restart: unless-stopped
ports:
- "3001:3000"
wikijs-db:
image: postgres:16-alpine
container_name: wikijs-db
environment:
POSTGRES_DB: wikijs
POSTGRES_USER: wikijs
POSTGRES_PASSWORD: wikijspassword
restart: unless-stopped
volumes:
- wikijs-db-data:/var/lib/postgresql/data
volumes:
wikijs-db-data:
# Check status
cd /opt/wikijs
docker compose ps
# Start
docker compose up -d
# Stop
docker compose down
# Restart
docker compose restart wikijs
# View logs
docker compose logs -f wikijs
# Update to latest version
docker compose pull
docker compose up -d
The API key is stored in:
.env on production server as WIKIJS_API_KEYTo generate a new API key:
Claude manages wiki pages via a Python sync script. At the end of each session, run:
cd /var/www/yealinbilling
python3 wiki_sync.py
The script creates/updates all pages via the GraphQL API. It automatically:
Base URL: https://wiki.yealin.com.au/graphql
# List all pages
curl -s -X POST https://wiki.yealin.com.au/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"{ pages { list { id path title } } }"}' \
| python3 -m json.tool
# Create a page
curl -s -X POST https://wiki.yealin.com.au/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation { pages { create(content: \"# My Page\", description: \"desc\", editor: \"markdown\", isPrivate: false, isPublished: true, locale: \"en\", path: \"my-page\", tags: [], title: \"My Page\") { responseResult { succeeded message } page { id } } } }"
}'
Wiki.js supports nested pages via path hierarchy:
admin-manual/ ← parent page
admin-manual/server-overview ← child page
admin-manual/database ← child page
sessions/ ← parent page
sessions/index ← child page
sessions/session-1 ← child page
Configure navigation in Wiki.js: