Thread: pgAdmin Docker container: specify web URL path prefix?
Hi everyone, I'm getting into containerized hosting, and I'd like to setup the pgAdmin docker container with a reverse proxy (Traefik). Traefik supports Path Prefix proxying for services (i.e, I'd like to access pgAdmin at host.example.com/pgadmin/). The issue seems to be that pgAdmin automatically rewrites requests to host.example.com/login, which breaks the proxy. I can't seem to find any options that allow us to specify the web path pgAdmin uses, from the perspective of configuring the docker container. Can anyone please confirm this? Thanks in advance, Glen
docker run --name "pgadmin4" \ -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \ -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \ -e "SCRIPT_NAME=/pgadmin4" \ -l "traefik.frontend.rule=PathPrefix:/pgadmin4" \ -d dpage/pgadmin4
Hi everyone,
I'm getting into containerized hosting, and I'd like to setup the
pgAdmin docker container with a reverse proxy (Traefik). Traefik
supports Path Prefix proxying for services (i.e, I'd like to access
pgAdmin at host.example.com/pgadmin/). The issue seems to be that
pgAdmin automatically rewrites requests to host.example.com/login, which
breaks the proxy.
I can't seem to find any options that allow us to specify the web path
pgAdmin uses, from the perspective of configuring the docker container.
Can anyone please confirm this?
Thanks in advance,
Glen
Yogesh,
Not only was my DuckDuckGo-fu failing me, I didn't even get to the bottom of the page...
I had to make a few small tweaks since I'm on Traefikv2, but I'd be happy to update the documentation. Thank you for putting me in the right direction!
Glen
Hi Glen,Please refer to the last point at this web-page for hosting pgadmin4 under subdirectory with Traefik.Here is example when pgadmin4 is hosted under /pgadmin4/docker run --name "pgadmin4" \ -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \ -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \ -e "SCRIPT_NAME=/pgadmin4" \ -l "traefik.frontend.rule=PathPrefix:/pgadmin4" \ -d dpage/pgadmin4Thanks,Yogesh MahajanEnterpriseDBOn Tue, Apr 12, 2022 at 6:23 AM Glen Bakeman <gbakeman@live.com> wrote:Hi everyone,
I'm getting into containerized hosting, and I'd like to setup the
pgAdmin docker container with a reverse proxy (Traefik). Traefik
supports Path Prefix proxying for services (i.e, I'd like to access
pgAdmin at host.example.com/pgadmin/). The issue seems to be that
pgAdmin automatically rewrites requests to host.example.com/login, which
breaks the proxy.
I can't seem to find any options that allow us to specify the web path
pgAdmin uses, from the perspective of configuring the docker container.
Can anyone please confirm this?
Thanks in advance,
Glen
Of course! My docker labels are as follows:
- "traefik.http.routers.pgadmin4.rule=Host(`host.example.com`) && PathPrefix(`/pgadmin4`)"
- "traefik.http.routers.pgadmin4.tls=true"
This assumes that the chosen name for the instance is "pgadmin4", which is entirely up the user. The Host portion was necessary because Traefik will complain otherwise about a lack of specificity in the rule. I also added the .tls line since Traefik will only forward insecure requests without it (not sure why yet). Otherwise, Traefik is able to automatically identify the necessary port on the service to communicate with. I added the SCRIPT_NAME environment variable which seemed to be the key I was missing.
Thanks again for your help,
Glen
Glad to hear it!Can you please share what additional steps are required?Thanks,Yogesh MahajanEnterpriseDBOn Wed, Apr 13, 2022 at 7:49 AM Glen Bakeman <gbakeman@live.com> wrote:Yogesh,
Not only was my DuckDuckGo-fu failing me, I didn't even get to the bottom of the page...
I had to make a few small tweaks since I'm on Traefikv2, but I'd be happy to update the documentation. Thank you for putting me in the right direction!
Glen
On 4/11/2022 9:11 PM, Yogesh Mahajan wrote:Hi Glen,Please refer to the last point at this web-page for hosting pgadmin4 under subdirectory with Traefik.Here is example when pgadmin4 is hosted under /pgadmin4/docker run --name "pgadmin4" \ -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \ -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \ -e "SCRIPT_NAME=/pgadmin4" \ -l "traefik.frontend.rule=PathPrefix:/pgadmin4" \ -d dpage/pgadmin4Thanks,Yogesh MahajanEnterpriseDBOn Tue, Apr 12, 2022 at 6:23 AM Glen Bakeman <gbakeman@live.com> wrote:Hi everyone,
I'm getting into containerized hosting, and I'd like to setup the
pgAdmin docker container with a reverse proxy (Traefik). Traefik
supports Path Prefix proxying for services (i.e, I'd like to access
pgAdmin at host.example.com/pgadmin/). The issue seems to be that
pgAdmin automatically rewrites requests to host.example.com/login, which
breaks the proxy.
I can't seem to find any options that allow us to specify the web path
pgAdmin uses, from the perspective of configuring the docker container.
Can anyone please confirm this?
Thanks in advance,
Glen
For anyone watching this: I've made an issue to track updating the docs. If someone can give me the OK I'll go and get it done.
Glen
Of course! My docker labels are as follows:
- "traefik.http.routers.pgadmin4.rule=Host(`host.example.com`) && PathPrefix(`/pgadmin4`)"
- "traefik.http.routers.pgadmin4.tls=true"This assumes that the chosen name for the instance is "pgadmin4", which is entirely up the user. The Host portion was necessary because Traefik will complain otherwise about a lack of specificity in the rule. I also added the .tls line since Traefik will only forward insecure requests without it (not sure why yet). Otherwise, Traefik is able to automatically identify the necessary port on the service to communicate with. I added the SCRIPT_NAME environment variable which seemed to be the key I was missing.
Thanks again for your help,
Glen
On 4/12/2022 10:19 PM, Yogesh Mahajan wrote:Glad to hear it!Can you please share what additional steps are required?Thanks,Yogesh MahajanEnterpriseDBOn Wed, Apr 13, 2022 at 7:49 AM Glen Bakeman <gbakeman@live.com> wrote:Yogesh,
Not only was my DuckDuckGo-fu failing me, I didn't even get to the bottom of the page...
I had to make a few small tweaks since I'm on Traefikv2, but I'd be happy to update the documentation. Thank you for putting me in the right direction!
Glen
On 4/11/2022 9:11 PM, Yogesh Mahajan wrote:Hi Glen,Please refer to the last point at this web-page for hosting pgadmin4 under subdirectory with Traefik.Here is example when pgadmin4 is hosted under /pgadmin4/docker run --name "pgadmin4" \ -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \ -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \ -e "SCRIPT_NAME=/pgadmin4" \ -l "traefik.frontend.rule=PathPrefix:/pgadmin4" \ -d dpage/pgadmin4Thanks,Yogesh MahajanEnterpriseDBOn Tue, Apr 12, 2022 at 6:23 AM Glen Bakeman <gbakeman@live.com> wrote:Hi everyone,
I'm getting into containerized hosting, and I'd like to setup the
pgAdmin docker container with a reverse proxy (Traefik). Traefik
supports Path Prefix proxying for services (i.e, I'd like to access
pgAdmin at host.example.com/pgadmin/). The issue seems to be that
pgAdmin automatically rewrites requests to host.example.com/login, which
breaks the proxy.
I can't seem to find any options that allow us to specify the web path
pgAdmin uses, from the perspective of configuring the docker container.
Can anyone please confirm this?
Thanks in advance,
Glen
Hi all, I need little help please, I'v already foreign tables (from oracle_fdw) in my postgresql environment. I'm Just looking for script shell or sql ( easy way) to migrate this foreign tables to locale table . My script below has some issue thanks lot ------script migrate--- #!/bin/bash export PGDATA=/pg01/pgdata/9.6/data export PGUSER="postgres" export PGPORT="5433" export PGPASSWORD="ttooe2" for tbl in `psql -qAt data_2020 -c "select foreign_table_name from information_schema.foreign_tables;"`; do psql data_2020 -c "create table public.\"$tbl\" as select * from fdw_link.\"$tbl\"" ; done ----end of script--- the database is : data_2020 foreign_table schema is : fdw_link and want to copy to public schema
Hi all,## note the added semicolon
I need little help please,
I'v already foreign tables (from oracle_fdw) in my postgresql environment.
I'm Just looking for script shell or sql ( easy way) to migrate this foreign tables to locale table .
My script below has some issue
thanks lot
------script migrate---
#!/bin/bash
export PGDATA=/pg01/pgdata/9.6/data
export PGUSER="postgres"
export PGPORT="5433"
export PGPASSWORD="ttooe2"
for tbl in `psql -qAt data_2020 -c "select foreign_table_name from information_schema.foreign_tables;"`;
do
psql data_2020 -c "create table public.\"$tbl\" as select * from fdw_link.\"$tbl\";"Here, either psql COPY the fdw_link.\"$tbl\" data OUT to a local file, and then COPY IN to public.\"$tbl\" OR INSERT INTO public.\"$tbl\" SELECT * FROM fdw_link.\"$tbl\";
done
----end of script---
the database is : data_2020
foreign_table schema is : fdw_link
and want to copy to public schema
Angular momentum makes the world go 'round.
Hi Ron,
It works
Thanks for your contribution
khoff.
Please do not hijack existing threads.On 5/19/22 18:55, koff wrote:Hi all,## note the added semicolon
I need little help please,
I'v already foreign tables (from oracle_fdw) in my postgresql environment.
I'm Just looking for script shell or sql ( easy way) to migrate this foreign tables to locale table .
My script below has some issue
thanks lot
------script migrate---
#!/bin/bash
export PGDATA=/pg01/pgdata/9.6/data
export PGUSER="postgres"
export PGPORT="5433"
export PGPASSWORD="ttooe2"
for tbl in `psql -qAt data_2020 -c "select foreign_table_name from information_schema.foreign_tables;"`;
dopsql data_2020 -c "create table public.\"$tbl\" as select * from fdw_link.\"$tbl\";"Here, either psql COPY the fdw_link.\"$tbl\" data OUT to a local file, and then COPY IN to public.\"$tbl\" OR INSERT INTO public.\"$tbl\" SELECT * FROM fdw_link.\"$tbl\";done
----end of script---
the database is : data_2020
foreign_table schema is : fdw_link
and want to copy to public schema--
Angular momentum makes the world go 'round.