Updated spn-hub to remove teh portmaster-start dependency.

This commit is contained in:
Natanael Rodriguez Ramos
2025-05-24 17:40:15 +01:00
parent ec749b6be7
commit 2444209834
4 changed files with 23 additions and 26 deletions

View File

@@ -3,18 +3,18 @@ FROM alpine as builder
# Ensure ca-certficates are up to date
# RUN update-ca-certificates
# Download and verify portmaster-start binary.
# Download and verify spn-hub binary.
RUN mkdir /init
RUN wget https://updates.safing.io/linux_amd64/start/portmaster-start_v0-9-6 -O /init/portmaster-start
RUN wget https://updates.safing.io/latest/linux_amd64/hub/spn-hub -O /init/spn-hub
COPY start-checksum.txt /init/start-checksum
RUN cd /init && sha256sum -c /init/start-checksum
RUN chmod 555 /init/portmaster-start
RUN chmod 555 /init/spn-hub
# Use minimal image as base.
FROM alpine
# Copy the static executable.
COPY --from=builder /init/portmaster-start /init/portmaster-start
COPY --from=builder /init/spn-hub /init/spn-hub
# Copy the init script
COPY container-init.sh /init.sh

View File

@@ -1,8 +1,8 @@
#!/bin/sh
DATA="/data"
START="/data/portmaster-start"
INIT_START="/init/portmaster-start"
START="/data/spn-hub"
INIT_START="/init/spn-hub"
# Set safe shell options.
set -euf -o pipefail
@@ -18,13 +18,10 @@ if [ ! -f $START ]; then
cp $INIT_START $START
fi
# Download updates.
echo "running: $START update --data /data --intel-only"
$START update --data /data --intel-only
# Remove PID file, which could have been left after a crash.
rm -f $DATA/hub-lock.pid
# Always start the SPN Hub with the updated main start binary.
echo "running: $START hub --data /data -- $@"
$START hub --data /data -- $@
echo "running: $START"
$START -- $@

View File

@@ -14,7 +14,7 @@ set -e
ARCH=
INSTALLDIR=
PMSTART=
SPNBINARY=
ENABLENOW=
INSTALLSYSTEMD=
SYSTEMDINSTALLPATH=
@@ -22,7 +22,7 @@ SYSTEMDINSTALLPATH=
apply_defaults() {
ARCH=${ARCH:-amd64}
INSTALLDIR=${INSTALLDIR:-/opt/safing/spn}
PMSTART=${PMSTART:-https://updates.safing.io/latest/linux_${ARCH}/start/portmaster-start}
SPNBINARY=${SPNBINARY:-https://updates.safing.io/latest/linux_${ARCH}/hub/spn-hub}
SYSTEMDINSTALLPATH=${SYSTEMDINSTALLPATH:-/etc/systemd/system/spn.service}
if command_exists systemctl; then
@@ -98,14 +98,14 @@ ensure_install_dir() {
mkdir -p ${INSTALLDIR}
}
download_pmstart() {
log "Downloading portmaster-start ..."
local dest="${INSTALLDIR}/portmaster-start"
download_spnbinary() {
log "Downloading SPN binary ..."
local dest="${INSTALLDIR}/hub"
if [ -f "${dest}" ]; then
warn "Overwriting existing portmaster-start at ${dest}"
warn "Overwriting existing hub at ${dest}"
fi
download_file ${PMSTART} ${dest}
download_file ${SPNBINARY} ${dest}
log "Changing permissions"
chmod a+x ${dest}
@@ -113,7 +113,7 @@ download_pmstart() {
download_updates() {
log "Downloading updates ..."
${INSTALLDIR}/portmaster-start --data=${INSTALLDIR} update
${INSTALLDIR}/hub update
}
setup_systemd() {
@@ -122,7 +122,7 @@ setup_systemd() {
warn "Skipping setup of systemd service unit"
echo "To launch the hub, execute the following as root:"
echo ""
echo "${INSTALLDIR}/portmaster-start --data ${INSTALLDIR} hub"
echo "${INSTALLDIR}/hub"
echo ""
return
fi
@@ -146,7 +146,7 @@ LimitNOFILE=infinity
Environment=LOGLEVEL=warning
Environment=SPN_ARGS=
EnvironmentFile=-/etc/default/spn
ExecStart=${INSTALLDIR}/portmaster-start --data ${INSTALLDIR} hub -- --log \$LOGLEVEL \$SPN_ARGS
ExecStart=${INSTALLDIR}/hub --log \$LOGLEVEL \$SPN_ARGS
[Install]
WantedBy=multi-user.target
@@ -210,7 +210,7 @@ confirm_config() {
log "Installation configuration:"
echo ""
echo " Architecture: ${BOLD}${ARCH}${RESET}"
echo " Download-URL: ${BOLD}${PMSTART}${RESET}"
echo " Download-URL: ${BOLD}${SPNBINARY}${RESET}"
echo " Target Dir: ${BOLD}${INSTALLDIR}${RESET}"
echo "Install systemd: ${BOLD}${INSTALLSYSTEMD}${RESET}"
echo " Unit path: ${BOLD}${SYSTEMDINSTALLPATH}${RESET}"
@@ -247,7 +247,7 @@ ${BOLD}Options:${RESET}
${GREEN}-t, --target PATH${RESET} Configure the installation directory.
${GREEN}-h, --help${RESET} Display this help text
${GREEN}-a, --arch${RESET} Configure the binary architecture.
${GREEN}-u, --url URL${RESET} Set download URL for portmaster start.
${GREEN}-u, --url URL${RESET} Set download URL for spn-hub.
${GREEN}-S, --no-systemd${RESET} Do not install systemd service unit.
${GREEN}-s, --service-path PATH${RESET} Location for the systemd unit file.
EOT
@@ -278,7 +278,7 @@ main() {
shift
;;
--url | -u)
PMSTART=$2
SPNBINARY=$2
shift
;;
--no-systemd | -S)
@@ -315,7 +315,7 @@ EOT
# Setup hub
ensure_install_dir
download_pmstart
download_spnbinary
download_updates
write_config_file "${INSTALLDIR}/config.json"

View File

@@ -1 +1 @@
3f45f0814c6db28c3899b39ae0ab01f8f20a8cc98697dbe8039162ccd9590bf8 ./portmaster-start
da0ca5ca57f3f5e80a7cb61a8e0ad9b1423051fc12e518b0539c7c69b7a68ee8 ./spn-hub