@@ -0,0 +1,15 @@
|
||||
services:
|
||||
devplace-node:
|
||||
image: gcr.io/distroless/static-debian12:nonroot
|
||||
command: ["/devplace-node", "run", "--config", "/config/config.json"]
|
||||
volumes:
|
||||
- ./devplace-node-linux-amd64:/devplace-node:ro
|
||||
- ./config:/config
|
||||
restart: on-failure
|
||||
read_only: true
|
||||
cap_drop:
|
||||
- ALL
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
mem_limit: 128m
|
||||
pids_limit: 64
|
||||
@@ -0,0 +1,16 @@
|
||||
[Unit]
|
||||
Description=DevPlace community node
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=%h/.local/bin/devplace-node run
|
||||
Restart=on-failure
|
||||
RestartSec=30
|
||||
RestartPreventExitStatus=3
|
||||
Nice=10
|
||||
NoNewPrivileges=true
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>nl.devplace.node</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/local/bin/devplace-node</string>
|
||||
<string>run</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
<key>KeepAlive</key>
|
||||
<dict>
|
||||
<key>SuccessfulExit</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>ThrottleInterval</key>
|
||||
<integer>60</integer>
|
||||
<key>ProcessType</key>
|
||||
<string>Background</string>
|
||||
<key>LowPriorityIO</key>
|
||||
<true/>
|
||||
<key>Nice</key>
|
||||
<integer>10</integer>
|
||||
<key>StandardErrorPath</key>
|
||||
<string>/tmp/devplace-node.log</string>
|
||||
<key>StandardOutPath</key>
|
||||
<string>/dev/null</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,34 @@
|
||||
param(
|
||||
[string]$Binary = "$env:LOCALAPPDATA\devplace-node\devplace-node.exe",
|
||||
[switch]$Remove
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$TaskName = "DevPlaceNode"
|
||||
|
||||
if ($Remove) {
|
||||
Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false
|
||||
Write-Host "Removed scheduled task $TaskName"
|
||||
exit 0
|
||||
}
|
||||
|
||||
if (-not (Test-Path $Binary)) {
|
||||
throw "devplace-node.exe not found at $Binary. Download it there first."
|
||||
}
|
||||
|
||||
$action = New-ScheduledTaskAction -Execute $Binary -Argument "run"
|
||||
$trigger = New-ScheduledTaskTrigger -AtLogOn -User $env:USERNAME
|
||||
$settings = New-ScheduledTaskSettingsSet `
|
||||
-AllowStartIfOnBatteries `
|
||||
-DontStopIfGoingOnBatteries `
|
||||
-RestartCount 3 `
|
||||
-RestartInterval (New-TimeSpan -Minutes 5) `
|
||||
-ExecutionTimeLimit ([TimeSpan]::Zero) `
|
||||
-StartWhenAvailable
|
||||
$principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive -RunLevel Limited
|
||||
|
||||
Register-ScheduledTask -TaskName $TaskName -Action $action -Trigger $trigger -Settings $settings -Principal $principal -Force | Out-Null
|
||||
Write-Host "Registered scheduled task $TaskName. It starts at your next logon."
|
||||
Write-Host "Store the device secret first: devplace-node.exe login --server https://devplace.net --secret dpn_..."
|
||||
Write-Host "Start now: Start-ScheduledTask -TaskName $TaskName"
|
||||
Write-Host "Stop and remove: .\windows-install.ps1 -Remove"
|
||||
Reference in New Issue
Block a user