This container-based kit (was initially used in the Veslo project) contains the following GUI tools for managing data & processes of your web application:
- pgAdmin (https://www.pgadmin.org/) for postgres.
- Redis Commander (https://joeferner.github.io/redis-commander/) for redis.
The kit is designed to provide access from your personal machine and supports configuration for managing both local and remote services.
You need to have a Docker daemon at least 17.05.0-ce
(with build-time ARG in FROM) and the docker-compose tool to successfully cook all containers.
You can choose one of the out-of-box templates for your compose project:
| development | production | |
|---|---|---|
docker-compose.dev.yml.dist |
docker-compose.prod.yml.dist |
|
| network | external, using the existing one by APP_NETWORK_NAME to access services |
custom, using SSH tunnels to production servers |
| ports | 5050 - pgAdmin7070 - Redis Commander |
5151 - pgAdmin7171 - Redis Commander |
Copy and adjust parameters for your environment:
$ cp .env.dist .env
$ cp .docker-compose.dev.yml.dist docker-compose.yml
Ensure users inside docker containers have permissions to the data persistence directories. Quick workaround can be (assume we are at the repository root on some testing server):
$ chmod o+w -R data/
Run the services through docker-compose:
$ docker-compose up -d
For dashboard statistics in production (sessions, transactions per second and other stuff) you need to setup an SSH tunnel directly in the server configuration menu* of your pgadmin web app (not docker). A quick solution can be:
-
Copy your
~/.ssh/id_rsainto persistence directory of the compose project, for example,data/pgadmin-ssh-import/id_rsaand set owning to5050:5050(check uid/gid of pgadmin user within docker container) -
Add a volume mapping to
docker-compose.ymllike that:
...
pgadmin:
...
volumes:
- ${PWD}/data/pgadmin-ssh-import/id_rsa:/pgadmin4/ssh-import/id_rsa:ro
- pgadmin_data:/var/lib/pgadmin
* — See also servers.json file for the pre-install stage.
All notable changes to this project will be documented in CHANGELOG.md.