Installation on Debian

Please configure the system with a UTF-8 locale, as example en_US.UTF-8.

Prepare installation

apt-get update
apt-get -y install gpg wget

Repository

wget -O- https://repo.bloonix.org/bloonix.gpg \
    | gpg --dearmor >/usr/share/keyrings/bloonix.gpg
Debian
Ubuntu
source /etc/os-release
echo "deb [signed-by=/usr/share/keyrings/bloonix.gpg] https://repo.bloonix.org/debian/ $VERSION_CODENAME main" \
    >/etc/apt/sources.list.d/bloonix.list
source /etc/os-release
echo "deb [signed-by=/usr/share/keyrings/bloonix.gpg] https://repo.bloonix.org/ubuntu/ $VERSION_CODENAME main" \
    >/etc/apt/sources.list.d/bloonix.list

Packages

apt-get update
apt-get -y install nginx \
    postgresql \
    postfix \
    redis \
    bloonix-server \
    bloonix-webgui \
    bloonix-webgui-schema \
    bloonix-agent

Note: Postfix can be replaced by Exim or any other MTA. It is important that the MTA provides /usr/sbin/sendmail and also listens on localhost:25. An MTA is only required if emails are to be sent/forwarded via the local MTA. This applies, for example, to the Bloonix web GUI with two-factor authentication and the Bloonix server when sending alerts via email.

Redis

echo 'save ""' >>/etc/redis/redis.conf
systemctl enable redis-server
systemctl restart redis-server

Note: If you are using a Redis alternative such as Dragonfly, it is important to ensure that no data is persisted and that the database is empty after a restart.

PostgreSQL

Initialize the database schema

cd /usr/share/bloonix/schema/
./init-postgresql-database -i -m -o /etc/bloonix/database/main.conf
./init-postgresql-database -i -d -o /etc/bloonix/datastore/main.conf

Import the check plugins

bloonix-import-plugins-into-db

Nginx

An example configuration for testing purposes can be found in the file /etc/bloonix/webgui/nginx.conf and looks like:

server {
    listen 8080 default_server;
    listen [::]:8080 default_server;
    server_name _;
    access_log /var/log/nginx/bloonix-webgui.access.log;
    error_log /var/log/nginx/bloonix-webgui.error.log;
    location /favicon.ico {
        expires 365d;
        add_header Cache-Control public;
        root /srv/bloonix/webgui/public/assets/img;
    }
    location /assets {
        expires 365d;
        add_header Cache-Control public;
        root /srv/bloonix/webgui/public;
    }
    location / {
        expires off;
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:9000;
    }
}

Reload / restart Nginx after the change:

nginx -t && systemctl restart nginx

Bloonix-WebGUI: cookie_secure

Important Notice: If HTTPS is not used, the cookie_secure parameter must be set to False in the WebGUI configuration file, otherwise login is not possible.

app {
    cookie_secure False
    ...
}

However, for security reasons, a domain should be set up with a valid SSL certificate. There is also an example for this in the file /etc/bloonix/webgui/nginx.conf.

Systemctl

Once everything is set up, the Bloonix services can be started and enabled.

systemctl enable bloonix-webgui
systemctl enable bloonix-server
systemctl enable bloonix-agent

systemctl restart bloonix-webgui
systemctl restart bloonix-server
systemctl restart bloonix-agent

Login

The initial login for the WebGUI is

admin / bloonix

Troubleshooting

If the WebGUI is not accessible, there are several ways to troubleshoot:

  1. Check if the WebGUI is reachable: curl localhost:8080
  2. Look in the browser debugger under the “Console” tab
  3. Check the log files in__ /var/log/bloonix__ for error messages

Templates

The last step is to import the predefined service templates from Bloonix. These are not absolutely necessary, but they make getting started easier. Please adjust the URL if necessary.

bloonix-import-default-templates \
    --url http://localhost:8080/