Files
firefrost-operations-manual/docs/tasks/pokerole-wikijs-deployment/prerequisites.md
Claude 75185091da docs: Add Task #35 - Pokerole Wiki.js Deployment
- 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
2026-02-26 21:28:16 +00:00

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

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

Docker Network

  • Understand existing Docker setup
    • Command: docker network ls
    • Command: docker ps | grep wiki
    • Purpose: Ensure new deployment doesn't conflict

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

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

  1. Port preference: Use 3002, or different port?

    • Default: 3002
    • Alternative: Check netstat -tulpn | grep :300 and use next free
  2. Database password: Generate secure random?

    • Recommended: openssl rand -base64 32
    • Store in: Vaultwarden or secure notes
  3. Backup schedule: Daily automated backups?

    • Recommended: Yes (cron job at 3 AM)
    • Integration: Coordinate with existing backup systems

Configuration Questions

  1. Theme preference: Default or dark mode?

    • Default: Clean default theme
    • Alternative: Can change post-deployment
  2. Public access: Enable now or after migration?

    • Recommended: Enable after Holly's final approval
    • Initial: Editors only
  3. Git sync: Enable automatic sync with pokerole-data repo?

    • Recommended: Manual migration first
    • Future: Can enable if desired

Next Steps After Prerequisites Met

  1. Verify DNS record created and propagated
  2. SSH to Ghost VPS
  3. Follow deployment-plan.md phases 1-9
  4. Handoff to Michael/Claudius for migration
  5. Monitor first 24 hours for issues

Support During Deployment

If issues arise:

  1. Check deployment-plan.md troubleshooting section
  2. Review docker-compose logs: docker-compose logs -f
  3. Check Nginx logs: /var/log/nginx/error.log
  4. Verify DNS: nslookup pokerole.firefrostgaming.com
  5. Ask The Chronicler for guidance

The Chronicler will be available throughout deployment for troubleshooting.


💙🔥❄️ Prerequisites verified. Ready to deploy when you are. 🔥❄️💙