fix(postiz,ente,lobehub): address testing feedback

- postiz: add postiz-rebuild helper for env changes & social provider setup
- ente: rewrite ente-setup Step 4 to use direct SQL instead of flaky CLI
- ente: improve ente-upgrade-subscription to bypass interactive prompts
- lobehub: replace broken ParadeDB APT repo (402) with GitHub release .deb
This commit is contained in:
MickLesk
2026-04-02 18:10:25 +02:00
parent 679a514f86
commit 81dcba7758
5 changed files with 96 additions and 17 deletions

View File

@@ -339,6 +339,9 @@ cat <<'SETUP' >/usr/local/bin/ente-setup
set -e
LOCAL_IP=$(hostname -I | awk '{print $1}')
DB_NAME="$(grep -A4 '^db:' /opt/ente/server/museum.yaml | awk '/name:/{print $2}')"
DB_PASS="$(grep -A5 '^db:' /opt/ente/server/museum.yaml | awk '/password:/{print $2}')"
echo "=== Ente First-Time Setup ==="
echo ""
read -r -p "Enter your account email: " EMAIL
@@ -358,9 +361,12 @@ for i in $(seq 1 10); do
if [ -n "$OTT" ]; then break; fi
sleep 1
done
if [ -z "$OTT" ]; then
OTT=$(journalctl -u ente-museum --no-pager -n 200 2>/dev/null | grep -oP 'ott:\s*\K\d+' | tail -1)
fi
if [ -z "$OTT" ]; then
echo "Could not auto-detect code. Searching all recent codes..."
journalctl -u ente-museum --no-pager -n 200 | grep "Verification code" | tail -5
journalctl -u ente-museum --no-pager -n 200 | grep -i "Verification code\|ott" | tail -5
echo ""
echo "Enter the code shown above in the web UI, then press ENTER."
read -r -p "Press ENTER after verification..."
@@ -371,9 +377,7 @@ else
read -r -p "Press ENTER after you verified the code..."
fi
DB_NAME="$(grep -A4 '^db:' /opt/ente/server/museum.yaml | awk '/name:/{print $2}')"
DB_PASS="$(grep -A5 '^db:' /opt/ente/server/museum.yaml | awk '/password:/{print $2}')"
USER_ID=$(PGPASSWORD="$DB_PASS" psql -h 127.0.0.1 -U ente -d "$DB_NAME" -tAc "SELECT user_id FROM users ORDER BY user_id LIMIT 1;")
USER_ID=$(PGPASSWORD="$DB_PASS" psql -h 127.0.0.1 -U ente -d "$DB_NAME" -tAc "SELECT user_id FROM users WHERE email = '$(echo "$EMAIL" | sed "s/'/''/g")' ORDER BY user_id LIMIT 1;")
if [ -z "$USER_ID" ]; then
echo "Error: No verified users found in database."
echo "Make sure you completed the verification step in the web UI."
@@ -384,27 +388,56 @@ echo "Found user ID: $USER_ID"
echo ""
echo "Step 3/4: Whitelisting admin in museum.yaml..."
if grep -q "^internal:" /opt/ente/server/museum.yaml; then
sed -i "/^ admin:/d" /opt/ente/server/museum.yaml
sed -i "/^internal:/a\\ admin: $USER_ID" /opt/ente/server/museum.yaml
if ! grep -qF "$EMAIL" /opt/ente/server/museum.yaml; then
sed -i "/admins:/a\\ - $EMAIL" /opt/ente/server/museum.yaml
fi
else
printf '\ninternal:\n admin: %s\n' "$USER_ID" >> /opt/ente/server/museum.yaml
printf '\ninternal:\n admins:\n - %s\n' "$EMAIL" >> /opt/ente/server/museum.yaml
fi
systemctl restart ente-museum
sleep 2
echo "Done."
echo ""
echo "Step 4/4: Adding account to Ente CLI & upgrading subscription..."
mkdir -p /opt/ente_data/photos
export ENTE_CLI_SECRETS_PATH=/opt/ente/cli-config/secrets.txt
printf 'photos\n/opt/ente_data/photos\n' | ente account add
ente admin update-subscription -a "$EMAIL" -u "$EMAIL" --no-limit True
echo "Step 4/4: Upgrading subscription..."
PGPASSWORD="$DB_PASS" psql -h 127.0.0.1 -U ente -d "$DB_NAME" -c "UPDATE subscriptions SET storage_in_mbs_per_plan = 10737418240, expiry_time = 2524608000000000 WHERE user_id = ${USER_ID};" 2>/dev/null
ROWS=$(PGPASSWORD="$DB_PASS" psql -h 127.0.0.1 -U ente -d "$DB_NAME" -tAc "SELECT count(*) FROM subscriptions WHERE user_id = ${USER_ID};" 2>/dev/null)
if [ "$ROWS" = "0" ]; then
PGPASSWORD="$DB_PASS" psql -h 127.0.0.1 -U ente -d "$DB_NAME" -c "INSERT INTO subscriptions (user_id, storage_in_mbs_per_plan, expiry_time, product_id, payment_provider, transaction_id, original_transaction_id) VALUES (${USER_ID}, 10737418240, 2524608000000000, 'self_hosted_unlimited', 'admin', 'admin_setup', 'admin_setup');" 2>/dev/null
fi
echo "Subscription upgraded to unlimited storage."
echo ""
echo "=== Setup Complete ==="
echo "You can now use Ente Photos/Auth with unlimited storage."
echo "Access Ente Photos at: http://${LOCAL_IP}:3000"
SETUP
chmod +x /usr/local/bin/ente-setup
cat <<'EOF' >/usr/local/bin/ente-upgrade-subscription
#!/usr/bin/env bash
if [ -z "$1" ]; then
echo "Usage: ente-upgrade-subscription <email>"
echo "Example: ente-upgrade-subscription user@example.com"
exit 1
fi
EMAIL="$1"
DB_NAME="$(grep -A4 '^db:' /opt/ente/server/museum.yaml | awk '/name:/{print $2}')"
DB_PASS="$(grep -A5 '^db:' /opt/ente/server/museum.yaml | awk '/password:/{print $2}')"
echo "Upgrading subscription for: $EMAIL"
USER_ID=$(PGPASSWORD="$DB_PASS" psql -h 127.0.0.1 -U ente -d "$DB_NAME" -tAc "SELECT user_id FROM users WHERE email = '$(echo "$EMAIL" | sed "s/'/''/g")' ORDER BY user_id LIMIT 1;")
if [ -z "$USER_ID" ]; then
echo "Error: User not found in database."
exit 1
fi
PGPASSWORD="$DB_PASS" psql -h 127.0.0.1 -U ente -d "$DB_NAME" -c "UPDATE subscriptions SET storage_in_mbs_per_plan = 10737418240, expiry_time = 2524608000000000 WHERE user_id = ${USER_ID};" 2>/dev/null
ROWS=$(PGPASSWORD="$DB_PASS" psql -h 127.0.0.1 -U ente -d "$DB_NAME" -tAc "SELECT count(*) FROM subscriptions WHERE user_id = ${USER_ID};" 2>/dev/null)
if [ "$ROWS" = "0" ]; then
PGPASSWORD="$DB_PASS" psql -h 127.0.0.1 -U ente -d "$DB_NAME" -c "INSERT INTO subscriptions (user_id, storage_in_mbs_per_plan, expiry_time, product_id, payment_provider, transaction_id, original_transaction_id) VALUES (${USER_ID}, 10737418240, 2524608000000000, 'self_hosted_unlimited', 'admin', 'admin_setup', 'admin_setup');" 2>/dev/null
fi
echo "Done. Subscription upgraded to unlimited storage for: $EMAIL"
EOF
chmod +x /usr/local/bin/ente-upgrade-subscription
msg_ok "Created helper scripts"
motd_ssh