All checks were successful
Quality gates / quality (pull_request) Successful in 1m43s
62 lines
1.5 KiB
Desktop File
62 lines
1.5 KiB
Desktop File
[Unit]
|
|
Description=Timmy private staging service
|
|
Documentation=file:/opt/timmy-staging/current/docs/STAGING-RUNBOOK.md
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=timmy-staging
|
|
Group=timmy-staging
|
|
UMask=0077
|
|
WorkingDirectory=/opt/timmy-staging/current
|
|
Environment=NODE_ENV=production
|
|
Environment=HOST=127.0.0.1
|
|
Environment=PORT=4174
|
|
Environment=TIMMY_BASE_PATH=/timmy-staging
|
|
Environment=TIMMY_AGENT_ENABLED=false
|
|
Environment=TIMMY_VISION_ENABLED=false
|
|
EnvironmentFile=/etc/timmy-staging.env
|
|
ExecStart=/usr/bin/node server.mjs
|
|
Restart=on-failure
|
|
RestartSec=5s
|
|
TimeoutStartSec=30s
|
|
TimeoutStopSec=15s
|
|
KillSignal=SIGTERM
|
|
|
|
# Filesystem and privilege boundary. Only state is writable.
|
|
NoNewPrivileges=true
|
|
PrivateTmp=true
|
|
PrivateDevices=true
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
ReadWritePaths=/var/lib/timmy-staging
|
|
StateDirectory=timmy-staging
|
|
StateDirectoryMode=0700
|
|
RestrictSUIDSGID=true
|
|
LockPersonality=true
|
|
RestrictNamespaces=true
|
|
ProtectKernelTunables=true
|
|
ProtectKernelModules=true
|
|
ProtectKernelLogs=true
|
|
ProtectControlGroups=true
|
|
ProtectClock=true
|
|
ProtectHostname=true
|
|
CapabilityBoundingSet=
|
|
AmbientCapabilities=
|
|
|
|
# Process, syscall, network, and resource boundary.
|
|
RestrictRealtime=true
|
|
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
|
SystemCallArchitectures=native
|
|
SystemCallFilter=@system-service
|
|
SystemCallFilter=~@privileged @resources
|
|
ProtectProc=invisible
|
|
ProcSubset=pid
|
|
TasksMax=64
|
|
MemoryMax=512M
|
|
CPUQuota=100%
|
|
LimitNOFILE=1024
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|