TeamVis Self-Host-Bundle v0.31.0
This commit is contained in:
@@ -68,7 +68,10 @@ docker compose version >/dev/null 2>&1 || die "docker compose v2 fehlt."
|
|||||||
command -v node >/dev/null || die "node (20+) fehlt — wird für Keys/Schema/Admin gebraucht."
|
command -v node >/dev/null || die "node (20+) fehlt — wird für Keys/Schema/Admin gebraucht."
|
||||||
command -v openssl >/dev/null || die "openssl fehlt."
|
command -v openssl >/dev/null || die "openssl fehlt."
|
||||||
|
|
||||||
DEFAULT_VERSION="$(node -p "require('$REPO/package.json').version" 2>/dev/null || echo latest)"
|
# Image-Version: standardmäßig 'latest' (die CI veröffentlicht bei jedem Release
|
||||||
|
# auch das :latest-Tag). Der Kunde muss keine Versionsnummer kennen. Per ENV
|
||||||
|
# TEAMVIS_VERSION überschreibbar, falls bewusst eine Version gepinnt werden soll.
|
||||||
|
TEAMVIS_VERSION="${TEAMVIS_VERSION:-latest}"
|
||||||
# Registry-Host des App-Images (muss zum `docker login` passen). Image-Pfad
|
# Registry-Host des App-Images (muss zum `docker login` passen). Image-Pfad
|
||||||
# bleibt zfx-services/teamvis. Per ENV überschreibbar (z. B. git.zoesch.de).
|
# bleibt zfx-services/teamvis. Per ENV überschreibbar (z. B. git.zoesch.de).
|
||||||
REGISTRY="${REGISTRY:-git.zfx.services}"
|
REGISTRY="${REGISTRY:-git.zfx.services}"
|
||||||
@@ -78,7 +81,6 @@ head "1) Basis-Angaben"
|
|||||||
ask NAME "Kurzname der Instanz (Verzeichnis/Compose-Projekt)" "teamvis"
|
ask NAME "Kurzname der Instanz (Verzeichnis/Compose-Projekt)" "teamvis"
|
||||||
ask APP_DOMAIN "Domain der App (DNS muss auf diesen Host zeigen)" ""
|
ask APP_DOMAIN "Domain der App (DNS muss auf diesen Host zeigen)" ""
|
||||||
[ -n "$APP_DOMAIN" ] || die "Eine Domain ist nötig."
|
[ -n "$APP_DOMAIN" ] || die "Eine Domain ist nötig."
|
||||||
ask TEAMVIS_VERSION "TeamVis-Image-Version" "$DEFAULT_VERSION"
|
|
||||||
ask ADMIN_EMAIL "E-Mail des ersten Admins" ""
|
ask ADMIN_EMAIL "E-Mail des ersten Admins" ""
|
||||||
[ -n "$ADMIN_EMAIL" ] || die "Admin-E-Mail ist nötig."
|
[ -n "$ADMIN_EMAIL" ] || die "Admin-E-Mail ist nötig."
|
||||||
ask ADMIN_NAME "Name des ersten Admins" "Administrator"
|
ask ADMIN_NAME "Name des ersten Admins" "Administrator"
|
||||||
@@ -419,8 +421,10 @@ YAML
|
|||||||
sed -i.bak -e "s|__REGISTRY__|$REGISTRY|" -e "s/__NAME__/$NAME/" -e "s/__APP_DOMAIN__/$APP_DOMAIN/" "$TARGET/docker-compose.yml" && rm -f "$TARGET/docker-compose.yml.bak"
|
sed -i.bak -e "s|__REGISTRY__|$REGISTRY|" -e "s/__NAME__/$NAME/" -e "s/__APP_DOMAIN__/$APP_DOMAIN/" "$TARGET/docker-compose.yml" && rm -f "$TARGET/docker-compose.yml.bak"
|
||||||
ok "docker-compose.yml + Caddyfile geschrieben."
|
ok "docker-compose.yml + Caddyfile geschrieben."
|
||||||
|
|
||||||
# psql-Helfer (Superuser, lokaler Socket-Trust im db-Container).
|
# psql-Helfer als supabase_admin — der ist im supabase/postgres-Image der
|
||||||
dbsql() { ( cd "$TARGET" && docker compose exec -T db psql -v ON_ERROR_STOP=1 -U postgres -d "$POSTGRES_DB" "$@" ); }
|
# Superuser (das postgres-Role darf reservierte Rollen wie 'authenticator'
|
||||||
|
# NICHT ändern). Passwort = POSTGRES_PASSWORD.
|
||||||
|
dbsql() { ( cd "$TARGET" && docker compose exec -T -e PGPASSWORD="$POSTGRES_PASSWORD" db psql -v ON_ERROR_STOP=1 -U supabase_admin -d "$POSTGRES_DB" "$@" ); }
|
||||||
|
|
||||||
head "Datenbank starten + Rollen-Bootstrap"
|
head "Datenbank starten + Rollen-Bootstrap"
|
||||||
( cd "$TARGET" && docker compose pull && docker compose up -d db )
|
( cd "$TARGET" && docker compose pull && docker compose up -d db )
|
||||||
@@ -438,7 +442,7 @@ SQL
|
|||||||
( cd "$TARGET" && docker compose up -d rest storage )
|
( cd "$TARGET" && docker compose up -d rest storage )
|
||||||
say "→ Warte auf Storage (legt sein storage-Schema an) …"
|
say "→ Warte auf Storage (legt sein storage-Schema an) …"
|
||||||
for _ in $(seq 1 30); do
|
for _ in $(seq 1 30); do
|
||||||
if ( cd "$TARGET" && docker compose exec -T db psql -U postgres -d "$POSTGRES_DB" -tAc "select 1 from information_schema.schemata where schema_name='storage'" 2>/dev/null | grep -q 1 ); then break; fi
|
if ( cd "$TARGET" && docker compose exec -T -e PGPASSWORD="$POSTGRES_PASSWORD" db psql -U supabase_admin -d "$POSTGRES_DB" -tAc "select 1 from information_schema.schemata where schema_name='storage'" 2>/dev/null | grep -q 1 ); then break; fi
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
ok "Storage initialisiert."
|
ok "Storage initialisiert."
|
||||||
|
|||||||
Reference in New Issue
Block a user