DEV Community

KuroNeko
KuroNeko

Posted on

Y si me gusta linux? Pues, lo uso para mi servidor de FiveM 🐌

El roleplay es algo que descubrí al inicio de la pandemia, durante el aislamiento fue una forma de "interactuar" con las personas, pude aprender también a ser staff para las comunidades, aprendí a programar en lua, el lenguaje utilizado para los scripts de FiveM y pues, también conseguí el motivo para aprender JavaScript, para tener alternativas propias a bots para Discord;

Durante bastante tiempo consideré la idea de tener un servidor propio y, este año lo llevaremos a cabo, la fase de desarrollo es muy tediosa y larga pero ya vamos al 90% de terminar de acomodar varias cosas (vale, no tenemos mucho tiempo para trabajar por este pero el poco que hay lo aprovechamos lo mas posible)...

Y; levantar un servidor en Windows siempre fue fácil, tan solo ejecutar un .exe que te dirá todo lo que debes hacer para que todo vaya funcionando y listo, pero con linux, es un poco mas tedioso al tener que saber como gestionar correctamente las cosas para que siempre esté operativo (incluso al reiniciar el VPS/dedi y no debas estar muy pendiente de eso)


Así que, mi breve guía (que mas adelante veré para explicar mejor)

1. Descargar la última versión del artifact disponible aquí, que será copypastear el enlace

wget el_enlace_copiado_va_aqui
Enter fullscreen mode Exit fullscreen mode

2. Extraer los recursos del archivo comprimido

tar -xvf fx.tar.xz
Enter fullscreen mode Exit fullscreen mode

3. Crear una carpeta donde subir todos los recursos de tu servidor

mkdir server_data
Enter fullscreen mode Exit fullscreen mode

4. Crear el servicio para FiveM (en caso de hostear varios servidores en el equipo, recuerda usar nombres distintos)

sudo nano /lib/systemd/system/fivem.service
Enter fullscreen mode Exit fullscreen mode

5. Pegar el siguiente contenido (recuerda cambiar el path en ExecStart y la descripción)

[Unit]
Description=FiveM server

[Service]
Type=forking
User=root
ExecStart=/path/to/project/fivem_start.sh

[Install]
WantedBy=multi-user.target
Enter fullscreen mode Exit fullscreen mode

6. Crear el SH para iniciar el servidor de FiveM

nano /path/to/project/fivem_start.sh
Enter fullscreen mode Exit fullscreen mode

7. Pegar el siguiente contenido (recuerda cambiar el path en ExecStart y la descripción)

#!/bin/bash
screen -dm bash -c "cd /path/to/project/server_data && bash /path/to/project/run.sh"
Enter fullscreen mode Exit fullscreen mode

8. Modificar los permisos del archivo fivem_start.sh

chmod +x /path/to/project/fivem_start.sh
Enter fullscreen mode Exit fullscreen mode

9. Recargar lista de servicios en el daemon

systemctl daemon-reload
Enter fullscreen mode Exit fullscreen mode

10. Iniciar el servicio creado

systemctl start fivem
Enter fullscreen mode Exit fullscreen mode

11. Habilitar el servicio creado para que se ejecute al iniciar el host

systemctl enable fivem
Enter fullscreen mode Exit fullscreen mode

En muchas partes dice /path/to/project, que, en mi caso, decidí guardar todo en el /home de una forma ordenada según necesito:

/home/fivem/main   < server publico
/home/fivem/prod   < server privado
/home/nodejs/...   < bots para discord (en sus carpetas correspondientes)
Enter fullscreen mode Exit fullscreen mode

Algo bonito aquí es, que a la hora de actualizar un artifact, tan solo sigo estos pasos:
1. detener cada servidor: systemctl stop fivemdev
2. ir hasta la carpeta de cada uno
3. seguir nuevamente los pasos 1 y 2 de la guía de arriba
4. iniciar cada servidor: systemctl start fivemdev

Top comments (0)