Rename project to Mail-Graveyard

This commit is contained in:
DonVoo 2026-07-05 22:30:32 +02:00
parent ba53f8bb19
commit bb2bcb0576
20 changed files with 55 additions and 55 deletions

View file

@ -0,0 +1,60 @@
#!/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/Mail-Graveyard "$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 mail-graveyard .
'
install -m0755 "$BUILD_SRC/mail-graveyard" "$APP_DIR/build/mail-graveyard"
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 "${WATCH_CONTAINER_NAME:-mail-graveyard-watch}" >/dev/null 2>&1 || true
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
if [ -n "${WATCH_ACCOUNT:-}" ]; then
podman run -d --name "${WATCH_CONTAINER_NAME:-mail-graveyard-watch}" --pod "$POD_NAME" \
--restart=unless-stopped \
-v "$APP_DIR/data:/app/data:Z" \
-v "$APP_DIR/backup:/app/backup:Z" \
"$IMAGE_NAME" --run "$WATCH_ACCOUNT" --watch --watch-interval "${WATCH_INTERVAL:-60s}" >/dev/null
fi
for _ in {1..20}; do
if curl -fsS "http://$HOST_BIND:$APP_PORT/" >/dev/null 2>&1; then
echo "Mail-Graveyard 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-Mail-Graveyard-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/mail-graveyard-pod-$TS.tar.gz"
tar -czf "$OUT" \
config.env \
config.json \
Containerfile \
01-install-Mail-Graveyard-Pod.sh \
02-reconf-Mail-Graveyard-Pod.sh \
03-import-Mail-Graveyard-Pod.sh \
04-export-Mail-Graveyard-Pod.sh \
05-uninstall-Mail-Graveyard-Pod.sh \
data \
backup
sha256sum "$OUT" > "$OUT.sha256"
echo "$OUT"
cat "$OUT.sha256"

View file

@ -0,0 +1,11 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
set -a
source ./config.env
set +a
podman rm -f "${WATCH_CONTAINER_NAME:-mail-graveyard-watch}" >/dev/null 2>&1 || true
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 mail-graveyard /app/mail-graveyard
COPY config.json /app/config.json
RUN chmod 0755 /app/mail-graveyard \
&& mkdir -p /app/data /app/backup
EXPOSE 8087
VOLUME ["/app/data", "/app/backup"]
ENTRYPOINT ["/app/mail-graveyard"]

View file

@ -0,0 +1,13 @@
SERVICE_NAME=Mail-Graveyard
POD_NAME=mail-graveyard-pod
CONTAINER_NAME=mail-graveyard
WATCH_CONTAINER_NAME=mail-graveyard-watch
IMAGE_NAME=localhost/mail-graveyard:test
NETWORK=base-net
HOST_BIND=127.0.0.1
APP_PORT=8087
WATCH_ACCOUNT=codex-to-vdevop03
WATCH_INTERVAL=60s
BUILD_SRC=/mnt/DATA/Build/Mail-Graveyard
DEVOP_CONTAINER=DevOp-Pod-build
APP_DIR=/mnt/DATA/Containers/Test-Container/Mail-Graveyard-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/mail-graveyard.db",
"mbox_root": "/app/backup",
"forward_smtp": {
"host": "",
"port": 587,
"user": "",
"pass": "",
"from": ""
}
}