mirror of
https://github.com/juanfont/headscale.git
synced 2024-12-25 09:17:48 +00:00
58 lines
1.5 KiB
Bash
58 lines
1.5 KiB
Bash
|
#!/bin/sh
|
||
|
chown -R postgres "$PGDATA"
|
||
|
if [ -z "$(ls -A "$PGDATA")" ]; then
|
||
|
gosu postgres initdb
|
||
|
sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf
|
||
|
|
||
|
: ${POSTGRES_USER:="postgres"}
|
||
|
: ${POSTGRES_DB:=$POSTGRES_USER}
|
||
|
|
||
|
if [ "$POSTGRES_PASSWORD" ]; then
|
||
|
pass="PASSWORD '$POSTGRES_PASSWORD'"
|
||
|
authMethod=md5
|
||
|
else
|
||
|
echo "==============================="
|
||
|
echo "!!! NO PASSWORD SET !!! (Use \$POSTGRES_PASSWORD env var)"
|
||
|
echo "==============================="
|
||
|
pass=
|
||
|
authMethod=trust
|
||
|
fi
|
||
|
echo
|
||
|
|
||
|
|
||
|
if [ "$POSTGRES_DB" != 'postgres' ]; then
|
||
|
createSql="CREATE DATABASE $POSTGRES_DB;"
|
||
|
echo $createSql | gosu postgres postgres --single -jE
|
||
|
echo
|
||
|
fi
|
||
|
|
||
|
if [ "$POSTGRES_USER" != 'postgres' ]; then
|
||
|
op=CREATE
|
||
|
else
|
||
|
op=ALTER
|
||
|
fi
|
||
|
|
||
|
userSql="$op USER $POSTGRES_USER WITH SUPERUSER $pass;"
|
||
|
echo $userSql | gosu postgres postgres --single -jE
|
||
|
echo
|
||
|
|
||
|
gosu postgres pg_ctl -D "$PGDATA" \
|
||
|
-o "-c listen_addresses=''" \
|
||
|
-w start
|
||
|
|
||
|
echo
|
||
|
for f in /docker-entrypoint-initdb.d/*; do
|
||
|
case "$f" in
|
||
|
*.sh) echo "$0: running $f"; . "$f" ;;
|
||
|
*.sql) echo "$0: running $f"; psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < "$f" && echo ;;
|
||
|
*) echo "$0: ignoring $f" ;;
|
||
|
esac
|
||
|
echo
|
||
|
done
|
||
|
|
||
|
gosu postgres pg_ctl -D "$PGDATA" -m fast -w stop
|
||
|
|
||
|
{ echo; echo "host all all 0.0.0.0/0 $authMethod"; } >> "$PGDATA"/pg_hba.conf
|
||
|
fi
|
||
|
|
||
|
exec gosu postgres postgres
|