diff --git a/caprover_create_app.py b/caprover_create_app.py new file mode 100644 index 00000000..542cfe3c --- /dev/null +++ b/caprover_create_app.py @@ -0,0 +1,57 @@ +import logging +import sys + +from environs import Env + +# TODO: I use a locally patched caprover api for no +sys.path.append(r'/Users/daniel/workspace/iterativ-caprover/Caprover-API') +from caprover_api import caprover_api + + +logging.basicConfig(level=logging.DEBUG) + + +env = Env() +env.read_env("./env_secrets/caprover.env") + +cap = caprover_api.CaproverAPI( + dashboard_url=env.str('CAPROVER_DOMAIN'), + password=env.str('CAPROVER_PASSWORD'), +) + +db_pass = env.str('POSTGRES_PASSWORD') +db_user = env.str('POSTGRES_USER') +db_name = env.str('POSTGRES_DB') + +cap.deploy_one_click_app( + one_click_app_name='postgres', + namespace='vbv-lernwelt', + # check https://github.com/caprover/one-click-apps/blob/master/public/v4/apps/postgres.yml + app_variables={ + '$$cap_postgres_version': '14.1', + '$$cap_pg_user': db_user, + '$$cap_pg_pass': db_pass, + '$$cap_pg_db': db_name, + }, + automated=True +) + +cap.create_and_update_app( + app_name='vbv-lernwelt', + enable_ssl=True, + force_ssl=True, + expose_as_web_app=True, + image_name='docker.io/iterativ/vbv-lernwelt-django', + environment_variables={ + # 'DJANGO_SETTINGS_MODULE': 'config.settings.base', + 'VBV_DJANGO_SECRET_KEY': env.str('VBV_DJANGO_SECRET_KEY'), + 'VBV_DJANGO_ADMIN_URL': env.str('VBV_DJANGO_ADMIN_URL'), + 'VBV_DJANGO_ALLOWED_HOSTS': env.str('VBV_DJANGO_ALLOWED_HOSTS'), + 'POSTGRES_HOST': 'srv-captain--vbv-lernwelt-postgres-db', + 'POSTGRES_PORT': 5432, + 'POSTGRES_DB': db_name, + 'POSTGRES_USER': db_user, + 'POSTGRES_PASSWORD': db_pass, + 'VBV_CAPROVER': True, + }, +) diff --git a/compose/django/docker_entrypoint.sh b/compose/django/docker_entrypoint.sh index ade7774d..5192d90e 100644 --- a/compose/django/docker_entrypoint.sh +++ b/compose/django/docker_entrypoint.sh @@ -15,6 +15,8 @@ if [ -z "${POSTGRES_USER}" ]; then fi export VBV_DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}" +echo $VBV_DATABASE_URL + postgres_ready() { python << END import sys diff --git a/env_secrets/caprover.env b/env_secrets/caprover.env new file mode 100644 index 00000000..e32c2e07 Binary files /dev/null and b/env_secrets/caprover.env differ