Este proyecto proporciona un servidor dockerizado para 7 Days to Die con configuración automática mediante variables de entorno. Permite levantar y administrar un servidor dedicado del juego de forma sencilla y portable.
El servidor utiliza SteamCMD para descargar y actualizar automáticamente los archivos del juego, y ofrece configuración completa a través de variables de entorno sin necesidad de editar archivos XML manualmente.
- ✅ Instalación automática del servidor mediante SteamCMD
- ✅ Actualización automática opcional al iniciar
- ✅ Configuración completa por variables de entorno
- ✅ Soporte para Crossplay
- ✅ Control de EAC (Easy Anti-Cheat)
- ✅ Configuración de dificultad y semilla del mundo
- ✅ Persistencia de datos mediante volúmenes
- ✅ Reinicio automático del contenedor
- Docker >= 20.10
- Docker Compose >= 2.0
- Al menos 8GB de RAM disponible
- Aproximadamente 15GB de espacio en disco
- Puertos disponibles para el servidor (por defecto: 26900 TCP, 26900-26903 UDP)
git clone https://github.com/Kyoncron/7DaystoEquinox.git
cd 7DaystoEquinoxCopia el archivo de ejemplo y configúralo según tus necesidades:
cp .env.example .env
nano .env # o usa tu editor preferidoEdita el archivo .env con tus valores:
# ======================
# Global
# ======================
TZ=America/Mexico_City # Tu zona horaria
# ======================
# Cuenta de Steam (opcional)
# ======================
STEAM_USER=tu_usuario_steam
STEAM_PASS=tu_contraseña_steam
# Validación y Actualización
UPDATE_ON_START=true # Actualizar servidor al iniciar
VALIDATE_ON_UPDATE=true # Validar archivos al actualizar
# ======================
# Configuración del Servidor
# ======================
SERVERNAME=Mi Servidor 7DTD
SERVERDESCR=Servidor survival con amigos
SERVERLANG=Spanish # English, Spanish, German, French, etc.
SIZEWORLD=8192 # 4096, 6144, 8192, 10240
SERVERPASS=mipassword123 # Dejar vacío para servidor público
SERVERCROSSPLAY=true # true/false - Permitir crossplay PC-Consola
EAC=true # true/false - Easy Anti-Cheat
SEEDWORLD=MiSemillaPersonalizada # Semilla para generación del mundo
DIFFICULTY=2 # 0=Muy fácil, 1=Fácil, 2=Normal, 3=Difícil, 4=Muy difícil, 5=Insano
TELNET=false # true/false - Habilitar consola Telnet
# ======================
# Puertos
# ======================
TCP_PORT=26900 # Puerto TCP principal
UDP_SINCE_PORT=26900 # Puerto UDP inicial
UDP_UNTIL_PORT=26903 # Puerto UDP final
# ======================
# Ruta de Volumen
# ======================
VOLUME_PATH=/ruta/a/tus/datos/7dtd # Ruta absoluta donde se guardarán los datosmkdir -p /ruta/a/tus/datos/7dtddocker-compose up -d| Variable | Descripción | Valores Ejemplo | Requerido |
|---|---|---|---|
TZ |
Zona horaria del servidor | America/Mexico_City, Europe/Madrid |
| Variable | Descripción | Valores Ejemplo | Requerido |
|---|---|---|---|
STEAM_USER |
Usuario de Steam | tu_usuario |
❌ No (usa anonymous) |
STEAM_PASS |
Contraseña de Steam | tu_contraseña |
❌ No |
Nota: Las credenciales de Steam son opcionales. El servidor puede descargarse con login anónimo.
| Variable | Descripción | Valores | Requerido |
|---|---|---|---|
UPDATE_ON_START |
Actualizar servidor al iniciar | true, false |
✅ Sí |
VALIDATE_ON_UPDATE |
Validar integridad de archivos | true, false |
✅ Sí |
| Variable | Descripción | Valores | Requerido |
|---|---|---|---|
SERVERNAME |
Nombre del servidor | Texto libre | ✅ Sí |
SERVERDESCR |
Descripción del servidor | Texto libre | ✅ Sí |
SERVERLANG |
Idioma del servidor | Spanish, English, German, etc. |
✅ Sí |
SIZEWORLD |
Tamaño del mapa | 4096, 6144, 8192, 10240 |
✅ Sí |
SERVERPASS |
Contraseña (vacío = público) | Texto libre o vacío | ✅ Sí |
SERVERCROSSPLAY |
Habilitar crossplay | true, false |
✅ Sí |
EAC |
Easy Anti-Cheat | true, false |
✅ Sí |
SEEDWORLD |
Semilla de generación | Texto libre | ✅ Sí |
DIFFICULTY |
Nivel de dificultad | 0, 1, 2, 3, 4, 5 |
✅ Sí |
TELNET |
Habilitar consola Telnet | true, false |
- 0 - Scavenger (Recolector - Muy fácil)
- 1 - Adventurer (Aventurero - Fácil)
- 2 - Nomad (Nómada - Normal)
- 3 - Warrior (Guerrero - Difícil)
- 4 - Survivalist (Superviviente - Muy difícil)
- 5 - Insane (Insano - Extremo)
| Variable | Descripción | Valores Ejemplo | Requerido |
|---|---|---|---|
TCP_PORT |
Puerto TCP principal | 26900 |
✅ Sí |
UDP_SINCE_PORT |
Puerto UDP inicial | 26900 |
✅ Sí |
UDP_UNTIL_PORT |
Puerto UDP final | 26903 |
✅ Sí |
| Variable | Descripción | Valores Ejemplo | Requerido |
|---|---|---|---|
VOLUME_PATH |
Ruta donde se guardarán los datos | /home/user/7dtd-data |
✅ Sí |
docker-compose logs -fdocker-compose downdocker-compose restart- Detén el contenedor:
docker-compose down-
Si tu instalacion es por primera vez asegúrate de que
UPDATE_ON_START=trueen tu.envEsto permitira tener los archivos base para el servidor. Si ya tienes una base puedes ponerlo en false. -
Inicia el contenedor:
docker-compose up -d- Verifica que todos los puertos estén disponibles:
sudo netstat -tulpn | grep -E "(26900|26901|26903)"- Revisa los logs:
docker-compose logs --tail=100- Asegúrate de tener al menos 8GB de RAM disponible
- Reduce el tamaño del mundo (
SIZEWORLD) si es necesario
7DaystoEquinox/
├── docker-compose.yml # Configuración de Docker Compose
├── Dockerfile # Imagen Docker del servidor
├── entrypoint.sh # Script de inicio y configuración
├── .env.example # Plantilla de variables de entorno
└── README.md # Este archivo
Este proyecto es de código abierto. Siéntete libre de usarlo y modificarlo según tus necesidades.
Este proyecto no está afiliado oficialmente con The Fun Pimps o 7 Days to Die. Es un proyecto comunitario para facilitar el despliegue de servidores dedicados.
Si encuentras algún problema o tienes sugerencias, por favor abre un issue en GitHub.
¡Disfruta tu servidor de 7 Days to Die! 🧟♂️ The psy Congroo! 🧟♂️