Aggregate crash reports for Electron applications
$ npm install # Install dependencies
$ npm start # Start service in development
var electron = require('electron')
electron.crashReporter.start({
companyName: '<company-name>',
productName: '<product-name>',
submitURL: '<reporter-url>'
})
PORT [80] # Set the port the service should listen to
STORAGE_PATH [/var/crash-reports] # Location to store crash reports
NODE_ENV [production] # production|development
/crash-report POST Submit a new crash report
/404 GET 404 handler
None
Save the unit file as /etc/systemd/system/electron-crash-reporter.service
,
and the application image as /images/electron-crash-report-service.aci
[Unit]
Description=electron-crash-report-service
Requires=network-online.target
After=network-online.target
[Service]
Slice=machine.slice
Delegate=true
CPUQuota=10%
MemoryLimit=1G
Environment=PORT=80
Environment=STORAGE_PATH=/var/crash-reports
Environment=NODE_ENV=production
ExecStart=/usr/bin/rkt run --inherit-env /images/electron-crash-report-service.aci
ExecStopPost=/usr/bin/rkt gc --mark-only
KillMode=mixed
Restart=always
You can then run it using systemctl
:
$ sudo systemctl start etcd.service
$ sudo systemctl stop etcd.service
$ sudo systemctl restart etcd.service