39 lines
1.0 KiB
Bash
Executable File
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/"
|