Instalacion de Heimdall Dashboard en Debian 12

heimdall

¿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:

heimdall1

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:

heimdall2

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.