Homelab Documentation: Wiki.js vs BookStack for Self-Hosted Wikis
Document your homelab setup with self-hosted wikis. Compare Wiki.js and BookStack for creating searchable documentation of your infrastructure and procedures.
Posted by
Related reading
Private Cloud vs Public Cloud: When to Self-Host and When Not To
Understand when self-hosting makes sense and when public cloud is better. A practical guide to choosing between private cloud homelab and AWS/GCP/Azure services.
Docker Security Scanning: Trivy and Dockle for Safe Containers
Scan your Docker images for vulnerabilities before deploying. Learn to use Trivy and Dockle to secure your self-hosted homelab container infrastructure.
Self-Hosted Bookmarks: Linkding, Shaarli, and Wallabag
Save and organize bookmarks privately with self-hosted solutions. Compare Linkding, Shaarli, and Wallabag for personal bookmark management in your homelab.

Document Everything
Six months from now, will you remember how you configured that service? Documentation saves hours of troubleshooting. A self-hosted wiki keeps your homelab knowledge organized and searchable.
Wiki.js (Modern and Beautiful)
services:
wikijs:
image: ghcr.io/requarks/wiki:2
environment:
- DB_TYPE=postgres
- DB_HOST=db
- DB_PORT=5432
- DB_USER=wikijs
- DB_PASS=your_password
- DB_NAME=wikijs
ports:
- "3000:3000"
depends_on:
- db
db:
image: postgres:15-alpine
environment:
- POSTGRES_DB=wikijs
- POSTGRES_USER=wikijs
- POSTGRES_PASSWORD=your_password
volumes:
- wikijs_db:/var/lib/postgresql/data
volumes:
wikijs_db:- Modern, clean interface
- Markdown and WYSIWYG editors
- Git sync for version control
- Excellent search
BookStack (Simple Hierarchy)
services:
bookstack:
image: linuxserver/bookstack:latest
environment:
- PUID=1000
- PGID=1000
- APP_URL=https://wiki.yourdomain.com
- DB_HOST=bookstack_db
- DB_DATABASE=bookstack
- DB_USERNAME=bookstack
- DB_PASSWORD=your_password
volumes:
- ./bookstack:/config
ports:
- "6875:80"
depends_on:
- bookstack_db
bookstack_db:
image: mariadb:10
environment:
- MYSQL_ROOT_PASSWORD=root_password
- MYSQL_DATABASE=bookstack
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=your_password
volumes:
- bookstack_db:/var/lib/mysql
volumes:
bookstack_db:- Shelves → Books → Chapters → Pages hierarchy
- Easy to organize
- PDF export
What to Document
- Network diagram and IP assignments
- Docker Compose files with explanations
- Backup procedures and restore steps
- Troubleshooting guides for common issues
- Credentials location (not the actual passwords!)
