start.sh 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #!/bin/bash
  2. # set -eu -o pipefail
  3. echo "========= Start ========="
  4. echo "==> local.py"
  5. sed -e "s/##APP_DOMAIN##/${APP_DOMAIN}/" \
  6. -e "s/##MAIL_DOMAIN##/${MAIL_DOMAIN}/" \
  7. -e "s/##MAIL_FROM##/${MAIL_FROM}/" \
  8. -e "s/##MAIL_SMTP_SERVER##/${MAIL_SMTP_SERVER}/" \
  9. -e "s/##MAIL_SMTP_PORT##/${MAIL_SMTP_PORT}/" \
  10. -e "s/##MAIL_SMTP_USERNAME##/${MAIL_SMTP_USERNAME}/" \
  11. -e "s/##MAIL_SMTP_PASSWORD##/${MAIL_SMTP_PASSWORD}/" \
  12. -e "s/##POSTGRESQL_DATABASE##/${POSTGRESQL_DATABASE}/" \
  13. -e "s/##POSTGRESQL_USERNAME##/${POSTGRESQL_USERNAME}/" \
  14. -e "s/##POSTGRESQL_PASSWORD##/${POSTGRESQL_PASSWORD}/" \
  15. -e "s/##POSTGRESQL_HOST##/${POSTGRESQL_HOST}/" \
  16. -e "s/##POSTGRESQL_PORT##/${POSTGRESQL_PORT}/" \
  17. /app/code/local.py > /run/local.py
  18. if [[ -n "${LDAP_SERVER:-}" ]]; then
  19. echo "==> setup ldap"
  20. sed -e "s/##LDAP_SERVER##/${LDAP_SERVER}/" \
  21. -e "s/##LDAP_PORT##/${LDAP_PORT}/" \
  22. -e "s/##LDAP_USERS_BASE_DN##/${LDAP_USERS_BASE_DN}/" \
  23. /app/code/local_ldap.py >> /run/local.py
  24. fi
  25. if [[ -n "${LDAP_SERVER:-}" ]]; then
  26. echo "==> Update conf.json with LDAP"
  27. sed -e "s/##APP_DOMAIN##/${APP_DOMAIN}/" /app/code/conf_ldap.json > /run/conf.json
  28. else
  29. echo "==> Update conf.json"
  30. sed -e "s/##APP_DOMAIN##/${APP_DOMAIN}/" /app/code/conf.json > /run/conf.json
  31. fi
  32. echo "==> Update nginx.conf"
  33. sed -e "s,##APP_DOMAIN##,${APP_DOMAIN}," /app/code/nginx.conf > /run/nginx.conf
  34. echo "==> Setup taiga virtual env"
  35. source /app/code/taiga/bin/activate
  36. cd /app/code/taiga-back
  37. if [[ ! -d /app/data/media/user ]]; then
  38. echo "==> New installation create inital project templates"
  39. echo "==> Run migration scripts"
  40. mkdir -p /app/data/media/user
  41. python manage.py migrate --noinput
  42. python manage.py loaddata initial_project_templates
  43. else
  44. echo "==> Run migration scripts"
  45. python manage.py migrate --noinput
  46. fi
  47. # this is done here since old taiga installations do not have a superadmin
  48. echo "==> Create superadmin"
  49. python manage.py loaddata initial_user
  50. echo "==> Make cloudron own /run"
  51. chown -R cloudron:cloudron /run
  52. chown -R cloudron:cloudron /app/data
  53. echo "==> Start nginx"
  54. nginx -c /run/nginx.conf &
  55. echo "==> Start taiga-back"
  56. PATH=/app/code/taiga/bin:$PATH
  57. HOME=/app/code
  58. PYTHONPATH=/app/code/taiga/lib/python3.5/site-packages
  59. cd /app/code/taiga-back
  60. exec /usr/local/bin/gosu cloudron:cloudron gunicorn -w 1 -t 60 --pythonpath=. -b 127.0.0.1:8001 taiga.wsgi