# Project Afterlife Plataforma de preservacion de videojuegos con documentales interactivos. Servidores privados de juegos que ya no existen, acompanados de documentales narrativos que cuentan su historia. ## Estado Actual | Servicio | Estado | Puerto | RAM | |----------|--------|--------|-----| | **Next.js 15** (frontend) | En linea | 3000 | ~111 MB | | **Strapi 5** (CMS) | En linea | 1337 | ~179 MB | | **PostgreSQL 16** | En linea | 5432 | ~57 MB | | **MinIO** (almacenamiento) | En linea | 9000/9001 | ~144 MB | | **OpenFusion** (FusionFall) | En linea | 23000-23001 | ~254 MB | | **MapleStory 2 - World** | En linea | 21001 | ~126 MB | | **MapleStory 2 - Login** | En linea | 20001 | ~100 MB | | **MapleStory 2 - Web** | En linea | 4000 | ~70 MB | | **MapleStory 2 - Game Ch0** | En linea | 20003/21003 | ~341 MB | | **MapleStory 2 - MySQL** | En linea | 3307 | ~733 MB | | **Minecraft FTB Evolution** | En linea | 25565 | ~3.5 GB | | **SM64 Coop DX** | En linea | 7777/udp | ~45 MB | | **N64 Netplay** (Mario Party) | En linea | 45000-45004 | <1 MB | | **Dolphin Traversal** (GC/Wii) | En linea | 6262/udp, 6226/udp | <10 MB | **Total**: ~6 GB RAM / 40 GB disponibles | 35 GB disco / 96 GB disponibles ## Juegos Preservados ### FusionFall (Cartoon Network Universe) - **Emulador**: [OpenFusion](https://github.com/OpenFusionProject/OpenFusion) (C++) - **Conexion**: `play.consultoria-as.com:23000` (o `192.168.10.234:23000` en LAN) - **Cliente**: [FusionFall Retro Client](https://github.com/OpenFusionProject) - **Documental**: "FusionFall: El Mundo Que No Queriamos Perder" (7 capitulos) ### MapleStory 2 - **Emulador**: [Maple2](https://github.com/MS2Community/Maple2) (C# .NET 8) - **Conexion**: `play.consultoria-as.com:20001` (o `192.168.10.234:20001` en LAN) - **Cliente**: MapleStory 2 Global Client + XML Patches - **Documental**: "MapleStory 2: El Mundo Que Construimos Juntos" (7 capitulos) ### Minecraft: FTB Evolution - **Servidor**: [itzg/minecraft-server](https://github.com/itzg/docker-minecraft-server) (Java 21) - **Conexion**: `play.consultoria-as.com:25565` (o `192.168.10.234:25565` en LAN) - **Cliente**: FTB App o launcher compatible con FTB Evolution v1.29.1 - **Modpack**: 200+ mods, Minecraft 1.21.1 + NeoForge 21.1.218 ### Super Mario 64 Coop - **Servidor**: [sm64coopdx](https://github.com/coop-deluxe/sm64coopdx) (C, headless) - **Conexion**: `play.consultoria-as.com:7777` (o `192.168.10.234:7777` en LAN) - **Cliente**: sm64coopdx (compilado con la misma ROM) - **Jugadores**: Hasta 16, con mods incluidos (star-road, arena, character-select) ### Mario Party 1-3 (N64 Netplay) - **Servidor**: [gopher64-netplay-server](https://github.com/gopher64/gopher64-netplay-server) (Go) - **Conexion**: `play.consultoria-as.com:45000` (o `192.168.10.234:45000` en LAN) - **Cliente**: [gopher64](https://github.com/gopher64/gopher64) o RMG + ROM de Mario Party - **Jugadores**: 4 por sala, 4 salas concurrentes ### GameCube / Wii (Dolphin Netplay) - **Servidor**: Dolphin Traversal Server (NAT hole-punching) - **Config en Dolphin**: Traversal Server = `play.consultoria-as.com`, Port = `6262` - **Juegos**: Mario Party 4-7, MKDD, Smash Melee, F-Zero GX, y cualquier juego de GC/Wii ## Arquitectura ``` project-afterlife/ ├── apps/ │ ├── cms/ # Strapi 5 CMS (React 18) │ └── web/ # Next.js 15 frontend (React 19) ├── packages/ │ └── shared/ # Tipos TypeScript compartidos ├── servers/ │ ├── openfusion/ # Servidor FusionFall (C++) │ ├── maple2/ # Servidor MapleStory 2 (C# .NET 8) │ ├── sm64coopdx/ # Super Mario 64 Coop (C, headless) │ └── dolphin-traversal/ # Dolphin Traversal Server (C++) ├── docker/ │ ├── docker-compose.dev.yml # Stack local (web + CMS + juegos) │ ├── docker-compose.maple2.yml # MapleStory 2 (separado) │ ├── docker-compose.yml # Produccion (con Nginx + SSL) │ └── nginx/ # Configuracion Nginx ├── docs/ # Documentacion del proyecto └── .github/workflows/ # CI/CD deployment ``` ### Stack Tecnologico | Componente | Tecnologia | Version | |-----------|-----------|---------| | Frontend | Next.js + TypeScript | 15.x | | UI | Tailwind CSS | v4 | | i18n | next-intl | 4.8.3 | | CMS | Strapi | 5.36.0 | | Base de datos (CMS) | PostgreSQL | 16 | | Base de datos (MS2) | MySQL | 8.0 | | Almacenamiento | MinIO (S3) | Latest | | Audio | Howler.js | 2.2.4 | | Animaciones | Framer Motion | 12.x | | Monorepo | npm workspaces + Turborepo | - | | CI/CD | GitHub Actions | - | | Reverse Proxy | Nginx | Alpine | ## Inicio Rapido ### Requisitos - Docker y Docker Compose v2+ - 8 GB RAM minimo (16 GB recomendado con todos los servidores) - 50 GB disco libre ### 1. Clonar y configurar ```bash git clone https://git.consultoria-as.com/consultoria-as/project-afterlife.git cd project-afterlife ``` ### 2. Crear archivo de entorno ```bash cp docker/.env.example docker/.env # Editar docker/.env con las claves necesarias ``` Variables requeridas en `docker/.env`: ```env # Base de datos DATABASE_NAME=afterlife DATABASE_USERNAME=afterlife DATABASE_PASSWORD=afterlife # MinIO MINIO_ROOT_USER=afterlife MINIO_ROOT_PASSWORD=afterlife123 # Strapi (generar con openssl rand -base64 32) APP_KEYS= API_TOKEN_SALT= ADMIN_JWT_SECRET= TRANSFER_TOKEN_SALT= JWT_SECRET= # API Token (crear en Strapi Admin > Settings > API Tokens) STRAPI_API_TOKEN= # Strapi URL publica PUBLIC_STRAPI_URL=http://localhost:1337 # OpenFusion OPENFUSION_SHARD_IP=192.168.10.234 ``` ### 3. Levantar servicios base ```bash cd docker # Stack principal (CMS + Web + OpenFusion + Minecraft FTB) docker compose -f docker-compose.dev.yml up -d # MapleStory 2 (requiere setup previo, ver docs/game-servers.md) docker compose -f docker-compose.maple2.yml up -d ``` ### 4. Setup inicial de Strapi 1. Abrir http://localhost:1337/admin 2. Crear usuario administrador 3. Ir a Settings > API Tokens > Create new API Token 4. Tipo: Full access, copiar el token a `STRAPI_API_TOKEN` en `.env` 5. Reiniciar el servicio web: `docker compose -f docker-compose.dev.yml restart web` ### 5. Verificar - **Frontend**: http://localhost:3000 - **CMS Admin**: http://localhost:1337/admin - **MinIO Console**: http://localhost:9001 ## Documentacion Completa | Documento | Descripcion | |-----------|------------| | [README.md](README.md) | Este archivo — vision general y estado | | [docs/architecture.md](docs/architecture.md) | Arquitectura tecnica detallada | | [docs/game-servers.md](docs/game-servers.md) | Setup y operacion de servidores de juegos | | [docs/cms-content.md](docs/cms-content.md) | Modelo de contenido CMS y documentales | | [docs/deployment.md](docs/deployment.md) | Guia de despliegue a produccion | | [docs/plans/](docs/plans/) | Documentos de diseno e implementacion | ## Rutas de la Web | Ruta | Descripcion | |------|------------| | `/es` o `/en` | Pagina principal con hero y ultimos juegos | | `/es/catalog` | Catalogo de juegos con filtros | | `/es/about` | Sobre el proyecto | | `/es/donate` | Pagina de donaciones | | `/es/games/[slug]` | Pagina individual de juego | | `/es/games/[slug]/documentary` | Documental interactivo | ## Contenido en Base de Datos ### Juegos | Slug | Titulo | Estado | Documental | |------|--------|--------|------------| | `fusionfall` | FusionFall | Online | 7 capitulos | | `maplestory2` | MapleStory 2 | Online | 7 capitulos | | `minecraft-ftb-evolution` | Minecraft: FTB Evolution | Online | Pendiente | ### Documentales | Juego | Titulo | Capitulos | |-------|--------|-----------| | FusionFall | "El Mundo Que No Queriamos Perder" | 7 | | MapleStory 2 | "El Mundo Que Construimos Juntos" | 7 | Cada documental tiene sus 7 capitulos publicados en ambos idiomas (ES/EN). ## Licencia Proyecto privado. Todos los derechos reservados. Los emuladores de juegos utilizados son proyectos open-source independientes con sus propias licencias.