# Flook Stacks Docker Compose stacks for Flook (192.168.1.75) managed via Portainer. ## Stacks | Stack | Services | Port(s) | Description | |-------|----------|---------|-------------| | portainer | portainer | 9000 | Stack management | | proxy | npm | 1880, 18443, 81 | Nginx Proxy Manager (CRITICAL) | | documents | paperless, paperless-db, paperless-redis, paperless-tika, paperless-gotenberg, onlyoffice | 8777, 8089, 4430 | Document management | | productivity | gitlab, vaultwarden, memos, mortis, freshrss | 8929, 4743, 5230, 5231, 8054 | Personal tools | | backup | borgmatic | - | Borg backup to chook | | seafile | seafile, seadoc, mysql, redis, notification, md-server, seasearch | 8098, 8888, 8083, 8084, 4080 | File sync (migrated from VM) | | outline | outline, postgres, redis | 3000 | Wiki (migrated from VM) | ## Deployment Order 1. `portainer` - Deploy first, manually 2. `productivity` - GitLab, Vaultwarden, Memos, FreshRSS, Mortis 3. `documents` - Paperless, OnlyOffice 4. `backup` - Borgmatic 5. `proxy` - CRITICAL - deploy carefully, brief downtime expected 6. `seafile` - After migrating data from VM 7. `outline` - After migrating data from VM ## Migration Notes ### Seafile Migration (from VM 192.168.1.112) 1. **Stop Seafile on VM:** ```bash ssh rishi@192.168.1.112 cd /opt/seafile && docker compose down ``` 2. **Create directories on Flook:** ```bash mkdir -p /mnt/user/appdata/seafile/{data,db-data,seadoc-data,seasearch-data} ``` 3. **Copy data:** ```bash rsync -avP rishi@192.168.1.112:~/seafile/data/ /mnt/user/appdata/seafile/data/ rsync -avP rishi@192.168.1.112:~/seafile/db-data/ /mnt/user/appdata/seafile/db-data/ ``` 4. **Copy seahub_settings.py:** ```bash cp /mnt/user/data/flook-stacks/stacks/seafile/seahub_settings.py /mnt/user/appdata/seafile/ ``` 5. **Deploy stack via Portainer** ### Outline Migration (from VM 192.168.1.112) 1. **Create directories on Flook:** ```bash mkdir -p /mnt/user/appdata/outline/{postgres-data,redis} ``` 2. **Export Postgres from VM:** ```bash ssh rishi@192.168.1.112 docker exec outline-postgres-1 pg_dump -U rishi outline > ~/outline_backup.sql ``` 3. **Copy backup to Flook:** ```bash scp rishi@192.168.1.112:~/outline_backup.sql /mnt/user/appdata/outline/ ``` 4. **Deploy stack via Portainer** (this creates empty DB) 5. **Stop outline container temporarily:** ```bash docker stop outline ``` 6. **Import data:** ```bash docker exec -i outline-postgres psql -U rishi outline < /mnt/user/appdata/outline/outline_backup.sql ``` 7. **Start outline:** ```bash docker start outline ``` 8. **Stop VM services after verification:** ```bash ssh rishi@192.168.1.112 cd ~/outline && docker compose down ``` ## Repository ``` https://git.rishighan.com/root/flook-stacks.git ```