[Unit] Description=vizitka-site API (счётчик «Помахать») After=network.target [Service] Type=simple # отдельный временный пользователь без прав; каталог /var/lib/vizitka-site создаётся сам и переживает пуши и перезапуски DynamicUser=yes StateDirectory=vizitka-site EnvironmentFile=/etc/vizitka-api.env ExecStart=/usr/bin/node /opt/vizitka-site/server/server.mjs Restart=on-failure RestartSec=3 # песочница NoNewPrivileges=true PrivateTmp=true PrivateDevices=true ProtectSystem=strict ProtectHome=true ProtectKernelTunables=true ProtectKernelModules=true ProtectControlGroups=true RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX RestrictNamespaces=true LockPersonality=true MemoryMax=96M [Install] WantedBy=multi-user.target