[Unit] Description=Vikunja After=syslog.target After=network.target # Depending on how you configured Vikunja, you may want to uncomment these: #Requires=mysql.service #Requires=mariadb.service #Requires=postgresql.service #Requires=redis.service [Service] RestartSec=2s Type=simple WorkingDirectory=/opt/vikunja ExecStart=/usr/local/bin/vikunja Restart=always # Hardening NoNewPrivileges=yes PrivateTmp=yes ProtectHome=yes ProtectProc=invisible ProcSubset=pid UMask=0077 CapabilityBoundingSet= AmbientCapabilities= ProtectKernelTunables=yes ProtectKernelModules=yes ProtectKernelLogs=yes ProtectControlGroups=yes ProtectClock=yes ProtectHostname=yes PrivateDevices=yes RestrictNamespaces=yes RestrictSUIDSGID=yes RestrictRealtime=yes LockPersonality=yes MemoryDenyWriteExecute=yes RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX AF_NETLINK SystemCallArchitectures=native SystemCallFilter=@system-service SystemCallFilter=~@privileged @resources # If you want to bind Vikunja to a port below 1024 uncomment # the two values below ### #CapabilityBoundingSet=CAP_NET_BIND_SERVICE #AmbientCapabilities=CAP_NET_BIND_SERVICE [Install] WantedBy=multi-user.target