mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-11-04 01:51:04 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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 |