mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-01-18 02:18:16 +01:00
40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
#!/usr/bin/with-contenv bashio
|
||
# shellcheck shell=bash
|
||
set -euo pipefail
|
||
|
||
if bashio::config.true 'USE_EXTERNAL_DB'; then
|
||
bashio::log.info "External DB requested; skipping internal Postgres service."
|
||
exit 0
|
||
fi
|
||
|
||
# Create folder structure
|
||
mkdir -p /run/postgresql
|
||
chown postgres:postgres /run/postgresql
|
||
chmod 775 /run/postgresql
|
||
|
||
# Persistent location
|
||
PGDATA="${PGDATA:-/config/postgres-data}"
|
||
export PGDATA
|
||
|
||
# Create and secure PGDATA
|
||
mkdir -p "$PGDATA"
|
||
chown -R postgres:postgres "$PGDATA"
|
||
chmod 0700 "$PGDATA"
|
||
|
||
INITDB="$(command -v initdb || echo /usr/bin/initdb)"
|
||
POSTGRES="$(command -v postgres || echo /usr/bin/postgres)"
|
||
|
||
if [[ ! -x "$INITDB" || ! -x "$POSTGRES" ]]; then
|
||
bashio::log.error "PostgreSQL binaries not found."
|
||
exit 1
|
||
fi
|
||
|
||
if [[ ! -s "${PGDATA}/PG_VERSION" ]]; then
|
||
bashio::log.info "Initializing Postgres data directory..."
|
||
# Alpine’s initdb runs as the postgres user
|
||
su - postgres -c "$INITDB -D $PGDATA"
|
||
fi
|
||
|
||
exec su - postgres -c "$POSTGRES -D $PGDATA -c listen_addresses='127.0.0.1'" & \
|
||
bashio::log.info "Starting Postgres (127.0.0.1:5432)..."
|