Heimdall - Arch30n/blog GitHub Wiki

Heimdall behind nginx, on Debian 12 - no Docker

  • Install php
sudo apt install php-sqlite3 php-bcmath php-json php-xml php-fpm php-mbstring php-gd php-common php-zip
sudo su -
cd /var/www
wget https://github.com/linuxserver/Heimdall/archive/refs/tags/v2.5.6.tar.gz
tar zxvf v2.5.6.tar.gz
mv Heimdall-2.5.6 heimdall
chown -R www-data:www-data heimdall (or nginx:nginx)
  • Configuring nginx, here is a sample conf that could be put in /etc/nginx/sites-available/heimdall (and then later enabled)

Edit the nginx config file

cd /etc/nginx/sites-enabled
nano ../sites-available/heimdall.conf

Paste into heimdall.conf the following code :

server {
    listen 443 ssl;
    http2 on;

    ssl_certificate     /etc/letsencrypt/live/mon.site.web/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mon.site.web/privkey.pem; # managed by Certbot
#    ssl_certificate     /etc/nginx/ssl/pveproxy-ssl.pem;
#    ssl_certificate_key /etc/nginx/ssl/pveproxy-ssl.key;

#    ssl_stapling on;
#    ssl_stapling_verify on;

#    server_name mon.site.web localhost;
    server_name _;

    root /var/www/heimdall/public/;
    client_max_body_size 5M;
    index index.php index.html;
    location / {
        # needed by PHP Laravel, or /users, /items, /tags, /settings don't work
        try_files $uri $uri/ /index.php?$query_string;
    }
    # serve static files directly
    location ~* ^.+\.(jpg|jpeg|gif|png|ico)$ {
       access_log off;
    }
    # pass PHP scripts on Nginx to FastCGI (PHP-FPM) server
    location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
}

Edit fpm autorizations :

nano /etc/php/7.4/fpm/pool.d/www.conf to change user and group:

listen.owner = nginx or www-data
listen.group = nginx or www-data
;listen.mode = 0660