@@ -139,7 +139,35 @@ jobs:
139139 --user root \
140140 grafana/promtail:3.4 -config.file=/etc/promtail/config.yaml || echo "Docker run failed: $?"
141141
142- - name : Deploy Web Service to EC2
142+ - name : Setup pgAdmin config files
143+ run : |
144+ # Parse DATABASE_URL to extract connection details
145+ DB_URL="${{ secrets.DATABASE_URL }}"
146+ DB_HOST=$(echo $DB_URL | sed -n 's/.*@\([^:]*\):.*/\1/p')
147+ DB_USER=$(echo $DB_URL | sed -n 's/.*:\/\/\([^:]*\):.*/\1/p')
148+ DB_PASS=$(echo $DB_URL | sed -n 's/.*:\/\/[^:]*:\([^@]*\)@.*/\1/p')
149+ DB_NAME=$(echo $DB_URL | sed -n 's/.*\/\([^?]*\).*/\1/p')
150+
151+ # Create servers.json with actual DB details
152+ sed "s/HOST_PLACEHOLDER/$DB_HOST/g; s/USER_PLACEHOLDER/$DB_USER/g; s/DB_NAME_PLACEHOLDER/$DB_NAME/g" \
153+ infra/pgadmin/servers.json > servers.json
154+
155+ # Create pgpass with actual credentials
156+ sed "s/HOST_PLACEHOLDER/$DB_HOST/g; s/USER_PLACEHOLDER/$DB_USER/g; s/PASSWORD_PLACEHOLDER/$DB_PASS/g" \
157+ infra/pgadmin/pgpass > pgpass
158+
159+ chmod 600 pgpass
160+
161+ - name : Copy pgAdmin config to EC2
162+ uses : appleboy/scp-action@master
163+ with :
164+ host : ${{ secrets.EC2_HOST }}
165+ username : ubuntu
166+ key : ${{ secrets.EC2_SSH_KEY }}
167+ source : " servers.json,pgpass"
168+ target : " /home/ubuntu"
169+
170+ - name : Deploy Web Service and pgAdmin to EC2
143171 uses : appleboy/ssh-action@master
144172 with :
145173 host : ${{ secrets.EC2_HOST }}
@@ -153,7 +181,25 @@ jobs:
153181 docker pull ${{ secrets.ECR_REGISTRY }}/loa-work/web-service:latest
154182 docker stop web-service || true
155183 docker rm web-service || true
184+ docker stop pgadmin || true
185+ docker rm pgadmin || true
186+
187+ # Start pgAdmin with pre-configured database
188+ docker run -d \
189+ --name pgadmin \
190+ -p 5050:80 \
191+ --log-driver json-file \
192+ --log-opt max-size=10m \
193+ --log-opt max-file=3 \
194+ -e PGADMIN_DEFAULT_EMAIL="admin@loa-work.info" \
195+ -e PGADMIN_DEFAULT_PASSWORD="admin" \
196+ -e PGADMIN_CONFIG_SERVER_MODE=False \
197+ -v /home/ubuntu/servers.json:/pgadmin4/servers.json:ro \
198+ -v /home/ubuntu/pgpass:/pgpass:ro \
199+ --restart always \
200+ dpage/pgadmin4:latest
156201
202+ # Start web service
157203 docker run -d \
158204 --name web-service \
159205 -p 3000:3000 \
0 commit comments