[Unit] Description=Wikideck read-only Monero mainnet observation worker Wants=network-online.target After=network-online.target StartLimitIntervalSec=300 StartLimitBurst=5 [Service] Type=simple User=wikideck-observer Group=wikideck-observer WorkingDirectory=/opt/wikideck/current Environment=WIKIDECK_MONERO_OBSERVER_WORKER=1 Environment=WIKIDECK_MONERO_OBSERVER=1 Environment=WIKIDECK_MONERO_WALLET_RPC_CONFIG_FILE=/etc/wikideck/monero-observer/wallet-rpc.json Environment=WIKIDECK_MONERO_MTLS_CONFIG_FILE=/etc/wikideck/monero-observer/mtls.json Environment=WIKIDECK_CUSTODY_PG_URL_FILE=/etc/wikideck/monero-observer/postgres-url Environment=WIKIDECK_CUSTODY_PG_CA_FILE=/etc/wikideck/monero-observer/postgres-ca.crt Environment=WIKIDECK_MONERO_OBSERVER_POLL_MS=30000 ExecStart=/usr/bin/node --experimental-strip-types /opt/wikideck/current/scripts/monero-observer-worker.ts Restart=on-failure RestartSec=10s TimeoutStopSec=40s KillSignal=SIGTERM UMask=0077 StandardOutput=journal StandardError=journal SyslogIdentifier=wikideck-monero-observer NoNewPrivileges=true CapabilityBoundingSet= AmbientCapabilities= PrivateTmp=true PrivateDevices=true ProtectSystem=strict ProtectHome=true ProtectKernelTunables=true ProtectKernelModules=true ProtectKernelLogs=true ProtectControlGroups=true ProtectClock=true ProtectHostname=true RestrictSUIDSGID=true RestrictRealtime=true RestrictNamespaces=true LockPersonality=true RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX [Install] WantedBy=multi-user.target