449c02eadc87d6f7eafd9e042a29bf3ea4a7e262
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
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 |
| Authentik (SSO) | En linea | 9000 | ~512 MB |
| NieR Reincarnation | Alpha | 80/443 | ~1 GB |
| Dragon Ball Online | En configuracion | 22000-22010 | ~2 GB |
| MapleStory 2 - World | En linea | 21001 | ~126 MB |
| MapleStory 2 - Login | En linea | 20001 | ~100 MB |
| MapleStory 2 - Game Ch0 | En linea | 20003/21003 | ~341 MB |
| FusionFall | En linea | 23000-23001 | ~254 MB |
Soft Launch — Juegos Disponibles
NieR Reincarnation
- Emulador: MariesWonderland (C# .NET 10)
- Conexion:
play.consultoria-as.com:80/443(HTTP/gRPC HTTP/2) - Cliente: APK Android parcheado (via Google Colab)
- Documental: "El Mundo de las Voces Perdidas" (en produccion)
- Estado: Alpha — gameplay basico funcional
Dragon Ball Online
- Emulador: DBO Global (C++ / Windows)
- Conexion:
play.consultoria-as.com:22000 - Cliente: DBO Global Client (Windows)
- Documental: "La Tierra Sin Goku" (en produccion)
- Estado: En configuracion — requiere VM Windows
MapleStory 2
- Emulador: Maple2 (C# .NET 8)
- Conexion:
play.consultoria-as.com:20001 - Cliente: MapleStory 2 Global Client + XML Patches
- Documental: "El Mundo Que Construimos Juntos" (7 capitulos)
- Estado: Online
FusionFall
- Emulador: OpenFusion (C++)
- Conexion:
play.consultoria-as.com:23000 - Cliente: FusionFall Retro Client
- Documental: "El Mundo Que No Queriamos Perder" (7 capitulos)
- Estado: Online
Arquitectura
Multi-VM (Nueva Arquitectura)
Cada componente corre en su propia VM para maximizar aislamiento y control:
| VM | IP Privada | Puertos Públicos | Servicios |
|---|---|---|---|
| vm-main | 10.0.0.10 |
80, 443 |
Web + Auth + CMS + PostgreSQL + MinIO + Nginx |
| vm-nier | 10.0.0.70 |
80, 443 |
NieR Reincarnation (MariesWonderland) |
| vm-dbo | 10.0.0.80 |
22000-22010 |
Dragon Ball Online (DBO Global) |
| vm-maple2 | 10.0.0.40 |
20001, 21001, 20003, 21003, 4000 |
MapleStory 2 |
| vm-fusionfall | 10.0.0.30 |
23000, 23001 |
OpenFusion Server |
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)
│ ├── nier-reincarnation/ # NieR Reincarnation (MariesWonderland .NET 10)
│ └── dragonball-online/ # Dragon Ball Online (DBO Global C++)
├── services/
│ └── afc-bridge/ # Bridge API blockchain (Node.js) — legacy
├── blockchain/
│ ├── contracts/AfterCoin.sol # Contrato inteligente ERC-20 — legacy
│ ├── genesis.json # Config genesis Geth — legacy
│ └── Dockerfile # Nodo Geth — legacy
├── docker/
│ ├── docker-compose.main.yml # VM Principal (Web + Auth + CMS)
│ ├── docker-compose.nier.yml # VM NieR Reincarnation
│ ├── docker-compose.dbo.yml # VM Dragon Ball Online
│ ├── docker-compose.fusionfall.yml # VM OpenFusion
│ ├── docker-compose.maple2.yml # VM MapleStory 2
│ ├── docker-compose.dev.yml # Legacy: stack local completo
│ ├── docker-compose.yml # Legacy: produccion monolitica
│ ├── docker-compose.web.yml # Legacy: web separado
│ ├── docker-compose.auth.yml # Legacy: auth separado
│ └── nginx/ # Configuracion Nginx
├── scripts/
│ └── deploy-vm.sh # Script helper para deploy por VM
├── docs/
│ ├── architecture.md # Arquitectura tecnica detallada
│ ├── architecture-vms.md # Documentacion multi-VM
│ ├── game-servers.md # Setup de servidores de juegos
│ ├── cms-content.md # Modelo de contenido CMS
│ └── deployment.md # Guia de despliegue
└── .github/workflows/
└── deploy.yml # CI/CD multi-VM
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
Instalacion Limpia (Recomendado para Produccion)
Ver docs/clean-install.md para la guia completa paso a paso.
Resumen rapido
VM Principal (Web + Auth + CMS):
# 1. Preparar la VM (instala Docker, firewall, genera secrets)
./scripts/setup-main.sh
# 2. Clonar y configurar
git clone https://git.consultoria-as.com/consultoria-as/project-afterlife.git /opt/project-afterlife
cd /opt/project-afterlife
cp docker/.env.example docker/.env
# Edita docker/.env con los secrets generados
# 3. Instalar
./scripts/install.sh main
VMs de Juegos (una por juego):
# Preparar VM de juego (ejemplo: NieR)
./scripts/setup-game-vm.sh nier
# Clonar e instalar
git clone ... /opt/project-afterlife
cd /opt/project-afterlife
./scripts/install.sh nier
Stack Local Completo (Desarrollo / Monolito Legacy)
Para desarrollo local donde todo corre en una sola maquina:
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
git clone https://git.consultoria-as.com/consultoria-as/project-afterlife.git
cd project-afterlife
2. Crear archivo de entorno
cp docker/.env.example docker/.env
# Editar docker/.env con las claves necesarias
Variables requeridas en docker/.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
3. Levantar servicios base
cd docker
# Stack principal (CMS + Web)
docker compose -f docker-compose.dev.yml up -d
# NieR Reincarnation (requiere setup previo, ver docs/game-servers.md)
docker compose -f docker-compose.nier.yml up -d
# MapleStory 2 (requiere setup previo, ver docs/game-servers.md)
docker compose -f docker-compose.maple2.yml up -d
# Dragon Ball Online (requiere setup previo, ver docs/game-servers.md)
docker compose -f docker-compose.dbo.yml up -d
4. Setup inicial de Strapi
- Abrir http://localhost:1337/admin
- Crear usuario administrador
- Ir a Settings > API Tokens > Create new API Token
- Tipo: Full access, copiar el token a
STRAPI_API_TOKENen.env - 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 | Este archivo — vision general y estado |
| docs/architecture.md | Arquitectura tecnica detallada |
| docs/game-servers.md | Setup y operacion de servidores de juegos |
| docs/cms-content.md | Modelo de contenido CMS y documentales |
| docs/deployment.md | Guia de despliegue a produccion |
| 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 |
/es/login |
Iniciar sesion con Authentik |
/es/profile |
Perfil de usuario |
/es/server-status |
Estado de todos los servidores |
Contenido en Base de Datos
Juegos (Soft Launch)
| Slug | Titulo | Estado | Documental |
|---|---|---|---|
nier-reincarnation |
NieR Reincarnation | Alpha | En produccion |
dragonball-online |
Dragon Ball Online | En configuracion | En produccion |
maplestory2 |
MapleStory 2 | Online | 7 capitulos |
fusionfall |
FusionFall | Online | 7 capitulos |
Documentales
| Juego | Titulo | Capitulos |
|---|---|---|
| NieR Reincarnation | "El Mundo de las Voces Perdidas" | En produccion |
| Dragon Ball Online | "La Tierra Sin Goku" | En produccion |
| FusionFall | "El Mundo Que No Queriamos Perder" | 7 |
| MapleStory 2 | "El Mundo Que Construimos Juntos" | 7 |
Cada documental publicado tiene sus capitulos disponibles 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.
Description
Languages
TypeScript
76.1%
JavaScript
10.5%
Shell
7%
Lua
2.3%
CSS
2.1%
Other
2%