Files
proxmox/scripts/archive/consolidated/fix/fix-postgresql-unprivileged.sh
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00

73 lines
3.1 KiB
Bash
Executable File

#!/bin/bash
# Fix PostgreSQL for Unprivileged Containers
# Configures directories and permissions for PostgreSQL to run in unprivileged containers
set -uo pipefail
NODE_IP="${PROXMOX_HOST_R630_01}"
log_info() { echo -e "\033[0;32m[INFO]\033[0m $1"; }
log_success() { echo -e "\033[0;32m[✓]\033[0m $1"; }
log_error() { echo -e "\033[0;31m[ERROR]\033[0m $1"; }
fix_postgresql() {
local vmid="$1"
log_info "Fixing PostgreSQL configuration for CT $vmid..."
ssh -o ConnectTimeout=20 -o StrictHostKeyChecking=no root@${NODE_IP} "
pct stop $vmid 2>/dev/null || true
sleep 2
pct mount $vmid >/dev/null 2>&1
MOUNT=\$(pct mount $vmid 2>&1 | grep rootfs | awk '{print \$NF}')
if [ -d \"\$MOUNT\" ]; then
chroot \$MOUNT bash -c '
# Create directories with proper permissions
mkdir -p /var/run/postgresql
mkdir -p /var/log/postgresql
mkdir -p /var/lib/postgresql/15/main
# Set ownership (will be mapped by user namespace)
chown -R postgres:postgres /var/lib/postgresql
chown -R postgres:postgres /var/run/postgresql
chown -R postgres:postgres /var/log/postgresql
# Initialize database if not exists
if [ ! -f /var/lib/postgresql/15/main/PG_VERSION ]; then
su - postgres -c \"initdb -D /var/lib/postgresql/15/main --locale=C --encoding=UTF8\" 2>&1 | tail -3
fi
# Configure PostgreSQL for unprivileged container
sed -i \"s|#unix_socket_directories = .*|unix_socket_directories = '/tmp'|g\" /etc/postgresql/15/main/postgresql.conf 2>/dev/null || true
sed -i \"s|#listen_addresses = .*|listen_addresses = '\''*'\''|g\" /etc/postgresql/15/main/postgresql.conf 2>/dev/null || true
# Use /tmp for PID file
echo \"pid_file = '/tmp/postgresql-15-main.pid'\" >> /etc/postgresql/15/main/postgresql.conf 2>/dev/null || true
# Configure logging to /tmp
sed -i \"s|log_directory = .*|log_directory = '/tmp'|g\" /etc/postgresql/15/main/postgresql.conf 2>/dev/null || true
echo \"PostgreSQL configured\"
'
pct unmount $vmid
fi
pct start $vmid
sleep 5
" && log_success "PostgreSQL configured on CT $vmid" || log_error "Failed on CT $vmid"
}
echo "═══════════════════════════════════════════════════════════"
echo "Fix PostgreSQL for Unprivileged Containers"
echo "═══════════════════════════════════════════════════════════"
echo ""
for vmid in 10000 10001 10100 10101; do
fix_postgresql "$vmid"
sleep 3
done
echo ""
log_success "PostgreSQL configuration complete!"