Instalacion de Heimdall Dashboard en Debian 12
¿Que es heimdall dashboard?
Heimdall es un dashboard personalizable que nos permite tener todos nuestros servicios web en un solo lugar, de esta manera podemos acceder a ellos de una manera mas rapida y sencilla.
Requisitos
- Sistema Debian 12 actualizado.
- Privilegios de root o sudo.
- Acceso a internet.
Instalacion
En este post vamos a realizar varias instalaciones de Heimdall Dashboard, la primera será utilizando el servidor php que tiene por defecto heimdall y la segunda será utilizando el servidor web apache2.
php-server
Primero tenemos que descargar la última versión de heimdall con el siguiente comando:
root@heimdall:~# RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]'); echo $RELEASE &&\
curl --silent -o ${RELEASE}.tar.gz -L "https://github.com/linuxserver/Heimdall/archive/${RELEASE}.tar.gz"
Descomprimimos el archivo descargado:
root@Heimdall:~# tar -xzvf v2.5.6.tar.gz
Ahora tenemos que instalar algunas dependencias:
En este caso los datos de heimdall se guardaran en una base de datos sqlite3, por lo que tenemos que instalar php-sqlite3 y php-zip:
root@Heimdall:~# apt install php php-sqlite3 php-zip -y
En este caso como utilizaremos sqlite3, no necesitamos modificar la configuración de heimdall, pero si quisieramos utilizar mysql o mariadb, tendriamos que hacer lo siguiente:
copiamos el archivo de ejemplo de configuración:
root@Heimdall:~# cp Heimdall-2.5.6/.env.example cp Heimdall-2.5.6/.env
Y lo modificamos según nuestras necesidades:
nano Heimdall-2.5.6/.env
Pero como utilizaremos sqlite3, podemos omitir este paso.
Ahora tenemos que desplazarnos a la carpeta de heimdall:
root@Heimdall:~# cd Heimdall-2.5.6/
Ejecutamos el siguiente comando para iniciar el servidor php:
root@Heimdall:~# php artisan serve --host 0.0.0.0 --port 80
- –host: especificamos la ip en la que escuchara el servidor.
- –port: especificamos el puerto en el que escuchara el servidor.
Ahora podemos acceder a heimdall desde un navegador web:
Ya hemos iniciado el servidor php y podemos acceder a heimdall, pero ahora está ocupando la terminal, por lo que si cerramos la terminal o reiniciamos el servidor, heimdall se detendrá.
Si queremos que heimdall se ejecute automáticamente, tenemos que crear un servicio systemd:
root@Heimdall:~/Heimdall-2.5.6# nano /etc/systemd/system/heimdall.service
Y agregamos lo siguiente:
[Unit]
Description=Heimdall
After=network.target
[Service]
Restart=always
RestartSec=5
Type=simple
User=root
Group=root
WorkingDirectory=/root/Heimdall-2.5.6
ExecStart="/usr/bin/php" artisan serve --host 0.0.0.0 --port 80
TimeoutStopSec=30
[Install]
WantedBy=multi-user.target
Hay algunos parámetros que deberiamos modificar dependiendo de nuestro escenario:
- User: especificamos el usuario que ejecutara el servicio. (En un escenario real es muy recomendable no ejecutar el servicio como root).
- Group: especificamos el grupo que ejecutara el servicio.
- WorkingDirectory: especificamos el directorio donde se encuentra heimdall.
- ExecStart: especificamos el comando que se ejecutara para iniciar heimdall.
Guardamos los cambios y habilitamos el servicio:
Recargamos los servicios de systemd y habilitamos el servicio:
root@Heimdall:~/Heimdall-2.5.6# systemctl daemon-reload && systemctl enable heimdall.service
Con esto ya hemos realizado la instalación de heimdall utilizando el servidor php.
Apache2
Antes de instalar heimdall, tenemos que instalar unos cuantos paquetes, teniendo en cuenta que utilizaremos apache2 y una base de datos mariadb:
root@heimdall:~# apt install apache2 curl php php-mysql php-zip mariadb-server -y
Ahora tenemos que crear una base de datos y un usuario para heimdall:
root@heimdall:~# mysql -u root -p
CREATE DATABASE heimdall;
grant all privileges on heimdall_db.* to heimdall_user identified by 'heimdall_pass' with grant option;
flush privileges;
exit
Ahora tenemos que descargar la última versión de heimdall con el siguiente comando:
root@heimdall:~# RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]'); echo $RELEASE &&curl --silent -o ${RELEASE}.tar.gz -L "https://github.com/linuxserver/Heimdall/archive/${RELEASE}.tar.gz"
Descomprimimos el archivo descargado:
root@Heimdall:~# tar -xvzf v2.5.6.tar.gz
Desplazamos la carpeta de heimdall a la carpeta de apache2:
root@heimdall:~# mv Heimdall-2.5.6/ /var/www/html/heimdall
Nos desplazamos a la carpeta de heimdall y copiamos el archivo de configuración de ejemplo:
root@heimdall:~# cd /var/www/html/heimdall/
root@heimdall:/var/www/html/heimdall# cp .env.example .env
Modificamos el archivo de configuración:
root@heimdall:/var/www/html/heimdall# nano .env
Y agregamos lo siguiente:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=heimdall_db
DB_USERNAME=heimdall_user
DB_PASSWORD=heimdall_pass
Guardamos los cambios y generamos la clave de heimdall:
root@heimdall:/var/www/html/heimdall# php artisan key:generate
Ahora tenemos que darle permisos a la carpeta de heimdall:
root@heimdall:/var/www/html/heimdall# chown -R www-data:www-data /var/www/html/heimdall/
Configuramos el archivo de apache2:
En mi caso voy a utilizar el archivo de configuración por defecto de apache2, pero si queremos podemos crear un archivo de configuración para heimdall.
root@heimdall:/var/www/html/heimdall# nano /etc/apache2/sites-available/000-default.conf
El archivo de configuración de apache2 quedaría de la siguiente manera si omitimos los comentarios:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/heimdall/public
<Directory /var/www/html/heimdall>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Guardamos los cambios y reiniciamos apache2:
root@heimdall:/var/www/html/heimdall# systemctl restart apache2
Ahora podemos acceder a heimdall desde un navegador web:
Ya hemos instalado heimdall utilizando apache2.
Y con esto ya hemos realizado la instalación de heimdall utilizando el servidor php, apache2 y las bases de datos sqlite3 y mariadb en debian 12.