feat: add game server infrastructure and documentary improvements
Some checks failed
Deploy / deploy (push) Has been cancelled

- Add Docker Compose for OpenFusion (FusionFall), MapleStory 2, and
  Minecraft FTB Infinity Evolved game servers
- Add MapleStory 2 multi-service compose (MySQL, World, Login, Web, Game)
- Add OpenFusion Dockerfile and configuration files
- Fix CMS Dockerfile, web Dockerfile, and documentary components
- Add root layout, globals.css, not-found page, and text formatting utils
- Update .gitignore to exclude large game server repos and data

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
consultoria-as
2026-02-23 12:10:12 +00:00
parent 0df69b38d5
commit aea2283d8f
32 changed files with 4005 additions and 1219 deletions

View File

@@ -0,0 +1,117 @@
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_DB: ${DATABASE_NAME:-afterlife}
POSTGRES_USER: ${DATABASE_USERNAME:-afterlife}
POSTGRES_PASSWORD: ${DATABASE_PASSWORD:-afterlife}
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DATABASE_USERNAME:-afterlife}"]
interval: 5s
timeout: 5s
retries: 5
minio:
image: minio/minio:latest
restart: unless-stopped
command: server /data --console-address ":9001"
volumes:
- minio_data:/data
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-afterlife}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-afterlife123}
ports:
- "9000:9000"
- "9001:9001"
cms:
build:
context: ../apps/cms
dockerfile: Dockerfile
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
HOST: 0.0.0.0
PORT: 1337
DATABASE_HOST: postgres
DATABASE_PORT: 5432
DATABASE_NAME: ${DATABASE_NAME:-afterlife}
DATABASE_USERNAME: ${DATABASE_USERNAME:-afterlife}
DATABASE_PASSWORD: ${DATABASE_PASSWORD:-afterlife}
APP_KEYS: ${APP_KEYS}
API_TOKEN_SALT: ${API_TOKEN_SALT}
ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET}
TRANSFER_TOKEN_SALT: ${TRANSFER_TOKEN_SALT}
JWT_SECRET: ${JWT_SECRET}
ports:
- "1337:1337"
web:
build:
context: ../
dockerfile: apps/web/Dockerfile
restart: unless-stopped
depends_on:
- cms
environment:
STRAPI_URL: http://cms:1337
STRAPI_API_TOKEN: ${STRAPI_API_TOKEN:-}
NEXT_PUBLIC_STRAPI_URL: ${PUBLIC_STRAPI_URL:-http://localhost:1337}
ports:
- "3000:3000"
openfusion:
build:
context: ../servers/openfusion
dockerfile: Dockerfile
restart: unless-stopped
environment:
SHARD_IP: ${OPENFUSION_SHARD_IP:-192.168.10.234}
MOTD: ${OPENFUSION_MOTD:-Bienvenido a Project Afterlife - FusionFall Academy}
ports:
- "23000:23000"
- "23001:23001"
volumes:
- openfusion_data:/usr/src/app/data
minecraft-ftb:
image: itzg/minecraft-server:java8
restart: unless-stopped
container_name: minecraft-ftb
environment:
EULA: "TRUE"
TYPE: FTBA
FTB_MODPACK_ID: 23
FTB_MODPACK_VERSION_ID: 99
MEMORY: 6G
MAX_MEMORY: 6G
MOTD: "Project Afterlife - FTB Infinity Evolved"
DIFFICULTY: normal
MAX_PLAYERS: 20
VIEW_DISTANCE: 10
ENABLE_COMMAND_BLOCK: "true"
JVM_DD_OPTS: "fml.queryResult=confirm"
JVM_XX_OPTS: "-XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:+CMSClassUnloadingEnabled -XX:ParallelGCThreads=2 -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10"
# Fix: Forge 1.7.10 manifest expects versioned jar name on classpath
PRE_LAUNCH_CMD: "cp -n /data/minecraft_server.jar /data/minecraft_server.1.7.10.jar 2>/dev/null; true"
ports:
- "25565:25565"
volumes:
- minecraft_ftb_data:/data
deploy:
resources:
limits:
memory: 8G
volumes:
postgres_data:
minio_data:
openfusion_data:
minecraft_ftb_data: