- Complete task documentation per FFG-STD-002 - README.md: Overview, context, success criteria - deployment-plan.md: 9-phase step-by-step deployment - prerequisites.md: Comprehensive checklist Urgency: HIGH - Unblocks content migration for 76 Pokémon entries Timeline: Deploy tonight, migration starts tomorrow (Feb 27) Requested by: Michael & Claudius (Pokerole Project) Related: Aurelian Pokédex 100% complete, awaiting infrastructure
10 KiB
Pokerole Wiki.js Deployment Prerequisites
Task: #35 - Pokerole Wiki.js Deployment
Server: Ghost VPS (64.50.188.14)
Domain: pokerole.firefrostgaming.com
Server Access
- SSH access to Ghost VPS (64.50.188.14)
- User: root (or sudo user)
- Authentication: SSH key
- Tested: Connection verified
Software Requirements
Docker & Docker Compose
-
Docker installed
- Version: 20.10+ or newer
- Status: Already running (subscribers/staff wikis use Docker)
- Verify:
docker --version
-
Docker Compose installed
- Version: 1.29+ or newer
- Status: Already present
- Verify:
docker-compose --version
Nginx
- Nginx installed and running
- Status: Already serving multiple sites
- Config directory:
/etc/nginx/sites-available/ - Enabled directory:
/etc/nginx/sites-enabled/ - Verify:
nginx -t && systemctl status nginx
SSL/Certbot
- Certbot installed
- Purpose: Let's Encrypt SSL certificates
- Status: Already managing SSL for other domains
- Package:
python3-certbot-nginx - Verify:
certbot --version
Network & DNS
DNS Configuration
-
Create A record for pokerole.firefrostgaming.com
- Type: A
- Name: pokerole
- Value: 64.50.188.14
- TTL: 300 (5 minutes)
- Access: DNS provider/registrar panel
- ACTION REQUIRED: Create this record before deployment
-
Verify DNS propagation
- Command:
nslookup pokerole.firefrostgaming.com - Expected: Returns 64.50.188.14
- Time: 5-15 minutes after record creation
- Alternative:
dig pokerole.firefrostgaming.com
- Command:
Port Availability
-
Port 3002 available (internal)
- Purpose: Wiki.js container port
- Port 3000: Likely used by subscribers wiki
- Port 3001: Likely used by staff wiki
- Port 3002: Should be free
- Verify:
netstat -tulpn | grep :3002 - If occupied: Use next available port (3003, 3004, etc.)
-
Ports 80/443 available (external)
- Purpose: HTTP/HTTPS access via Nginx
- Status: Already handling multiple sites
- No changes needed (Nginx reverse proxy handles routing)
Storage & Resources
Disk Space
- Sufficient storage on Ghost VPS
- Required: ~500 MB for deployment
- Check:
df -h /opt - Expected: Several GB available
- Purpose:
- PostgreSQL database: ~100 MB
- Wiki.js container: ~200 MB
- Uploaded images: ~50 MB (225 sprites)
- Growth room: ~150 MB
System Resources
-
Adequate RAM
- Required: ~512 MB for containers
- Ghost VPS: Should have 2-4 GB total
- Check:
free -h - Current load: 2 Wiki.js instances already running
- Conclusion: Sufficient for 3rd instance
-
CPU capacity
- Required: Minimal (Wiki.js is lightweight)
- Ghost VPS: 2-4 CPU cores
- Load: Acceptable (check
top)
Existing Infrastructure Reference
Current Wiki.js Instances
-
Subscribers Wiki
- Domain: subscribers.firefrostgaming.com
- Location: Ghost VPS
- Status: Operational
- Purpose: Reference for configuration
-
Staff Wiki
- Domain: staff.firefrostgaming.com
- Location: Ghost VPS
- Status: Operational
- Purpose: Reference for configuration
Use these as templates for Pokerole wiki deployment pattern
Nginx Configurations
- Existing configs to reference
- Check:
/etc/nginx/sites-available/subscribers.firefrostgaming.com - Check:
/etc/nginx/sites-available/staff.firefrostgaming.com - Purpose: Copy proxy configuration pattern
- Check:
Docker Network
- Understand existing Docker setup
- Command:
docker network ls - Command:
docker ps | grep wiki - Purpose: Ensure new deployment doesn't conflict
- Command:
Access & Credentials
Email Addresses Needed
-
Michael's email for admin account
- Purpose: Wiki.js administrator login
- Purpose: SSL certificate registration
- ACTION REQUIRED: Provide at deployment time
-
Holly's email for editor account
- Purpose: Wiki.js editor access
- ACTION REQUIRED: Provide at deployment time
Password Management
- Vaultwarden available
- URL: vault.firefrostgaming.com
- Status: Deployed (needs configuration)
- Purpose: Store wiki admin credentials
- Note: Can store manually if Vaultwarden not ready
SSH Keys
- SSH access to Ghost VPS
- Method: SSH key authentication
- Status: Already configured
- User: root or sudo user
Content Ready for Migration
Git Repositories
-
pokerole-data repository accessible
- Location: git.firefrostgaming.com/pokerole-project/pokerole-data
- Contents: 76 Pokémon entries (Tiers 3, 4, 5)
- Status: 100% complete, approved by Holly
-
Artwork ready
- Location: pokerole-data/images/
- Count: 225 sprites (115 normal + 110 shiny)
- Format: PNG (99%), high-resolution
- Status: 100% complete
-
Documentation available
- Session reports: misc-docs repository
- Deployment request: From Claudius
- Holly's specifications: In pokerole-data
Team Readiness
Deployment Team
- The Chronicler #27
- Role: Infrastructure deployment
- Availability: Ready to deploy this evening
- Access: Can deploy via Michael's SSH session
Migration Team
-
Claudius (Stage 2) - The Pattern Forger
- Role: Content migration (76 Pokémon entries)
- Availability: Ready to start tomorrow (Feb 27)
- Preparation: All content organized and ready
-
Michael (mkrause612)
- Role: Project lead, coordination
- Availability: Ready to coordinate
- Access: Will have admin credentials
Review Team
- Holly (Unicorn20089)
- Role: Creative director, final approval
- Availability: Ready for review phase
- Access: Will have editor credentials
Backup & Safety
Pre-Deployment Backup
- Backup existing Ghost VPS configs
- Nginx configs:
/etc/nginx/sites-available/ - Docker configs: Any existing pokerole-related files
- Purpose: Easy rollback if needed
- ACTION REQUIRED: Before making changes
- Nginx configs:
Rollback Plan
- Documented rollback procedure
- Location: deployment-plan.md (Rollback section)
- Steps: Docker down, remove configs, revoke SSL
- Tested: Not needed (we know this pattern works)
Documentation
Deployment Documentation
-
README.md created
- Overview, context, success criteria
- Located: docs/tasks/pokerole-wikijs-deployment/
-
deployment-plan.md created
- Step-by-step deployment instructions
- 9 phases with detailed commands
-
prerequisites.md created (this file)
- Complete checklist of requirements
Reference Documentation
- Claudius's request document
- Comprehensive requirements
- Timeline and expectations
- Content ready status
Pre-Deployment Checklist Summary
✅ READY (No Action Needed)
- Ghost VPS access
- Docker & Docker Compose installed
- Nginx running
- Certbot available
- Port 3002 likely available
- Sufficient disk space
- Adequate resources (RAM/CPU)
- Reference wikis operational
- Content 100% ready (76 entries, 225 sprites)
- Team ready to execute
- Documentation complete
⏳ ACTION REQUIRED (Before Deployment)
- Create DNS A record (pokerole.firefrostgaming.com → 64.50.188.14)
- Verify DNS propagation
- Provide Michael's email for admin account
- Provide Holly's email for editor account
- Backup existing Ghost VPS configs (safety)
📋 DURING DEPLOYMENT
- Verify port 3002 is free (or use next available)
- Generate secure database password
- Create admin account
- Create Holly's editor account
- Store credentials in Vaultwarden (or document securely)
Estimated Timeline
Pre-deployment actions: 5-10 minutes
- Create DNS record: 2 minutes
- Wait for propagation: 5-15 minutes (can proceed with other steps)
- Backup configs: 2 minutes
Deployment: 2-3 hours (per deployment-plan.md)
Post-deployment: 5 minutes
- Create access document
- Notify team
- Verify access
Total: ~3 hours from start to handoff
Risk Assessment
Low Risk Items ✅
All infrastructure prerequisites are met. Ghost VPS is stable and already running similar workloads.
Medium Risk Items ⚠️
- DNS propagation delay: Mitigated by testing with IP first
- Port conflict: Mitigated by checking port availability
- SSL certificate timing: Mitigated by waiting for DNS propagation
High Risk Items ❌
None identified. This is a well-understood deployment pattern.
Questions Before Deployment
Technical Questions
-
Port preference: Use 3002, or different port?
- Default: 3002
- Alternative: Check
netstat -tulpn | grep :300and use next free
-
Database password: Generate secure random?
- Recommended:
openssl rand -base64 32 - Store in: Vaultwarden or secure notes
- Recommended:
-
Backup schedule: Daily automated backups?
- Recommended: Yes (cron job at 3 AM)
- Integration: Coordinate with existing backup systems
Configuration Questions
-
Theme preference: Default or dark mode?
- Default: Clean default theme
- Alternative: Can change post-deployment
-
Public access: Enable now or after migration?
- Recommended: Enable after Holly's final approval
- Initial: Editors only
-
Git sync: Enable automatic sync with pokerole-data repo?
- Recommended: Manual migration first
- Future: Can enable if desired
Next Steps After Prerequisites Met
- Verify DNS record created and propagated
- SSH to Ghost VPS
- Follow deployment-plan.md phases 1-9
- Handoff to Michael/Claudius for migration
- Monitor first 24 hours for issues
Support During Deployment
If issues arise:
- Check deployment-plan.md troubleshooting section
- Review docker-compose logs:
docker-compose logs -f - Check Nginx logs:
/var/log/nginx/error.log - Verify DNS:
nslookup pokerole.firefrostgaming.com - Ask The Chronicler for guidance
The Chronicler will be available throughout deployment for troubleshooting.
💙🔥❄️ Prerequisites verified. Ready to deploy when you are. 🔥❄️💙