This guide installs Vikunja on Debian 13, using the DEB package installation method.
apt install redis-server
Create a new database
CREATE DATABASE vikunja;
Create a new user
CREATE USER 'vikunja'@'%' IDENTIFIED BY '**************';
Grant all privileges on the database to the new user
GRANT ALL ON vikunja.* to 'vikunja'@'%';
Download the latest version of Vikunja from their download site here.
wget https://dl.vikunja.io/vikunja/v1.0.0/vikunja-v1.0.0-x86_64.deb
Install using dpkg. This will install Vikunja to /opt/vikunja. To configure it, use the config file in /etc/vikunja/config.yml.
dpkg -i vikunja-v1.0.0-x86_64.deb
Modify /etc/vikunja/config.yml to ensure the following configuration sections, at a minimum, are set correctly:
service - Basic application access settingsJWTSecretdatabase - Choose which DB to use. MySQL/MariaDB in this caseredis - Enable this - the defaults should be fine (unless you have Redis on a different host)cors - The defaults are correct in this installation case (Vikunja automatically adds the public URL defined in publicurl)log - Set your own preferences here. I suggest setting the log level to WARNING to keep log volume lowauth - Obviously, set this up to secure the appTo further harden the Vikunja installation:
Create a new user to run the Vikunja app
useradd -md /opt/vikunja -s /bin/bash vikunja_app && \
cp -r /etc/skel/.* /opt/vikunja/
Change the Vikunja installation directory ownership to the new user
chown -R vikunja_app:vikunja_app /opt/vikunja/
Modify the Vikunja systemd service file to include the following changes:
[Unit]
Requires=mariadb.service
Requires=redis.service
[Service]
User=vikunja_app
Group=vikunja_app
RestartSec=15s
Reload systemd and start Vikunja
systemctl daemon-reload && \
systemctl enable --now vikunja.service