From 54c315dcd78186f695d8590fe66176d50f452a98 Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Wed, 2 Feb 2022 23:42:17 +0100 Subject: [PATCH] Add caprover deployment --- caprover_create_app.py | 57 ++++++++++++++++++++++++++++ compose/django/docker_entrypoint.sh | 2 + env_secrets/caprover.env | Bin 0 -> 1411 bytes 3 files changed, 59 insertions(+) create mode 100644 caprover_create_app.py create mode 100644 env_secrets/caprover.env 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 0000000000000000000000000000000000000000..e32c2e07849658d933246af8ed7ab0eb483bc3e4 GIT binary patch literal 1411 zcmV-}1$_DdM@dveQdv+`0B#w@)wOIfJO#fZ1qwE+6{d3hBx5^Hfs-k{xx5wEPo81) zyq(((=v%AwIQPg@3d6rON#{9ZaBtM?|TD)xo>rukHEeK)QoB%F;=8bL0YT)h9mG?Y3}PCAyL5%u52 zD!%_kC_?&*xc2jz;rG`opJ2ggg$5k!x7h_Qn9v1jV!?a~=^osXHet+`67kZOb|4mb zr@37^9jUmC8SkKk)iHj_JS53gt|lR~c6ZWeW%iYRoK3d-!Y;cy9u}QgvFGQK{W=$c zP>^o2E`K;Bs3Ug6Ro^*?qw%K~@T{SO^lZFqo)cP-i_K1iN!CiGA@v#j8QAVPiIJ|+zG1H}ac$=+( z>dw0DGX%fLKc#$V_mo@aYNC!RoAJH!AgdgHD1MabD?)wxZQH!)eE5EGX1i!V#UKH zzs0MLO|UX5GCT!%p=&Ed!C6)KAzB9jp_ld4$piR#_F*x@7I^EN+&tv>v~yw$5?tmI zWzT6&;-9@tes`isY_ibC^yAJN=wsy6y*pt{FU!rCEW~Pr(zC-HBG;0Av?JwacnN7v z)P;1}DXZdZVHG?N9)gpHO7gCSSSCBq!;2l-)kSBF0JOKTLHSN#-u_0rxCh>2mryU} z;8pN2R+&+w%&enIsvzusPRJM?qFNo7ze1xZJ91mPCL@;eR3xb42-g?PTml7TK2jLS zj!1xQHD^twt65=tAkAb8j3OgiC?7#J>XSJMfHr0mn zm3n%Y%ZU`A1HDeVnrWn;<)Z-m^^-lBbLr2HwX3j)6t`erDcIu6w+HU>oxx1mu*z#( zC&@GO=HHpvSALe~MhaYpq^uDi(yZ5GHW4i$)~K2MrJ^#M0(VgPJ*c9L1q7*6vkU^% zvfN6Go*KM**qn8z-aYckZ?}1`m*?U&#m5Z0yOv*~5%v%mSoRR4BleSvNh!1RC`jNV z(&-*(2!gH*)OAxiRhj6=>(a5hHIX`K!_!}_0}}xd;Jt}6WCz>u!@UtQq(Xng|T+bro6>TWWTz7vgn?wF$*p3ByPtl+!(eJ*#Qy0bAI_F(1C{9oyz?}>G#I5+x*@7o z_p>~BDio?0xiPTlc^j7oV@b~kXlbpxt5IVIVim(48Z$Q+OJ+l+1HHv}A~>kI5KU9X Rkw-GBf|Go-*a@9@ZLnrs${qj! literal 0 HcmV?d00001