Files
peardock/deploy/peardock.service
T
Raven Scott fda8695fbe
Release rolling / release (push) Successful in 7m55s
Teach the installer to detect and configure Docker or Podman.
Auto-select the engine, set socket group permissions (including Debian
podman.socket drop-ins), write PEARDOCK_ENGINE into .env, and generate a
matching systemd unit for the chosen runtime.
2026-07-16 05:49:08 -04:00

51 lines
1.6 KiB
Desktop File

[Unit]
Description=peardock HyperDHT container control plane
Documentation=https://git.ssh.surf/snxraven/peardock
After=network-online.target
Wants=network-online.target
# Soft-depend on Docker and/or Podman (installer rewrites After=/Wants= for the selected engine)
Wants=docker.service
# Rootful Podman API — uncomment or let install.sh set this when PEARDOCK_ENGINE=podman:
# After=podman.socket
# Wants=podman.socket
[Service]
Type=simple
WorkingDirectory=/opt/peardock
# Standalone Bare binary (install.sh / rolling release)
ExecStart=/opt/peardock/peardock-server
# Source install alternative:
# ExecStart=/usr/bin/node /opt/peardock/server/server.js
Restart=on-failure
RestartSec=5
TimeoutStartSec=30
TimeoutStopSec=30
NoNewPrivileges=true
PrivateTmp=true
User=peardock
# install.sh sets Group/SupplementaryGroups to the socket group (docker or podman)
Group=docker
SupplementaryGroups=docker
Environment=NODE_ENV=production
EnvironmentFile=-/opt/peardock/.env
# Installer also writes PEARDOCK_ENGINE / DOCKER_HOST into .env and may set:
# Environment=PEARDOCK_ENGINE=podman
# Environment=DOCKER_HOST=unix:///run/podman/podman.sock
# Environment=CONTAINER_HOST=unix:///run/podman/podman.sock
# Environment=DOCKER_API_VERSION=v1.41
#
# Example production knobs (prefer .env):
# Environment=PEARDOCK_DEFAULT_ROLE=operator
# Environment=PEARDOCK_PEER_ALLOWLIST=1
# Environment=ENABLE_SWARM=0
# Environment=ENABLE_HOLESAIL=0
# State dir + common engine sockets (Docker + Podman rootful)
ReadWritePaths=/opt/peardock /var/run/docker.sock /run/docker.sock /run/podman/podman.sock /var/run/podman/podman.sock
[Install]
WantedBy=multi-user.target