diff --git a/dev.env b/dev.env index bb5ba94d..5f5e23f3 100644 --- a/dev.env +++ b/dev.env @@ -44,3 +44,7 @@ AWS_S3_BUCKET=appflowy AWS_REGION=us-east-1 RUST_LOG=info + +# PgAdmin +PGADMIN_DEFAULT_EMAIL=admin@example.com +PGADMIN_DEFAULT_PASSWORD=password diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml index 2e44f601..84cf109c 100644 --- a/docker-compose-dev.yml +++ b/docker-compose-dev.yml @@ -21,6 +21,18 @@ services: volumes: - ./migrations/before:/docker-entrypoint-initdb.d + pgadmin: + build: + context: . + dockerfile: docker/pgadmin.Dockerfile + depends_on: + - postgres + environment: + - PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL} + - PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD} + ports: + - 5400:80 + redis: image: redis ports: diff --git a/docker-compose.yml b/docker-compose.yml index f31ff15a..cca4a1fc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -35,6 +35,18 @@ services: volumes: - ./migrations/before:/docker-entrypoint-initdb.d + pgadmin: + build: + context: . + dockerfile: docker/pgadmin.Dockerfile + depends_on: + - postgres + environment: + - PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL} + - PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD} + ports: + - 5400:80 + redis: image: redis ports: diff --git a/docker/pgadmin.Dockerfile b/docker/pgadmin.Dockerfile new file mode 100644 index 00000000..9e124dd0 --- /dev/null +++ b/docker/pgadmin.Dockerfile @@ -0,0 +1,11 @@ +FROM dpage/pgadmin4 + +COPY ./docker/pgadmin/servers.json /pgadmin4/servers.json +COPY ./docker/pgadmin/custom_entrypoint.sh /custom_entrypoint.sh + +USER root +RUN chmod +x /custom_entrypoint.sh + +USER pgadmin + +ENTRYPOINT ["/custom_entrypoint.sh"] diff --git a/docker/pgadmin/custom_entrypoint.sh b/docker/pgadmin/custom_entrypoint.sh new file mode 100755 index 00000000..8cd3dfab --- /dev/null +++ b/docker/pgadmin/custom_entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# Call the original entrypoint +/entrypoint.sh "$@" + +# Your additional commands to invoke setup.py (example below, adjust accordingly) +python setup.py --load-servers /path/to/your/servers.json + +# Keep container running +tail -f /dev/null diff --git a/docker/pgadmin/servers.json b/docker/pgadmin/servers.json new file mode 100644 index 00000000..958969bc --- /dev/null +++ b/docker/pgadmin/servers.json @@ -0,0 +1,12 @@ +{ + "Servers": { + "1": { + "Name": "postgres", + "Group": "Servers", + "Host": "postgres", + "Port": 5432, + "MaintenanceDB": "postgres", + "Username": "postgres" + } + } +} diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 6ddf26b1..d01a8c4e 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -38,6 +38,12 @@ http { proxy_pass http://appflowy_cloud:8000; } + # PgAdmin + location /pgadmin/ { + proxy_set_header X-Script-Name /pgadmin; + proxy_pass http://pgadmin:80/; + } + # Admin Frontend location / { proxy_pass http://admin_frontend:3000;