# Self-Hosted Obsidian Alternative: Wiki.js This guide sets up **Wiki.js** as your always-on documentation vault that syncs with your existing workflow. ## What is Wiki.js? - **Web-based** Obsidian alternative (always accessible) - **Markdown native** (same format as Obsidian) - **Git sync** (integrates with your Gitea!) - **Self-hosted** in Docker via Portainer - **FREE** and open source ## Why Wiki.js over other options? | Feature | Wiki.js | Obsidian Publish | Other Wikis | |---------|---------|------------------|-------------| | Self-hosted | ✅ Yes | ❌ No | Varies | | Markdown | ✅ Native | ✅ Yes | ⚠️ Partial | | Git sync | ✅ Yes | ❌ No | ❌ Rare | | Web editing | ✅ Yes | ✅ Yes | ✅ Yes | | Free | ✅ Yes | ❌ $8/mo | Varies | | Gitea integration | ✅ Yes | ❌ No | ❌ No | ## Prerequisites - Docker VM with Portainer running - At least 2GB RAM available - (Optional) Gitea repository for sync --- ## Setup Instructions ### Step 1: Create the Stack in Portainer 1. **Open Portainer** (http://your-docker-vm:9000) 2. Go to **Stacks** → **Add stack** 3. **Name:** `wikijs-vault` 4. **Build method:** Web editor 5. **Copy-paste the YAML below:** ```yaml version: '3.8' services: wikidb: image: postgres:15-alpine container_name: wikijs-db restart: unless-stopped environment: POSTGRES_DB: wiki POSTGRES_PASSWORD: wikijsrocks POSTGRES_USER: wikijs volumes: - wikijs-db-data:/var/lib/postgresql/data networks: - wikijs-network wiki: image: ghcr.io/requarks/wiki:2 container_name: wikijs restart: unless-stopped depends_on: - wikidb environment: DB_TYPE: postgres DB_HOST: wikidb DB_PORT: 5432 DB_USER: wikijs DB_PASS: wikijsrocks DB_NAME: wiki ports: - "3001:3000" volumes: - wikijs-data:/wiki/data networks: - wikijs-network networks: wikijs-network: volumes: wikijs-db-data: wikijs-data: ``` 6. **Click "Deploy the stack"** ### Step 2: Initial Setup (2 minutes) 1. **Wait 30 seconds** for containers to start 2. **Open Wiki.js:** http://your-docker-vm-ip:3001 3. **Create admin account** 4. **Choose "Local" authentication** (or LDAP if you have it) ### Step 3: Configure Git Sync (Connect to Gitea) This syncs your wiki with a Git repository (bidirectional!) 1. **In Wiki.js:** Administration → Git → Enable 2. **Set these values:** - **Git URL:** `http://192.168.5.30:3000/impulsivefps/lemontropia-wiki.git` - **Branch:** `main` - **Username:** `impulsivefps` - **Password/Token:** Your Gitea token - **Sync Direction:** Bidirectional 3. **Click "Apply"** ### Step 4: Create Gitea Repository 1. **Open Gitea** (http://192.168.5.30:3000) 2. **New Repository:** - Name: `lemontropia-wiki` - Description: "Lemontropia Suite Documentation" - Private: Yes 3. **Generate token** in Gitea settings for Wiki.js --- ## Using Your Wiki ### From Browser (Anywhere) - **URL:** http://your-docker-vm:3001 - **Edit** directly in web interface - **Markdown** support with live preview - **Search** across all content ### From Obsidian Desktop 1. **Clone the repo:** `git clone http://192.168.5.30:3000/impulsivefps/lemontropia-wiki.git` 2. **Open folder** as vault in Obsidian 3. **Edit normally** 4. **Sync:** Git commit → Auto-syncs to Wiki.js! ### Best of Both Worlds - **Quick edits** → Use web interface (always available) - **Heavy writing** → Use Obsidian desktop + git - **Mobile access** → Web interface works on phone/tablet - **Offline work** → Obsidian desktop works offline, sync later --- ## Integration with Lemontropia Suite Your app can now: 1. **Write** to Obsidian vault locally 2. **Git commit/push** → Syncs to Gitea 3. **Wiki.js pulls** → Documentation live on web 4. **Access anywhere** → http://docker-vm:3001 --- ## Backup Strategy Wiki.js data is stored in: - **Docker volumes** (auto-backed up with VM) - **Git repository** (in Gitea, already backed up) Your docs are safe! 🎉 --- ## Troubleshooting ### Can't access on port 3001? Check firewall: `sudo ufw allow 3001/tcp` ### Git sync not working? - Verify Gitea token has "repo" permissions - Check URL format (http vs https) - Review Wiki.js logs in Portainer ### Obsidian sync conflicts? - Always pull before editing in Obsidian - Use "Sync" button in Wiki.js before web edits --- **Questions? The Lemontropia Suite docs will live here!** 🍋📚