File persistenceos-api.service of Package PersistenceOS

[Unit]
Description=PersistenceOS Web UI and API Service
After=network.target persistenceos-core-services.service
Wants=network-online.target persistenceos-core-services.service
Requires=network-online.target
# Ensure config.sh has completed file detection before starting API
ConditionPathExists=/usr/lib/persistence/web-ui/js

[Service]
Type=simple
# Verify JavaScript files are available before starting API
ExecStartPre=/bin/bash -c 'echo "Verifying JavaScript files before starting API..." >> /var/log/persistenceos-api.log'
ExecStartPre=/bin/bash -c 'if [ -f "/usr/lib/persistence/web-ui/js/app.js" ]; then echo "✅ app.js found: $(stat -c%s /usr/lib/persistence/web-ui/js/app.js) bytes" >> /var/log/persistenceos-api.log; else echo "⚠️ app.js not found - API will serve fallback" >> /var/log/persistenceos-api.log; fi'
ExecStart=/usr/lib/persistence/api/run_api.sh
WorkingDirectory=/usr/lib/persistence/api
Environment=WEB_ROOT=/usr/lib/persistence/web-ui
Environment=API_PORT=8080
Environment=DEBUG_MODE=false
Environment=VAR_WEB_ROOT=/var/lib/persistence/web-ui
Environment=API_CONFIG_PATH=/usr/lib/persistence/web-ui/api-config.json
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
# Make sure we have enough file descriptors to handle multiple connections
LimitNOFILE=10000

[Install]
WantedBy=multi-user.target
openSUSE Build Service is sponsored by