Compare commits
2 Commits
427c0580c4
...
99501fb924
| Author | SHA1 | Date | |
|---|---|---|---|
| 99501fb924 | |||
| 2fdc89565c |
@@ -9,6 +9,8 @@ COMPOSE_FILE="${FEDEO_COMPOSE_FILE:-$ROOT_DIR/docker-compose.yml}"
|
|||||||
MODE=""
|
MODE=""
|
||||||
START_STACK="ask"
|
START_STACK="ask"
|
||||||
FORCE="false"
|
FORCE="false"
|
||||||
|
UNINSTALL="false"
|
||||||
|
PURGE="false"
|
||||||
TTY_INPUT="${FEDEO_TTY_INPUT:-/dev/tty}"
|
TTY_INPUT="${FEDEO_TTY_INPUT:-/dev/tty}"
|
||||||
TTY_FD=""
|
TTY_FD=""
|
||||||
|
|
||||||
@@ -53,6 +55,8 @@ Nutzung:
|
|||||||
bash scripts/selfhost-setup.sh --simple
|
bash scripts/selfhost-setup.sh --simple
|
||||||
bash scripts/selfhost-setup.sh --advanced
|
bash scripts/selfhost-setup.sh --advanced
|
||||||
bash scripts/selfhost-setup.sh --simple --start
|
bash scripts/selfhost-setup.sh --simple --start
|
||||||
|
bash scripts/selfhost-setup.sh --uninstall
|
||||||
|
bash scripts/selfhost-setup.sh --uninstall --purge
|
||||||
|
|
||||||
Optionen:
|
Optionen:
|
||||||
--simple Kurzer Assistent mit lokalen Diensten und sicheren Defaults
|
--simple Kurzer Assistent mit lokalen Diensten und sicheren Defaults
|
||||||
@@ -60,6 +64,8 @@ Optionen:
|
|||||||
--start Startet den Stack nach dem Schreiben der Konfiguration
|
--start Startet den Stack nach dem Schreiben der Konfiguration
|
||||||
--no-start Schreibt nur Konfiguration und Verzeichnisse
|
--no-start Schreibt nur Konfiguration und Verzeichnisse
|
||||||
--force Überschreibt eine vorhandene .env ohne Rückfrage
|
--force Überschreibt eine vorhandene .env ohne Rückfrage
|
||||||
|
--uninstall Stoppt und entfernt den Docker-Compose-Stack
|
||||||
|
--purge Entfernt beim Uninstall zusätzlich .env und lokale Datenverzeichnisse
|
||||||
USAGE
|
USAGE
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,6 +86,12 @@ while [[ $# -gt 0 ]]; do
|
|||||||
--force)
|
--force)
|
||||||
FORCE="true"
|
FORCE="true"
|
||||||
;;
|
;;
|
||||||
|
--uninstall)
|
||||||
|
UNINSTALL="true"
|
||||||
|
;;
|
||||||
|
--purge)
|
||||||
|
PURGE="true"
|
||||||
|
;;
|
||||||
-h|--help)
|
-h|--help)
|
||||||
usage
|
usage
|
||||||
exit 0
|
exit 0
|
||||||
@@ -108,6 +120,14 @@ random_secret() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
random_hex_secret() {
|
||||||
|
if command -v openssl >/dev/null 2>&1; then
|
||||||
|
openssl rand -hex 32 | tr -d '\n'
|
||||||
|
else
|
||||||
|
LC_ALL=C tr -dc 'a-f0-9' </dev/urandom | head -c 64
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
env_quote() {
|
env_quote() {
|
||||||
local value="$1"
|
local value="$1"
|
||||||
value="${value//\'/\'\\\'\'}"
|
value="${value//\'/\'\\\'\'}"
|
||||||
@@ -377,7 +397,80 @@ prepare_directories() {
|
|||||||
chmod 600 "$ROOT_DIR/traefik/letsencrypt/acme.json"
|
chmod 600 "$ROOT_DIR/traefik/letsencrypt/acme.json"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uninstall_stack() {
|
||||||
|
need_file "$COMPOSE_FILE"
|
||||||
|
|
||||||
|
if [[ ! -f "$ENV_FILE" ]]; then
|
||||||
|
echo "Keine .env gefunden. Docker Compose wird mit Standardwerten ausgeführt."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "FEDEO Selfhost Uninstall"
|
||||||
|
echo "Compose-Datei: $COMPOSE_FILE"
|
||||||
|
echo
|
||||||
|
|
||||||
|
if [[ "$FORCE" != "true" ]]; then
|
||||||
|
if ! yes_no "Docker-Compose-Stack stoppen und Container/Netzwerke entfernen?" "n"; then
|
||||||
|
echo "Abgebrochen."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -f "$ENV_FILE" ]]; then
|
||||||
|
compose_stack down --remove-orphans
|
||||||
|
else
|
||||||
|
compose -f "$COMPOSE_FILE" down --remove-orphans
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$PURGE" != "true" ]]; then
|
||||||
|
echo
|
||||||
|
echo "Uninstall abgeschlossen. Lokale Daten und .env wurden behalten."
|
||||||
|
echo "Für vollständiges Entfernen erneut mit --uninstall --purge ausführen."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Achtung: --purge entfernt lokale Datenbanken, Dateien, Matrix-Daten, Zertifikate und .env."
|
||||||
|
echo "Betroffene Pfade:"
|
||||||
|
echo " $ENV_FILE"
|
||||||
|
echo " $ROOT_DIR/postgres"
|
||||||
|
echo " $ROOT_DIR/minio"
|
||||||
|
echo " $ROOT_DIR/matrix/postgres"
|
||||||
|
echo " $ROOT_DIR/matrix/synapse"
|
||||||
|
echo " $ROOT_DIR/traefik/letsencrypt"
|
||||||
|
echo " $ROOT_DIR/traefik/logs"
|
||||||
|
|
||||||
|
if [[ "$FORCE" != "true" ]]; then
|
||||||
|
if ! yes_no "Diese lokalen Daten endgültig löschen?" "n"; then
|
||||||
|
echo "Daten wurden behalten."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf \
|
||||||
|
"$ENV_FILE" \
|
||||||
|
"$ROOT_DIR/postgres" \
|
||||||
|
"$ROOT_DIR/minio" \
|
||||||
|
"$ROOT_DIR/matrix/postgres" \
|
||||||
|
"$ROOT_DIR/matrix/synapse" \
|
||||||
|
"$ROOT_DIR/traefik/letsencrypt" \
|
||||||
|
"$ROOT_DIR/traefik/logs"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Uninstall inklusive lokaler Daten abgeschlossen."
|
||||||
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
|
if [[ "$UNINSTALL" == "true" ]]; then
|
||||||
|
uninstall_stack
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$PURGE" == "true" ]]; then
|
||||||
|
echo "--purge kann nur zusammen mit --uninstall verwendet werden." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
need_file "$COMPOSE_FILE"
|
need_file "$COMPOSE_FILE"
|
||||||
need_file "$ENV_EXAMPLE"
|
need_file "$ENV_EXAMPLE"
|
||||||
|
|
||||||
@@ -413,7 +506,7 @@ main() {
|
|||||||
minio_password="$(random_secret)"
|
minio_password="$(random_secret)"
|
||||||
cookie_secret="$(random_secret)"
|
cookie_secret="$(random_secret)"
|
||||||
jwt_secret="$(random_secret)"
|
jwt_secret="$(random_secret)"
|
||||||
encryption_key="$(random_secret)"
|
encryption_key="$(random_hex_secret)"
|
||||||
m2m_key="$(random_secret)"
|
m2m_key="$(random_secret)"
|
||||||
matrix_db_password="$(random_secret)"
|
matrix_db_password="$(random_secret)"
|
||||||
matrix_turn_secret="$(random_secret)"
|
matrix_turn_secret="$(random_secret)"
|
||||||
|
|||||||
Reference in New Issue
Block a user