Implement multi-stage Docker build with security hardening, add health check endpoint, optimize in-memory search with O(1) wikilink lookup, extract inline tags from markdown content, and enhance documentation with architecture diagrams and performance metrics

This commit is contained in:
2026-03-22 19:03:34 -04:00
parent d9add8dcba
commit d311a09527
11 changed files with 1097 additions and 182 deletions
+37 -13
View File
@@ -1,25 +1,49 @@
#!/bin/bash
# Build multi-platform ObsiGate Docker image
set -e
set -euo pipefail
echo "=== ObsiGate Multi-Platform Build ==="
# ----- Configuration -----
VERSION="1.1.0"
IMAGE_NAME="obsigate"
PLATFORMS="linux/amd64,linux/arm64,linux/arm/v7,linux/386"
BUILDER_NAME="obsigate-builder"
docker buildx create --use --name obsigate-builder 2>/dev/null || true
# ----- Helpers -----
info() { printf '\033[1;34m[INFO]\033[0m %s\n' "$*"; }
ok() { printf '\033[1;32m[OK]\033[0m %s\n' "$*"; }
error() { printf '\033[1;31m[ERR]\033[0m %s\n' "$*" >&2; }
# Build for all target platforms
# ----- Pre-flight checks -----
if ! command -v docker &>/dev/null; then
error "docker introuvable. Installez Docker avant de continuer."
exit 1
fi
if ! docker buildx version &>/dev/null; then
error "docker buildx introuvable. Mettez à jour Docker ou installez le plugin buildx."
exit 1
fi
info "=== ObsiGate v${VERSION} — Multi-Platform Build ==="
info "Platforms : ${PLATFORMS}"
# ----- Builder setup -----
docker buildx create --use --name "${BUILDER_NAME}" 2>/dev/null || true
# ----- Build -----
# Note: --load only works for single platform; use --push for multi-platform registry push.
# For local testing, build one platform at a time:
# docker buildx build --platform linux/amd64 --load -t obsigate:latest .
# For local testing, build one platform at a time (see below).
docker buildx build \
--platform linux/amd64,linux/arm64,linux/arm/v7,linux/386 \
--tag obsigate:latest \
--tag obsigate:1.0.0 \
--platform "${PLATFORMS}" \
--tag "${IMAGE_NAME}:latest" \
--tag "${IMAGE_NAME}:${VERSION}" \
"$@" \
.
ok "Build terminé (v${VERSION})."
echo ""
echo "Build terminé."
echo "Pour un push vers un registry : ajoutez --push au build."
echo "Pour un test local (amd64) :"
echo " docker buildx build --platform linux/amd64 --load -t obsigate:latest ."
info "Pour un push vers un registry : $0 --push"
info "Pour un test local (amd64) :"
echo " docker buildx build --platform linux/amd64 --load -t ${IMAGE_NAME}:latest ."
echo " docker-compose up -d"