[Unit] Description=Private Drop anonymous image uploader Documentation=file:/opt/blind-uploader/README.md After=network.target [Service] Type=simple DynamicUser=yes WorkingDirectory=/opt/blind-uploader ExecStart=/usr/bin/python3 /opt/blind-uploader/server.py Restart=on-failure RestartSec=3s # These defaults can be overridden using Debian's standard environment file. Environment=HOST=127.0.0.1 Environment=PORT=8000 Environment=UPLOAD_DIR=/var/lib/blind-uploader/uploads Environment=PYTHONDONTWRITEBYTECODE=1 EnvironmentFile=-/etc/default/blind-uploader # systemd creates a persistent, service-owned /var/lib/blind-uploader directory. StateDirectory=blind-uploader StateDirectoryMode=0700 UMask=0077 # Service hardening. The application only needs its state directory and TCP/IP. NoNewPrivileges=yes PrivateTmp=yes PrivateDevices=yes ProtectSystem=strict ProtectHome=yes ProtectClock=yes ProtectKernelTunables=yes ProtectKernelModules=yes ProtectKernelLogs=yes ProtectControlGroups=yes RestrictSUIDSGID=yes RestrictRealtime=yes LockPersonality=yes CapabilityBoundingSet= AmbientCapabilities= RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 [Install] WantedBy=multi-user.target