feat: phase 3 redesign, game images, auth system, vm guides, service isolation
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
This commit is contained in:
consultoria-as
2026-04-28 05:15:38 +00:00
parent ea142501fa
commit 449c02eadc
151 changed files with 10053 additions and 2312 deletions

View File

@@ -0,0 +1,35 @@
# =============================================================================
# NieR Reincarnation Server — MariesWonderland
# =============================================================================
# Build: docker build -t nier/server:latest -f Dockerfile .
# Run: docker run -d -p 80:80 -p 443:443 -v nier_data:/data nier/server:latest
#
# Requiere:
# - AssetDatabase/ en /data/assets
# - MasterDatabase/ en /data/master
# - UserDataPath/ en /data/users
# =============================================================================
# --- Build Stage --------------------------------------------------------------
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src
COPY MariesWonderland/ .
RUN dotnet restore
RUN dotnet publish -c Release -o /app/publish
# --- Runtime Stage ------------------------------------------------------------
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime
WORKDIR /app
COPY --from=build /app/publish .
# gRPC HTTP/2 requiere que el runtime soporte TLS sobre HTTP/2
ENV ASPNETCORE_ENVIRONMENT=Production
ENV ASPNETCORE_URLS=http://0.0.0.0:80;https://0.0.0.0:443
# Volumen de datos (assets, master, users)
VOLUME ["/data"]
EXPOSE 80
EXPOSE 443
ENTRYPOINT ["dotnet", "MariesWonderland.dll"]

View File

@@ -0,0 +1,99 @@
# OpenFusion — Despliegue en VM (Ubuntu 24.04)
## Dominio
`play.consultoria-as.com`
## VM
- **Hostname:** `vm-fusionfall`
- **IP Privada:** `10.0.0.30/24`
- **IP Pública / LAN:** `192.168.10.30` (ajustar según tu red)
- **OS:** Ubuntu 24.04 LTS Server
- **Recursos:** 1 vCPU / 512 MB RAM / 10 GB disco
## Puertos
| Puerto | Protocolo | Descripción | Acceso |
|--------|-----------|-------------|--------|
| 23000 | TCP | Login Server | Público |
| 23001 | TCP | Shard Server | Público |
| 8003 | TCP | Monitor | Solo red privada (10.0.0.0/24) |
| 22 | TCP | SSH | Solo red privada (10.0.0.0/24) |
## Archivos a copiar a la VM
Desde este directorio en el host principal:
```bash
# En el host principal (192.168.10.84)
cd /home/AfterlifeProject/servers/openfusion
tar czvf /tmp/openfusion-vm.tar.gz \
fusion \
sql/ \
tdata/ \
config.vm.ini
scp /tmp/openfusion-vm.tar.gz fusionfall@10.0.0.30:/home/fusionfall/
scp fusionfall.service fusionfall@10.0.0.30:/home/fusionfall/
```
## Instalación en la VM
```bash
ssh fusionfall@10.0.0.30
# Extraer
mkdir -p ~/server && cd ~/server
tar xzvf ~/openfusion-vm.tar.gz -C .
mv config.vm.ini config.ini
mkdir -p data
chmod +x fusion
# Instalar dependencias
sudo apt update && sudo apt install -y libsqlite3-0 ufw
# Firewall
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow from 10.0.0.0/24 to any port 22 proto tcp
sudo ufw allow 23000/tcp
sudo ufw allow 23001/tcp
sudo ufw allow from 10.0.0.0/24 to any port 8003 proto tcp
sudo ufw --force enable
# Instalar servicio
sudo mv ~/fusionfall.service /etc/systemd/system/fusionfall.service
sudo systemctl daemon-reload
sudo systemctl enable --now fusionfall
```
## Verificación
```bash
sudo systemctl status fusionfall
sudo journalctl -u fusionfall -f
sudo ss -tlnp | grep -E "23000|23001"
```
## Backup automático
```bash
sudo mkdir -p /home/fusionfall/backups
sudo chown fusionfall:fusionfall /home/fusionfall/backups
sudo crontab -u fusionfall -e
```
Añadir:
```cron
0 3 * * * cp /home/fusionfall/server/data/database.db /home/fusionfall/backups/db-$(date +\%Y\%m\%d-\%H\%M).db
5 3 * * * find /home/fusionfall/backups/ -name "db-*.db" -mtime +7 -delete
```
## Conexión de clientes
Los jugadores deben configurar su cliente de FusionFall (Academy, parche 1013) para conectar a:
```
play.consultoria-as.com:23000
```
El login server redirige automáticamente al shard en el puerto 23001.

View File

@@ -12,7 +12,7 @@ dbsaveinterval=240
[shard]
port=23001
ip=127.0.0.1
ip=192.168.10.84
viewdistance=16000
timeout=60000
simulatemobs=true

View File

@@ -0,0 +1,34 @@
# OpenFusion Server Configuration (VM Production)
# Domain: play.consultoria-as.com
# Ubuntu 24.04 LTS - vm-fusionfall (10.0.0.30)
verbosity=3
sandbox=false
[login]
port=23000
acceptallwheelnames=true
acceptallcustomnames=true
autocreateaccounts=true
authmethods=password
dbsaveinterval=240
[shard]
port=23001
ip=play.consultoria-as.com
viewdistance=16000
timeout=60000
simulatemobs=true
motd=Bienvenido a Project Afterlife - FusionFall Academy
enabledpatches=1013
xdtdata=xdt1013.json
disablefirstuseflag=true
accountlevel=1
eventmode=0
dbpath=data/database.db
[monitor]
enabled=true
port=8003
listenip=127.0.0.1
interval=5000

View File

@@ -1,7 +1,12 @@
#!/bin/sh
set -e
CONFIG="/usr/src/app/config.ini"
SRC_CONFIG="/usr/src/app/config.ini"
TMP_CONFIG="/tmp/config.ini"
# Copiar a tmp para poder editar (evita problema de bind-mount + sed -i)
cp "$SRC_CONFIG" "$TMP_CONFIG"
CONFIG="$TMP_CONFIG"
# Override shard IP (the address clients connect to after login)
if [ -n "$SHARD_IP" ]; then
@@ -18,4 +23,7 @@ if [ -n "$ACCOUNT_LEVEL" ]; then
sed -i "s/^accountlevel=.*/accountlevel=$ACCOUNT_LEVEL/" "$CONFIG"
fi
# Volver a escribir en el archivo original (redirección funciona con bind-mount de archivo)
cat "$CONFIG" > "$SRC_CONFIG"
exec /usr/local/bin/fusion

View File

@@ -0,0 +1,28 @@
[Unit]
Description=OpenFusion (FusionFall) Server
Documentation=https://github.com/OpenFusionProject/OpenFusion
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=fusionfall
Group=fusionfall
WorkingDirectory=/home/fusionfall/server
ExecStart=/home/fusionfall/server/fusion
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5
StartLimitInterval=60s
StartLimitBurst=3
MemoryMax=512M
CPUQuota=100%
StandardOutput=journal
StandardError=journal
SyslogIdentifier=fusionfall
[Install]
WantedBy=multi-user.target