Μετάβαση στο περιεχόμενο

Ρύθμιση: Μεταβλητές περιβάλλοντος

Στόχος και αποτέλεσμα

Ενότητα «Στόχος και αποτέλεσμα»

Ολοκληρώστε τη ροή εργασίας της σελίδας για Ρύθμιση: Μεταβλητές περιβάλλοντος. Η διαδικασία χρησιμοποιεί /opt/discvault-next/.env · DISCVAULT_NEXT_IMAGE · DISCVAULT_NEXT_POSTGRES_DATA · chmod 0600 · openssl rand -base64 48 · RP_ORIGINS · LEGACY_AUTH_ENABLED.

Αυτή η σελίδα ισχύει μόνο για Ρύθμιση: Μεταβλητές περιβάλλοντος (Docker · Unraid). Τα όρια καναλιού και δεδομένων είναι: DiscVault · ghcr.io/helmerznl/discvault:beta; .env.example release/v26-beta; 0600 · JWT_SECRET POSTGRES_PASSWORD. Σημεία ελέγχου της σελίδας: /opt/discvault-next/.env · DISCVAULT_NEXT_IMAGE · DISCVAULT_NEXT_POSTGRES_DATA · chmod 0600 · openssl rand -base64 48 · RP_ORIGINS · LEGACY_AUTH_ENABLED.

  • DiscVault · ghcr.io/helmerznl/discvault:beta
  • .env.example release/v26-beta
  • 0600 · JWT_SECRET POSTGRES_PASSWORD
  • ιδιωτικό αρχείο περιβάλλοντος εκτέλεσης DiscVault
  • OpenSSL
  • προγραμματισμένο παράθυρο επανεκκίνησης
  1. Δημιουργήστε: /opt/discvault-next/.env · δικαιώματα αρχείου μόνο για τον κάτοχο (0600)
  2. Ρυθμίστε: DISCVAULT_NEXT_IMAGE · RP_ORIGINS
  3. Επιλέξτε: με έγκυρο FQDN διατηρήστε τα RP_ID και RP_ORIGINS ευθυγραμμισμένα και χρησιμοποιήστε αξιόπιστο HTTPS · για άμεση ιδιωτική ή loopback IP χωρίς FQDN αφήστε κενά τα RP_ID και RP_ORIGINS
  4. Επαληθεύστε: chmod 0600 · docker compose -p discvault_next_deploy config --quiet
  5. Εκκινήστε: διατηρήστε αμετάβλητα τα μυστικά JWT και PostgreSQL στις συνήθεις αλλαγές

Εντολές και ρυθμίσεις

