You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
2.1 KiB

  1. #!/bin/bash
  2. echo '####################################################################'
  3. echo '# docker_postgres_setup_script #'
  4. echo '# Dennis Buchhorn - bucde@b-eit.de #'
  5. echo '####################################################################'
  6. echo ''
  7. POSTGRES_VERSION=''
  8. POSTGRES_HOST_IP_ADDRESS=''
  9. POSTGRES_HOST_PORT=''
  10. POSTGRES_ADMIN_USER=''
  11. POSTGRES_ADMIN_PASSWORD=''
  12. POSTGRES_SHARED_HOSTING='y'
  13. read -p 'Enter postgres version which should be used: ' POSTGRES_VERSION
  14. read -p 'Enter host (vm) ip address on which postgres should be accessible: ' POSTGRES_HOST_IP_ADDRESS
  15. read -p 'Enter host (vm) port on which postgres should be accessible: ' POSTGRES_HOST_PORT
  16. read -p 'Enter admin user name for postgres: ' POSTGRES_ADMIN_USER
  17. read -p 'Enter admin password for postgres: ' POSTGRES_ADMIN_PASSWORD
  18. read -p 'Would you like to modify postgres rights for shared hosting? (Y/n)' POSTGRES_SHARED_HOSTING
  19. touch .env
  20. echo "POSTGRES_VERSION="$POSTGRES_VERSION >> .env
  21. echo "POSTGRES_HOST_IP_ADDRESS="$POSTGRES_HOST_IP_ADDRESS >> .env
  22. echo "POSTGRES_HOST_PORT="$POSTGRES_HOST_PORT >> .env
  23. echo "POSTGRES_ADMIN_USER="$POSTGRES_ADMIN_USER >> .env
  24. echo "POSTGRES_ADMIN_PASSWORD="$POSTGRES_ADMIN_PASSWORD >> .env
  25. docker-compose up -d
  26. sleep 5
  27. if [ $POSTGRES_SHARED_HOSTING == 'y' ]; then
  28. touch tmp
  29. echo "REVOKE ALL ON DATABASE template1 FROM public;" >> tmp
  30. echo "REVOKE ALL ON SCHEMA public FROM public;" >> tmp
  31. echo "GRANT ALL ON SCHEMA public TO "$POSTGRES_ADMIN_USER";" >> tmp
  32. echo "REVOKE ALL ON pg_user FROM public;" >> tmp
  33. echo "REVOKE ALL ON pg_roles FROM public;" >> tmp
  34. echo "REVOKE ALL ON pg_group FROM public;" >> tmp
  35. echo "REVOKE ALL ON pg_authid FROM public;" >> tmp
  36. echo "REVOKE ALL ON pg_auth_members FROM public;" >> tmp
  37. echo "REVOKE ALL ON pg_database FROM public;" >> tmp
  38. echo "REVOKE ALL ON pg_tablespace FROM public;" >> tmp
  39. echo "REVOKE ALL ON pg_settings FROM public;" >> tmp
  40. cat tmp | docker exec -i postgres psql -U $POSTGRES_ADMIN_USER -d template1
  41. rm -f tmp