feat: phase 3 redesign, game images, auth system, vm guides, service isolation
Some checks failed
Deploy Multi-VM / Deploy VM Web (push) Has been cancelled
Deploy Multi-VM / Deploy VM Auth (push) Has been cancelled
Deploy Multi-VM / Deploy Game Servers (docker-compose.fusionfall.yml, VM_FUSIONFALL_HOST, VM_FUSIONFALL_SSH_KEY, VM_FUSIONFALL_USER, fusionfall) (push) Has been cancelled
Deploy Multi-VM / Deploy Game Servers (docker-compose.maple2.yml, VM_MAPLE2_HOST, VM_MAPLE2_SSH_KEY, VM_MAPLE2_USER, maple2) (push) Has been cancelled
Deploy Multi-VM / Deploy Game Servers (docker-compose.minecraft.yml, VM_MINECRAFT_HOST, VM_MINECRAFT_SSH_KEY, VM_MINECRAFT_USER, minecraft) (push) Has been cancelled
Deploy Multi-VM / Deploy Game Servers (docker-compose.retro.yml, VM_RETRO_HOST, VM_RETRO_SSH_KEY, VM_RETRO_USER, retro) (push) Has been cancelled

- Redesign all internal pages to warm/gold aesthetic (catalog, game detail,
  documentary, about, donate, community, guides, contact, server-status,
  login, profile, admin, not-found)
- Add real cover images for all 4 games via Strapi CMS with getImageUrl helper
- Integrate NextAuth v5 with Authentik OIDC authentication
- Add new public pages: community, guides, contact, server-status
- Add new protected pages: login, profile, admin dashboard
- Remove legacy AFC/MercadoPago system entirely
- Add Docker Compose split files for service isolation (main, auth, fusionfall, nier)
- Add OpenFusion VM deployment configs (config.vm.ini, systemd service, README-VM)
- Add NieR Reincarnation server guide and desktop client guide
- Add architecture docs for multi-VM deployment
- Add healthcheck, SSE, contact, newsletter, admin API routes
- Add reusable UI components, skeleton loaders, activity feed, bookmark system
- Update deployment and game server documentation
This commit is contained in:
consultoria-as
2026-04-28 05:15:38 +00:00
parent ea142501fa
commit 449c02eadc
151 changed files with 10053 additions and 2312 deletions

105
scripts/deploy-vm.sh Executable file
View File

@@ -0,0 +1,105 @@
#!/bin/bash
# =============================================================================
# deploy-vm.sh - Helper script for deploying Project Afterlife on a specific VM
# =============================================================================
# Usage: ./deploy-vm.sh <vm-name>
# Example: ./deploy-vm.sh web
#
# Available VMs: web, auth, nier, dbo, maple2, fusionfall
# =============================================================================
set -e
VM_NAME="$1"
PROJECT_DIR="/opt/project-afterlife"
COMPOSE_DIR="$PROJECT_DIR/docker"
if [ -z "$VM_NAME" ]; then
echo "Usage: $0 <vm-name>"
echo "Available VMs: web, auth, nier, dbo, maple2, fusionfall"
exit 1
fi
case "$VM_NAME" in
web)
COMPOSE_FILE="docker-compose.web.yml"
SERVICES="web cms postgres minio nginx"
;;
auth)
COMPOSE_FILE="docker-compose.auth.yml"
SERVICES="authentik-server authentik-worker authentik-postgres authentik-redis"
;;
nier)
COMPOSE_FILE="docker-compose.nier.yml"
SERVICES="nier-server"
;;
dbo)
COMPOSE_FILE="docker-compose.dbo.yml"
SERVICES="dbo-mariadb"
;;
maple2)
COMPOSE_FILE="docker-compose.maple2.yml"
SERVICES="maple2-world maple2-login maple2-game-ch0 maple2-web maple2-mysql"
;;
fusionfall)
COMPOSE_FILE="docker-compose.fusionfall.yml"
SERVICES="openfusion"
;;
*)
echo "Unknown VM: $VM_NAME"
echo "Available VMs: web, auth, nier, dbo, maple2, fusionfall"
exit 1
;;
esac
echo "=========================================="
echo "Deploying VM: $VM_NAME"
echo "Compose file: $COMPOSE_FILE"
echo "Services: $SERVICES"
echo "=========================================="
cd "$PROJECT_DIR"
echo "[1/4] Pulling latest code..."
git pull origin main
echo "[2/4] Building images..."
cd "$COMPOSE_DIR"
docker compose -f "$COMPOSE_FILE" build
echo "[3/4] Starting services..."
docker compose -f "$COMPOSE_FILE" up -d
echo "[4/4] Checking health..."
sleep 5
docker compose -f "$COMPOSE_FILE" ps
echo "=========================================="
echo "Deployment of $VM_NAME complete!"
echo "=========================================="
# Special handling for web VM: rebuild Next.js
case "$VM_NAME" in
web)
echo "[Extra] Rebuilding Next.js app..."
docker compose -f "$COMPOSE_FILE" exec web npm run build
docker compose -f "$COMPOSE_FILE" restart web
echo "Next.js rebuilt and restarted."
;;
maple2)
echo "[Extra] MapleStory 2 deployed."
echo "Remember to set GAME_IP and LOGIN_IP in servers/maple2/.env to the VM's public IP."
;;
nier)
echo "[Extra] NieR Reincarnation deployed."
echo "Remember to:"
echo " 1. Place AssetDatabase and MasterDatabase in the data volume"
echo " 2. Update RESOURCES_BASE_URL in .env (must be 43 chars after host)"
echo " 3. Patch the APK with scripts/patcher.ipynb (Google Colab)"
;;
dbo)
echo "[Extra] DBO Global deployed."
echo "WARNING: DBO server is currently a placeholder. The C++ server requires"
echo "Windows or Wine. Consider running it on a dedicated Windows VM."
;;
esac