consultoria-as 449c02eadc
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
feat: phase 3 redesign, game images, auth system, vm guides, service isolation
- 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
2026-04-28 05:15:38 +00:00

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

  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

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
Project Afterlife - Preserving online games that deserve a second life
Readme 1.4 MiB
Languages
TypeScript 76.1%
JavaScript 10.5%
Shell 7%
Lua 2.3%
CSS 2.1%
Other 2%