# 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 | 20002/21002 | ~341 MB | | **MapleStory 2 - MySQL** | En linea | 3307 | ~733 MB | | **Minecraft FTB Infinity** | En linea | 25565 | ~3.5 GB | **Total**: ~5.6 GB RAM / 40 GB disponibles | 31 GB disco / 96 GB disponibles ## Juegos Preservados ### FusionFall (Cartoon Network Universe) - **Emulador**: [OpenFusion](https://github.com/OpenFusionProject/OpenFusion) (C++) - **Conexion**: `192.168.10.234:23000` - **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**: `192.168.10.234:20001` (Login Server) - **Cliente**: MapleStory 2 Global Client + XML Patches - **Documental**: "MapleStory 2: El Mundo Que Construimos Juntos" (7 capitulos) ### Minecraft: FTB Infinity Evolved - **Servidor**: [itzg/minecraft-server](https://github.com/itzg/docker-minecraft-server) (Java 8) - **Conexion**: `192.168.10.234:25565` - **Cliente**: FTB App o launcher compatible con FTB Infinity Evolved v3.1.0 - **Modpack**: 175+ mods, Minecraft 1.7.10 + Forge 10.13.4.1614 ## 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) ├── 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-infinity` | Minecraft: FTB Infinity Evolved | 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.