Add GoldPi Email-Forwarder test container deploy

This commit is contained in:
DonVoo 2026-07-05 20:07:00 +02:00
parent 91e52aecd0
commit 8a6160817b
8 changed files with 143 additions and 0 deletions

View file

@ -0,0 +1,51 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
set -a
source ./config.env
set +a
mkdir -p "$APP_DIR/data" "$APP_DIR/backup" "$APP_DIR/build" "$APP_DIR/export"
if [ ! -d "$BUILD_SRC" ]; then
echo "BUILD_SRC missing: $BUILD_SRC" >&2
exit 2
fi
podman exec -w /work/Email-Forwarder "$DEVOP_CONTAINER" bash -lc '
set -euo pipefail
mkdir -p frontend-js/dist
if [ ! -f frontend-js/dist/htmx.min.js ]; then
curl -fsSL https://unpkg.com/htmx.org@1.9.12/dist/htmx.min.js -o frontend-js/dist/htmx.min.js
fi
go mod tidy
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags "-s -w" -o emailforwarder .
'
install -m0755 "$BUILD_SRC/emailforwarder" "$APP_DIR/build/emailforwarder"
if [ ! -f "$APP_DIR/config.json" ]; then
install -m0644 "$APP_DIR/config.json.example" "$APP_DIR/config.json"
fi
install -m0644 "$APP_DIR/config.json" "$APP_DIR/build/config.json"
install -m0644 "$APP_DIR/Containerfile" "$APP_DIR/build/Containerfile"
podman build -t "$IMAGE_NAME" -f "$APP_DIR/build/Containerfile" "$APP_DIR/build"
podman rm -f "$CONTAINER_NAME" >/dev/null 2>&1 || true
podman pod rm -f "$POD_NAME" >/dev/null 2>&1 || true
podman pod create --name "$POD_NAME" --network "$NETWORK" -p "$HOST_BIND:$APP_PORT:$APP_PORT" >/dev/null
podman run -d --name "$CONTAINER_NAME" --pod "$POD_NAME" \
--restart=unless-stopped \
-v "$APP_DIR/data:/app/data:Z" \
-v "$APP_DIR/backup:/app/backup:Z" \
"$IMAGE_NAME" >/dev/null
for _ in {1..20}; do
if curl -fsS "http://$HOST_BIND:$APP_PORT/" >/dev/null 2>&1; then
echo "Email-Forwarder reachable at http://$HOST_BIND:$APP_PORT/"
exit 0
fi
sleep 1
done
curl -fsS "http://$HOST_BIND:$APP_PORT/" >/dev/null

View file

@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
./01-install-Email-Forwarder-Pod.sh

View file

@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
set -a
source ./config.env
set +a
BUNDLE="${1:-}"
if [ -z "$BUNDLE" ] || [ ! -f "$BUNDLE" ]; then
echo "Usage: $0 <export.tar.gz>" >&2
exit 2
fi
tar -xzf "$BUNDLE" -C "$APP_DIR"
echo "Imported $BUNDLE into $APP_DIR"

View file

@ -0,0 +1,26 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
set -a
source ./config.env
set +a
mkdir -p "$APP_DIR/export"
TS="$(date +%Y%m%d-%H%M%S)"
OUT="$APP_DIR/export/email-forwarder-pod-$TS.tar.gz"
tar -czf "$OUT" \
config.env \
config.json \
Containerfile \
01-install-Email-Forwarder-Pod.sh \
02-reconf-Email-Forwarder-Pod.sh \
03-import-Email-Forwarder-Pod.sh \
04-export-Email-Forwarder-Pod.sh \
05-uninstall-Email-Forwarder-Pod.sh \
data \
backup
sha256sum "$OUT" > "$OUT.sha256"
echo "$OUT"
cat "$OUT.sha256"

View file

@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
set -a
source ./config.env
set +a
podman rm -f "$CONTAINER_NAME" >/dev/null 2>&1 || true
podman pod rm -f "$POD_NAME" >/dev/null 2>&1 || true
echo "Runtime removed. Persistent data kept at $APP_DIR/data and $APP_DIR/backup"

View file

@ -0,0 +1,12 @@
FROM docker.io/library/debian:stable-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY emailforwarder /app/emailforwarder
COPY config.json /app/config.json
RUN chmod 0755 /app/emailforwarder \
&& mkdir -p /app/data /app/backup
EXPOSE 8087
VOLUME ["/app/data", "/app/backup"]
ENTRYPOINT ["/app/emailforwarder"]

View file

@ -0,0 +1,10 @@
SERVICE_NAME=Email-Forwarder
POD_NAME=email-forwarder-pod
CONTAINER_NAME=email-forwarder
IMAGE_NAME=localhost/email-forwarder:test
NETWORK=base-net
HOST_BIND=127.0.0.1
APP_PORT=8087
BUILD_SRC=/mnt/DATA/Build/Email-Forwarder
DEVOP_CONTAINER=DevOp-Pod-build
APP_DIR=/mnt/DATA/Containers/Test-Container/Email-Forwarder-Pod

View file

@ -0,0 +1,15 @@
{
"bind": "0.0.0.0",
"port": "8087",
"admin_user": "vAdmin@golddata.eu",
"admin_pass": "CHANGE-ME-lokal",
"db_path": "/app/data/emailforwarder.db",
"mbox_root": "/app/backup",
"forward_smtp": {
"host": "",
"port": 587,
"user": "",
"pass": "",
"from": ""
}
}