Files
paperless-ngx-deployment/install.sh
T
feedc0de 3db0328124
Test and deploy / test (push) Successful in 11s
Test and deploy / deploy (push) Failing after 14s
Move Paperless to PostgreSQL and block-backed runtime storage
2026-10-05 09:24:50 +02:00

34 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
[[ $(kubectl config current-context) == kubernetes-admin@kubernetes ]] || { echo 'Wrong Kubernetes context' >&2; exit 1; }
kubectl create namespace paperless-ngx --dry-run=client -o yaml | kubectl apply -f -
if ! kubectl -n paperless-ngx get secret paperless-secret-key >/dev/null 2>&1; then
key=$(openssl rand -base64 64)
kubectl -n paperless-ngx create secret generic paperless-secret-key --from-literal="secret-key=${key}"
fi
if ! kubectl -n paperless-ngx get secret paperless-postgres >/dev/null 2>&1; then
postgres_admin_password=$(openssl rand -hex 32)
postgres_app_password=$(openssl rand -hex 32)
kubectl -n paperless-ngx create secret generic paperless-postgres \
--from-literal=POSTGRES_USER=postgres \
--from-literal="POSTGRES_PASSWORD=${postgres_admin_password}" \
--from-literal=USERDB_NAME=paperless \
--from-literal=USERDB_USER=paperless \
--from-literal="USERDB_PASSWORD=${postgres_app_password}"
unset postgres_admin_password postgres_app_password
fi
./setup-authentik.sh
./test.sh
helm upgrade --install postgresql postgres --repo https://groundhog2k.github.io/helm-charts/ --version 1.6.7 -n paperless-ngx -f postgresql-values.yaml --wait --timeout 10m
kubectl apply --dry-run=server -f storage.yaml -f app.yaml
apply_output=$(kubectl apply -f storage.yaml -f app.yaml)
printf '%s\n' "$apply_output"
if [[ $apply_output == *'configmap/scanner-config configured'* ]]; then
kubectl -n paperless-ngx rollout restart deployment/scanner
fi
kubectl -n paperless-ngx rollout status deployment/valkey --timeout=5m
kubectl -n paperless-ngx rollout status deployment/paperless --timeout=15m
kubectl -n paperless-ngx rollout status deployment/scanner --timeout=10m
kubectl -n paperless-ngx exec deployment/paperless -- python manage.py shell -c 'from django.contrib.auth.models import Group; [Group.objects.get_or_create(name=name) for name in ("Paperless Users", "Paperless Admins")]'