entrypoint.sh 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #!/usr/bin/env bash
  2. # TODO: Données de postgreSQL dans un volume
  3. # TODO: Mettre des variable d'environn pour la config
  4. # TODO: Supporter le changement des variables d'environnement ? (actuellement utilisé pour générer le .ini)
  5. # TODO: Fichiers de config link ls -s dans un dossier pour VOLUME
  6. # TODO: README QQCH pour les ports ? 80, 3060 et 5333
  7. # TODO: generate cookie secrent (if not yet done)
  8. # TODO: run uwsgi as other user
  9. #
  10. # ENVIRONMENT VARIABLES ARE:
  11. #
  12. # * DATABASE_TYPE (values: postgresql, mysql, sqlite)
  13. # * DATABASE_USER
  14. # * DATABASE PASSWORD
  15. # * DATABASE_HOST
  16. # * DATABASE_NAME
  17. #
  18. # Check environment variables
  19. ./check_env_vars.sh
  20. # MySQL case: engine is mysql+oursql
  21. if [ "$DATABASE_TYPE" = mysql ] ; then
  22. DATABASE_TYPE=mysql+oursql
  23. fi
  24. # Script preparation
  25. FRESH_INSTALL=false
  26. # Start PostgreSQL
  27. service postgresql start # Broken if volume empty ... ???
  28. # Init database if needed
  29. if ! [ "$( su - postgres -s /bin/bash -c "psql -tAc \"SELECT 1 FROM pg_database WHERE datname='tracim'\"" )" = '1' ]; then
  30. FRESH_INSTALL=true
  31. su - postgres -s /bin/bash -c "psql -c \"CREATE DATABASE tracim;\""
  32. su - postgres -s /bin/bash -c "psql -c \"CREATE USER tracim WITH PASSWORD 'tracim';\""
  33. su - postgres -s /bin/bash -c "psql -c \"GRANT ALL PRIVILEGES ON DATABASE tracim TO tracim;\""
  34. fi
  35. # Create config.ini file if no exist
  36. if [ ! -f /etc/tracim/config.ini ]; then
  37. cp /tracim/tracim/development.ini.base /etc/tracim/config.ini
  38. fi
  39. ln -s /etc/tracim/config.ini /tracim/tracim/config.ini
  40. # Create wsgidav.conf file if no exist
  41. if [ ! -f /etc/tracim/wsgidav.conf ]; then
  42. cp /tracim/tracim/wsgidav.conf.sample /etc/tracim/wsgidav.conf
  43. fi
  44. ln -s /etc/tracim/wsgidav.conf /tracim/tracim/wsgidav.conf
  45. # Create uwsgi file if no exist
  46. if [ ! -f /etc/tracim/uwsgi.ini ]; then
  47. cp /tracim/tracim/uwsgi.ini.template /etc/tracim/uwsgi.ini
  48. fi
  49. # Update config with ENV
  50. # TODO Manage other ENV vars
  51. sed -i "s/\(sqlalchemy.url *= *\).*/\1postgresql:\/\/tracim:tracim@127.0.0.1:5432\/tracim?client_encoding=utf8/" /etc/tracim/config.ini
  52. # Initialize database if it is a fresh install
  53. if [ "$FRESH_INSTALL" = true ] ; then
  54. echo "Init tracim database"
  55. cd /tracim/tracim/ && gearbox setup-app -c config.ini
  56. fi
  57. # Start with uwsgi
  58. uwsgi --http-socket 0.0.0.0:80 /etc/tracim/uwsgi.ini