Files
2026-08-15 18:29:36 +02:00

39 lines
1.0 KiB
Bash
Executable File

#!/bin/sh
set -eu
cd "$(dirname "$0")/.."
if ! command -v docker >/dev/null 2>&1; then
echo "Docker Engine is required" >&2
exit 2
fi
if ! docker compose version >/dev/null 2>&1; then
echo "Docker Compose v2 is required (docker compose ...)" >&2
exit 3
fi
if [ ! -c /dev/net/tun ]; then
echo "/dev/net/tun is missing; TAP mode requires a Linux host with TUN/TAP enabled" >&2
exit 4
fi
if [ ! -f .env ]; then
cp .env.example .env
ADMIN_PASSWORD_GENERATED="$(od -An -N24 -tx1 /dev/urandom | tr -d ' \n')"
sed -i "s/^ADMIN_PASSWORD=.*/ADMIN_PASSWORD=${ADMIN_PASSWORD_GENERATED}/" .env
chmod 0600 .env
echo "[first-run] generated dashboard password in .env (ADMIN_USERNAME=admin)"
fi
echo "[first-run] building IDS image"
docker compose build
echo "[first-run] migrating legacy bind-mount data when needed"
./scripts/migrate-docker-volumes.sh
echo "[first-run] starting IDS"
docker compose up -d
echo "[first-run] running end-to-end TZSP test"
./scripts/selftest.sh
echo "[first-run] dashboard: http://127.0.0.1:8080/"