Teach the installer to detect and configure Docker or Podman.
Release rolling / release (push) Successful in 7m55s

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.
This commit is contained in:
Raven Scott
2026-07-16 05:49:08 -04:00
parent 69d117b7ed
commit fda8695fbe
4 changed files with 654 additions and 94 deletions
+13 -8
View File
@@ -1,11 +1,12 @@
[Unit]
Description=peardock HyperDHT Docker control plane
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 / Podman (either socket is enough)
# Soft-depend on Docker and/or Podman (installer rewrites After=/Wants= for the selected engine)
Wants=docker.service
# Rootful Podman API (optional; ignore if unit missing)
# Rootful Podman API — uncomment or let install.sh set this when PEARDOCK_ENGINE=podman:
# After=podman.socket
# Wants=podman.socket
[Service]
@@ -24,22 +25,26 @@ 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=PEARDOCK_ENGINE=podman
# Environment=DOCKER_HOST=unix:///run/podman/podman.sock
# Swarm + Holesail are on by default (Docker); Swarm is always off on Podman
# Environment=ENABLE_SWARM=0
# Environment=ENABLE_HOLESAIL=0
# Environment=DOCKER_API_VERSION=v1.41
ReadWritePaths=/opt/peardock
# 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