Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
container_deployment.doctree550 linesDownload Raw Back to .doctrees
1�����sphinx.addnodes��document���)��}�(�	rawsource����children�]�(�docutils.nodes��target���)��}�(h�.. _container_deployment:�h]��2attributes�}�(�ids�]��classes�]��names�]��dupnames�]��backrefs�]��refid��container-deployment�u�tagname�h3�line�K�parent�h�	_document�h�source��oD:\a\pgadmin-packaging-foundation\pgadmin-packaging-foundation\pgadmin4-8.6\docs\en_US\container_deployment.rst�ubh	�section���)��}�(hhh]�(h	�title���)��}�(h�`Container Deployment`:index:�h]�(h�index���)��}�(hhh]�h}�(h]�h]�h]�h]�h]��entries�]�(�single��Container Deployment��index-0�hNt�auhh/h"h#hKh h+ubh)��}�(hhh]�h}�(h]�h>ah]�h]�h]�h]�uhh4h h+ubh	�Text����Container Deployment�����}�(h h+h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhh)h h&h!hh"h#hKubh	�	paragraph���)��}�(h�:pgAdmin can be deployed in a container using the image at:�h]�hJ�:pgAdmin can be deployed in a container using the image at:�����}�(h hWh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKh h&h!hubh	�block_quote���)��}�(h�)https://hub.docker.com/r/dpage/pgadmin4/5�h]�hV)��}�(h�(https://hub.docker.com/r/dpage/pgadmin4/�h]�h	�	reference���)��}�(hhmh]�hJ�(https://hub.docker.com/r/dpage/pgadmin4/�����}�(h hqh!hh"NhNubah}�(h]�h]�h]�h]�h]��refuri�hmuhhoh hkubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK	h hgubah}�(h]�h]�h]�h]�h]�uhheh"h#hK	h h&h!hubhV)��}�(h��There are various tags that you can select from to get the version of pgAdmin6that you want, using a command such as this if you're using Docker:�h]�hJ��There are various tags that you can select from to get the version of pgAdmin7that you want, using a command such as this if you’re using Docker:�����}�(h h�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKh h&h!hubh	�
literal_block���)��}�(h�%docker pull dpage/pgadmin4:<tag name>�h]�hJ�%docker pull dpage/pgadmin4:<tag name>�����}�h h�sbah}�(h]�h]�h]�h]�h]��	xml:space��preserve��force���language��bash��highlight_args�}�uhh�h"h#hKh h&h!hubhV)��}�(h�+where *<tag name>* is one of the following:�h]�(hJ�where �����}�(h h�h!hh"NhNubh	�emphasis���)��}�(h�*<tag name>*�h]�hJ�8<tag name>�����}�(h h�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h h�ubhJ� is one of the following:�����}�(h h�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hKh h&h!hubh	�table���)��}�(hhh]�h	�tgroup���)��}�(hhh]�(h	�colspec���)��}�(hhh]�h}�(h]�h]�h]�h]�h]��colwidth�Kuhh�h h�ubh�)��}�(hhh]�h}�(h]�h]�h]�h]�h]��colwidth�Kuhh�h h�ubh	�thead���)��}�(hhh]�h	�row���)��}�(hhh]�(h	�entry���)��}�(hhh]�hV)��}�(h�Tag name�h]�hJ�Tag name�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKh h�ubah}�(h]�h]�h]�h]�h]�uhh�h h�ubh�)��}�(hhh]�hV)��}�(h�Description�h]�hJ�Description�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKh jubah}�(h]�h]�h]�h]�h]�uhh�h h�ubeh}�(h]�h]�h]�h]�h]�uhh�h h�ubah}�(h]�h]�h]�h]�h]�uhh�h h�ubh	�tbody���)��}�(hhh]�(h�)��}�(hhh]�(h�)��}�(hhh]�hV)��}�(h�latest�h]�hJ�latest�����}�(h jCh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKh j@ubah}�(h]�h]�h]�h]�h]�uhh�h j=ubh�)��}�(hhh]�hV)��}�(h�The most recent release.�h]�hJ�The most recent release.�����}�(h jZh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKh jWubah}�(h]�h]�h]�h]�h]�uhh�h j=ubeh}�(h]�h]�h]�h]�h]�uhh�h j:ubh�)��}�(hhh]�(h�)��}�(hhh]�hV)��}�(h�8.4�h]�hJ�8.4�����}�(h jzh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKh jwubah}�(h]�h]�h]�h]�h]�uhh�h jtubh�)��}�(hhh]�hV)��}�(h�&A specific version (8.4 in this case).�h]�hJ�&A specific version (8.4 in this case).�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKh j�ubah}�(h]�h]�h]�h]�h]�uhh�h jtubeh}�(h]�h]�h]�h]�h]�uhh�h j:ubh�)��}�(hhh]�(h�)��}�(hhh]�hV)��}�(h�8�h]�hJ�8�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKh j�ubah}�(h]�h]�h]�h]�h]�uhh�h j�ubh�)��}�(hhh]�hV)��}�(h�Nthe latest release of a specific major version (major version 8 in this case).�h]�hJ�Nthe latest release of a specific major version (major version 8 in this case).�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKh j�ubah}�(h]�h]�h]�h]�h]�uhh�h j�ubeh}�(h]�h]�h]�h]�h]�uhh�h j:ubh�)��}�(hhh]�(h�)��}�(hhh]�hV)��}�(h�snapshot�h]�hJ�snapshot�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK!h j�ubah}�(h]�h]�h]�h]�h]�uhh�h j�ubh�)��}�(hhh]�hV)��}�(h�The latest nightly test build.�h]�hJ�The latest nightly test build.�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK!h j�ubah}�(h]�h]�h]�h]�h]�uhh�h j�ubeh}�(h]�h]�h]�h]�h]�uhh�h j:ubeh}�(h]�h]�h]�h]�h]�uhj8h h�ubeh}�(h]�h]�h]�h]�h]��cols�Kuhh�h h�ubah}�(h]�h]�(�	longtable��colwidths-given�eh]�h]�h]�uhh�h h&h!hh"h#hNubh%)��}�(hhh]�(h*)��}�(h�PostgreSQL Utilities�h]�hJ�PostgreSQL Utilities�����}�(h j1h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh)h j.h!hh"h#hK%ubhV)��}�(hX<The PostgreSQL utilities *pg_dump*, *pg_dumpall*, *pg_restore* and *psql* are9included in the container to allow backups to be created and restored and other10maintenance functions to be executed. Multiple versions are included in the11following directories to allow use with different versions of the database12server:�h]�(hJ�The PostgreSQL utilities �����}�(h j?h!hh"NhNubh�)��}�(h�	*pg_dump*�h]�hJ�pg_dump�����}�(h jGh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j?ubhJ�, �����}�(h j?h!hh"NhNubh�)��}�(h�*pg_dumpall*�h]�hJ�13pg_dumpall�����}�(h jYh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j?ubhJ�, �����}�h j?sbh�)��}�(h�*pg_restore*�h]�hJ�14pg_restore�����}�(h jkh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j?ubhJ� and �����}�(h j?h!hh"NhNubh�)��}�(h�*psql*�h]�hJ�psql�����}�(h j}h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j?ubhJ�� are15included in the container to allow backups to be created and restored and other16maintenance functions to be executed. Multiple versions are included in the17following directories to allow use with different versions of the database18server:�����}�(h j?h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK'h j.h!hubh	�bullet_list���)��}�(hhh]�(h	�	list_item���)��}�(h�$PostgreSQL 12: */usr/local/pgsql-12*�h]�hV)��}�(hj�h]�(hJ�PostgreSQL 12: �����}�(h j�h!hh"NhNubh�)��}�(h�*/usr/local/pgsql-12*�h]�hJ�/usr/local/pgsql-12�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK-h j�ubah}�(h]�h]�h]�h]�h]�uhj�h"h#hK-h j�h!hubj�)��}�(h�$PostgreSQL 13: */usr/local/pgsql-13*�h]�hV)��}�(hj�h]�(hJ�PostgreSQL 13: �����}�(h j�h!hh"NhNubh�)��}�(h�*/usr/local/pgsql-13*�h]�hJ�/usr/local/pgsql-13�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK.h j�ubah}�(h]�h]�h]�h]�h]�uhj�h"h#hK.h j�h!hubj�)��}�(h�$PostgreSQL 14: */usr/local/pgsql-14*�h]�hV)��}�(hj�h]�(hJ�PostgreSQL 14: �����}�(h j�h!hh"NhNubh�)��}�(h�*/usr/local/pgsql-14*�h]�hJ�/usr/local/pgsql-14�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK/h j�ubah}�(h]�h]�h]�h]�h]�uhj�h"h#hK/h j�h!hubj�)��}�(h�$PostgreSQL 15: */usr/local/pgsql-15*�h]�hV)��}�(hj
h]�(hJ�PostgreSQL 15: �����}�(h jh!hh"NhNubh�)��}�(h�*/usr/local/pgsql-15*�h]�hJ�/usr/local/pgsql-15�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK0h jubah}�(h]�h]�h]�h]�h]�uhj�h"h#hK0h j�h!hubj�)��}�(h�%PostgreSQL 16: */usr/local/pgsql-16*19�h]�hV)��}�(h�$PostgreSQL 16: */usr/local/pgsql-16*�h]�(hJ�PostgreSQL 16: �����}�(h j4h!hh"NhNubh�)��}�(h�*/usr/local/pgsql-16*�h]�hJ�/usr/local/pgsql-16�����}�(h j<h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j4ubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK1h j0ubah}�(h]�h]�h]�h]�h]�uhj�h"h#hK1h j�h!hubeh}�(h]�h]�h]�h]�h]��bullet��*�uhj�h"h#hK-h j.h!hubhV)��}�(h�=The default binary paths set in the container are as follows:�h]�hJ�=The default binary paths set in the container are as follows:�����}�(h j^h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK3h j.h!hubh�)��}�(h��DEFAULT_BINARY_PATHS = {20    'pg-16': '/usr/local/pgsql-16',21    'pg-15': '/usr/local/pgsql-15',22    'pg-14': '/usr/local/pgsql-14',23    'pg-13': '/usr/local/pgsql-13',24    'pg-12': '/usr/local/pgsql-12'25}�h]�hJ��DEFAULT_BINARY_PATHS = {26    'pg-16': '/usr/local/pgsql-16',27    'pg-15': '/usr/local/pgsql-15',28    'pg-14': '/usr/local/pgsql-14',29    'pg-13': '/usr/local/pgsql-13',30    'pg-12': '/usr/local/pgsql-12'31}�����}�h jlsbah}�(h]�h]�h]�h]�h]�h�h�h��h��bash�h�}�uhh�h"h#hK5h j.h!hubhV)��}�(h�.this may be changed in the :ref:`preferences`.�h]�(hJ�this may be changed in the �����}�(h j|h!hh"NhNubh�pending_xref���)��}�(h�:ref:`preferences`�h]�h	�inline���)��}�(hj�h]�hJ�preferences�����}�(h j�h!hh"NhNubah}�(h]�h]�(�xref��std��std-ref�eh]�h]�h]�uhj�h j�ubah}�(h]�h]�h]�h]�h]��refdoc��container_deployment��	refdomain�j��reftype��ref��refexplicit���refwarn���	reftarget��preferences�uhj�h"h#hK?h j|ubhJ�.�����}�(h j|h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK?h j.h!hubeh}�(h]��postgresql-utilities�ah]�h]��postgresql utilities�ah]�h]�uhh$h h&h!hh"h#hK%ubh%)��}�(hhh]�(h*)��}�(h�Environment Variables�h]�hJ�Environment Variables�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh)h j�h!hh"h#hKBubhV)��}�(h�=The container will accept the following variables at startup:�h]�hJ�=The container will accept the following variables at startup:�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKDh j�h!hubhV)��}�(h�**PGADMIN_DEFAULT_EMAIL**�h]�h	�strong���)��}�(hj�h]�hJ�PGADMIN_DEFAULT_EMAIL�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j�ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKFh j�h!hubhV)��}�(h��This is the email address used when setting up the initial administrator account32to login to pgAdmin. This variable is required and must be set at launch time.�h]�hJ��This is the email address used when setting up the initial administrator account33to login to pgAdmin. This variable is required and must be set at launch time.�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKHh j�h!hubhV)��}�(h�**PGADMIN_DEFAULT_PASSWORD**�h]�j�)��}�(hjh]�hJ�PGADMIN_DEFAULT_PASSWORD�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h jubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKKh j�h!hubhV)��}�(h��This is the password used when setting up the initial administrator account to34login to pgAdmin. This variable is required and must be set at launch time.�h]�hJ��This is the password used when setting up the initial administrator account to35login to pgAdmin. This variable is required and must be set at launch time.�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKMh j�h!hubhV)��}�(h�!**PGADMIN_DEFAULT_PASSWORD_FILE**�h]�j�)��}�(hj*h]�hJ�PGADMIN_DEFAULT_PASSWORD_FILE�����}�(h j,h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j(ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKPh j�h!hubhV)��}�(hX�This is the password used when setting up the initial administrator account to36login to pgAdmin. This value should be set to *docker secret* in order to set37the password. This variable is supported in docker swarm environment or while creating38container with docker compose. PGADMIN_DEFAULT_PASSWORD or PGADMIN_DEFAULT_PASSWORD_FILE39variable is required and must be set at launch time.�h]�(hJ�}This is the password used when setting up the initial administrator account to40login to pgAdmin. This value should be set to �����}�(h j?h!hh"NhNubh�)��}�(h�*docker secret*�h]�hJ�
docker secret�����}�(h jGh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j?ubhJ�� in order to set41the password. This variable is supported in docker swarm environment or while creating42container with docker compose. PGADMIN_DEFAULT_PASSWORD or PGADMIN_DEFAULT_PASSWORD_FILE43variable is required and must be set at launch time.�����}�(h j?h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hKRh j�h!hubhV)��}�(h�**PGADMIN_DISABLE_POSTFIX**�h]�j�)��}�(hjah]�hJ�PGADMIN_DISABLE_POSTFIX�����}�(h jch!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j_ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKXh j�h!hubhV)��}�(h�*Default: <null>*�h]�h�)��}�(hjxh]�hJ�Default: <null>�����}�(h jzh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jvubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKZh j�h!hubhV)��}�(h�QIf left unset, a Postfix server will be started to deliver password reset44emails.�h]�hJ�QIf left unset, a Postfix server will be started to deliver password reset45emails.�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK\h j�h!hubhV)��}�(h��If set to any value, the Postfix server will not be started, and pgAdmin will46need to be configured to use an external mail server using the *PGADMIN_CONFIG_*47options below.�h]�(hJ��If set to any value, the Postfix server will not be started, and pgAdmin will48need to be configured to use an external mail server using the �����}�(h j�h!hh"NhNubh�)��}�(h�*PGADMIN_CONFIG_*�h]�hJ�PGADMIN_CONFIG_�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�49options below.�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK_h j�h!hubhV)��}�(h��This option is useful if you're running in an environment that prevents the use50of sudo to start Postfix, or if you wish to use an external mail server.�h]�hJ��This option is useful if you’re running in an environment that prevents the use51of sudo to start Postfix, or if you wish to use an external mail server.�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKch j�h!hubhV)��}�(h�**PGADMIN_ENABLE_TLS**�h]�j�)��}�(hj�h]�hJ�PGADMIN_ENABLE_TLS�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j�ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKfh j�h!hubhV)��}�(h�*Default: <null>*�h]�h�)��}�(hj�h]�hJ�Default: <null>�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKhh j�h!hubhV)��}�(h��If left un-set, the container will listen on port 80 for connections in plain52text. If set to any value, the container will listen on port 443 for TLS53connections.�h]�hJ��If left un-set, the container will listen on port 80 for connections in plain54text. If set to any value, the container will listen on port 443 for TLS55connections.�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKjh j�h!hubhV)��}�(h��When TLS is enabled, a certificate and key must be provided. Typically these56should be stored on the host file system and mounted from the container. The57expected paths are /certs/server.cert and /certs/server.key�h]�hJ��When TLS is enabled, a certificate and key must be provided. Typically these58should be stored on the host file system and mounted from the container. The59expected paths are /certs/server.cert and /certs/server.key�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKnh j�h!hubhV)��}�(h�**PGADMIN_LISTEN_ADDRESS**�h]�j�)��}�(hjh]�hJ�PGADMIN_LISTEN_ADDRESS�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h jubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKrh j�h!hubhV)��}�(h�*Default: [::]*�h]�h�)��}�(hj,h]�hJ�
Default: [::]�����}�(h j.h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j*ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKth j�h!hubhV)��}�(h��Specify the local address that the servers listens on. The default should work60for most users - in IPv4-only environments, this may need to be set to610.0.0.0.�h]�hJ��Specify the local address that the servers listens on. The default should work62for most users - in IPv4-only environments, this may need to be set to630.0.0.0.�����}�(h jAh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKvh j�h!hubhV)��}�(h�**PGADMIN_LISTEN_PORT**�h]�j�)��}�(hjQh]�hJ�PGADMIN_LISTEN_PORT�����}�(h jSh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h jOubah}�(h]�h]�h]�h]�h]�uhhUh"h#hKzh j�h!hubhV)��}�(h�(*Default: 80 or 443 (if TLS is enabled)*�h]�h�)��}�(hjhh]�hJ�&Default: 80 or 443 (if TLS is enabled)�����}�(h jjh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jfubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK|h j�h!hubhV)��}�(h�gAllows the port that the server listens on to be set to a specific value rather64than using the default.�h]�hJ�gAllows the port that the server listens on to be set to a specific value rather65than using the default.�����}�(h j}h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK~h j�h!hubhV)��}�(h�**PGADMIN_SERVER_JSON_FILE**�h]�j�)��}�(hj�h]�hJ�PGADMIN_SERVER_JSON_FILE�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j�ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(h�!*Default: /pgadmin4/servers.json*�h]�h�)��}�(hj�h]�hJ�Default: /pgadmin4/servers.json�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(hXOverride the default file path for the server definition list. See the66/pgadmin4/servers.json mapped file below for more information. See the format67of the `Servers JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html#json-format>`_.�h]�(hJ��Override the default file path for the server definition list. See the68/pgadmin4/servers.json mapped file below for more information. See the format69of the �����}�(h j�h!hh"NhNubhp)��}�(h�j`Servers JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html#json-format>`_�h]�hJ�Servers JSON file�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]��name��Servers JSON file��refuri��Shttps://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html#json-format�uhhoh j�ubh)��}�(h�V <https://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html#json-format>�h]�h}�(h]��servers-json-file�ah]�h]��servers json file�ah]�h]��refuri�j�uhh70�71referenced�Kh j�ubhJ�.�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(h�!**PGADMIN_PREFERENCES_JSON_FILE**�h]�j�)��}�(hj�h]�hJ�PGADMIN_PREFERENCES_JSON_FILE�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j�ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(h�%*Default: /pgadmin4/preferences.json*�h]�h�)��}�(hjh]�hJ�#Default: /pgadmin4/preferences.json�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(hX"Override the default file path for the preferences customization at the container creation. See the72/pgadmin4/preferences.json mapped file below for more information. See the format73of the `Preferences JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/preferences.html#json-format>`_.�h]�(hJ��Override the default file path for the preferences customization at the container creation. See the74/pgadmin4/preferences.json mapped file below for more information. See the format75of the �����}�(h jh!hh"NhNubhp)��}�(h�d`Preferences JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/preferences.html#json-format>`_�h]�hJ�Preferences JSON file�����}�(h j!h!hh"NhNubah}�(h]�h]�h]�h]�h]��name��Preferences JSON file�j��Ihttps://www.pgadmin.org/docs/pgadmin4/latest/preferences.html#json-format�uhhoh jubh)��}�(h�L <https://www.pgadmin.org/docs/pgadmin4/latest/preferences.html#json-format>�h]�h}�(h]��preferences-json-file�ah]�h]��preferences json file�ah]�h]��refuri�j1uhh76j�Kh jubhJ�.�����}�(h jh!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(h�**GUNICORN_ACCESS_LOGFILE**�h]�j�)��}�(hjKh]�hJ�GUNICORN_ACCESS_LOGFILE�����}�(h jMh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h jIubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(h�*Default: -* (stdout)�h]�(h�)��}�(h�*Default: -*�h]�hJ�77Default: -�����}�(h jdh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j`ubhJ�	 (stdout)�����}�(h j`h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(h�eSpecify an output file in which to store the Gunicorn access logs, instead of78sending them to stdout.�h]�hJ�eSpecify an output file in which to store the Gunicorn access logs, instead of79sending them to stdout.�����}�(h j|h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(h�**GUNICORN_LIMIT_REQUEST_LINE**�h]�j�)��}�(hj�h]�hJ�GUNICORN_LIMIT_REQUEST_LINE�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j�ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(h�*Default: 8190*�h]�h�)��}�(hj�h]�hJ�
Default: 8190�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(hX3Set the maximum size of HTTP request line in bytes. By default the pgAdmin80container uses the maximum limited size offered by Gunicorn as some requests81can be quite large. In exceptional cases this value can be set to 0 (zero) to82specify "unlimited", however this poses a potential denial of service hazard.�h]�hJX7Set the maximum size of HTTP request line in bytes. By default the pgAdmin83container uses the maximum limited size offered by Gunicorn as some requests84can be quite large. In exceptional cases this value can be set to 0 (zero) to85specify “unlimited”, however this poses a potential denial of service hazard.�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(h�**GUNICORN_THREADS**�h]�j�)��}�(hj�h]�hJ�GUNICORN_THREADS�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j�ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(h�
*Default: 25*�h]�h�)��}�(hj�h]�hJ�Default: 25�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(h��Adjust the number of threads the Gunicorn server uses to handle incoming86requests. This should typically be left as-is, except in highly loaded systems87where it may be increased.�h]�hJ��Adjust the number of threads the Gunicorn server uses to handle incoming88requests. This should typically be left as-is, except in highly loaded systems89where it may be increased.�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(h�**PGADMIN_CONFIG_***�h]�j�)��}�(hjh]�hJ�PGADMIN_CONFIG_*�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h jubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(hX@This is a variable prefix that can be used to override any of the configuration90options in pgAdmin's *config.py* file. Add the *PGADMIN_CONFIG_* prefix to any91variable name from *config.py* and give the value in the format 'string value'92for strings, True/False for booleans or 123 for numbers. See below for an93example.�h]�(hJ�gThis is a variable prefix that can be used to override any of the configuration94options in pgAdmin’s �����}�(h jh!hh"NhNubh�)��}�(h�*config.py*�h]�hJ�	config.py�����}�(h j!h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jubhJ� file. Add the �����}�(h jh!hh"NhNubh�)��}�(h�*PGADMIN_CONFIG_*�h]�hJ�PGADMIN_CONFIG_�����}�(h j3h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jubhJ�" prefix to any95variable name from �����}�(h jh!hh"NhNubh�)��}�(h�*config.py*�h]�hJ�	config.py�����}�(h jEh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jubhJ�� and give the value in the format ‘string value’96for strings, True/False for booleans or 123 for numbers. See below for an97example.�����}�(h jh!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(hXSettings are written to */pgadmin4/config_distro.py* within the container, which98is read after */pgadmin4/config.py* and before */pgadmin4/config_local.py*.99Any settings given will therefore override anything in config.py, but can be100overridden by settings in config_local.py.�h]�(hJ�Settings are written to �����}�(h j]h!hh"NhNubh�)��}�(h�*/pgadmin4/config_distro.py*�h]�hJ�/pgadmin4/config_distro.py�����}�(h jeh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j]ubhJ�+ within the container, which101is read after �����}�(h j]h!hh"NhNubh�)��}�(h�*/pgadmin4/config.py*�h]�hJ�/pgadmin4/config.py�����}�(h jwh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j]ubhJ� and before �����}�(h j]h!hh"NhNubh�)��}�(h�*/pgadmin4/config_local.py*�h]�hJ�/pgadmin4/config_local.py�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j]ubhJ�y.102Any settings given will therefore override anything in config.py, but can be103overridden by settings in config_local.py.�����}�(h j]h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(hX}Settings are only written to */pgadmin4/config_distro.py* once, typically on104first launch of the container. If */pgadmin4/config_distro.py* contains one or105more lines, then no changes are made; for example, if the container instance is106restarted, or */pgadmin4/config_distro.py* is mapped to a file on persistent107storage (not recommended - use */pgadmin4/config_local.py* instead)!�h]�(hJ�Settings are only written to �����}�(h j�h!hh"NhNubh�)��}�(h�*/pgadmin4/config_distro.py*�h]�hJ�/pgadmin4/config_distro.py�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�6 once, typically on108first launch of the container. If �����}�(h j�h!hh"NhNubh�)��}�(h�*/pgadmin4/config_distro.py*�h]�hJ�/pgadmin4/config_distro.py�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�o contains one or109more lines, then no changes are made; for example, if the container instance is110restarted, or �����}�(h j�h!hh"NhNubh�)��}�(h�*/pgadmin4/config_distro.py*�h]�hJ�/pgadmin4/config_distro.py�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�B is mapped to a file on persistent111storage (not recommended - use �����}�(h j�h!hh"NhNubh�)��}�(h�*/pgadmin4/config_local.py*�h]�hJ�/pgadmin4/config_local.py�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�112 instead)!�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubhV)��}�(h�RSee :ref:`config_py` for more information on the available configuration settings.�h]�(hJ�See �����}�(h j�h!hh"NhNubj�)��}�(h�:ref:`config_py`�h]�j�)��}�(hjh]�hJ�	config_py�����}�(h jh!hh"NhNubah}�(h]�h]�(j��std��std-ref�eh]�h]�h]�uhj�h j�ubah}�(h]�h]�h]�h]�h]��refdoc�j��	refdomain�j
�reftype��ref��refexplicit���refwarn��j��	config_py�uhj�h"h#hK�h j�ubhJ�> for more information on the available configuration settings.�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j�h!hubeh}�(h]��environment-variables�ah]�h]��environment variables�ah]�h]�uhh$h h&h!hh"h#hKBubh%)��}�(hhh]�(h*)��}�(h�Mapped Files and Directories�h]�hJ�Mapped Files and Directories�����}�(h j4h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh)h j1h!hh"h#hK�ubhV)��}�(h��The following files or directories can be mapped from the container onto the113host machine to allow configuration to be customised and shared between114instances.�h]�hJ��The following files or directories can be mapped from the container onto the115host machine to allow configuration to be customised and shared between116instances.�����}�(h jBh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j1h!hubh	�warning���)��}�(hX�Warning: pgAdmin runs as the *pgadmin* user (UID: 5050) in the117*pgadmin* group (GID: 5050) in the container. You must ensure that all files118are readable, and where necessary (e.g. the working/session directory)119writeable for this user on the host machine. For example:120 121.. code-block:: bash122 123    sudo chown -R 5050:5050 <host_directory>124 125On some filesystems that do not support extended attributes, it may not be126possible to run pgAdmin without specifying a value for *PGADMIN_LISTEN_PORT*127that is greater than 1024. In such cases, specify an alternate port when128launching the container by adding the environment variable, for example:129 130.. code-block:: bash131 132    -e 'PGADMIN_LISTEN_PORT=5050'133 134Don't forget to adjust any host-container port mapping accordingly.�h]�(hV)��}�(hXWarning: pgAdmin runs as the *pgadmin* user (UID: 5050) in the135*pgadmin* group (GID: 5050) in the container. You must ensure that all files136are readable, and where necessary (e.g. the working/session directory)137writeable for this user on the host machine. For example:�h]�(hJ�Warning: pgAdmin runs as the �����}�(h jVh!hh"NhNubh�)��}�(h�	*pgadmin*�h]�hJ�pgadmin�����}�(h j^h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jVubhJ� user (UID: 5050) in the138�����}�(h jVh!hh"NhNubh�)��}�(h�	*pgadmin*�h]�hJ�pgadmin�����}�(h jph!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jVubhJ�� group (GID: 5050) in the container. You must ensure that all files139are readable, and where necessary (e.g. the working/session directory)140writeable for this user on the host machine. For example:�����}�(h jVh!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h jRubh�)��}�(h�(sudo chown -R 5050:5050 <host_directory>�h]�hJ�(sudo chown -R 5050:5050 <host_directory>�����}�h j�sbah}�(h]�h]�h]�h]�h]�h�h�h��h��bash�h�}�uhh�h"h#hK�h jRubhV)��}�(hX)On some filesystems that do not support extended attributes, it may not be141possible to run pgAdmin without specifying a value for *PGADMIN_LISTEN_PORT*142that is greater than 1024. In such cases, specify an alternate port when143launching the container by adding the environment variable, for example:�h]�(hJ��On some filesystems that do not support extended attributes, it may not be144possible to run pgAdmin without specifying a value for �����}�(h j�h!hh"NhNubh�)��}�(h�*PGADMIN_LISTEN_PORT*�h]�hJ�PGADMIN_LISTEN_PORT�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ��145that is greater than 1024. In such cases, specify an alternate port when146launching the container by adding the environment variable, for example:�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h jRubh�)��}�(h�-e 'PGADMIN_LISTEN_PORT=5050'�h]�hJ�-e 'PGADMIN_LISTEN_PORT=5050'�����}�h j�sbah}�(h]�h]�h]�h]�h]�h�h�h��h��bash�h�}�uhh�h"h#hK�h jRubhV)��}�(h�CDon't forget to adjust any host-container port mapping accordingly.�h]�hJ�EDon’t forget to adjust any host-container port mapping accordingly.�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h jRubeh}�(h]�h]�h]�h]�h]�uhjPh"h#hK�h j1h!hubhV)��}�(h�**/var/lib/pgadmin**�h]�j�)��}�(hj�h]�hJ�/var/lib/pgadmin�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j�ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j1h!hubhV)��}�(hXThis is the working directory in which pgAdmin stores session data, user files,147configuration files, and it's configuration database. Mapping this directory148onto the host machine gives you an easy way to maintain configuration between149invocations of the container.�h]�hJX150This is the working directory in which pgAdmin stores session data, user files,151configuration files, and it’s configuration database. Mapping this directory152onto the host machine gives you an easy way to maintain configuration between153invocations of the container.�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j1h!hubhV)��}�(h�**/pgadmin4/config_local.py**�h]�j�)��}�(hj	h]�hJ�/pgadmin4/config_local.py�����}�(h j	h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j	ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j1h!hubhV)��}�(hX,This file can be used to override configuration settings in pgAdmin. Settings154found in config.py can be overridden with deployment specific values if155required. Settings in config_local.py will also override anything specified in156the container environment through *PGADMIN_CONFIG_* prefixed variables.�h]�(hJXThis file can be used to override configuration settings in pgAdmin. Settings157found in config.py can be overridden with deployment specific values if158required. Settings in config_local.py will also override anything specified in159the container environment through �����}�(h j	h!hh"NhNubh�)��}�(h�*PGADMIN_CONFIG_*�h]�hJ�PGADMIN_CONFIG_�����}�(h j 	h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j	ubhJ� prefixed variables.�����}�(h j	h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j1h!hubhV)��}�(h�**/pgadmin4/servers.json**�h]�j�)��}�(hj:	h]�hJ�/pgadmin4/servers.json�����}�(h j<	h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j8	ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j1h!hubhV)��}�(hXmIf this file is mapped, server definitions found in it will be loaded at launch160time. This allows connection information to be pre-loaded into the instance of161pgAdmin in the container. Note that server definitions are only loaded on first162launch, i.e. when the configuration database is created, and not on subsequent163launches using the same configuration database.�h]�hJXmIf this file is mapped, server definitions found in it will be loaded at launch164time. This allows connection information to be pre-loaded into the instance of165pgAdmin in the container. Note that server definitions are only loaded on first166launch, i.e. when the configuration database is created, and not on subsequent167launches using the same configuration database.�����}�(h jO	h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j1h!hubhV)��}�(h�**/pgadmin4/preferences.json**�h]�j�)��}�(hj_	h]�hJ�/pgadmin4/preferences.json�����}�(h ja	h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j]	ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j1h!hubhV)��}�(hX]If this file is mapped, preferences defined in it will be updated at launch168time. This allows customization of preferences settings into the instance of169pgAdmin in the container. Note that preferences are only set on first170launch, i.e. when the configuration database is created, and not on subsequent171launches using the same configuration database.�h]�hJX]If this file is mapped, preferences defined in it will be updated at launch172time. This allows customization of preferences settings into the instance of173pgAdmin in the container. Note that preferences are only set on first174launch, i.e. when the configuration database is created, and not on subsequent175launches using the same configuration database.�����}�(h jt	h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j1h!hubhV)��}�(h�**/certs/server.cert**�h]�j�)��}�(hj�	h]�hJ�/certs/server.cert�����}�(h j�	h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j�	ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j1h!hubhV)��}�(h�IIf TLS is enabled, this file will be used as the servers TLS certificate.�h]�hJ�IIf TLS is enabled, this file will be used as the servers TLS certificate.�����}�(h j�	h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j1h!hubhV)��}�(h�**/certs/server.key**�h]�j�)��}�(hj�	h]�hJ�/certs/server.key�����}�(h j�	h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhj�h j�	ubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j1h!hubhV)��}�(h�ZIf TLS is enabled, this file will be used as the key file for the servers TLS176certificate.�h]�hJ�ZIf TLS is enabled, this file will be used as the key file for the servers TLS177certificate.�����}�(h j�	h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hK�h j1h!hubeh}�(h]��mapped-files-and-directories�ah]�h]��mapped files and directories�ah]�h]�uhh$h h&h!hh"h#hK�ubh%)��}�(hhh]�(h*)��}�(h�Examples�h]�hJ�Examples�����}�(h j�	h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh)h j�	h!hh"h#hMubhV)��}�(h�$Run a simple container over port 80:�h]�hJ�$Run a simple container over port 80:�����}�(h j�	h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hMh j�	h!hubh�)��}�(h��docker pull dpage/pgadmin4178docker run -p 80:80 \179    -e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \180    -e 'PGADMIN_DEFAULT_PASSWORD=SuperSecret' \181    -d dpage/pgadmin4�h]�hJ��docker pull dpage/pgadmin4182docker run -p 80:80 \183    -e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \184    -e 'PGADMIN_DEFAULT_PASSWORD=SuperSecret' \185    -d dpage/pgadmin4�����}�h j�	sbah}�(h]�h]�h]�h]�h]�h�h�h��h��bash�h�}�uhh�h"h#hMh j�	h!hubhV)��}�(h�HRun a simple container over port 80, setting some configuration options:�h]�hJ�HRun a simple container over port 80, setting some configuration options:�����}�(h j186h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hM
h j�	h!hubh�)��}�(hXPdocker pull dpage/pgadmin4187docker run -p 80:80 \188    -e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \189    -e 'PGADMIN_DEFAULT_PASSWORD=SuperSecret' \190    -e 'PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=True' \191    -e 'PGADMIN_CONFIG_LOGIN_BANNER="Authorised users only!"' \192    -e 'PGADMIN_CONFIG_CONSOLE_LOG_LEVEL=10' \193    -d dpage/pgadmin4�h]�hJXPdocker pull dpage/pgadmin4194docker run -p 80:80 \195    -e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \196    -e 'PGADMIN_DEFAULT_PASSWORD=SuperSecret' \197    -e 'PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=True' \198    -e 'PGADMIN_CONFIG_LOGIN_BANNER="Authorised users only!"' \199    -e 'PGADMIN_CONFIG_CONSOLE_LOG_LEVEL=10' \200    -d dpage/pgadmin4�����}�h j201sbah}�(h]�h]�h]�h]�h]�h�h�h��h��bash�h�}�uhh�h"h#hMh j�	h!hubhV)��}�(h��Run a TLS secured container using a shared config/storage directory in202/private/var/lib/pgadmin on the host, and servers pre-loaded from203/tmp/servers.json on the host:�h]�hJ��Run a TLS secured container using a shared config/storage directory in204/private/var/lib/pgadmin on the host, and servers pre-loaded from205/tmp/servers.json on the host:�����}�(h j!206h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hMh j�	h!hubh�)��}�(hX�docker pull dpage/pgadmin4207docker run -p 443:443 \208    -v /private/var/lib/pgadmin:/var/lib/pgadmin \209    -v /path/to/certificate.cert:/certs/server.cert \210    -v /path/to/certificate.key:/certs/server.key \211    -v /tmp/servers.json:/pgadmin4/servers.json \212    -e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \213    -e 'PGADMIN_DEFAULT_PASSWORD=SuperSecret' \214    -e 'PGADMIN_ENABLE_TLS=True' \215    -d dpage/pgadmin4�h]�hJX�docker pull dpage/pgadmin4216docker run -p 443:443 \217    -v /private/var/lib/pgadmin:/var/lib/pgadmin \218    -v /path/to/certificate.cert:/certs/server.cert \219    -v /path/to/certificate.key:/certs/server.key \220    -v /tmp/servers.json:/pgadmin4/servers.json \221    -e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \222    -e 'PGADMIN_DEFAULT_PASSWORD=SuperSecret' \223    -e 'PGADMIN_ENABLE_TLS=True' \224    -d dpage/pgadmin4�����}�h j/225sbah}�(h]�h]�h]�h]�h]�h�h�h��h��bash�h�}�uhh�h"h#hMh j�	h!hubeh}�(h]��examples�ah]�h]��examples�ah]�h]�uhh$h h&h!hh"h#hMubh%)��}�(hhh]�(h*)��}�(h�Reverse Proxying�h]�hJ�Reverse Proxying�����}�(h jJ226h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh)h jG227h!hh"h#hM,ubhV)��}�(hX�Sometimes it's desirable to have users connect to pgAdmin through a reverse228proxy rather than directly to the container it's running in. The following229examples show how this can be achieved. With traditional reverse proxy servers230such as `Nginx <https://www.nginx.com/>`_, pgAdmin is running in a container on231the same host, with port 5050 on the host mapped to port 80 on the container,232for example:�h]�(hJ��Sometimes it’s desirable to have users connect to pgAdmin through a reverse233proxy rather than directly to the container it’s running in. The following234examples show how this can be achieved. With traditional reverse proxy servers235such as �����}�(h jX236h!hh"NhNubhp)��}�(h�!`Nginx <https://www.nginx.com/>`_�h]�hJ�Nginx�����}�(h j`237h!hh"NhNubah}�(h]�h]�h]�h]�h]��name��Nginx�j��https://www.nginx.com/�uhhoh jX238ubh)��}�(h� <https://www.nginx.com/>�h]�h}�(h]��nginx�ah]�h]��nginx�ah]�h]��refuri�jp239uhh240j�Kh jX241ubhJ��, pgAdmin is running in a container on242the same host, with port 5050 on the host mapped to port 80 on the container,243for example:�����}�(h jX244h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hM.h jG245h!hubh�)��}�(h��docker pull dpage/pgadmin4246docker run -p 5050:80 \247    -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \248    -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \249    -d dpage/pgadmin4�h]�hJ��docker pull dpage/pgadmin4250docker run -p 5050:80 \251    -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \252    -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \253    -d dpage/pgadmin4�����}�h j�254sbah}�(h]�h]�h]�h]�h]�h�h�h��h��bash�h�}�uhh�h"h#hM5h jG255h!hubh%)��}�(hhh]�(h*)��}�(h�#pgAdmin X-Forwarded-* Configuration�h]�hJ�#pgAdmin X-Forwarded-* Configuration�����}�(h j�256h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh)h j�257h!hh"h#hM>ubhV)��}�(h��pgAdmin needs to understand how many proxies set each header so it knows what258values to trust. The configuration parameters for the X-Forwarded-* options259which are used for this purpose are shown below, along with their default260values.�h]�hJ��pgAdmin needs to understand how many proxies set each header so it knows what261values to trust. The configuration parameters for the X-Forwarded-* options262which are used for this purpose are shown below, along with their default263values.�����}�(h j�264h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hM@h j�265h!hubhV)��}�(hXpgAdmin is configured by default to be able to run behind a reverse proxy even266on a non-standard port and these config options don't normally need to be267changed. If you're running an unusual configuration (such as multiple reverse268proxies) you can adjust the configuration to suit.�h]�hJXpgAdmin is configured by default to be able to run behind a reverse proxy even269on a non-standard port and these config options don’t normally need to be270changed. If you’re running an unusual configuration (such as multiple reverse271proxies) you can adjust the configuration to suit.�����}�(h j�272h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hMEh j�273h!hubh�)��}�(hXs# Number of values to trust for X-Forwarded-For274PROXY_X_FOR_COUNT = 1275 276# Number of values to trust for X-Forwarded-Proto.277PROXY_X_PROTO_COUNT = 0278 279# Number of values to trust for X-Forwarded-Host.280PROXY_X_HOST_COUNT = 0281 282# Number of values to trust for X-Forwarded-Port.283PROXY_X_PORT_COUNT = 1284 285# Number of values to trust for X-Forwarded-Prefix.286PROXY_X_PREFIX_COUNT = 0�h]�hJXs# Number of values to trust for X-Forwarded-For287PROXY_X_FOR_COUNT = 1288 289# Number of values to trust for X-Forwarded-Proto.290PROXY_X_PROTO_COUNT = 0291 292# Number of values to trust for X-Forwarded-Host.293PROXY_X_HOST_COUNT = 0294 295# Number of values to trust for X-Forwarded-Port.296PROXY_X_PORT_COUNT = 1297 298# Number of values to trust for X-Forwarded-Prefix.299PROXY_X_PREFIX_COUNT = 0�����}�h j�300sbah}�(h]�h]�h]�h]�h]�h�h�h��h��python�h�}�uhh�h"h#hMJh j�301h!hubeh}�(h]��!pgadmin-x-forwarded-configuration�ah]�h]��#pgadmin x-forwarded-* configuration�ah]�h]�uhh$h jG302h!hh"h#hM>ubh%)��}�(hhh]�(h*)��}�(h�HTTP via Nginx�h]�hJ�HTTP via Nginx�����}�(h j�303h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh)h j�304h!hh"h#hM\ubhV)��}�(h��A configuration similar to the following can be used to create a simple HTTP305reverse proxy listening for all hostnames with `Nginx306<https://www.nginx.com/>`_:�h]�(hJ�|A configuration similar to the following can be used to create a simple HTTP307reverse proxy listening for all hostnames with �����}�(h j�308h!hh"NhNubhp)��}�(h�!`Nginx309<https://www.nginx.com/>`_�h]�hJ�Nginx�����}�(h j�310h!hh"NhNubah}�(h]�h]�h]�h]�h]��name��Nginx�j��https://www.nginx.com/�uhhoh j�311ubh)��}�(h�312<https://www.nginx.com/>�h]�h}�(h]��id2�ah]�h]�h]��nginx�ah]��refuri�juhh313j��h j�314ubhJ�:�����}�(h j�315h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hM^h j�316h!hubh�)��}�(h��server {317    listen 80;318    server_name _;319 320    location / {321        proxy_set_header Host $host;322        proxy_pass http://localhost:5050/;323        proxy_redirect off;324    }325}�h]�hJ��server {326    listen 80;327    server_name _;328 329    location / {330        proxy_set_header Host $host;331        proxy_pass http://localhost:5050/;332        proxy_redirect off;333    }334}�����}�h jsbah}�(h]�h]�h]�h]�h]�h�h�h��h��nginx�h�}�uhh�h"h#hMbh j�335h!hubhV)��}�(h��If you wish to host pgAdmin under a subdirectory rather than on the root of the336server, you must specify the location and set the *X-Script-Name* header which337tells the pgAdmin container how to rewrite paths:�h]�(hJ��If you wish to host pgAdmin under a subdirectory rather than on the root of the338server, you must specify the location and set the �����}�(h j.h!hh"NhNubh�)��}�(h�*X-Script-Name*�h]�hJ�
X-Script-Name�����}�(h j6h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j.ubhJ�? header which339tells the pgAdmin container how to rewrite paths:�����}�(h j.h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hMoh j�340h!hubh�)��}�(h��server {341    listen 80;342    server_name _;343 344    location /pgadmin4/ {345        proxy_set_header X-Script-Name /pgadmin4;346        proxy_set_header Host $host;347        proxy_pass http://localhost:5050/;348        proxy_redirect off;349    }350}�h]�hJ��server {351    listen 80;352    server_name _;353 354    location /pgadmin4/ {355        proxy_set_header X-Script-Name /pgadmin4;356        proxy_set_header Host $host;357        proxy_pass http://localhost:5050/;358        proxy_redirect off;359    }360}�����}�h jNsbah}�(h]�h]�h]�h]�h]�h�h�h��h��nginx�h�}�uhh�h"h#hMsh j�361h!hubhV)��}�(hX!If Nginx is also running in a container, there is no need to map the pgAdmin362port to the host, provided the two containers are running in the same Docker363network. In such a configuration, the *proxy_pass* option would be changed to364point to the pgAdmin container within the Docker network.�h]�(hJ��If Nginx is also running in a container, there is no need to map the pgAdmin365port to the host, provided the two containers are running in the same Docker366network. In such a configuration, the �����}�(h j^h!hh"NhNubh�)��}�(h�*proxy_pass*�h]�hJ�367proxy_pass�����}�(h jfh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j^ubhJ�U option would be changed to368point to the pgAdmin container within the Docker network.�����}�(h j^h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hM�h j�369h!hubeh}�(h]��http-via-nginx�ah]�h]��http via nginx�ah]�h]�uhh$h jG370h!hh"h#hM\ubh%)��}�(hhh]�(h*)��}�(h�HTTPS via Nginx�h]�hJ�HTTPS via Nginx�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh)h j�h!hh"h#hM�ubhV)��}�(hX�The following configuration can be used to serve pgAdmin over HTTPS to the user371whilst the backend container is serving plain HTTP to the proxy server. In this372configuration we not only set *X-Script-Name*, but also *X-Scheme* to tell the373pgAdmin server to generate any URLs using the correct scheme. A redirect from374HTTP to HTTPS is also included. The certificate and key paths may need to be375adjusted as appropriate to the specific deployment:�h]�(hJ��The following configuration can be used to serve pgAdmin over HTTPS to the user376whilst the backend container is serving plain HTTP to the proxy server. In this377configuration we not only set �����}�(h j�h!hh"NhNubh�)��}�(h�*X-Script-Name*�h]�hJ�
X-Script-Name�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�, but also �����}�(h j�h!hh"NhNubh�)��}�(h�378*X-Scheme*�h]�hJ�X-Scheme�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�� to tell the379pgAdmin server to generate any URLs using the correct scheme. A redirect from380HTTP to HTTPS is also included. The certificate and key paths may need to be381adjusted as appropriate to the specific deployment:�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hM�h j�h!hubh�)��}�(hX�server {382    listen 80;383    return 301 https://$host$request_uri;384}385 386server {387    listen 443;388    server_name _;389 390    ssl_certificate /etc/nginx/server.cert;391    ssl_certificate_key /etc/nginx/server.key;392 393    ssl on;394    ssl_session_cache builtin:1000 shared:SSL:10m;395    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;396    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;397    ssl_prefer_server_ciphers on;398 399    location /pgadmin4/ {400        proxy_set_header X-Script-Name /pgadmin4;401        proxy_set_header X-Scheme $scheme;402        proxy_set_header Host $host;403        proxy_pass http://localhost:5050/;404        proxy_redirect off;405    }406}�h]�hJX�server {407    listen 80;408    return 301 https://$host$request_uri;409}410 411server {412    listen 443;413    server_name _;414 415    ssl_certificate /etc/nginx/server.cert;416    ssl_certificate_key /etc/nginx/server.key;417 418    ssl on;419    ssl_session_cache builtin:1000 shared:SSL:10m;420    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;421    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;422    ssl_prefer_server_ciphers on;423 424    location /pgadmin4/ {425        proxy_set_header X-Script-Name /pgadmin4;426        proxy_set_header X-Scheme $scheme;427        proxy_set_header Host $host;428        proxy_pass http://localhost:5050/;429        proxy_redirect off;430    }431}�����}�h j�sbah}�(h]�h]�h]�h]�h]�h�h�h��h��nginx�h�}�uhh�h"h#hM�h j�h!hubeh}�(h]��https-via-nginx�ah]�h]��https via nginx�ah]�h]�uhh$h jG432h!hh"h#hM�ubh%)��}�(hhh]�(h*)��}�(h�Traefik�h]�hJ�Traefik�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh)h j�h!hh"h#hM�ubhV)��}�(hX�Configuring `Traefik <https://traefik.io/>`_ is straightforward for either HTTP433or HTTPS when running pgAdmin in a container as it will automatically configure434itself to serve content from containers that are running on the local machine,435virtual hosting them at *<container_name>.<domain_name>*, where the domain436name is that specified in the Traefik configuration. The container is typically437launched per the example below:�h]�(hJ�Configuring �����}�(h j�h!hh"NhNubhp)��}�(h� `Traefik <https://traefik.io/>`_�h]�hJ�Traefik�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]��name��Traefik�j��https://traefik.io/�uhhoh j�ubh)��}�(h� <https://traefik.io/>�h]�h}�(h]��id3�ah]�h]��traefik�ah]�h]��refuri�j438uhh439j�Kh j�ubhJ�� is straightforward for either HTTP440or HTTPS when running pgAdmin in a container as it will automatically configure441itself to serve content from containers that are running on the local machine,442virtual hosting them at �����}�(h j�h!hh"NhNubh�)��}�(h� *<container_name>.<domain_name>*�h]�hJ�<container_name>.<domain_name>�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ��, where the domain443name is that specified in the Traefik configuration. The container is typically444launched per the example below:�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hM�h j�h!hubh�)��}�(h��docker pull dpage/pgadmin4445docker run --name "pgadmin4" \446    -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \447    -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \448    -d dpage/pgadmin4�h]�hJ��docker pull dpage/pgadmin4449docker run --name "pgadmin4" \450    -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \451    -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \452    -d dpage/pgadmin4�����}�h j4sbah}�(h]�h]�h]�h]�h]�h�h�h��h��bash�h�}�uhh�h"h#hM�h j�h!hubhV)��}�(h��Note that the TCP/IP port has not been mapped to the host as it was in the453Nginx example, and the container name has been set to a known value as it will454be used as the hostname and may need to be added to the DNS zone file.�h]�hJ��Note that the TCP/IP port has not been mapped to the host as it was in the455Nginx example, and the container name has been set to a known value as it will456be used as the hostname and may need to be added to the DNS zone file.�����}�(h jDh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hM�h j�h!hubhV)��}�(h��The following configuration will listen on ports 80 and 443, redirecting 80 to457443, using the default certificate shipped with Traefik. See the Traefik458documentation for options to use certificates from LetsEncrypt or other issuers.�h]�hJ��The following configuration will listen on ports 80 and 443, redirecting 80 to459443, using the default certificate shipped with Traefik. See the Traefik460documentation for options to use certificates from LetsEncrypt or other issuers.�����}�(h jRh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hM�h j�h!hubh�)��}�(hXdefaultEntryPoints = ["http", "https"]461 462[entryPoints]463  [entryPoints.http]464    address = ":80"465      [entryPoints.http.redirect]466        entryPoint = "https"467  [entryPoints.https]468    address = ":443"469      [entryPoints.https.tls]470 471[docker]472domain = "domain_name"473watch = true�h]�hJXdefaultEntryPoints = ["http", "https"]474 475[entryPoints]476  [entryPoints.http]477    address = ":80"478      [entryPoints.http.redirect]479        entryPoint = "https"480  [entryPoints.https]481    address = ":443"482      [entryPoints.https.tls]483 484[docker]485domain = "domain_name"486watch = true�����}�h j`sbah}�(h]�h]�h]�h]�h]�h�h�h��h��ini�h�}�uhh�h"h#hM�h j�h!hubhV)��}�(hXxIf you wish to host pgAdmin under a subdirectory using Traefik, the487configuration changes are typically made to the way the container is launched488and not to Traefik itself. For example, to host pgAdmin under */pgadmin4/*489instead of at the root directory, the Traefik configuration above may be used if490the container is launched like this while using the version v1 of Traefik:�h]�(hJ��If you wish to host pgAdmin under a subdirectory using Traefik, the491configuration changes are typically made to the way the container is launched492and not to Traefik itself. For example, to host pgAdmin under �����}�(h jph!hh"NhNubh�)��}�(h�*/pgadmin4/*�h]�hJ�493/pgadmin4/�����}�(h jxh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jpubhJ��494instead of at the root directory, the Traefik configuration above may be used if495the container is launched like this while using the version v1 of Traefik:�����}�(h jph!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hM�h j�h!hubh�)��}�(hXdocker pull dpage/pgadmin4496docker run --name "pgadmin4" \497    -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \498    -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \499    -e "SCRIPT_NAME=/pgadmin4" \500    -l "traefik.frontend.rule=PathPrefix:/pgadmin4" \501    -d dpage/pgadmin4�h]�hJXdocker pull dpage/pgadmin4502docker run --name "pgadmin4" \503    -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \504    -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \505    -e "SCRIPT_NAME=/pgadmin4" \506    -l "traefik.frontend.rule=PathPrefix:/pgadmin4" \507    -d dpage/pgadmin4�����}�h j�sbah}�(h]�h]�h]�h]�h]�h�h�h��h��bash�h�}�uhh�h"h#hM�h j�h!hubhV)��}�(hXThe *SCRIPT_NAME* environment variable has been set to tell the container it is508being hosted under a subdirectory (in the same way as the *X-Script-Name* header509is used with Nginx), and a label has been added to tell Traefik to route510requests under the subdirectory to this container.�h]�(hJ�The �����}�(h j�h!hh"NhNubh�)��}�(h�
*SCRIPT_NAME*�h]�hJ�SCRIPT_NAME�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�y environment variable has been set to tell the container it is511being hosted under a subdirectory (in the same way as the �����}�(h j�h!hh"NhNubh�)��}�(h�*X-Script-Name*�h]�hJ�
X-Script-Name�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�� header512is used with Nginx), and a label has been added to tell Traefik to route513requests under the subdirectory to this container.�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhUh"h#hM�h j�h!hubhV)��}�(h��While using the Traefik configuration for version v2 for hosting pgAdmin under subdirectory514the container is typically launched per the example below:�h]�hJ��While using the Traefik configuration for version v2 for hosting pgAdmin under subdirectory515the container is typically launched per the example below:�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh"h#hM�h j�h!hubh�)��}�(hX/docker pull dpage/pgadmin4516docker run --name "pgadmin4" \517    -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \518    -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \519    -e "SCRIPT_NAME=/pgadmin4" \520    -l "traefik.frontend.pgadmin4.rule=Host(`host.example.com`) && PathPrefix(`/pgadmin4`)" \521    -d dpage/pgadmin4�h]�hJX/docker pull dpage/pgadmin4522docker run --name "pgadmin4" \523    -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \524    -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \525    -e "SCRIPT_NAME=/pgadmin4" \526    -l "traefik.frontend.pgadmin4.rule=Host(`host.example.com`) && PathPrefix(`/pgadmin4`)" \527    -d dpage/pgadmin4�����}�h j�sbah}�(h]�h]�h]�h]�h]�h�h�h��h��bash�h�}�uhh�h"h#hM�h j�h!hubeh}�(h]��traefik�ah]�h]�h]�jah]�uhh$h jG528h!hh"h#hM�j��ubeh}�(h]��reverse-proxying�ah]�h]��reverse proxying�ah]�h]�uhh$h h&h!hh"h#hM,ubeh}�(h]�(h�id1�eh]�h]�(�container deployment��container_deployment�eh]�h]�uhh$h hh!hh"h#hK�expect_referenced_by_name�}�j
hs�expect_referenced_by_id�}�hhsubeh}�(h]�h]�h]�h]�h]��source�h#�translation_progress�}�(�total�K�529translated�Kuuhh�current_source�N�current_line�N�settings��docutils.frontend��Values���)��}�(�output�Nh)N�	generator�N�	datestamp�N�root_prefix��/��source_link�N�530source_url�N�
toc_backlinks�h��footnote_backlinks���
sectnum_xform���strip_comments�N�strip_elements_with_classes�N�
strip_classes�N�report_level�K�531halt_level�K�exit_status_level�K�debug�N�warning_stream�N�	traceback���input_encoding��	utf-8-sig��input_encoding_error_handler��strict��output_encoding��utf-8��output_encoding_error_handler�j5
�error_encoding��cp1252��error_encoding_error_handler��backslashreplace��
language_code��en��record_dependencies�N�config�N�	id_prefix�h�auto_id_prefix��id��
dump_settings�N�dump_internals�N�dump_transforms�N�dump_pseudo_xml�N�expose_internals�N�strict_visitor�N�_disable_config�N�_source�h#�_destination�N�
_config_files�]��file_insertion_enabled���raw_enabled�K�line_length_limit�M'�pep_references�N�pep_base_url��https://peps.python.org/��pep_file_url_template��pep-%04d��rfc_references�N�rfc_base_url��&https://datatracker.ietf.org/doc/html/��	tab_width�K�trim_footnote_reference_space���syntax_highlight��long��smart_quotes���smartquotes_locales�]��character_level_inline_markup���doctitle_xform���
docinfo_xform���sectsubtitle_xform���
image_loading��link��embed_stylesheet���cloak_email_addresses���section_self_link���env�Nub�reporter�N�indirect_targets�]��substitution_defs�}��substitution_names�}��refnames�}��refids�}�h]�has�nameids�}�(j
hj
j
j�j�j.j+j�j�j;j8j�	j�	jD532jA533j�j�jz534jw535j�536j�537j�j�j�j��traefik�ju�	nametypes�}�(j
�j
�j��j.�j��j;�j�	�jD538�j��jz539�j�540�j��j��jy
�uh}�(hh&j
h&j�j.j+j�j�j�j8j2j�	j1jA541j�	j�jG542jw543jq544j�545j�546j�j�547j
jj�j�j�j�jju�
footnote_refs�}��
citation_refs�}��
autofootnotes�]��autofootnote_refs�]��symbol_footnotes�]��symbol_footnote_refs�]��	footnotes�]��	citations�]��autofootnote_start�K�symbol_footnote_start�K�548id_counter��collections��Counter���}�jC
Ks��R��parse_messages�]�(h	�system_message���)��}�(hhh]�hV)��}�(h�(Duplicate explicit target name: "nginx".�h]�hJ�,Duplicate explicit target name: “nginx”.�����}�(h j�
h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh j�
ubah}�(h]�h]�h]�h]�h]�j
a�level�K�type��INFO��source�h#�line�Kuhj�
h j�549h!hh"h#hM`ubj�
)��}�(hhh]�hV)��}�(h�*Duplicate implicit target name: "traefik".�h]�hJ�.Duplicate implicit target name: “traefik”.�����}�(h j�
h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhUh j�
ubah}�(h]�h]�h]�h]�h]�ja�level�K�type�j�
�source�h#�line�Kuhj�
h j�h!hh"h#hM�ube�transform_messages�]�(j�
)��}�(hhh]�hV)��}�(hhh]�hJ�:Hyperlink target "container-deployment" is not referenced.�����}�h j�
sbah}�(h]�h]�h]�h]�h]�uhhUh j�
ubah}�(h]�h]�h]�h]�h]��level�K�type�j�
�source�h#�line�Kuhj�
ubj�
)��}�(hhh]�hV)��}�(hhh]�hJ�-Hyperlink target "index-0" is not referenced.�����}�h j�
sbah}�(h]�h]�h]�h]�h]�uhhUh j�
ubah}�(h]�h]�h]�h]�h]��level�K�type�j�
�source�h#�line�Kuhj�
ube�transformer�N�include_log�]��550decoration�Nh!hub.
codekingpro/portable-devtools · Team Ai