Firefly III es una solución de software de gestión financiera personal de código abierto, diseñada para quienes buscan un control total sobre sus finanzas personales. Funciona como una aplicación web autohospedada, asegurando así la privacidad y el control total de los datos por parte del usuario. Esta herramienta ofrece funcionalidades robustas para el seguimiento de gastos e ingresos, la gestión de presupuestos y el monitoreo de cuentas en diferentes monedas. Una de sus principales ventajas es la capacidad de importar datos de otras fuentes financieras, facilitando la transición y la consolidación de información financiera en un único lugar.
Además, Firefly III destaca por su motor de gráficos y reportes avanzados, permitiendo a los usuarios visualizar sus finanzas de manera efectiva para un mejor análisis y toma de decisiones. La aplicación también admite la creación de reglas automatizadas para la clasificación de transacciones, lo que ahorra tiempo y esfuerzo. Con una interfaz de usuario intuitiva, Firefly III es accesible para usuarios de todos los niveles técnicos. Respaldada por una comunidad activa de desarrolladores, la herramienta está en constante evolución, adaptándose a las necesidades cambiantes en la gestión de finanzas personales.
A continuación se explicará como instalar la última versión de Firefly en un servidor Web con Apache2 en una distribución Debian o basada en ella sin nada preconfigurado previamente. También se detallará previamente el proceso de instalación de dependencias y configuración de un certificado SSL de Let's Encrypt utilizando Certbot.
Instalación paquetes requeridos y dependencias
Primero realiza una actualización de los repositorios y de los paquetes del sistema:
# apt update && apt upgrade -y && apt install software-properties-common -y
También añade el repositorio oficial de PHP:
# add-apt-repository ppa:ondrej/php -y
Instala el servidor Web, MySQL, FPM de PHP y el resto de dependencias:
# apt install apache2 nano php8.3 php8.3-fpm php8.3-curl php8.3-gd php8.3-mbstring php8.3-mysql php8.3-xml php8.3-intl php8.3-cli php8.3-ldap php8.3-xml php8.3-xmlrpc php8.3-apcu php8.3-zip php8.3-bcmath php8.3-bz2 mariadb-server redis language-pack-es-base -y
Activa los módulos y configura el FPM de PHP para Apache:
# a2enmod proxy_fcgi setenvif rewrite && a2enconf php8.3-fpm
Instala Composer para más adelante:
# curl -sS https://getcomposer.org/installer -o composer-setup.php && php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Y reinicia el servidor Web:
# systemctl restart apache2
Creación de base de datos y usuario MySQL para Firefly
Para crear una base de datos para Firefly ejecuta lo siguiente:
# mysqladmin create db_firefly
Crea un usuario de MySQL para el Firefly (recuerda modificar la contraseña de ejemplo):
# mysql -u root -e "CREATE USER 'user_firefly'@'localhost' IDENTIFIED BY 'tu_contraseña'"
Y dale permisos al usuario a la base de datos de Firefly creada anteriormente:
# mysql -u root -e "GRANT ALL ON db_firefly.* TO 'user_firefly'@'localhost'"
Descarga y preparación de instalación de Firefly
Para descargar la última versión de Firefly III ejecuta lo siguiente:
# curl -s https://api.github.com/repos/firefly-iii/firefly-iii/releases/latest | grep "tarball_url" | cut -d : -f 2,3 | tr -d '," ' | xargs curl -sLO
Posteriormente, descomprime el archivo descargado en el directorio Web:
# tar -xzf v6.* -C /var/www/html --strip-components=1
Cambia los permisos del directorio Web recursivamente:
# chown -R www-data:www-data /var/www/
Una vez realizado, edita el archivo de configuración por defecto del sitio Web:
# nano /etc/apache2/sites-enabled/000-default.conf
En él descomenta y modifica la línea de ServerName por el registro DNS deseado (ejemplo):
ServerName firefly.ejemplo.es
Adicionalmente, modifica el DocumentRoot y añade un Directory para /var/www/html/public:
DocumentRoot /var/www/html/public
<Directory /var/www/html/public/>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
Guarda los cambios, sal del editor y recarga Apache:
# systemctl reload apache2.service
Adicionalmente, elimina el archivo índice por defecto de Apache:
# rm /var/www/html/index.html
Luego tendrás que configurar el archivo del entorno de Firefly y puedes copiar directamente el archivo de ejemplo:
# cp /var/www/html/.env.example /var/www/html/.env
Y edítalo para modificar la configuración:
# nano /var/www/html/.env
En el deberás indicar la configuración para la base de datos y la URL que utilizarás, cómo en el ejemplo siguiente:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_firefly
DB_USERNAME=db_firefly
DB_PASSWORD=tu_contraseña
APP_URL=https://firefly.ejemplo.es
Recuerda que hay otros parámetros en el archivo de entorno y tendrás que configurarlos si deseas utilizar todas las funcionalidades que ofrece Firefly.
Luego accede al directorio del Firefly para instalar Firefly con Composer y terminar de implementarlo con Artisan:
# cd /var/www/html && composer install && php artisan firefly-iii:upgrade-database && php artisan passport:install --force && chown -R www-data:www-data /var/www/
Por último, instala el Certbot y el script Python de automatización para Apache:
# apt install python3-certbot-apache -y
Y ejecútalo (recuerda modificar el ejemplo por el registro DNS introducido en ServerName):
# certbot --apache --redirect -d firefly.ejemplo.es
Posteriormente, podrás acceder a la URL configurada y crear el usuario:
Una vez realizada esta última acción, tendrás listo FireFly y podrás empezar a trabajar con él:
Esperamos que este artículo te haya sido de ayuda, si tienes consultas sobre esta u otra cuestión relacionada con tus servidores en Clouding, no dudes en contactar a soporte@clouding.io. ¡Estamos para ayudarte!