Cómo instalar el software de presupuestos reales en un servidor Debian 12
Actual Budget es un software de gestión financiera de código abierto centrado en la privacidad y construido sobre «Envelope Style Budgeting». Actual está escrito en Node.js y puede instalarse localmente en un abrir y cerrar de ojos. Admite sincronización multidispositivo y cifrado opcional de extremo a extremo.
En este tutorial, te mostraremos cómo instalar el sistema de presupuestos Actual en el servidor Debian 12. Instalarás Actual con Nginx como proxy inverso, y lo asegurarás con HTTPS mediante Certbot y Letsencrypt.
Requisitos previos
Para empezar con este tutorial, asegúrate de que tienes
- Un servidor Debian 12
- Un usuario no root con privilegios de administrador
- Un nombre de dominio apuntando a la dirección IP del servidor
Instalación de Node.js y Yarn
Antes de instalar Actual, debes asegurarte de que Node.js, Git y el gestor de paquetes Yarn están instalados en tu sistema. En este momento, Actual requiere Node v18 o superior, que puede instalarse desde el repositorio oficial de Debian.
En primer lugar, ejecuta el siguiente comando‘apt‘ para actualizar el índice de paquetes de Debian e instalar paquetes básicos como Node.js, NPM y Git. Introduce«Y» para confirmar la instalación.
sudo apt update sudo apt install nodejs npm git
Una vez finalizada la instalación, instala el gestor de paquetes Yarn utilizando el comando«npm» que aparece a continuación. En este ejemplo, instalarás Yarn globalmente o en todo el sistema.
npm install --global yarn
Cuando termine, comprueba la versión de Node.js y de Yarn con el comando que aparece a continuación.
node --version yarn --version
En la salida de abajo, puedes ver que Node.js 18 y Yarn 1.22 están instalados.
Descargar el código fuente de Presupuesto Real
Una vez instaladas las dependencias, estás listo para descargar el código fuente de Actual, instalar las dependencias mediante Yarn, configurar Actual con el archivo «config.json» y, a continuación, ejecutar Actual mediante la línea de comandos. Además, necesitas un usuario dedicado para instalar y ejecutar Actual en tu sistema.
Accede a tu usuario con el comando que se indica a continuación.
su - username
Descarga el código fuente de Actual Budget con el comando‘git‘ que aparece a continuación.
git clone https://github.com/actualbudget/actual-server.git
Ve al directorio‘actual-server‘ e instala las dependencias de JavaScript con el comando‘yarn‘ que aparece a continuación.
cd actual-server yarn install
A continuación puedes ver la instalación de las dependencias de JavaScript mediante el gestor de paquetes Yarn.
Una vez completada la instalación, crea un nuevo archivo‘config.json‘ utilizando el editor‘nano‘.
nano config.json
Introduce la configuración que aparece a continuación para ejecutar Actual en la dirección IP local con el puerto predeterminado 5006.
{ "hostname": "127.0.0.1", "port": 5006 }
Guarda el archivo y sal del editor.
Por último, ejecuta el comando‘yarn start‘ que aparece a continuación para iniciar el software de Actual. Esto abrirá el puerto 5006 en tu dirección localhost o‘127.0.0.1‘ que utilizará la aplicación.
yarn start
Pulsa Ctrl+c para terminar el proceso.
Ejecutar Actual en segundo plano como un servicio Systemd
Ahora que ya has instalado y configurado Actual, vamos a crear un nuevo archivo de servicio systemd para ejecutar Actual en segundo plano como un servicio systemd.
Crea un nuevo archivo de servicio systemd‘/etc/systemd/system/actual.service‘ con el siguiente editor‘nano‘.
sudo nano /etc/systemd/system/actual.service
Introduce la siguiente configuración para ejecutar Actual en segundo plano como un servicio systemd. Asegúrate de cambiar el«Usuario» y el«Grupo» por defecto por tu nombre de usuario, y luego cambia el«DirectorioDeTrabajo» por tu ruta correcta.
[Unit] Description=Actual-Server (https://actualbudget.org) After=network.target [Service] User=flash Group=flash WorkingDirectory=/home/flash/actual-server/ ExecStart=/usr/local/bin/yarn start Restart=on-watchdog [Install] WantedBy=multi-user.target
Guarda el archivo y sal del editor cuando hayas terminado.
Ahora ejecuta el siguiente comando‘systemctl‘ para recargar el gestor systemd y aplicar tus cambios.
sudo systemctl daemon-reload
A continuación, inicia y activa«actual.service» con el siguiente comando. Esto iniciará«actual.service» en segundo plano y permitirá que se ejecute automáticamente al arrancar el sistema.
sudo systemctl enable --now actual.service
Comprueba el estado de«actual.service» con el siguiente comando. Deberías ver que«actual.service» se está ejecutando y está habilitado en tu sistema.
sudo systemctl status actual.service
Configurar Nginx como Proxy Inverso
Llegados a este punto, Actual está funcionando en segundo plano como un servicio systemd. En esta sección, instalarás Nginx y lo configurarás como proxy inverso para Actual. Después, generarás certificados SSL para tu despliegue de Actual mediante Certbot y Letsencrypt.
En primer lugar, ejecuta el siguiente comando«apt» para instalar Nginx, Certbot y el plugin Python3 Certbot Nginx. Introduce‘Y’ para proceder con la instalación.
sudo apt install nginx certbot python3-certbot-nginx -y
Una vez finalizada la instalación, crea un nuevo archivo de bloqueo del servidor Nginx‘/etc/nginx/sites-available/actual-budget‘ con el editor‘nano‘.
sudo nano /etc/nginx/sites-available/actual-budget
Introduce la configuración que aparece a continuación y asegúrate de cambiar el parámetro‘nombre_servidor‘ por el nombre de tu dominio.
server { listen 80; server_name budget.howtoforge.local; location / { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; set $upstream_app 127.0.0.1; set $upstream_port 5006; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; } }
Cuando hayas terminado, guarda el archivo y sal del editor.
Ahora ejecuta el siguiente comando para activar el bloque de servidor‘actual-budget‘ y verifica tu configuración de Nginx. Si no se produce ningún error, obtendrás una salida como‘la sintaxis es correcta – la prueba se ha realizado correctamente‘.
sudo ln -s /etc/nginx/sites-available/actual-budget /etc/nginx/sites-enabled/ sudo nginx -t
A continuación, ejecuta el siguiente comando para reiniciar y verificar el estado del servicio Nginx. Asegúrate de que el servidor web Nginx se está ejecutando.
sudo systemctl restart nginx sudo systemctl status nginx
Por último, ejecuta el siguiente comando‘certbot‘ para generar certificados SSL y asegurar la instalación de tu software Actual. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico en el siguiente comando.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email <[email protected]> -d budget.howtoforge.local
Cuando termine el proceso, tu instalación de Actual debería estar protegida con HTTPS mediante Certbot y Letsencrypt. Tus certificados SSL estarán disponibles en el directorio‘/etc/letsencrypt/live/domain.com‘ y HTTPS se activará automáticamente en el archivo de bloqueo de tu servidor.
Acceder a Actual Budget a través del navegador web
Visita el nombre de dominio de tu instalación de Actual, como https://budget.howtoforge.local. Si tienes éxito, verás el mensaje de bienvenida a Actual y se te pedirá que establezcas una contraseña.
Introduce tu nueva contraseña y repítelo, después haz clic en«Aceptar«.
Una vez configurada la contraseña, introdúcela para iniciar sesión en el Panel de control de Actual.
Por primera vez, se te pedirá que veas datos de demostración o que empieces de cero.
Si estás familiarizado con Actual, puedes hacer clic en «Empezar de cero«, pero si eres nuevo en Actual, haz clic en«Ver demostración» para familiarizarte con el uso básico de Actual.
A continuación se muestra un ejemplo de datos de demostración del sistema de presupuestación de Actual.
Conclusión
¡Enhorabuena! Has completado la instalación de Actual, un software de finanzas centrado en la privacidad, en un servidor Debian 12. Has puesto en marcha Actual como un servicio systemd en segundo plano, que se ejecuta sobre el proxy inverso Nginx. Además, también has asegurado Actual con HTTPS mediante Certbot y Letsencrypt.