Ενότητα «Εντολές και ρυθμίσεις»
Terminal window
set -euo pipefail
install -d -m 0700 /opt/discvault-next
cd /opt/discvault-next
curl --fail --location --proto '=https' --tlsv1.2 \
--output docker-compose.yml \
https://raw.githubusercontent.com/helmerzNL/DiscVault/release/v26-beta/app/deploy/next/docker-compose.yml
curl --fail --location --proto '=https' --tlsv1.2 \
--output .env.example \
https://raw.githubusercontent.com/helmerzNL/DiscVault/release/v26-beta/app/deploy/next/.env.example
umask 077
ENV_FILE=/opt/discvault-next/.env
test ! -e "$ENV_FILE"
ENV_TMP="$(mktemp "$ENV_FILE.tmp.XXXXXX")"
trap 'rm -f "$ENV_TMP"' EXIT
POSTGRES_PASSWORD="$(openssl rand -hex 32)"
JWT_SECRET="$(openssl rand -base64 48)"
awk \
-v image='ghcr.io/helmerznl/discvault:beta' \
-v postgres_password="$POSTGRES_PASSWORD" \
-v jwt_secret="$JWT_SECRET" \
-v data_dir='/mnt/user/appdata/discvault' \
-v postgres_dir='/mnt/user/appdata/discvault-next/postgres' '
/^DISCVAULT_NEXT_IMAGE=/ { print "DISCVAULT_NEXT_IMAGE=" image; next }
/^POSTGRES_PASSWORD=/ { print "POSTGRES_PASSWORD=" postgres_password; next }
/^JWT_SECRET=/ { print "JWT_SECRET=" jwt_secret; next }
/^DISCVAULT_DATA_DIR=/ { print "DISCVAULT_DATA_DIR=" data_dir; next }
/^DISCVAULT_NEXT_POSTGRES_DATA=/ {
print "DISCVAULT_NEXT_POSTGRES_DATA=" postgres_dir
next
}
/^LEGACY_AUTH_ENABLED=/ { print "LEGACY_AUTH_ENABLED=true"; next }
{ print }
' .env.example > "$ENV_TMP"
chmod 0600 "$ENV_TMP"
ln "$ENV_TMP" "$ENV_FILE"
rm -f "$ENV_TMP"
trap - EXIT
Terminal window
set -euo pipefail
cd /opt/discvault-next
FQDN=discvault.example.com
ENV_FILE=/opt/discvault-next/.env
ENV_TMP="$(mktemp "$ENV_FILE.tmp.XXXXXX")"
trap 'rm -f "$ENV_TMP"' EXIT
awk -v rp_id="$FQDN" -v rp_origin="https://$FQDN" '
/^RP_ID=/ { print "RP_ID=" rp_id; next }
/^RP_NAME=/ { print "RP_NAME=DiscVault"; next }
/^RP_ORIGINS=/ { print "RP_ORIGINS=" rp_origin; next }
/^LEGACY_AUTH_ENABLED=/ { print "LEGACY_AUTH_ENABLED=true"; next }
{ print }
' "$ENV_FILE" > "$ENV_TMP"
chmod 0600 "$ENV_TMP"
mv "$ENV_TMP" "$ENV_FILE"
trap - EXIT
Terminal window
set -euo pipefail
cd /opt/discvault-next
ENV_FILE=/opt/discvault-next/.env
ENV_TMP="$(mktemp "$ENV_FILE.tmp.XXXXXX")"
trap 'rm -f "$ENV_TMP"' EXIT
awk '
/^RP_ID=/ { print "RP_ID="; next }
/^RP_NAME=/ { print "RP_NAME=DiscVault"; next }
/^RP_ORIGINS=/ { print "RP_ORIGINS="; next }
/^LEGACY_AUTH_ENABLED=/ { print "LEGACY_AUTH_ENABLED=true"; next }
{ print }
' "$ENV_FILE" > "$ENV_TMP"
chmod 0600 "$ENV_TMP"
mv "$ENV_TMP" "$ENV_FILE"
trap - EXIT
Terminal window
set -euo pipefail
cd /opt/discvault-next
ENV_FILE=/opt/discvault-next/.env
test "$(stat -c '%a' "$ENV_FILE")" = 600
read_env() { sed -n "s/^$1=//p" "$ENV_FILE"; }
test "$(read_env DISCVAULT_NEXT_IMAGE)" = 'ghcr.io/helmerznl/discvault:beta'
! grep -q ':dev' "$ENV_FILE"
test "$(read_env LEGACY_AUTH_ENABLED)" = true
POSTGRES_PASSWORD_VALUE="$(read_env POSTGRES_PASSWORD)"
JWT_SECRET_VALUE="$(read_env JWT_SECRET)"
test "${#POSTGRES_PASSWORD_VALUE}" -ge 32
test "$POSTGRES_PASSWORD_VALUE" != 'change-me-to-a-long-random-password'
test "${#JWT_SECRET_VALUE}" -ge 48
grep -qx 'DISCVAULT_DATA_DIR=/mnt/user/appdata/discvault' "$ENV_FILE"
grep -qx 'DISCVAULT_NEXT_POSTGRES_DATA=/mnt/user/appdata/discvault-next/postgres' "$ENV_FILE"
RP_ID_VALUE="$(read_env RP_ID)"
RP_ORIGINS_VALUE="$(read_env RP_ORIGINS)"
if [ -z "$RP_ID_VALUE" ]; then
test -z "$RP_ORIGINS_VALUE"
else
test "$RP_ORIGINS_VALUE" = "https://$RP_ID_VALUE"
fi
docker compose -p discvault_next_deploy config --quiet
docker compose -p discvault_next_deploy pull
docker compose -p discvault_next_deploy up -d
docker compose -p discvault_next_deploy ps
curl --fail http://localhost:6180/api/next/health

Αναμενόμενο αποτέλεσμα

Ενότητα «Αναμενόμενο αποτέλεσμα»

Αποδεχθείτε το αποτέλεσμα για Ρύθμιση: Μεταβλητές περιβάλλοντος μόνο όταν ισχύουν όλα τα παρακάτω αποτελέσματα: δικαιώματα αρχείου μόνο για τον κάτοχο (0600); το ιδιωτικό αρχείο έχει λειτουργία 600, η επικύρωση Compose πετυχαίνει και το επιλεγμένο κανάλι γίνεται υγιές. Σημεία ελέγχου της σελίδας: /opt/discvault-next/.env · DISCVAULT_NEXT_IMAGE · DISCVAULT_NEXT_POSTGRES_DATA · chmod 0600 · openssl rand -base64 48 · RP_ORIGINS · LEGACY_AUTH_ENABLED.

  • δικαιώματα αρχείου μόνο για τον κάτοχο (0600)
  • το ιδιωτικό αρχείο έχει λειτουργία 600, η επικύρωση Compose πετυχαίνει και το επιλεγμένο κανάλι γίνεται υγιές

Ασφάλεια και επαναφορά

Ενότητα «Ασφάλεια και επαναφορά»

Ρύθμιση: Ταυτοποίηση και RBAC