From e65260c69b84eb82486ab97c977f630fe8f3e020 Mon Sep 17 00:00:00 2001 From: consultoria-as Date: Wed, 25 Feb 2026 22:14:22 +0000 Subject: [PATCH] feat: add external access via Cloudflare DDNS Add cloudflare-ddns container for automatic DNS updates, update game server connection strings to use play.consultoria-as.com, and document port forwarding and external access setup. Co-Authored-By: Claude Opus 4.6 --- README.md | 6 ++-- docker/.env.example | 7 +++++ docker/docker-compose.dev.yml | 11 ++++++- docs/deployment.md | 55 +++++++++++++++++++++++++++++++++++ 4 files changed, 75 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ce0b5f0..c7a041b 100644 --- a/README.md +++ b/README.md @@ -24,19 +24,19 @@ Plataforma de preservacion de videojuegos con documentales interactivos. Servido ### FusionFall (Cartoon Network Universe) - **Emulador**: [OpenFusion](https://github.com/OpenFusionProject/OpenFusion) (C++) -- **Conexion**: `192.168.10.234:23000` +- **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**: `192.168.10.234:20001` (Login Server) +- **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**: `192.168.10.234:25565` +- **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 diff --git a/docker/.env.example b/docker/.env.example index 8eb3cc4..d1171b6 100644 --- a/docker/.env.example +++ b/docker/.env.example @@ -17,3 +17,10 @@ MINIO_ROOT_PASSWORD=change_me_in_production # Public URL (for frontend image/media URLs) PUBLIC_STRAPI_URL=http://yourdomain.com + +# Public hostname for game servers (DDNS) +PUBLIC_HOST=play.yourdomain.com + +# Cloudflare API Token (create at https://dash.cloudflare.com/profile/api-tokens) +# Permissions needed: Zone > DNS > Edit +CF_API_TOKEN=your_cloudflare_api_token diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml index 2d402bc..0113cb1 100644 --- a/docker/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -67,13 +67,22 @@ services: ports: - "3000:3000" + cloudflare-ddns: + image: favonia/cloudflare-ddns:latest + restart: unless-stopped + environment: + CF_API_TOKEN: ${CF_API_TOKEN} + DOMAINS: ${PUBLIC_HOST:-play.consultoria-as.com} + PROXIED: "false" + IP6_PROVIDER: none + openfusion: build: context: ../servers/openfusion dockerfile: Dockerfile restart: unless-stopped environment: - SHARD_IP: ${OPENFUSION_SHARD_IP:-192.168.10.234} + SHARD_IP: ${PUBLIC_HOST:-192.168.10.234} MOTD: ${OPENFUSION_MOTD:-Bienvenido a Project Afterlife - FusionFall Academy} ports: - "23000:23000" diff --git a/docs/deployment.md b/docs/deployment.md index f212f75..bb5a3c3 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -47,6 +47,61 @@ docker ps | 4000 | MapleStory 2 Web | | 25565 | Minecraft FTB Evolution | +## Acceso Externo (fuera de la red local) + +### Requisitos +- Router con acceso al panel de administracion +- Dominio en Cloudflare (consultoria-as.com) +- Token de API de Cloudflare con permisos Zone > DNS > Edit + +### 1. Crear token de Cloudflare +1. Ir a https://dash.cloudflare.com/profile/api-tokens +2. Create Token > Edit zone DNS (template) +3. Zone Resources: Include > Specific zone > consultoria-as.com +4. Copiar el token generado a `CF_API_TOKEN` en `docker/.env` + +### 2. Configurar variables +En `docker/.env`: +```env +PUBLIC_HOST=play.consultoria-as.com +CF_API_TOKEN=tu-token-aqui +``` + +En `servers/maple2/.env`: +```env +GAME_IP=play.consultoria-as.com +LOGIN_IP=play.consultoria-as.com +``` + +### 3. Port forwarding en el router +Abrir estos puertos TCP en el router, apuntando a la IP local del servidor (192.168.10.234): + +| Puerto | Servicio | Protocolo | +|--------|----------|-----------| +| 23000 | OpenFusion (login) | TCP | +| 23001 | OpenFusion (shard) | TCP | +| 20001 | MapleStory 2 (login) | TCP | +| 20002 | MapleStory 2 (game) | TCP | +| 25565 | Minecraft FTB Evolution | TCP | + +**No forwardear**: PostgreSQL (5432), MinIO (9000/9001), Strapi (1337), Next.js (3000), MySQL (3307). Estos son servicios internos. + +### 4. Levantar servicios +```bash +cd docker +docker compose -f docker-compose.dev.yml up -d +docker compose -f docker-compose.maple2.yml up -d +``` + +El contenedor `cloudflare-ddns` actualizara automaticamente el registro DNS `play.consultoria-as.com` con tu IP publica cada 5 minutos. + +### 5. Conexion desde fuera +| Juego | Direccion | +|-------|-----------| +| Minecraft FTB Evolution | `play.consultoria-as.com:25565` | +| OpenFusion (FusionFall) | `play.consultoria-as.com:23000` | +| MapleStory 2 | `play.consultoria-as.com:20001` | + ### Detener servicios ```bash docker compose -f docker-compose.dev.yml down