[Unit] Description=KeepOrg KDBX synchronization server Documentation=https://garage.rcmd.space/keeporg After=network-online.target Wants=network-online.target [Service] Type=simple User=keeporg Group=keeporg ExecStart=/usr/bin/keeporgd -config /etc/keeporg/server.json Restart=on-failure RestartSec=5 StateDirectory=keeporg StateDirectoryMode=0700 ConfigurationDirectory=keeporg ConfigurationDirectoryMode=0750 # The server reads one config file and the master key, and writes one data # directory (the SQLite database) or nothing at all (PostgreSQL). The master # key is created by the package, not by the service, which cannot write /etc. UMask=0077 NoNewPrivileges=yes PrivateTmp=yes PrivateDevices=yes ProtectSystem=strict ProtectHome=yes ProtectKernelTunables=yes ProtectKernelModules=yes ProtectControlGroups=yes ProtectKernelLogs=yes ProtectClock=yes ProtectHostname=yes ProtectProc=invisible ProcSubset=pid RestrictRealtime=yes RestrictSUIDSGID=yes RemoveIPC=yes ReadWritePaths=/var/lib/keeporg RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX RestrictNamespaces=yes LockPersonality=yes MemoryDenyWriteExecute=yes SystemCallArchitectures=native SystemCallFilter=@system-service SystemCallFilter=~@privileged @resources SystemCallErrorNumber=EPERM CapabilityBoundingSet= AmbientCapabilities= [Install] WantedBy=multi-user.target