diff --git a/README.postgresql b/README.postgresql index f5b7d41..aa859d1 100644 --- a/README.postgresql +++ b/README.postgresql @@ -1,3 +1,48 @@ # see: # https://docs.mattermost.com/install/prepare-mattermost-database.html + +# Postgresql +psql_db_host="localhost" +psql_db_port="5432" +psql_db_name="mattermost" +psql_db_user="mmuser" +psql_db_password='YK-m-yoi9T-p.7fm' + +POSTGRES_DSN="postgres://${psql_db_user}:${psql_db_password}@${psql_db_host}:${psql_db_port}/${psql_db_name}?sslmode=disable\u0026connect_timeout=10" + +pg_hba_file="/etc/postgresql/15/main/pg_hba.conf" + + +DEBIAN_FRONTEND=noninteractive apt install -y --allow-unauthenticated postgresql + +systemctl stop postgresql + +if ! $(grep -Eq "\s*^local\s+all\s+all\s+trust" "${pg_hba_file}" 2> /dev/null) ; then + perl -i.ORIG -n -p -e "s/\s*^((local\s+all\s+all\s+)\S+)/#\1\n\2trust/" "${pg_hba_file}" +fi + +if ! $(grep -Eq "\s*^host\s+all\s+all\s+127\.[^[:space:]]+\s+md5" "${pg_hba_file}" 2> /dev/null) ; then + perl -i -n -p -e "s/\s*^((host\s+all\s+all\s+127\.\S+\s+)\S+)/#\1\n\2md5/" "${pg_hba_file}" +fi + +if ! $(grep -Eq "\s*^host\s+all\s+all\s+::1[^[:space:]]+\s+md5" "${pg_hba_file}" 2> /dev/null) ; then + perl -i -n -p -e "s/\s*^((host\s+all\s+all\s+::1\S+\s+)\S+)/#\1\n\2md5/" "${pg_hba_file}" +fi + +systemctl start postgresql +systemctl enable postgresql + + +echo "" + +cd /tmp +sudo -u postgres psql -c "CREATE DATABASE ${psql_db_name};" +sudo -u postgres psql ${psql_db_name} -c "CREATE USER ${psql_db_user} WITH PASSWORD '${psql_db_password}';" +sudo -u postgres psql ${psql_db_name} -c "GRANT ALL PRIVILEGES ON DATABASE ${psql_db_name} to ${psql_db_user};" +sudo -u postgres psql ${psql_db_name} -c "ALTER DATABASE ${psql_db_name} OWNER TO ${psql_db_user};" +sudo -u postgres psql ${psql_db_name} -c "GRANT USAGE, CREATE ON SCHEMA PUBLIC TO ${psql_db_user};" + +echo "" +exit 0 +