├── .editorconfig ├── .gitignore ├── Makefile ├── beanstalkd └── 1.12 │ ├── Makefile │ └── compose.yml ├── cube-11.png ├── kafka └── 6.1 │ ├── Makefile │ └── compose.yml ├── keycloak ├── 24.0 │ ├── Makefile │ ├── compose.yml │ └── conf │ │ ├── cloudbeaver.conf │ │ ├── initial-data-sources.conf │ │ └── initial-data.conf └── 25.0 │ ├── Makefile │ ├── compose.yml │ └── conf │ ├── cloudbeaver.conf │ ├── initial-data-sources.conf │ └── initial-data.conf ├── license ├── mariadb ├── 10.5 │ ├── Makefile │ └── compose.yml ├── 10.6 │ ├── Makefile │ └── compose.yml ├── 11.0 │ ├── Makefile │ └── compose.yml └── 11.4 │ ├── Makefile │ └── compose.yml ├── memcached └── 1.6 │ ├── Makefile │ └── compose.yml ├── minio └── latest │ ├── Makefile │ └── compose.yml ├── mongo ├── 4.4 │ ├── Makefile │ └── compose.yml ├── 5.0 │ ├── Makefile │ └── compose.yml ├── 6.0 │ ├── Makefile │ └── compose.yml ├── 7.0 │ ├── Makefile │ └── compose.yml └── 8.0 │ ├── Makefile │ └── compose.yml ├── mysql ├── 5.7 │ ├── Makefile │ └── compose.yml ├── 8.0 │ ├── Makefile │ └── compose.yml ├── 8.4 │ ├── Makefile │ └── compose.yml └── 9.0 │ ├── Makefile │ └── compose.yml ├── postgres ├── 16 │ ├── Makefile │ └── compose.yml ├── 17 │ ├── Makefile │ └── compose.yml ├── 13.2 │ ├── Makefile │ ├── compose.yml │ └── config │ │ ├── pgpassfile │ │ └── servers.json ├── 14.2 │ ├── Makefile │ ├── compose.yml │ └── config │ │ ├── pgpassfile │ │ └── servers.json └── 15.3 │ ├── Makefile │ └── compose.yml ├── rabbitmq ├── 3.10 │ ├── Makefile │ └── compose.yml └── 4.0 │ ├── Makefile │ └── compose.yml ├── readme.md ├── redis ├── 6.2 │ ├── Makefile │ └── compose.yml ├── 7.0 │ ├── Makefile │ └── compose.yml └── 7.2 │ ├── Makefile │ └── compose.yml ├── terminal.gif └── zipkin └── 3.1 ├── Makefile ├── collector_config.yml └── compose.yml /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [Makefile] 13 | indent_size = 4 14 | indent_style = tab 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .EXPORT_ALL_VARIABLES: 2 | 3 | DEVBOX_ENGINE ?= "" 4 | DEVBOX_PROJECT_PREFIX = devbox 5 | 6 | .PHONY: default 7 | default: help ; 8 | 9 | compose-cmd: 10 | DEVBOX_COMPOSE_CMD = docker compose 11 | ifeq ($(strip $(DEVBOX_ENGINE)),docker) 12 | DEVBOX_COMPOSE_CMD = docker compose 13 | endif 14 | ifeq ($(strip $(DEVBOX_ENGINE)),podman) 15 | DEVBOX_COMPOSE_CMD = podman compose 16 | endif 17 | 18 | help: 19 | @echo 20 | @echo "Devbox: Easily developer environments using docker" 21 | @echo "Help commands:" 22 | @echo 23 | @echo " make beanstalkd1.12-help Help about Beanstalkd 1.12 services" 24 | @echo " make kafka6.1-help Help about Kafka 6.1 services" 25 | @echo " make keycloak24.0-help Help about Keycloak 24.0 services" 26 | @echo " make keycloak25.0-help Help about Keycloak 25.0 services" 27 | @echo " make mariadb10.5-help Help about MariaDB 10.5 services" 28 | @echo " make mariadb10.6-help Help about MariaDB 10.6 services" 29 | @echo " make mariadb11.0-help Help about MariaDB 11.0 services" 30 | @echo " make mariadb11.4-help Help about MariaDB 11.4 services" 31 | @echo " make memcached1.6-help Help about Memcached 1.6 services" 32 | @echo " make minio-help Help about MinIO latest services" 33 | @echo " make mongo4.4-help Help about Mongo 4.4 services" 34 | @echo " make mongo5.0-help Help about Mongo 5.0 services" 35 | @echo " make mongo6.0-help Help about Mongo 6.0 services" 36 | @echo " make mongo7.0-help Help about Mongo 7.0 services" 37 | @echo " make mongo8.0-help Help about Mongo 8.0 services" 38 | @echo " make mysql5.7-help Help about MySQL 5.7 services" 39 | @echo " make mysql8.0-help Help about MySQL 8.0 services" 40 | @echo " make mysql8.4-help Help about MySQL 8.4 services" 41 | @echo " make mysql9.0-help Help about MySQL 9.0 services" 42 | @echo " make postgres13.2-help Help about Postgres 13.2 services" 43 | @echo " make postgres14.2-help Help about Postgres 14.2 services" 44 | @echo " make postgres15.3-help Help about Postgres 15.3 services" 45 | @echo " make postgres16-help Help about Postgres 16 services" 46 | @echo " make postgres17-help Help about Postgres 17 services" 47 | @echo " make rabbitmq3.10-help Help about RabbitMQ 3.10 services" 48 | @echo " make rabbitmq4.0-help Help about RabbitMQ 4.0 services" 49 | @echo " make redis6.2-help Help about Redis 6.2 services" 50 | @echo " make redis7.0-help Help about Redis 7.0 services" 51 | @echo " make redis7.2-help Help about Redis 7.2 services" 52 | @echo " make zipkin3.1-help Help about Zipkin 3.1 services" 53 | @echo 54 | 55 | include beanstalkd/1.12/Makefile 56 | include kafka/6.1/Makefile 57 | include keycloak/24.0/Makefile 58 | include keycloak/25.0/Makefile 59 | include mariadb/10.5/Makefile 60 | include mariadb/10.6/Makefile 61 | include mariadb/11.0/Makefile 62 | include mariadb/11.4/Makefile 63 | include memcached/1.6/Makefile 64 | include minio/latest/Makefile 65 | include mongo/4.4/Makefile 66 | include mongo/5.0/Makefile 67 | include mongo/6.0/Makefile 68 | include mongo/7.0/Makefile 69 | include mongo/8.0/Makefile 70 | include mysql/5.7/Makefile 71 | include mysql/8.0/Makefile 72 | include mysql/8.4/Makefile 73 | include mysql/9.0/Makefile 74 | include postgres/13.2/Makefile 75 | include postgres/14.2/Makefile 76 | include postgres/15.3/Makefile 77 | include postgres/16/Makefile 78 | include postgres/17/Makefile 79 | include rabbitmq/3.10/Makefile 80 | include rabbitmq/4.0/Makefile 81 | include redis/6.2/Makefile 82 | include redis/7.0/Makefile 83 | include redis/7.2/Makefile 84 | include zipkin/3.1/Makefile 85 | -------------------------------------------------------------------------------- /beanstalkd/1.12/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_BEANSTALKD112_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}g1l 2 | 3 | DEVBOX_BEANSTALKD112_BROKER_PORT ?= 21300 4 | DEVBOX_BEANSTALKD112_BEANSTALK_CONSOLE_PORT ?= 21301 5 | 6 | beanstalkd1.12-up: compose-cmd ; 7 | ${DEVBOX_COMPOSE_CMD} -f beanstalkd/1.12/compose.yml -p ${DEVBOX_BEANSTALKD112_PROJECT_NAME} up -d 8 | 9 | beanstalkd1.12-down: compose-cmd ; 10 | ${DEVBOX_COMPOSE_CMD} -f beanstalkd/1.12/compose.yml -p ${DEVBOX_BEANSTALKD112_PROJECT_NAME} down 11 | 12 | beanstalkd1.12-status: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f beanstalkd/1.12/compose.yml -p ${DEVBOX_BEANSTALKD112_PROJECT_NAME} ps 14 | 15 | beanstalkd1.12-logs: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f beanstalkd/1.12/compose.yml -p ${DEVBOX_BEANSTALKD112_PROJECT_NAME} logs -f 17 | 18 | beanstalkd1.12-purge: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f beanstalkd/1.12/compose.yml -p ${DEVBOX_BEANSTALKD112_PROJECT_NAME} down --volumes 20 | 21 | beanstalkd1.12-command: compose-cmd ; 22 | @echo "${DEVBOX_COMPOSE_CMD} -f beanstalkd/1.12/compose.yml -p ${DEVBOX_BEANSTALKD112_PROJECT_NAME}" 23 | 24 | beanstalkd1.12-help: 25 | @echo 26 | @echo "Commands:" 27 | @echo 28 | @echo " make beanstalkd1.12-up Start Beanstalkd 1.12 service and management tools" 29 | @echo " make beanstalkd1.12-down Stop Beanstalkd 1.12 service and management tools" 30 | @echo " make beanstalkd1.12-status Status from running services" 31 | @echo " make beanstalkd1.12-logs Logs from running services" 32 | @echo " make beanstalkd1.12-purge Delete all Beanstalkd 1.12 data" 33 | @echo " make beanstalkd1.12-info Information about the services for use" 34 | @echo " make beanstalkd1.12-command Print docker compose command" 35 | @echo " make beanstalkd1.12-help This help :)" 36 | @echo 37 | @echo "Available configurable environment variables:" 38 | @echo 39 | @echo " DEVBOX_BEANSTALKD112_BROKER_PORT Port to expose Beanstalkd 1.12 in docker for your environment" 40 | @echo " DEVBOX_BEANSTALKD112_BEANSTALK_CONSOLE_PORT Port to expose Beanstalkd console in docker for access in your browser" 41 | 42 | beanstalkd1.12-info: 43 | @echo 44 | @echo "Beanstalkd 1.12 information" 45 | @echo 46 | @echo " Broker Host: 127.0.0.1" 47 | @echo " Broker Port: ${DEVBOX_BEANSTALKD112_BROKER_PORT}" 48 | @echo " Management: http://127.0.0.1:${DEVBOX_BEANSTALKD112_BEANSTALK_CONSOLE_PORT}" 49 | @echo 50 | -------------------------------------------------------------------------------- /beanstalkd/1.12/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | broker: 3 | image: maateen/docker-beanstalkd:1.12-alpine-latest 4 | volumes: 5 | - beanstalkd112_broker_data:/var/cache/beanstalkd 6 | networks: 7 | beanstalkd112_network_local: 8 | aliases: 9 | - broker.beanstalkd112.devbox.local 10 | hostname: broker.beanstalkd112.devbox.local 11 | ports: 12 | - ${DEVBOX_BEANSTALKD112_BROKER_PORT:-21300}:11300 13 | beanstalk-console: 14 | image: ghcr.io/joubertredrat/devbox-containers/ptrofimov-beanstalk-console:1.7.19 15 | depends_on: 16 | broker: 17 | condition: service_healthy 18 | environment: 19 | BEANSTALKD_HOST: broker.beanstalkd112.devbox.local 20 | BEANSTALKD_PORT: 11300 21 | networks: 22 | beanstalkd112_network_local: 23 | aliases: 24 | - beanstalk-console.beanstalkd112.devbox.local 25 | hostname: beanstalk-console.beanstalkd112.devbox.local 26 | ports: 27 | - ${DEVBOX_BEANSTALKD112_BEANSTALK_CONSOLE_PORT:-21301}:80 28 | healthcheck: 29 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"] 30 | interval: 3s 31 | timeout: 1s 32 | retries: 20 33 | 34 | volumes: 35 | beanstalkd112_broker_data: 36 | 37 | networks: 38 | beanstalkd112_network_local: 39 | driver: bridge 40 | -------------------------------------------------------------------------------- /cube-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joubertredrat/devbox/e2e75163b4a8e5460192ff11ddb3375cd66ebec4/cube-11.png -------------------------------------------------------------------------------- /kafka/6.1/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_KAFKA61_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}ksh 2 | 3 | DEVBOX_KAFKA61_ZOOKEEPER_EXPORT_PORT ?= 22181 4 | DEVBOX_KAFKA61_KAFROP_EXPORT_PORT ?= 29092 5 | DEVBOX_KAFKA61_KAFKAUI_EXPORT_PORT ?= 29093 6 | DEVBOX_KAFKA61_KOWL_EXPORT_PORT ?= 29094 7 | 8 | kafka6.1-up: compose-cmd ; 9 | ${DEVBOX_COMPOSE_CMD} -f kafka/6.1/compose.yml -p ${DEVBOX_KAFKA61_PROJECT_NAME} up -d 10 | 11 | kafka6.1-down: compose-cmd ; 12 | ${DEVBOX_COMPOSE_CMD} -f kafka/6.1/compose.yml -p ${DEVBOX_KAFKA61_PROJECT_NAME} down --volumes 13 | 14 | kafka6.1-status: compose-cmd ; 15 | ${DEVBOX_COMPOSE_CMD} -f kafka/6.1/compose.yml -p ${DEVBOX_KAFKA61_PROJECT_NAME} ps 16 | 17 | kafka6.1-logs: compose-cmd ; 18 | ${DEVBOX_COMPOSE_CMD} -f kafka/6.1/compose.yml -p ${DEVBOX_KAFKA61_PROJECT_NAME} logs -f 19 | 20 | kafka6.1-command: compose-cmd ; 21 | @echo "${DEVBOX_COMPOSE_CMD} -f kafka/6.1/compose.yml -p ${DEVBOX_KAFKA61_PROJECT_NAME}" 22 | 23 | kafka6.1-help: 24 | @echo 25 | @echo "Commands:" 26 | @echo 27 | @echo " make kafka6.1-up Start Kafka 6.1 service and management tools" 28 | @echo " make kafka6.1-down Stop Kafka 6.1 service and management tools" 29 | @echo " make kafka6.1-status Status from running services" 30 | @echo " make kafka6.1-logs Logs from running services" 31 | @echo " make kafka6.1-info Information about the services for use" 32 | @echo " make kafka6.1-command Print docker compose command" 33 | @echo " make kafka6.1-help This help :)" 34 | @echo 35 | @echo "Available configurable environment variables:" 36 | @echo 37 | @echo " DEVBOX_KAFKA61_ZOOKEEPER_EXPORT_PORT Port to expose Zookeeper in docker for your environment" 38 | @echo " DEVBOX_KAFKA61_KAFROP_EXPORT_PORT Port to expose Kafdrop in docker for access in your browser" 39 | @echo " DEVBOX_KAFKA61_KAFKAUI_EXPORT_PORT Port to expose Kafka UI in docker for access in your browser" 40 | @echo " DEVBOX_KAFKA61_KOWL_EXPORT_PORT Port to expose Kafka UI in docker for access in your browser" 41 | @echo 42 | 43 | kafka6.1-info: 44 | @echo 45 | @echo "Kafka 6.1 information" 46 | @echo 47 | @echo " Brokers Host: 127.0.0.1" 48 | @echo " Broker 1 Port: 9092" 49 | @echo " Broker 2 Port: 9093" 50 | @echo " Broker 3 Port: 9094" 51 | @echo " Zookeeper Port: ${DEVBOX_KAFKA61_ZOOKEEPER_EXPORT_PORT}" 52 | @echo " Kafdrop: http://127.0.0.1:${DEVBOX_KAFKA61_KAFROP_EXPORT_PORT}" 53 | @echo " Kafka UI: http://127.0.0.1:${DEVBOX_KAFKA61_KAFKAUI_EXPORT_PORT}" 54 | @echo " Kowl: http://127.0.0.1:${DEVBOX_KAFKA61_KOWL_EXPORT_PORT}" 55 | @echo 56 | -------------------------------------------------------------------------------- /kafka/6.1/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | zookeeper: 3 | image: confluentinc/cp-zookeeper:6.1.1 4 | environment: 5 | ZOOKEEPER_CLIENT_PORT: 2181 6 | ZOOKEEPER_TICK_TIME: 2000 7 | volumes: 8 | - kafka61_zookeeper_data:/data 9 | networks: 10 | kafka61_network_local: 11 | aliases: 12 | - zookeeper.kafka61.devbox.local 13 | hostname: zookeeper.kafka61.devbox.local 14 | ports: 15 | - ${DEVBOX_KAFKA61_ZOOKEEPER_EXPORT_PORT:-22181}:2181 16 | healthcheck: 17 | test: ["CMD", "nc", "-vz", "127.0.0.1", "2181"] 18 | start_period: 5s 19 | interval: 3s 20 | timeout: 1s 21 | retries: 20 22 | broker1: 23 | image: confluentinc/cp-kafka:6.1.1 24 | depends_on: 25 | zookeeper: 26 | condition: service_healthy 27 | environment: 28 | KAFKA_BROKER_ID: 1 29 | KAFKA_ZOOKEEPER_CONNECT: zookeeper.kafka61.devbox.local:2181 30 | KAFKA_ZOOKEEPER_CONNECTION_TIMEOUT_MS: 36000 31 | KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT 32 | KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://broker1.kafka61.devbox.local:19092,LISTENER_DOCKER_EXTERNAL://127.0.0.1:9092 33 | KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL 34 | volumes: 35 | - kafka61_broker1_data:/var/lib/kafka/data 36 | networks: 37 | kafka61_network_local: 38 | aliases: 39 | - broker1.kafka61.devbox.local 40 | hostname: broker1.kafka61.devbox.local 41 | ports: 42 | - 9092:9092 43 | healthcheck: 44 | test: ["CMD", "nc", "-vz", "127.0.0.1", "9092"] 45 | start_period: 80s 46 | interval: 3s 47 | timeout: 1s 48 | retries: 20 49 | broker2: 50 | image: confluentinc/cp-kafka:6.1.1 51 | depends_on: 52 | zookeeper: 53 | condition: service_healthy 54 | broker1: 55 | condition: service_healthy 56 | environment: 57 | KAFKA_BROKER_ID: 2 58 | KAFKA_ZOOKEEPER_CONNECT: zookeeper.kafka61.devbox.local:2181 59 | KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT 60 | KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://broker2.kafka61.devbox.local:19093,LISTENER_DOCKER_EXTERNAL://127.0.0.1:9093 61 | KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL 62 | volumes: 63 | - kafka61_broker2_data:/var/lib/kafka/data 64 | networks: 65 | kafka61_network_local: 66 | aliases: 67 | - broker2.kafka61.devbox.local 68 | hostname: broker2.kafka61.devbox.local 69 | ports: 70 | - 9093:9093 71 | healthcheck: 72 | test: ["CMD", "nc", "-vz", "127.0.0.1", "9093"] 73 | start_period: 80s 74 | interval: 3s 75 | timeout: 1s 76 | retries: 20 77 | broker3: 78 | image: confluentinc/cp-kafka:6.1.1 79 | depends_on: 80 | zookeeper: 81 | condition: service_healthy 82 | broker1: 83 | condition: service_healthy 84 | broker2: 85 | condition: service_healthy 86 | environment: 87 | KAFKA_BROKER_ID: 3 88 | KAFKA_ZOOKEEPER_CONNECT: zookeeper.kafka61.devbox.local:2181 89 | KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT 90 | KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://broker3.kafka61.devbox.local:19094,LISTENER_DOCKER_EXTERNAL://127.0.0.1:9094 91 | KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL 92 | volumes: 93 | - kafka61_broker3_data:/var/lib/kafka/data 94 | networks: 95 | kafka61_network_local: 96 | aliases: 97 | - broker3.kafka61.devbox.local 98 | hostname: broker3.kafka61.devbox.local 99 | ports: 100 | - 9094:9094 101 | healthcheck: 102 | test: ["CMD", "nc", "-vz", "127.0.0.1", "9094"] 103 | start_period: 80s 104 | interval: 3s 105 | timeout: 1s 106 | retries: 20 107 | kafdrop: 108 | image: obsidiandynamics/kafdrop:3.27.0 109 | depends_on: 110 | broker1: 111 | condition: service_healthy 112 | broker2: 113 | condition: service_healthy 114 | broker3: 115 | condition: service_healthy 116 | environment: 117 | KAFKA_BROKERCONNECT: broker1.kafka61.devbox.local:19092 118 | networks: 119 | kafka61_network_local: 120 | aliases: 121 | - kafdrop.kafka61.devbox.local 122 | hostname: kafdrop.kafka61.devbox.local 123 | ports: 124 | - ${DEVBOX_KAFKA61_KAFROP_EXPORT_PORT:-29092}:9000 125 | healthcheck: 126 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1:9000"] 127 | interval: 3s 128 | timeout: 1s 129 | retries: 40 130 | kafka-ui: 131 | image: provectuslabs/kafka-ui:0.0.10 132 | depends_on: 133 | broker1: 134 | condition: service_healthy 135 | broker2: 136 | condition: service_healthy 137 | broker3: 138 | condition: service_healthy 139 | environment: 140 | KAFKA_CLUSTERS_0_NAME: broker1.kafka61.devbox.local:19092 141 | KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: broker1.kafka61.devbox.local:19092 142 | KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper.kafka61.devbox.local:2181 143 | networks: 144 | kafka61_network_local: 145 | aliases: 146 | - kafka-ui.kafka61.devbox.local 147 | hostname: kafka-ui.kafka61.devbox.local 148 | ports: 149 | - ${DEVBOX_KAFKA61_KAFKAUI_EXPORT_PORT:-29093}:8080 150 | healthcheck: 151 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1:8080"] 152 | interval: 3s 153 | timeout: 1s 154 | retries: 20 155 | kowl: 156 | image: quay.io/cloudhut/kowl:master 157 | depends_on: 158 | broker1: 159 | condition: service_healthy 160 | broker2: 161 | condition: service_healthy 162 | broker3: 163 | condition: service_healthy 164 | environment: 165 | KAFKA_BROKERS: broker1.kafka61.devbox.local:19092 166 | networks: 167 | kafka61_network_local: 168 | aliases: 169 | - kowl.kafka61.devbox.local 170 | hostname: kowl.kafka61.devbox.local 171 | ports: 172 | - ${DEVBOX_KAFKA61_KOWL_EXPORT_PORT:-29094}:8080 173 | healthcheck: 174 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8080"] 175 | interval: 3s 176 | timeout: 1s 177 | retries: 20 178 | 179 | volumes: 180 | kafka61_zookeeper_data: 181 | kafka61_broker1_data: 182 | kafka61_broker2_data: 183 | kafka61_broker3_data: 184 | 185 | networks: 186 | kafka61_network_local: 187 | driver: bridge 188 | -------------------------------------------------------------------------------- /keycloak/24.0/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_KEYCLOAK240_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}kc4 2 | 3 | DEVBOX_KEYCLOAK240_IDP_ADMIN_USERNAME ?= admin 4 | DEVBOX_KEYCLOAK240_IDP_ADMIN_PASSWORD ?= password 5 | DEVBOX_KEYCLOAK240_IDP_EXPORT_PORT ?= 18977 6 | DEVBOX_KEYCLOAK240_CLOUDBEAVER_EXPORT_PORT ?= 18978 7 | 8 | keycloak24.0-up: compose-cmd ; 9 | ${DEVBOX_COMPOSE_CMD} -f keycloak/24.0/compose.yml -p ${DEVBOX_KEYCLOAK240_PROJECT_NAME} up -d 10 | 11 | keycloak24.0-down: compose-cmd ; 12 | ${DEVBOX_COMPOSE_CMD} -f keycloak/24.0/compose.yml -p ${DEVBOX_KEYCLOAK240_PROJECT_NAME} down 13 | 14 | keycloak24.0-status: compose-cmd ; 15 | ${DEVBOX_COMPOSE_CMD} -f keycloak/24.0/compose.yml -p ${DEVBOX_KEYCLOAK240_PROJECT_NAME} ps 16 | 17 | keycloak24.0-logs: compose-cmd ; 18 | ${DEVBOX_COMPOSE_CMD} -f keycloak/24.0/compose.yml -p ${DEVBOX_KEYCLOAK240_PROJECT_NAME} logs -f 19 | 20 | keycloak24.0-purge: compose-cmd ; 21 | ${DEVBOX_COMPOSE_CMD} -f keycloak/24.0/compose.yml -p ${DEVBOX_KEYCLOAK240_PROJECT_NAME} down --volumes 22 | 23 | keycloak24.0-command: compose-cmd ; 24 | @echo "${DEVBOX_COMPOSE_CMD} -f keycloak/24.0/compose.yml -p ${DEVBOX_KEYCLOAK240_PROJECT_NAME}" 25 | 26 | keycloak24.0-help: 27 | @echo 28 | @echo "Commands:" 29 | @echo 30 | @echo " make keycloak24.0-up Start Keycloak 24.0 service and management tools" 31 | @echo " make keycloak24.0-down Stop Keycloak 24.0 service and management tools" 32 | @echo " make keycloak24.0-status Status from running services" 33 | @echo " make keycloak24.0-logs Logs from running services" 34 | @echo " make keycloak24.0-purge Delete all Keycloak 24.0 data" 35 | @echo " make keycloak24.0-info Information about the services for use" 36 | @echo " make keycloak24.0-command Print docker compose command" 37 | @echo " make keycloak24.0-help This help :)" 38 | @echo 39 | @echo "Available configurable environment variables:" 40 | @echo 41 | @echo " DEVBOX_KEYCLOAK240_IDP_ADMIN_USERNAME Default Keycloak admin username" 42 | @echo " DEVBOX_KEYCLOAK240_IDP_ADMIN_PASSWORD Default Keycloak ${DEVBOX_KEYCLOAK240_IDP_ADMIN_USERNAME} password" 43 | @echo " DEVBOX_KEYCLOAK240_IDP_EXPORT_PORT Port to expose Keycloak in docker for access in your browser" 44 | @echo " DEVBOX_KEYCLOAK240_CLOUDBEAVER_EXPORT_PORT Port to expose Cloudbeaver in docker for access in your browser" 45 | @echo 46 | 47 | keycloak24.0-info: 48 | @echo 49 | @echo "Keycloak 24.0 information" 50 | @echo 51 | @echo " Keycloak: http://127.0.0.1:${DEVBOX_KEYCLOAK240_IDP_EXPORT_PORT}" 52 | @echo " Keycloak admin username: ${DEVBOX_KEYCLOAK240_IDP_ADMIN_USERNAME}" 53 | @echo " Keycloak admin password: ${DEVBOX_KEYCLOAK240_IDP_ADMIN_PASSWORD}" 54 | @echo " Cloudbeaver: http://127.0.0.1:${DEVBOX_KEYCLOAK240_CLOUDBEAVER_EXPORT_PORT}" 55 | @echo " Cloudbeaver username: cbadmin" 56 | @echo " Cloudbeaver password: password" 57 | @echo 58 | -------------------------------------------------------------------------------- /keycloak/24.0/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | idp: 3 | image: quay.io/keycloak/keycloak:24.0 4 | depends_on: 5 | db: 6 | condition: service_healthy 7 | environment: 8 | KC_DB: postgres 9 | KC_DB_URL_HOST: db.keycloak240.devbox.local 10 | KC_DB_URL_DATABASE: idp_keycloak 11 | KC_DB_PASSWORD: password 12 | KC_DB_USERNAME: postgres 13 | KC_DB_SCHEMA: public 14 | KC_HEALTH_ENABLED: true 15 | KEYCLOAK_ADMIN: ${DEVBOX_KEYCLOAK240_IDP_ADMIN_USERNAME:-admin} 16 | KEYCLOAK_ADMIN_PASSWORD: ${DEVBOX_KEYCLOAK240_IDP_ADMIN_PASSWORD:-password} 17 | command: start-dev 18 | hostname: idp.keycloak240.devbox.local 19 | networks: 20 | keycloak240_network_local: 21 | aliases: 22 | - idp.keycloak240.devbox.local 23 | ports: 24 | - ${DEVBOX_KEYCLOAK240_IDP_EXPORT_PORT:-18977}:8080 25 | healthcheck: 26 | test: ["CMD-SHELL", "exec 3<>/dev/tcp/localhost/8080 && echo -e 'GET /health/ready HTTP/1.1\\r\\nHost: localhost\\r\\nConnection: close\\r\\n\\r\\n' >&3 && cat <&3 | grep -q '200 OK'"] 27 | interval: 30s 28 | timeout: 5s 29 | retries: 20 30 | db: 31 | image: postgres:15.3-alpine 32 | volumes: 33 | - keycloak240_db_data:/var/lib/postgresql/data 34 | environment: 35 | POSTGRES_USER: postgres 36 | POSTGRES_PASSWORD: password 37 | POSTGRES_DB: idp_keycloak 38 | networks: 39 | keycloak240_network_local: 40 | aliases: 41 | - db.keycloak240.devbox.local 42 | hostname: db.keycloak240.devbox.local 43 | ports: 44 | - 5432:5432 45 | healthcheck: 46 | test: ["CMD-SHELL", "pg_isready -U postgres"] 47 | start_period: 5s 48 | interval: 3s 49 | timeout: 1s 50 | retries: 20 51 | cloudbeaver: 52 | image: dbeaver/cloudbeaver:24.0 53 | depends_on: 54 | db: 55 | condition: service_healthy 56 | volumes: 57 | - ./conf/cloudbeaver.conf:/opt/cloudbeaver/conf/cloudbeaver.conf 58 | - ./conf/initial-data.conf:/opt/cloudbeaver/conf/initial-data.conf 59 | - ./conf/initial-data-sources.conf:/opt/cloudbeaver/conf/initial-data-sources.conf 60 | environment: 61 | CB_SERVER_NAME: Cloudbeaver Server 62 | CB_SERVER_URL: https://0.0.0.0:${DEVBOX_KEYCLOAK240_CLOUDBEAVER_EXPORT_PORT:-18978}/ 63 | CB_ADMIN_NAME: cbadmin 64 | CB_ADMIN_PASSWORD: password 65 | networks: 66 | keycloak240_network_local: 67 | aliases: 68 | - cloudbeaver.keycloak240.devbox.local 69 | hostname: cloudbeaver.keycloak240.devbox.local 70 | ports: 71 | - ${DEVBOX_KEYCLOAK240_CLOUDBEAVER_EXPORT_PORT:-18978}:8978 72 | healthcheck: 73 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1:8978"] 74 | interval: 3s 75 | timeout: 1s 76 | retries: 20 77 | 78 | volumes: 79 | keycloak240_db_data: 80 | 81 | networks: 82 | keycloak240_network_local: 83 | driver: bridge 84 | -------------------------------------------------------------------------------- /keycloak/24.0/conf/cloudbeaver.conf: -------------------------------------------------------------------------------- 1 | { 2 | server: { 3 | serverPort: 8978, 4 | 5 | workspaceLocation: "workspace", 6 | contentRoot: "web", 7 | driversLocation: "drivers", 8 | 9 | sslConfigurationPath:"${CLOUDBEAVER_SSL_CONF_PATH:workspace/.data/ssl-config.xml}", 10 | 11 | rootURI: "/", 12 | serviceURI: "/api/", 13 | 14 | productConfiguration: "conf/product.conf", 15 | 16 | expireSessionAfterPeriod: 1800000, 17 | 18 | develMode: false, 19 | 20 | enableSecurityManager: false, 21 | 22 | sm: { 23 | enableBruteForceProtection: "${CLOUDBEAVER_BRUTE_FORCE_PROTECTION_ENABLED:true}", 24 | maxFailedLogin: "${CLOUDBEAVER_MAX_FAILED_LOGINS:10}", 25 | minimumLoginTimeout: "${CLOUDBEAVER_MINIMUM_LOGIN_TIMEOUT:1}", 26 | blockLoginPeriod: "${CLOUDBEAVER_BLOCK_PERIOD:300}", 27 | passwordPolicy: { 28 | minLength: "${CLOUDBEAVER_POLICY_MIN_LENGTH:8}", 29 | requireMixedCase: "${CLOUDBEAVER_POLICY_REQUIRE_MIXED_CASE:false}", 30 | minNumberCount: "${CLOUDBEAVER_POLICY_MIN_NUMBER_COUNT:0}", 31 | minSymbolCount: "${CLOUDBEAVER_POLICY_MIN_SYMBOL_COUNT:0}" 32 | } 33 | }, 34 | 35 | database: { 36 | driver="h2_embedded_v2", 37 | url: "jdbc:h2:${workspace}/.data/cb.h2v2.dat", 38 | initialDataConfiguration: "conf/initial-data.conf", 39 | pool: { 40 | minIdleConnections: 4, 41 | maxIdleConnections: 10, 42 | maxConnections: 100, 43 | validationQuery: "SELECT 1" 44 | } 45 | } 46 | 47 | }, 48 | app: { 49 | anonymousAccessEnabled: false, 50 | anonymousUserRole: "user", 51 | grantConnectionsAccessToAnonymousTeam: true, 52 | supportsCustomConnections: false, 53 | showReadOnlyConnectionInfo: false, 54 | 55 | forwardProxy: false, 56 | 57 | publicCredentialsSaveEnabled: true, 58 | adminCredentialsSaveEnabled: true, 59 | 60 | resourceManagerEnabled: true, 61 | 62 | resourceQuotas: { 63 | dataExportFileSizeLimit: 10000000, 64 | resourceManagerFileSizeLimit: 500000, 65 | sqlMaxRunningQueries: 100, 66 | sqlResultSetRowsLimit: 100000, 67 | sqlResultSetMemoryLimit: 2000000, 68 | sqlTextPreviewMaxLength: 4096, 69 | sqlBinaryPreviewMaxLength: 261120 70 | }, 71 | enabledAuthProviders: [ 72 | "local" 73 | ], 74 | 75 | disabledDrivers: [ 76 | "h2:h2_embedded", 77 | "h2:h2_embedded_v2", 78 | "clickhouse:yandex_clickhouse", 79 | "generic:duckdb_jdbc", 80 | "sqlite:sqlite_jdbc", 81 | "sqlserver:microsoft", 82 | "mysql:mysql8", 83 | "db2:db2", 84 | "mysql:mariaDB", 85 | "oracle:oracle_thin", 86 | "clickhouse:com_clickhouse", 87 | "db2_i:db2_iseries", 88 | "jaybird:jaybird", 89 | "generic:trino_jdbc" 90 | ] 91 | 92 | } 93 | 94 | } 95 | -------------------------------------------------------------------------------- /keycloak/24.0/conf/initial-data-sources.conf: -------------------------------------------------------------------------------- 1 | { 2 | "folders": {}, 3 | "connections": { 4 | "postgresql-template-1": { 5 | "provider": "postgresql", 6 | "driver": "postgres-jdbc", 7 | "name": "PostgreSQL (Template)", 8 | "save-password": false, 9 | "show-system-objects": false, 10 | "read-only": true, 11 | "template": true, 12 | "configuration": { 13 | "host": "localhost", 14 | "port": "5432", 15 | "database": "postgres", 16 | "url": "jdbc:postgresql://localhost:5432/postgres", 17 | "type": "dev", 18 | "provider-properties": { 19 | "@dbeaver-show-non-default-db@": "false" 20 | } 21 | } 22 | }, 23 | "postgres-jdbc-18e9c855721-60543815644c5bae": { 24 | "provider": "postgresql", 25 | "driver": "postgres-jdbc", 26 | "name": "db.keycloak240.devbox.local", 27 | "save-password": true, 28 | "configuration": { 29 | "host": "db.keycloak240.devbox.local", 30 | "port": "5432", 31 | "user": "postgres", 32 | "password": "password", 33 | "database": "idp_keycloak", 34 | "url": "jdbc:postgresql://db.keycloak240.devbox.local:5432/idp_keycloak", 35 | "configurationType": "MANUAL", 36 | "type": "dev", 37 | "closeIdleConnection": true, 38 | "auth-model": "native" 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /keycloak/24.0/conf/initial-data.conf: -------------------------------------------------------------------------------- 1 | { 2 | teams: [ 3 | { 4 | subjectId: "admin", 5 | teamName: "Admin", 6 | description: "Administrative access. Has all permissions.", 7 | permissions: [ "admin" ] 8 | }, 9 | { 10 | subjectId: "user", 11 | teamName: "User", 12 | description: "All users, including anonymous.", 13 | permissions: [ "public" ] 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /keycloak/25.0/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_KEYCLOAK250_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}kc5 2 | 3 | DEVBOX_KEYCLOAK250_IDP_ADMIN_USERNAME ?= admin 4 | DEVBOX_KEYCLOAK250_IDP_ADMIN_PASSWORD ?= password 5 | DEVBOX_KEYCLOAK250_IDP_EXPORT_PORT ?= 19977 6 | DEVBOX_KEYCLOAK250_CLOUDBEAVER_EXPORT_PORT ?= 19978 7 | 8 | keycloak25.0-up: compose-cmd ; 9 | ${DEVBOX_COMPOSE_CMD} -f keycloak/25.0/compose.yml -p ${DEVBOX_KEYCLOAK250_PROJECT_NAME} up -d 10 | 11 | keycloak25.0-down: compose-cmd ; 12 | ${DEVBOX_COMPOSE_CMD} -f keycloak/25.0/compose.yml -p ${DEVBOX_KEYCLOAK250_PROJECT_NAME} down 13 | 14 | keycloak25.0-status: compose-cmd ; 15 | ${DEVBOX_COMPOSE_CMD} -f keycloak/25.0/compose.yml -p ${DEVBOX_KEYCLOAK250_PROJECT_NAME} ps 16 | 17 | keycloak25.0-logs: compose-cmd ; 18 | ${DEVBOX_COMPOSE_CMD} -f keycloak/25.0/compose.yml -p ${DEVBOX_KEYCLOAK250_PROJECT_NAME} logs -f 19 | 20 | keycloak25.0-purge: compose-cmd ; 21 | ${DEVBOX_COMPOSE_CMD} -f keycloak/25.0/compose.yml -p ${DEVBOX_KEYCLOAK250_PROJECT_NAME} down --volumes 22 | 23 | keycloak25.0-command: compose-cmd ; 24 | @echo "${DEVBOX_COMPOSE_CMD} -f keycloak/25.0/compose.yml -p ${DEVBOX_KEYCLOAK250_PROJECT_NAME}" 25 | 26 | keycloak25.0-help: 27 | @echo 28 | @echo "Commands:" 29 | @echo 30 | @echo " make keycloak25.0-up Start Keycloak 25.0 service and management tools" 31 | @echo " make keycloak25.0-down Stop Keycloak 25.0 service and management tools" 32 | @echo " make keycloak25.0-status Status from running services" 33 | @echo " make keycloak25.0-logs Logs from running services" 34 | @echo " make keycloak25.0-purge Delete all Keycloak 25.0 data" 35 | @echo " make keycloak25.0-info Information about the services for use" 36 | @echo " make keycloak25.0-command Print docker compose command" 37 | @echo " make keycloak25.0-help This help :)" 38 | @echo 39 | @echo "Available configurable environment variables:" 40 | @echo 41 | @echo " DEVBOX_KEYCLOAK250_IDP_ADMIN_USERNAME Default Keycloak admin username" 42 | @echo " DEVBOX_KEYCLOAK250_IDP_ADMIN_PASSWORD Default Keycloak ${DEVBOX_KEYCLOAK250_IDP_ADMIN_USERNAME} password" 43 | @echo " DEVBOX_KEYCLOAK250_IDP_EXPORT_PORT Port to expose Keycloak in docker for access in your browser" 44 | @echo " DEVBOX_KEYCLOAK250_CLOUDBEAVER_EXPORT_PORT Port to expose Cloudbeaver in docker for access in your browser" 45 | @echo 46 | 47 | keycloak25.0-info: 48 | @echo 49 | @echo "Keycloak 25.0 information" 50 | @echo 51 | @echo " Keycloak: http://127.0.0.1:${DEVBOX_KEYCLOAK250_IDP_EXPORT_PORT}" 52 | @echo " Keycloak admin username: ${DEVBOX_KEYCLOAK250_IDP_ADMIN_USERNAME}" 53 | @echo " Keycloak admin password: ${DEVBOX_KEYCLOAK250_IDP_ADMIN_PASSWORD}" 54 | @echo " Cloudbeaver: http://127.0.0.1:${DEVBOX_KEYCLOAK250_CLOUDBEAVER_EXPORT_PORT}" 55 | @echo " Cloudbeaver username: cbadmin" 56 | @echo " Cloudbeaver password: password" 57 | @echo 58 | -------------------------------------------------------------------------------- /keycloak/25.0/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | idp: 3 | image: quay.io/keycloak/keycloak:25.0 4 | depends_on: 5 | db: 6 | condition: service_healthy 7 | environment: 8 | KC_DB: postgres 9 | KC_DB_URL_HOST: db.keycloak250.devbox.local 10 | KC_DB_URL_DATABASE: idp_keycloak 11 | KC_DB_PASSWORD: password 12 | KC_DB_USERNAME: postgres 13 | KC_DB_SCHEMA: public 14 | KC_HEALTH_ENABLED: true 15 | KEYCLOAK_ADMIN: ${DEVBOX_KEYCLOAK250_IDP_ADMIN_USERNAME:-admin} 16 | KEYCLOAK_ADMIN_PASSWORD: ${DEVBOX_KEYCLOAK250_IDP_ADMIN_PASSWORD:-password} 17 | command: start-dev 18 | hostname: idp.keycloak250.devbox.local 19 | networks: 20 | keycloak250_network_local: 21 | aliases: 22 | - idp.keycloak250.devbox.local 23 | ports: 24 | - ${DEVBOX_KEYCLOAK250_IDP_EXPORT_PORT:-19977}:8080 25 | healthcheck: 26 | test: ["CMD-SHELL", "exec 3<>/dev/tcp/localhost/8080 && echo -e 'GET /health/ready HTTP/1.1\\r\\nHost: localhost\\r\\nConnection: close\\r\\n\\r\\n' >&3 && cat <&3 | grep -q '200 OK'"] 27 | interval: 30s 28 | timeout: 5s 29 | retries: 20 30 | db: 31 | image: postgres:15.3-alpine 32 | volumes: 33 | - keycloak250_db_data:/var/lib/postgresql/data 34 | environment: 35 | POSTGRES_USER: postgres 36 | POSTGRES_PASSWORD: password 37 | POSTGRES_DB: idp_keycloak 38 | networks: 39 | keycloak250_network_local: 40 | aliases: 41 | - db.keycloak250.devbox.local 42 | hostname: db.keycloak250.devbox.local 43 | ports: 44 | - 5432:5432 45 | healthcheck: 46 | test: ["CMD-SHELL", "pg_isready -U postgres"] 47 | start_period: 5s 48 | interval: 3s 49 | timeout: 1s 50 | retries: 20 51 | cloudbeaver: 52 | image: dbeaver/cloudbeaver:24.0 53 | depends_on: 54 | db: 55 | condition: service_healthy 56 | volumes: 57 | - ./conf/cloudbeaver.conf:/opt/cloudbeaver/conf/cloudbeaver.conf 58 | - ./conf/initial-data.conf:/opt/cloudbeaver/conf/initial-data.conf 59 | - ./conf/initial-data-sources.conf:/opt/cloudbeaver/conf/initial-data-sources.conf 60 | environment: 61 | CB_SERVER_NAME: Cloudbeaver Server 62 | CB_SERVER_URL: https://0.0.0.0:${DEVBOX_KEYCLOAK250_CLOUDBEAVER_EXPORT_PORT:-19978}/ 63 | CB_ADMIN_NAME: cbadmin 64 | CB_ADMIN_PASSWORD: password 65 | networks: 66 | keycloak250_network_local: 67 | aliases: 68 | - cloudbeaver.keycloak250.devbox.local 69 | hostname: cloudbeaver.keycloak250.devbox.local 70 | ports: 71 | - ${DEVBOX_KEYCLOAK250_CLOUDBEAVER_EXPORT_PORT:-19978}:8978 72 | healthcheck: 73 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1:8978"] 74 | interval: 3s 75 | timeout: 1s 76 | retries: 20 77 | 78 | volumes: 79 | keycloak250_db_data: 80 | 81 | networks: 82 | keycloak250_network_local: 83 | driver: bridge 84 | -------------------------------------------------------------------------------- /keycloak/25.0/conf/cloudbeaver.conf: -------------------------------------------------------------------------------- 1 | { 2 | server: { 3 | serverPort: 8978, 4 | 5 | workspaceLocation: "workspace", 6 | contentRoot: "web", 7 | driversLocation: "drivers", 8 | 9 | sslConfigurationPath:"${CLOUDBEAVER_SSL_CONF_PATH:workspace/.data/ssl-config.xml}", 10 | 11 | rootURI: "/", 12 | serviceURI: "/api/", 13 | 14 | productConfiguration: "conf/product.conf", 15 | 16 | expireSessionAfterPeriod: 1800000, 17 | 18 | develMode: false, 19 | 20 | enableSecurityManager: false, 21 | 22 | sm: { 23 | enableBruteForceProtection: "${CLOUDBEAVER_BRUTE_FORCE_PROTECTION_ENABLED:true}", 24 | maxFailedLogin: "${CLOUDBEAVER_MAX_FAILED_LOGINS:10}", 25 | minimumLoginTimeout: "${CLOUDBEAVER_MINIMUM_LOGIN_TIMEOUT:1}", 26 | blockLoginPeriod: "${CLOUDBEAVER_BLOCK_PERIOD:300}", 27 | passwordPolicy: { 28 | minLength: "${CLOUDBEAVER_POLICY_MIN_LENGTH:8}", 29 | requireMixedCase: "${CLOUDBEAVER_POLICY_REQUIRE_MIXED_CASE:false}", 30 | minNumberCount: "${CLOUDBEAVER_POLICY_MIN_NUMBER_COUNT:0}", 31 | minSymbolCount: "${CLOUDBEAVER_POLICY_MIN_SYMBOL_COUNT:0}" 32 | } 33 | }, 34 | 35 | database: { 36 | driver="h2_embedded_v2", 37 | url: "jdbc:h2:${workspace}/.data/cb.h2v2.dat", 38 | initialDataConfiguration: "conf/initial-data.conf", 39 | pool: { 40 | minIdleConnections: 4, 41 | maxIdleConnections: 10, 42 | maxConnections: 100, 43 | validationQuery: "SELECT 1" 44 | } 45 | } 46 | 47 | }, 48 | app: { 49 | anonymousAccessEnabled: false, 50 | anonymousUserRole: "user", 51 | grantConnectionsAccessToAnonymousTeam: true, 52 | supportsCustomConnections: false, 53 | showReadOnlyConnectionInfo: false, 54 | 55 | forwardProxy: false, 56 | 57 | publicCredentialsSaveEnabled: true, 58 | adminCredentialsSaveEnabled: true, 59 | 60 | resourceManagerEnabled: true, 61 | 62 | resourceQuotas: { 63 | dataExportFileSizeLimit: 10000000, 64 | resourceManagerFileSizeLimit: 500000, 65 | sqlMaxRunningQueries: 100, 66 | sqlResultSetRowsLimit: 100000, 67 | sqlResultSetMemoryLimit: 2000000, 68 | sqlTextPreviewMaxLength: 4096, 69 | sqlBinaryPreviewMaxLength: 261120 70 | }, 71 | enabledAuthProviders: [ 72 | "local" 73 | ], 74 | 75 | disabledDrivers: [ 76 | "h2:h2_embedded", 77 | "h2:h2_embedded_v2", 78 | "clickhouse:yandex_clickhouse", 79 | "generic:duckdb_jdbc", 80 | "sqlite:sqlite_jdbc", 81 | "sqlserver:microsoft", 82 | "mysql:mysql8", 83 | "db2:db2", 84 | "mysql:mariaDB", 85 | "oracle:oracle_thin", 86 | "clickhouse:com_clickhouse", 87 | "db2_i:db2_iseries", 88 | "jaybird:jaybird", 89 | "generic:trino_jdbc" 90 | ] 91 | 92 | } 93 | 94 | } 95 | -------------------------------------------------------------------------------- /keycloak/25.0/conf/initial-data-sources.conf: -------------------------------------------------------------------------------- 1 | { 2 | "folders": {}, 3 | "connections": { 4 | "postgresql-template-1": { 5 | "provider": "postgresql", 6 | "driver": "postgres-jdbc", 7 | "name": "PostgreSQL (Template)", 8 | "save-password": false, 9 | "show-system-objects": false, 10 | "read-only": true, 11 | "template": true, 12 | "configuration": { 13 | "host": "localhost", 14 | "port": "5432", 15 | "database": "postgres", 16 | "url": "jdbc:postgresql://localhost:5432/postgres", 17 | "type": "dev", 18 | "provider-properties": { 19 | "@dbeaver-show-non-default-db@": "false" 20 | } 21 | } 22 | }, 23 | "postgres-jdbc-18e9c855721-60543815644c5bae": { 24 | "provider": "postgresql", 25 | "driver": "postgres-jdbc", 26 | "name": "db.keycloak250.devbox.local", 27 | "save-password": true, 28 | "configuration": { 29 | "host": "db.keycloak250.devbox.local", 30 | "port": "5432", 31 | "user": "postgres", 32 | "password": "password", 33 | "database": "idp_keycloak", 34 | "url": "jdbc:postgresql://db.keycloak250.devbox.local:5432/idp_keycloak", 35 | "configurationType": "MANUAL", 36 | "type": "dev", 37 | "closeIdleConnection": true, 38 | "auth-model": "native" 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /keycloak/25.0/conf/initial-data.conf: -------------------------------------------------------------------------------- 1 | { 2 | teams: [ 3 | { 4 | subjectId: "admin", 5 | teamName: "Admin", 6 | description: "Administrative access. Has all permissions.", 7 | permissions: [ "admin" ] 8 | }, 9 | { 10 | subjectId: "user", 11 | teamName: "User", 12 | description: "All users, including anonymous.", 13 | permissions: [ "public" ] 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Joubert RedRat and Devbox contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /mariadb/10.5/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MARIADB105_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}cyf 2 | 3 | DEVBOX_MARIADB105_ROOT_PASSWORD ?= password 4 | DEVBOX_MARIADB105_DB_EXPORT_PORT ?= 13306 5 | DEVBOX_MARIADB105_PMA_EXPORT_PORT ?= 13307 6 | DEVBOX_MARIADB105_ADMINER_EXPORT_PORT ?= 13308 7 | DEVBOX_MARIADB105_DBGATE_EXPORT_PORT ?= 13309 8 | 9 | mariadb10.5-up: compose-cmd ; 10 | ${DEVBOX_COMPOSE_CMD} -f mariadb/10.5/compose.yml -p ${DEVBOX_MARIADB105_PROJECT_NAME} up -d 11 | 12 | mariadb10.5-down: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f mariadb/10.5/compose.yml -p ${DEVBOX_MARIADB105_PROJECT_NAME} down 14 | 15 | mariadb10.5-status: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f mariadb/10.5/compose.yml -p ${DEVBOX_MARIADB105_PROJECT_NAME} ps 17 | 18 | mariadb10.5-logs: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f mariadb/10.5/compose.yml -p ${DEVBOX_MARIADB105_PROJECT_NAME} logs -f 20 | 21 | mariadb10.5-purge: compose-cmd ; 22 | ${DEVBOX_COMPOSE_CMD} -f mariadb/10.5/compose.yml -p ${DEVBOX_MARIADB105_PROJECT_NAME} down --volumes 23 | 24 | mariadb10.5-command: compose-cmd ; 25 | @echo "${DEVBOX_COMPOSE_CMD} -f mariadb/10.5/compose.yml -p ${DEVBOX_MARIADB105_PROJECT_NAME}" 26 | 27 | mariadb10.5-help: 28 | @echo 29 | @echo "Commands:" 30 | @echo 31 | @echo " make mariadb10.5-up Start MariaDB 10.5 service and management tools" 32 | @echo " make mariadb10.5-down Stop MariaDB 10.5 service and management tools" 33 | @echo " make mariadb10.5-status Status from running services" 34 | @echo " make mariadb10.5-logs Logs from running services" 35 | @echo " make mariadb10.5-purge Delete all MariaDB 10.5 data" 36 | @echo " make mariadb10.5-info Information about the services for use" 37 | @echo " make mariadb10.5-command Print docker compose command" 38 | @echo " make mariadb10.5-help This help :)" 39 | @echo 40 | @echo "Available configurable environment variables:" 41 | @echo 42 | @echo " DEVBOX_MARIADB105_ROOT_PASSWORD Default root password" 43 | @echo " DEVBOX_MARIADB105_DB_EXPORT_PORT Port to expose MariaDB 10.5 in docker for your environment" 44 | @echo " DEVBOX_MARIADB105_PMA_EXPORT_PORT Port to expose PhpMyAdmin in docker for access in your browser" 45 | @echo " DEVBOX_MARIADB105_ADMINER_EXPORT_PORT Port to expose Adminer in docker for access in your browser" 46 | @echo " DEVBOX_MARIADB105_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 47 | @echo 48 | 49 | mariadb10.5-info: 50 | @echo 51 | @echo "MariaDB 10.5 information" 52 | @echo 53 | @echo " Host: 127.0.0.1" 54 | @echo " Port: ${DEVBOX_MARIADB105_DB_EXPORT_PORT}" 55 | @echo " User: root" 56 | @echo " Password: ${DEVBOX_MARIADB105_ROOT_PASSWORD}" 57 | @echo " PhpMyAdmin: http://127.0.0.1:${DEVBOX_MARIADB105_PMA_EXPORT_PORT}" 58 | @echo " Adminer: http://127.0.0.1:${DEVBOX_MARIADB105_ADMINER_EXPORT_PORT}" 59 | @echo " DbGate: http://127.0.0.1:${DEVBOX_MARIADB105_DBGATE_EXPORT_PORT}" 60 | @echo 61 | -------------------------------------------------------------------------------- /mariadb/10.5/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: mariadb:10.5 4 | environment: 5 | MYSQL_ROOT_PASSWORD: ${DEVBOX_MARIADB105_ROOT_PASSWORD:-password} 6 | volumes: 7 | - mariadb105_data:/var/lib/mysql 8 | networks: 9 | mariadb105_network_local: 10 | aliases: 11 | - db.mariadb105.devbox.local 12 | hostname: db.mariadb105.devbox.local 13 | ports: 14 | - ${DEVBOX_MARIADB105_DB_EXPORT_PORT:-13306}:3306 15 | healthcheck: 16 | test: mysqladmin -p${DEVBOX_MARIADB105_ROOT_PASSWORD:-password} ping -h localhost 17 | start_period: 5s 18 | interval: 3s 19 | timeout: 1s 20 | retries: 20 21 | phpmyadmin: 22 | image: phpmyadmin/phpmyadmin:5 23 | depends_on: 24 | db: 25 | condition: service_healthy 26 | environment: 27 | PMA_HOST: db.mariadb105.devbox.local 28 | PMA_USER: root 29 | PMA_PASSWORD: ${DEVBOX_MARIADB105_ROOT_PASSWORD:-password} 30 | networks: 31 | mariadb105_network_local: 32 | aliases: 33 | - phpmyadmin.mariadb105.devbox.local 34 | hostname: phpmyadmin.mariadb105.devbox.local 35 | ports: 36 | - ${DEVBOX_MARIADB105_PMA_EXPORT_PORT:-13307}:80 37 | healthcheck: 38 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"] 39 | interval: 3s 40 | timeout: 1s 41 | retries: 20 42 | adminer: 43 | image: adminer:4 44 | depends_on: 45 | db: 46 | condition: service_healthy 47 | environment: 48 | ADMINER_DEFAULT_SERVER: db.mariadb105.devbox.local 49 | networks: 50 | mariadb105_network_local: 51 | aliases: 52 | - adminer.mariadb105.devbox.local 53 | hostname: adminer.mariadb105.devbox.local 54 | ports: 55 | - ${DEVBOX_MARIADB105_ADMINER_EXPORT_PORT:-13308}:8080 56 | healthcheck: 57 | test: "php -r 'exit(strpos(file_get_contents(\"http://localhost:8080/\"), \"Adminer\") !== false ? 0 : 1);'" 58 | interval: 3s 59 | timeout: 1s 60 | retries: 20 61 | dbgate: 62 | image: dbgate/dbgate:alpine 63 | depends_on: 64 | db: 65 | condition: service_healthy 66 | environment: 67 | CONNECTIONS: mariadb1 68 | LABEL_mariadb1: db.mariadb105.devbox.local 69 | SERVER_mariadb1: db.mariadb105.devbox.local 70 | USER_mariadb1: root 71 | PASSWORD_mariadb1: ${DEVBOX_MARIADB105_ROOT_PASSWORD:-password} 72 | PORT_mariadb1: 3306 73 | ENGINE_mariadb1: mysql@dbgate-plugin-mysql 74 | networks: 75 | mariadb105_network_local: 76 | aliases: 77 | - dbgate.mariadb105.devbox.local 78 | hostname: dbgate.mariadb105.devbox.local 79 | ports: 80 | - ${DEVBOX_MARIADB105_DBGATE_EXPORT_PORT:-13309}:3000 81 | healthcheck: 82 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 83 | interval: 3s 84 | timeout: 1s 85 | retries: 20 86 | 87 | volumes: 88 | mariadb105_data: 89 | 90 | networks: 91 | mariadb105_network_local: 92 | driver: bridge 93 | -------------------------------------------------------------------------------- /mariadb/10.6/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MARIADB106_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}qwn 2 | 3 | DEVBOX_MARIADB106_ROOT_PASSWORD ?= password 4 | DEVBOX_MARIADB106_DB_EXPORT_PORT ?= 14306 5 | DEVBOX_MARIADB106_PMA_EXPORT_PORT ?= 14307 6 | DEVBOX_MARIADB106_ADMINER_EXPORT_PORT ?= 14308 7 | DEVBOX_MARIADB106_DBGATE_EXPORT_PORT ?= 14309 8 | 9 | mariadb10.6-up: compose-cmd ; 10 | ${DEVBOX_COMPOSE_CMD} -f mariadb/10.6/compose.yml -p ${DEVBOX_MARIADB106_PROJECT_NAME} up -d 11 | 12 | mariadb10.6-down: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f mariadb/10.6/compose.yml -p ${DEVBOX_MARIADB106_PROJECT_NAME} down 14 | 15 | mariadb10.6-status: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f mariadb/10.6/compose.yml -p ${DEVBOX_MARIADB106_PROJECT_NAME} ps 17 | 18 | mariadb10.6-logs: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f mariadb/10.6/compose.yml -p ${DEVBOX_MARIADB106_PROJECT_NAME} logs -f 20 | 21 | mariadb10.6-purge: compose-cmd ; 22 | ${DEVBOX_COMPOSE_CMD} -f mariadb/10.6/compose.yml -p ${DEVBOX_MARIADB106_PROJECT_NAME} down --volumes 23 | 24 | mariadb10.6-command: compose-cmd ; 25 | @echo "${DEVBOX_COMPOSE_CMD} -f mariadb/10.6/compose.yml -p ${DEVBOX_MARIADB106_PROJECT_NAME}" 26 | 27 | mariadb10.6-help: 28 | @echo 29 | @echo "Commands:" 30 | @echo 31 | @echo " make mariadb10.6-up Start MariaDB 10.6 service and management tools" 32 | @echo " make mariadb10.6-down Stop MariaDB 10.6 service and management tools" 33 | @echo " make mariadb10.6-status Status from running services" 34 | @echo " make mariadb10.6-logs Logs from running services" 35 | @echo " make mariadb10.6-purge Delete all MariaDB 10.6 data" 36 | @echo " make mariadb10.6-info Information about the services for use" 37 | @echo " make mariadb10.6-command Print docker compose command" 38 | @echo " make mariadb10.6-help This help :)" 39 | @echo 40 | @echo "Available configurable environment variables:" 41 | @echo 42 | @echo " DEVBOX_MARIADB106_ROOT_PASSWORD Default root password" 43 | @echo " DEVBOX_MARIADB106_DB_EXPORT_PORT Port to expose MariaDB 10.6 in docker for your environment" 44 | @echo " DEVBOX_MARIADB106_PMA_EXPORT_PORT Port to expose PhpMyAdmin in docker for access in your browser" 45 | @echo " DEVBOX_MARIADB106_ADMINER_EXPORT_PORT Port to expose Adminer in docker for access in your browser" 46 | @echo " DEVBOX_MARIADB106_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 47 | @echo 48 | 49 | mariadb10.6-info: 50 | @echo 51 | @echo "MariaDB 10.6 information" 52 | @echo 53 | @echo " Host: 127.0.0.1" 54 | @echo " Port: ${DEVBOX_MARIADB106_DB_EXPORT_PORT}" 55 | @echo " User: root" 56 | @echo " Password: ${DEVBOX_MARIADB106_ROOT_PASSWORD}" 57 | @echo " PhpMyAdmin: http://127.0.0.1:${DEVBOX_MARIADB106_PMA_EXPORT_PORT}" 58 | @echo " Adminer: http://127.0.0.1:${DEVBOX_MARIADB106_ADMINER_EXPORT_PORT}" 59 | @echo " DbGate: http://127.0.0.1:${DEVBOX_MARIADB106_DBGATE_EXPORT_PORT}" 60 | @echo 61 | -------------------------------------------------------------------------------- /mariadb/10.6/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: mariadb:10.6 4 | environment: 5 | MYSQL_ROOT_PASSWORD: ${DEVBOX_MARIADB106_ROOT_PASSWORD:-password} 6 | volumes: 7 | - mariadb106_data:/var/lib/mysql 8 | networks: 9 | mariadb106_network_local: 10 | aliases: 11 | - db.mariadb106.devbox.local 12 | hostname: db.mariadb106.devbox.local 13 | ports: 14 | - ${DEVBOX_MARIADB106_DB_EXPORT_PORT:-14306}:3306 15 | healthcheck: 16 | test: mysqladmin -p${DEVBOX_MARIADB106_ROOT_PASSWORD:-password} ping -h localhost 17 | start_period: 5s 18 | interval: 3s 19 | timeout: 1s 20 | retries: 20 21 | phpmyadmin: 22 | image: phpmyadmin/phpmyadmin:5 23 | depends_on: 24 | db: 25 | condition: service_healthy 26 | environment: 27 | PMA_HOST: db.mariadb106.devbox.local 28 | PMA_USER: root 29 | PMA_PASSWORD: ${DEVBOX_MARIADB106_ROOT_PASSWORD:-password} 30 | networks: 31 | mariadb106_network_local: 32 | aliases: 33 | - phpmyadmin.mariadb106.devbox.local 34 | hostname: phpmyadmin.mariadb106.devbox.local 35 | ports: 36 | - ${DEVBOX_MARIADB106_PMA_EXPORT_PORT:-14307}:80 37 | healthcheck: 38 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"] 39 | interval: 3s 40 | timeout: 1s 41 | retries: 20 42 | adminer: 43 | image: adminer:4 44 | depends_on: 45 | db: 46 | condition: service_healthy 47 | environment: 48 | ADMINER_DEFAULT_SERVER: db.mariadb106.devbox.local 49 | networks: 50 | mariadb106_network_local: 51 | aliases: 52 | - adminer.mariadb106.devbox.local 53 | hostname: adminer.mariadb106.devbox.local 54 | ports: 55 | - ${DEVBOX_MARIADB106_ADMINER_EXPORT_PORT:-14308}:8080 56 | healthcheck: 57 | test: "php -r 'exit(strpos(file_get_contents(\"http://localhost:8080/\"), \"Adminer\") !== false ? 0 : 1);'" 58 | interval: 3s 59 | timeout: 1s 60 | retries: 20 61 | dbgate: 62 | image: dbgate/dbgate:alpine 63 | depends_on: 64 | db: 65 | condition: service_healthy 66 | environment: 67 | CONNECTIONS: mariadb1 68 | LABEL_mariadb1: db.mariadb106.devbox.local 69 | SERVER_mariadb1: db.mariadb106.devbox.local 70 | USER_mariadb1: root 71 | PASSWORD_mariadb1: ${DEVBOX_MARIADB106_ROOT_PASSWORD:-password} 72 | PORT_mariadb1: 3306 73 | ENGINE_mariadb1: mysql@dbgate-plugin-mysql 74 | networks: 75 | mariadb106_network_local: 76 | aliases: 77 | - dbgate.mariadb106.devbox.local 78 | hostname: dbgate.mariadb106.devbox.local 79 | ports: 80 | - ${DEVBOX_MARIADB106_DBGATE_EXPORT_PORT:-14309}:3000 81 | healthcheck: 82 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 83 | interval: 3s 84 | timeout: 1s 85 | retries: 20 86 | 87 | volumes: 88 | mariadb106_data: 89 | 90 | networks: 91 | mariadb106_network_local: 92 | driver: bridge 93 | -------------------------------------------------------------------------------- /mariadb/11.0/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MARIADB110_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}nth 2 | 3 | DEVBOX_MARIADB110_ROOT_PASSWORD ?= password 4 | DEVBOX_MARIADB110_DB_EXPORT_PORT ?= 15306 5 | DEVBOX_MARIADB110_PMA_EXPORT_PORT ?= 15307 6 | DEVBOX_MARIADB110_ADMINER_EXPORT_PORT ?= 15308 7 | DEVBOX_MARIADB110_DBGATE_EXPORT_PORT ?= 15309 8 | 9 | mariadb11.0-up: compose-cmd ; 10 | ${DEVBOX_COMPOSE_CMD} -f mariadb/11.0/compose.yml -p ${DEVBOX_MARIADB110_PROJECT_NAME} up -d 11 | 12 | mariadb11.0-down: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f mariadb/11.0/compose.yml -p ${DEVBOX_MARIADB110_PROJECT_NAME} down 14 | 15 | mariadb11.0-status: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f mariadb/11.0/compose.yml -p ${DEVBOX_MARIADB110_PROJECT_NAME} ps 17 | 18 | mariadb11.0-logs: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f mariadb/11.0/compose.yml -p ${DEVBOX_MARIADB110_PROJECT_NAME} logs -f 20 | 21 | mariadb11.0-purge: compose-cmd ; 22 | ${DEVBOX_COMPOSE_CMD} -f mariadb/11.0/compose.yml -p ${DEVBOX_MARIADB110_PROJECT_NAME} down --volumes 23 | 24 | mariadb11.0-command: compose-cmd ; 25 | @echo "${DEVBOX_COMPOSE_CMD} -f mariadb/11.0/compose.yml -p ${DEVBOX_MARIADB110_PROJECT_NAME}" 26 | 27 | mariadb11.0-help: 28 | @echo 29 | @echo "Commands:" 30 | @echo 31 | @echo " make mariadb11.0-up Start MariaDB 11.0 service and management tools" 32 | @echo " make mariadb11.0-down Stop MariaDB 11.0 service and management tools" 33 | @echo " make mariadb11.0-status Status from running services" 34 | @echo " make mariadb11.0-logs Logs from running services" 35 | @echo " make mariadb11.0-purge Delete all MariaDB 11.0 data" 36 | @echo " make mariadb11.0-info Information about the services for use" 37 | @echo " make mariadb11.0-command Print docker compose command" 38 | @echo " make mariadb11.0-help This help :)" 39 | @echo 40 | @echo "Available configurable environment variables:" 41 | @echo 42 | @echo " DEVBOX_MARIADB110_ROOT_PASSWORD Default root password" 43 | @echo " DEVBOX_MARIADB110_DB_EXPORT_PORT Port to expose MariaDB 11.0 in docker for your environment" 44 | @echo " DEVBOX_MARIADB110_PMA_EXPORT_PORT Port to expose PhpMyAdmin in docker for access in your browser" 45 | @echo " DEVBOX_MARIADB110_ADMINER_EXPORT_PORT Port to expose Adminer in docker for access in your browser" 46 | @echo " DEVBOX_MARIADB110_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 47 | @echo 48 | 49 | mariadb11.0-info: 50 | @echo 51 | @echo "MariaDB 11.0 information" 52 | @echo 53 | @echo " Host: 127.0.0.1" 54 | @echo " Port: ${DEVBOX_MARIADB110_DB_EXPORT_PORT}" 55 | @echo " User: root" 56 | @echo " Password: ${DEVBOX_MARIADB110_ROOT_PASSWORD}" 57 | @echo " PhpMyAdmin: http://127.0.0.1:${DEVBOX_MARIADB110_PMA_EXPORT_PORT}" 58 | @echo " Adminer: http://127.0.0.1:${DEVBOX_MARIADB110_ADMINER_EXPORT_PORT}" 59 | @echo " DbGate: http://127.0.0.1:${DEVBOX_MARIADB110_DBGATE_EXPORT_PORT}" 60 | @echo 61 | -------------------------------------------------------------------------------- /mariadb/11.0/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: mariadb:11.0 4 | environment: 5 | MARIADB_ROOT_PASSWORD: ${DEVBOX_MARIADB110_ROOT_PASSWORD:-password} 6 | volumes: 7 | - mariadb110_data:/var/lib/mysql 8 | networks: 9 | mariadb110_network_local: 10 | aliases: 11 | - db.mariadb110.devbox.local 12 | hostname: db.mariadb110.devbox.local 13 | ports: 14 | - ${DEVBOX_MARIADB110_DB_EXPORT_PORT:-15306}:3306 15 | healthcheck: 16 | test: /usr/local/bin/healthcheck.sh --su-mysql --connect --innodb_initialized 17 | start_period: 5s 18 | interval: 3s 19 | timeout: 1s 20 | retries: 20 21 | phpmyadmin: 22 | image: phpmyadmin/phpmyadmin:5 23 | depends_on: 24 | db: 25 | condition: service_healthy 26 | environment: 27 | PMA_HOST: db.mariadb110.devbox.local 28 | PMA_USER: root 29 | PMA_PASSWORD: ${DEVBOX_MARIADB110_ROOT_PASSWORD:-password} 30 | networks: 31 | mariadb110_network_local: 32 | aliases: 33 | - phpmyadmin.mariadb110.devbox.local 34 | hostname: phpmyadmin.mariadb110.devbox.local 35 | ports: 36 | - ${DEVBOX_MARIADB110_PMA_EXPORT_PORT:-15307}:80 37 | healthcheck: 38 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"] 39 | interval: 3s 40 | timeout: 1s 41 | retries: 20 42 | adminer: 43 | image: adminer:4 44 | depends_on: 45 | db: 46 | condition: service_healthy 47 | environment: 48 | ADMINER_DEFAULT_SERVER: db.mariadb110.devbox.local 49 | networks: 50 | mariadb110_network_local: 51 | aliases: 52 | - adminer.mariadb110.devbox.local 53 | hostname: adminer.mariadb110.devbox.local 54 | ports: 55 | - ${DEVBOX_MARIADB110_ADMINER_EXPORT_PORT:-15308}:8080 56 | healthcheck: 57 | test: "php -r 'exit(strpos(file_get_contents(\"http://localhost:8080/\"), \"Adminer\") !== false ? 0 : 1);'" 58 | interval: 3s 59 | timeout: 1s 60 | retries: 20 61 | dbgate: 62 | image: dbgate/dbgate:alpine 63 | depends_on: 64 | db: 65 | condition: service_healthy 66 | environment: 67 | CONNECTIONS: mariadb1 68 | LABEL_mariadb1: db.mariadb110.devbox.local 69 | SERVER_mariadb1: db.mariadb110.devbox.local 70 | USER_mariadb1: root 71 | PASSWORD_mariadb1: ${DEVBOX_MARIADB110_ROOT_PASSWORD:-password} 72 | PORT_mariadb1: 3306 73 | ENGINE_mariadb1: mysql@dbgate-plugin-mysql 74 | networks: 75 | mariadb110_network_local: 76 | aliases: 77 | - dbgate.mariadb110.devbox.local 78 | hostname: dbgate.mariadb110.devbox.local 79 | ports: 80 | - ${DEVBOX_MARIADB110_DBGATE_EXPORT_PORT:-15309}:3000 81 | healthcheck: 82 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 83 | interval: 3s 84 | timeout: 1s 85 | retries: 20 86 | 87 | volumes: 88 | mariadb110_data: 89 | 90 | networks: 91 | mariadb110_network_local: 92 | driver: bridge 93 | -------------------------------------------------------------------------------- /mariadb/11.4/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MARIADB114_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}s3x 2 | 3 | DEVBOX_MARIADB114_ROOT_PASSWORD ?= password 4 | DEVBOX_MARIADB114_DB_EXPORT_PORT ?= 16306 5 | DEVBOX_MARIADB114_PMA_EXPORT_PORT ?= 16307 6 | DEVBOX_MARIADB114_ADMINER_EXPORT_PORT ?= 16308 7 | DEVBOX_MARIADB114_DBGATE_EXPORT_PORT ?= 16309 8 | 9 | mariadb11.4-up: compose-cmd ; 10 | ${DEVBOX_COMPOSE_CMD} -f mariadb/11.4/compose.yml -p ${DEVBOX_MARIADB114_PROJECT_NAME} up -d 11 | 12 | mariadb11.4-down: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f mariadb/11.4/compose.yml -p ${DEVBOX_MARIADB114_PROJECT_NAME} down 14 | 15 | mariadb11.4-status: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f mariadb/11.4/compose.yml -p ${DEVBOX_MARIADB114_PROJECT_NAME} ps 17 | 18 | mariadb11.4-logs: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f mariadb/11.4/compose.yml -p ${DEVBOX_MARIADB114_PROJECT_NAME} logs -f 20 | 21 | mariadb11.4-purge: compose-cmd ; 22 | ${DEVBOX_COMPOSE_CMD} -f mariadb/11.4/compose.yml -p ${DEVBOX_MARIADB114_PROJECT_NAME} down --volumes 23 | 24 | mariadb11.4-command: compose-cmd ; 25 | @echo "${DEVBOX_COMPOSE_CMD} -f mariadb/11.4/compose.yml -p ${DEVBOX_MARIADB114_PROJECT_NAME}" 26 | 27 | mariadb11.4-help: 28 | @echo 29 | @echo "Commands:" 30 | @echo 31 | @echo " make mariadb11.4-up Start MariaDB 11.4 service and management tools" 32 | @echo " make mariadb11.4-down Stop MariaDB 11.4 service and management tools" 33 | @echo " make mariadb11.4-status Status from running services" 34 | @echo " make mariadb11.4-logs Logs from running services" 35 | @echo " make mariadb11.4-purge Delete all MariaDB 11.4 data" 36 | @echo " make mariadb11.4-info Information about the services for use" 37 | @echo " make mariadb11.4-command Print docker compose command" 38 | @echo " make mariadb11.4-help This help :)" 39 | @echo 40 | @echo "Available configurable environment variables:" 41 | @echo 42 | @echo " DEVBOX_MARIADB114_ROOT_PASSWORD Default root password" 43 | @echo " DEVBOX_MARIADB114_DB_EXPORT_PORT Port to expose MariaDB 11.4 in docker for your environment" 44 | @echo " DEVBOX_MARIADB114_PMA_EXPORT_PORT Port to expose PhpMyAdmin in docker for access in your browser" 45 | @echo " DEVBOX_MARIADB114_ADMINER_EXPORT_PORT Port to expose Adminer in docker for access in your browser" 46 | @echo " DEVBOX_MARIADB114_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 47 | @echo 48 | 49 | mariadb11.4-info: 50 | @echo 51 | @echo "MariaDB 11.4 information" 52 | @echo 53 | @echo " Host: 127.0.0.1" 54 | @echo " Port: ${DEVBOX_MARIADB114_DB_EXPORT_PORT}" 55 | @echo " User: root" 56 | @echo " Password: ${DEVBOX_MARIADB114_ROOT_PASSWORD}" 57 | @echo " PhpMyAdmin: http://127.0.0.1:${DEVBOX_MARIADB114_PMA_EXPORT_PORT}" 58 | @echo " Adminer: http://127.0.0.1:${DEVBOX_MARIADB114_ADMINER_EXPORT_PORT}" 59 | @echo " DbGate: http://127.0.0.1:${DEVBOX_MARIADB114_DBGATE_EXPORT_PORT}" 60 | @echo 61 | -------------------------------------------------------------------------------- /mariadb/11.4/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: mariadb:11.4 4 | environment: 5 | MARIADB_ROOT_PASSWORD: ${DEVBOX_MARIADB114_ROOT_PASSWORD:-password} 6 | volumes: 7 | - mariadb114_data:/var/lib/mysql 8 | networks: 9 | mariadb114_network_local: 10 | aliases: 11 | - db.mariadb114.devbox.local 12 | hostname: db.mariadb114.devbox.local 13 | ports: 14 | - ${DEVBOX_MARIADB114_DB_EXPORT_PORT:-16306}:3306 15 | healthcheck: 16 | test: /usr/local/bin/healthcheck.sh --su-mysql --connect --innodb_initialized 17 | start_period: 5s 18 | interval: 3s 19 | timeout: 1s 20 | retries: 20 21 | phpmyadmin: 22 | image: phpmyadmin/phpmyadmin:5 23 | depends_on: 24 | db: 25 | condition: service_healthy 26 | environment: 27 | PMA_HOST: db.mariadb114.devbox.local 28 | PMA_USER: root 29 | PMA_PASSWORD: ${DEVBOX_MARIADB114_ROOT_PASSWORD:-password} 30 | networks: 31 | mariadb114_network_local: 32 | aliases: 33 | - phpmyadmin.mariadb114.devbox.local 34 | hostname: phpmyadmin.mariadb114.devbox.local 35 | ports: 36 | - ${DEVBOX_MARIADB114_PMA_EXPORT_PORT:-16307}:80 37 | healthcheck: 38 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"] 39 | interval: 3s 40 | timeout: 1s 41 | retries: 20 42 | adminer: 43 | image: adminer:4 44 | depends_on: 45 | db: 46 | condition: service_healthy 47 | environment: 48 | ADMINER_DEFAULT_SERVER: db.mariadb114.devbox.local 49 | networks: 50 | mariadb114_network_local: 51 | aliases: 52 | - adminer.mariadb114.devbox.local 53 | hostname: adminer.mariadb114.devbox.local 54 | ports: 55 | - ${DEVBOX_MARIADB114_ADMINER_EXPORT_PORT:-16308}:8080 56 | healthcheck: 57 | test: "php -r 'exit(strpos(file_get_contents(\"http://localhost:8080/\"), \"Adminer\") !== false ? 0 : 1);'" 58 | interval: 3s 59 | timeout: 1s 60 | retries: 20 61 | dbgate: 62 | image: dbgate/dbgate:alpine 63 | depends_on: 64 | db: 65 | condition: service_healthy 66 | environment: 67 | CONNECTIONS: mariadb1 68 | LABEL_mariadb1: db.mariadb114.devbox.local 69 | SERVER_mariadb1: db.mariadb114.devbox.local 70 | USER_mariadb1: root 71 | PASSWORD_mariadb1: ${DEVBOX_MARIADB114_ROOT_PASSWORD:-password} 72 | PORT_mariadb1: 3306 73 | ENGINE_mariadb1: mysql@dbgate-plugin-mysql 74 | networks: 75 | mariadb114_network_local: 76 | aliases: 77 | - dbgate.mariadb114.devbox.local 78 | hostname: dbgate.mariadb114.devbox.local 79 | ports: 80 | - ${DEVBOX_MARIADB114_DBGATE_EXPORT_PORT:-16309}:3000 81 | healthcheck: 82 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 83 | interval: 3s 84 | timeout: 1s 85 | retries: 20 86 | 87 | volumes: 88 | mariadb114_data: 89 | 90 | networks: 91 | mariadb114_network_local: 92 | driver: bridge 93 | -------------------------------------------------------------------------------- /memcached/1.6/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MEMCACHED16_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}2ya 2 | 3 | DEVBOX_MEMCACHED16_CACHE_PORT ?= 21211 4 | DEVBOX_MEMCACHED16_ADMIN_PORT ?= 21212 5 | 6 | memcached1.6-up: compose-cmd ; 7 | ${DEVBOX_COMPOSE_CMD} -f memcached/1.6/compose.yml -p ${DEVBOX_MEMCACHED16_PROJECT_NAME} up -d 8 | 9 | memcached1.6-down: compose-cmd ; 10 | ${DEVBOX_COMPOSE_CMD} -f memcached/1.6/compose.yml -p ${DEVBOX_MEMCACHED16_PROJECT_NAME} down 11 | 12 | memcached1.6-status: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f memcached/1.6/compose.yml -p ${DEVBOX_MEMCACHED16_PROJECT_NAME} ps 14 | 15 | memcached1.6-logs: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f memcached/1.6/compose.yml -p ${DEVBOX_MEMCACHED16_PROJECT_NAME} logs -f 17 | 18 | memcached1.6-purge: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f memcached/1.6/compose.yml -p ${DEVBOX_MEMCACHED16_PROJECT_NAME} down --volumes 20 | 21 | memcached1.6-command: compose-cmd ; 22 | @echo "${DEVBOX_COMPOSE_CMD} -f memcached/1.6/compose.yml -p ${DEVBOX_MEMCACHED16_PROJECT_NAME}" 23 | 24 | memcached1.6-help: 25 | @echo 26 | @echo "Commands:" 27 | @echo 28 | @echo " make memcached1.6-up Start Memcached 1.6 service and management tools" 29 | @echo " make memcached1.6-down Stop Memcached 1.6 service and management tools" 30 | @echo " make memcached1.6-status Status from running services" 31 | @echo " make memcached1.6-logs Logs from running services" 32 | @echo " make memcached1.6-purge Delete all Memcached 1.6 data" 33 | @echo " make memcached1.6-info Information about the services for use" 34 | @echo " make memcached1.6-command Print docker compose command" 35 | @echo " make memcached1.6-help This help :)" 36 | @echo 37 | @echo "Available configurable environment variables:" 38 | @echo 39 | @echo " DEVBOX_MEMCACHED16_CACHE_PORT Port to expose Memcached 1.6 in docker for your environment" 40 | @echo " DEVBOX_MEMCACHED16_ADMIN_PORT Port to expose Memcached admin in docker for access in your browser" 41 | @echo 42 | 43 | memcached1.6-info: 44 | @echo 45 | @echo "Memcached 1.6 information" 46 | @echo 47 | @echo " Host: 127.0.0.1" 48 | @echo " Port: ${DEVBOX_MEMCACHED16_CACHE_PORT}" 49 | @echo " Memcached admin: http://127.0.0.1:${DEVBOX_MEMCACHED16_ADMIN_PORT}" 50 | @echo 51 | -------------------------------------------------------------------------------- /memcached/1.6/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | cache: 3 | image: memcached:1.6-alpine 4 | networks: 5 | memcached16_network_local: 6 | aliases: 7 | - cache.memcached16.devbox.local 8 | hostname: cache.memcached16.devbox.local 9 | ports: 10 | - ${DEVBOX_MEMCACHED16_CACHE_PORT:-21211}:11211 11 | healthcheck: 12 | test: ["CMD", "nc", "-vz", "127.0.0.1", "11211"] 13 | interval: 3s 14 | timeout: 1s 15 | retries: 20 16 | memcached-admin: 17 | image: hatamiarash7/memcached-admin:latest 18 | depends_on: 19 | cache: 20 | condition: service_healthy 21 | environment: 22 | MEMCACHED_HOST: cache.memcached16.devbox.local 23 | MEMCACHED_PORT: 11211 24 | networks: 25 | memcached16_network_local: 26 | aliases: 27 | - memcached-admin.memcached16.devbox.local 28 | hostname: memcached-admin.memcached16.devbox.local 29 | ports: 30 | - ${DEVBOX_MEMCACHED16_ADMIN_PORT:-21212}:80 31 | healthcheck: 32 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"] 33 | interval: 3s 34 | timeout: 1s 35 | retries: 20 36 | 37 | networks: 38 | memcached16_network_local: 39 | driver: bridge 40 | -------------------------------------------------------------------------------- /minio/latest/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MINIO_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}0xc 2 | 3 | DEVBOX_MINIO_API_EXPORT_PORT ?= 29000 4 | DEVBOX_MINIO_CONSOLE_EXPORT_PORT ?= 29001 5 | DEVBOX_MINIO_STORAGE_REGION ?= us-east-1 6 | DEVBOX_MINIO_CONSOLE_ROOT_USER ?= root 7 | DEVBOX_MINIO_CONSOLE_ROOT_PASSWORD ?= password 8 | 9 | minio-up: compose-cmd ; 10 | ${DEVBOX_COMPOSE_CMD} -f minio/latest/compose.yml -p ${DEVBOX_MINIO_PROJECT_NAME} up -d 11 | 12 | minio-down: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f minio/latest/compose.yml -p ${DEVBOX_MINIO_PROJECT_NAME} down 14 | 15 | minio-status: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f minio/latest/compose.yml -p ${DEVBOX_MINIO_PROJECT_NAME} ps 17 | 18 | minio-logs: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f minio/latest/compose.yml -p ${DEVBOX_MINIO_PROJECT_NAME} logs -f 20 | 21 | minio-purge: compose-cmd ; 22 | ${DEVBOX_COMPOSE_CMD} -f minio/latest/compose.yml -p ${DEVBOX_MINIO_PROJECT_NAME} down --volumes 23 | 24 | minio-command: compose-cmd ; 25 | @echo "${DEVBOX_COMPOSE_CMD} -f minio/latest/compose.yml -p ${DEVBOX_MINIO_PROJECT_NAME}" 26 | 27 | minio-help: 28 | @echo 29 | @echo "Commands:" 30 | @echo 31 | @echo " make minio-up Start MinIO latest service and management tools" 32 | @echo " make minio-down Stop MinIO latest service and management tools" 33 | @echo " make minio-status Status from running services" 34 | @echo " make minio-logs Logs from running services" 35 | @echo " make minio-purge Delete all MinIO latest data" 36 | @echo " make minio-info Information about the services for use" 37 | @echo " make minio-command Print docker compose command" 38 | @echo " make minio-help This help :)" 39 | @echo 40 | @echo "Available configurable environment variables:" 41 | @echo 42 | @echo " DEVBOX_MINIO_API_EXPORT_PORT Port to expose MinIO API latest in docker for your environment" 43 | @echo " DEVBOX_MINIO_CONSOLE_EXPORT_PORT Port to expose MinIO console web latest in docker for your environment" 44 | @echo " DEVBOX_MINIO_STORAGE_REGION Region to configure into MinIO" 45 | @echo " DEVBOX_MINIO_CONSOLE_ROOT_USER Root user to access console web into MinIO" 46 | @echo " DEVBOX_MINIO_CONSOLE_ROOT_PASSWORD Root password to access console web into MinIO" 47 | @echo 48 | 49 | minio-info: 50 | @echo 51 | @echo "MinIO latest information" 52 | @echo 53 | @echo " API: http://127.0.0.1:${DEVBOX_MINIO_API_EXPORT_PORT}" 54 | @echo " Console web: http://127.0.0.1:${DEVBOX_MINIO_CONSOLE_EXPORT_PORT}" 55 | @echo " Region: ${DEVBOX_MINIO_STORAGE_REGION}" 56 | @echo " Root user and access key: ${DEVBOX_MINIO_CONSOLE_ROOT_USER}" 57 | @echo " Root password and secret key: ${DEVBOX_MINIO_CONSOLE_ROOT_PASSWORD}" 58 | @echo 59 | -------------------------------------------------------------------------------- /minio/latest/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | bucket: 3 | image: minio/minio:latest 4 | environment: 5 | MINIO_REGION: ${DEVBOX_MINIO_STORAGE_REGION:-us-east-1} 6 | MINIO_ROOT_USER: ${DEVBOX_MINIO_CONSOLE_ROOT_USER:-root} 7 | MINIO_ROOT_PASSWORD: ${DEVBOX_MINIO_CONSOLE_ROOT_PASSWORD:-password} 8 | MINIO_BROWSER_REDIRECT_URL: http://127.0.0.1:${DEVBOX_MINIO_CONSOLE_EXPORT_PORT:-29001} 9 | volumes: 10 | - minio-latest_storage_data:/data 11 | command: server --address 0.0.0.0:9000 --console-address 0.0.0.0:9001 /data 12 | networks: 13 | minio-latest_network_local: 14 | aliases: 15 | - bucket.minio-latest.devbox.local 16 | hostname: bucket.minio-latest.devbox.local 17 | ports: 18 | - ${DEVBOX_MINIO_API_EXPORT_PORT:-29000}:9000 19 | - ${DEVBOX_MINIO_CONSOLE_EXPORT_PORT:-29001}:9001 20 | healthcheck: 21 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1:9000/minio/health/live"] 22 | interval: 3s 23 | timeout: 1s 24 | retries: 20 25 | 26 | volumes: 27 | minio-latest_storage_data: 28 | 29 | networks: 30 | minio-latest_network_local: 31 | driver: bridge 32 | -------------------------------------------------------------------------------- /mongo/4.4/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MONGO44_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}arq 2 | 3 | DEVBOX_MONGO44_DB_EXPORT_PORT ?= 27017 4 | DEVBOX_MONGO44_EXPRESS_EXPORT_PORT ?= 27018 5 | DEVBOX_MONGO44_DBGATE_EXPORT_PORT ?= 27019 6 | DEVBOX_MONGO44_NOSQLCLIENT_EXPORT_PORT ?= 27020 7 | 8 | mongo4.4-up: compose-cmd ; 9 | ${DEVBOX_COMPOSE_CMD} -f mongo/4.4/compose.yml -p ${DEVBOX_MONGO44_PROJECT_NAME} up -d 10 | 11 | mongo4.4-down: compose-cmd ; 12 | ${DEVBOX_COMPOSE_CMD} -f mongo/4.4/compose.yml -p ${DEVBOX_MONGO44_PROJECT_NAME} down 13 | 14 | mongo4.4-status: compose-cmd ; 15 | ${DEVBOX_COMPOSE_CMD} -f mongo/4.4/compose.yml -p ${DEVBOX_MONGO44_PROJECT_NAME} ps 16 | 17 | mongo4.4-logs: compose-cmd ; 18 | ${DEVBOX_COMPOSE_CMD} -f mongo/4.4/compose.yml -p ${DEVBOX_MONGO44_PROJECT_NAME} logs -f 19 | 20 | mongo4.4-purge: compose-cmd ; 21 | ${DEVBOX_COMPOSE_CMD} -f mongo/4.4/compose.yml -p ${DEVBOX_MONGO44_PROJECT_NAME} down --volumes 22 | 23 | mongo4.4-command: compose-cmd ; 24 | @echo "${DEVBOX_COMPOSE_CMD} -f mongo/4.4/compose.yml -p ${DEVBOX_MONGO44_PROJECT_NAME}" 25 | 26 | mongo4.4-help: 27 | @echo 28 | @echo "Commands:" 29 | @echo 30 | @echo " make mongo4.4-up Start MongoDB 4.4 service and management tools" 31 | @echo " make mongo4.4-down Stop MongoDB 4.4 service and management tools" 32 | @echo " make mongo4.4-status Status from running services" 33 | @echo " make mongo4.4-logs Logs from running services" 34 | @echo " make mongo4.4-purge Delete all MongoDB 4.4 data" 35 | @echo " make mongo4.4-info Information about the services for use" 36 | @echo " make mongo4.4-command Print docker compose command" 37 | @echo " make mongo4.4-help This help :)" 38 | @echo 39 | @echo "Available configurable environment variables:" 40 | @echo 41 | @echo " DEVBOX_MONGO44_DB_EXPORT_PORT Port to expose MongoDB 4.4 in docker for your environment" 42 | @echo " DEVBOX_MONGO44_EXPRESS_EXPORT_PORT Port to expose Mongo Express in docker for access in your browser" 43 | @echo " DEVBOX_MONGO44_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 44 | @echo " DEVBOX_MONGO44_NOSQLCLIENT_EXPORT_PORT Port to expose Nosqlclient in docker for access in your browser" 45 | @echo 46 | 47 | mongo4.4-info: 48 | @echo 49 | @echo "MongoDB 4.4 information" 50 | @echo 51 | @echo " Host: 127.0.0.1" 52 | @echo " Port: ${DEVBOX_MONGO44_DB_EXPORT_PORT}" 53 | @echo " Mongo Express: http://127.0.0.1:${DEVBOX_MONGO44_EXPRESS_EXPORT_PORT}" 54 | @echo " DbGate: http://127.0.0.1:${DEVBOX_MONGO44_DBGATE_EXPORT_PORT}" 55 | @echo " Nosqlclient: http://127.0.0.1:${DEVBOX_MONGO44_NOSQLCLIENT_EXPORT_PORT}" 56 | @echo 57 | -------------------------------------------------------------------------------- /mongo/4.4/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: mongo:4.4-bionic 4 | volumes: 5 | - mongo44_db_data:/data/db 6 | networks: 7 | mongo44_network_local: 8 | aliases: 9 | - db.mongo44.devbox.local 10 | hostname: db.mongo44.devbox.local 11 | ports: 12 | - ${DEVBOX_MONGO44_DB_EXPORT_PORT:-27017}:27017 13 | healthcheck: 14 | test: ["CMD", "mongo", "--quiet", "127.0.0.1/test", "--eval", "'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'"] 15 | start_period: 10s 16 | interval: 3s 17 | timeout: 1s 18 | retries: 20 19 | mongo-express: 20 | image: mongo-express:0.54 21 | depends_on: 22 | db: 23 | condition: service_healthy 24 | environment: 25 | ME_CONFIG_MONGODB_SERVER: db.mongo44.devbox.local 26 | networks: 27 | mongo44_network_local: 28 | aliases: 29 | - mongo-express.mongo44.devbox.local 30 | hostname: mongo-express.mongo44.devbox.local 31 | ports: 32 | - ${DEVBOX_MONGO44_EXPRESS_EXPORT_PORT:-27018}:8081 33 | healthcheck: 34 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8081"] 35 | interval: 3s 36 | timeout: 1s 37 | retries: 40 38 | dbgate: 39 | image: dbgate/dbgate:alpine 40 | depends_on: 41 | db: 42 | condition: service_healthy 43 | environment: 44 | CONNECTIONS: mongo1 45 | ENGINE_mongo1: mongo@dbgate-plugin-mongo 46 | LABEL_mongo1: db.mongo44.devbox.local 47 | SERVER_mongo1: db.mongo44.devbox.local 48 | PORT_mongo1: 27017 49 | networks: 50 | mongo44_network_local: 51 | aliases: 52 | - dbgate.mongo44.devbox.local 53 | hostname: dbgate.mongo44.devbox.local 54 | ports: 55 | - ${DEVBOX_MONGO44_DBGATE_EXPORT_PORT:-27019}:3000 56 | healthcheck: 57 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 58 | interval: 3s 59 | timeout: 1s 60 | retries: 20 61 | nosqlclient: 62 | image: mongoclient/mongoclient:4.0.1 63 | depends_on: 64 | db: 65 | condition: service_healthy 66 | environment: 67 | MONGOCLIENT_DEFAULT_CONNECTION_URL: mongodb://db.mongo44.devbox.local:27017 68 | volumes: 69 | - mongo44_nosqlclient_data:/data/db 70 | networks: 71 | mongo44_network_local: 72 | aliases: 73 | - nosqlclient.mongo44.devbox.local 74 | hostname: nosqlclient.mongo44.devbox.local 75 | ports: 76 | - ${DEVBOX_MONGO44_NOSQLCLIENT_EXPORT_PORT:-27020}:3000 77 | healthcheck: 78 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1:3000"] 79 | interval: 3s 80 | timeout: 1s 81 | retries: 20 82 | 83 | volumes: 84 | mongo44_db_data: 85 | mongo44_nosqlclient_data: 86 | 87 | networks: 88 | mongo44_network_local: 89 | driver: bridge 90 | -------------------------------------------------------------------------------- /mongo/5.0/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MONGO50_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}vga 2 | 3 | DEVBOX_MONGO50_DB_EXPORT_PORT ?= 28017 4 | DEVBOX_MONGO50_DB_USER ?= root 5 | DEVBOX_MONGO50_DB_PASSWORD ?= password 6 | DEVBOX_MONGO50_EXPRESS_EXPORT_PORT ?= 28018 7 | DEVBOX_MONGO50_DBGATE_EXPORT_PORT ?= 28019 8 | DEVBOX_MONGO50_NOSQLCLIENT_EXPORT_PORT ?= 28020 9 | 10 | mongo5.0-up: compose-cmd ; 11 | ${DEVBOX_COMPOSE_CMD} -f mongo/5.0/compose.yml -p ${DEVBOX_MONGO50_PROJECT_NAME} up -d 12 | 13 | mongo5.0-down: compose-cmd ; 14 | ${DEVBOX_COMPOSE_CMD} -f mongo/5.0/compose.yml -p ${DEVBOX_MONGO50_PROJECT_NAME} down 15 | 16 | mongo5.0-status: compose-cmd ; 17 | ${DEVBOX_COMPOSE_CMD} -f mongo/5.0/compose.yml -p ${DEVBOX_MONGO50_PROJECT_NAME} ps 18 | 19 | mongo5.0-logs: compose-cmd ; 20 | ${DEVBOX_COMPOSE_CMD} -f mongo/5.0/compose.yml -p ${DEVBOX_MONGO50_PROJECT_NAME} logs -f 21 | 22 | mongo5.0-purge: compose-cmd ; 23 | ${DEVBOX_COMPOSE_CMD} -f mongo/5.0/compose.yml -p ${DEVBOX_MONGO50_PROJECT_NAME} down --volumes 24 | 25 | mongo5.0-command: compose-cmd ; 26 | @echo "${DEVBOX_COMPOSE_CMD} -f mongo/5.0/compose.yml -p ${DEVBOX_MONGO50_PROJECT_NAME}" 27 | 28 | mongo5.0-help: 29 | @echo 30 | @echo "Commands:" 31 | @echo 32 | @echo " make mongo5.0-up Start MongoDB 5.0 service and management tools" 33 | @echo " make mongo5.0-down Stop MongoDB 5.0 service and management tools" 34 | @echo " make mongo5.0-status Status from running services" 35 | @echo " make mongo5.0-logs Logs from running services" 36 | @echo " make mongo5.0-purge Delete all MongoDB 5.0 data" 37 | @echo " make mongo5.0-info Information about the services for use" 38 | @echo " make mongo5.0-command Print docker compose command" 39 | @echo " make mongo5.0-help This help :)" 40 | @echo 41 | @echo "Available configurable environment variables:" 42 | @echo 43 | @echo " DEVBOX_MONGO50_DB_USER Default admin user" 44 | @echo " DEVBOX_MONGO50_DB_PASSWORD Default ${DEVBOX_MONGO50_DB_USER} password" 45 | @echo " DEVBOX_MONGO50_DB_EXPORT_PORT Port to expose MongoDB 5.0 in docker for your environment" 46 | @echo " DEVBOX_MONGO50_EXPRESS_EXPORT_PORT Port to expose Mongo Express in docker for access in your browser" 47 | @echo " DEVBOX_MONGO50_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 48 | @echo " DEVBOX_MONGO50_NOSQLCLIENT_EXPORT_PORT Port to expose Nosqlclient in docker for access in your browser" 49 | @echo 50 | 51 | mongo5.0-info: 52 | @echo 53 | @echo "MongoDB 5.0 information" 54 | @echo 55 | @echo " Host: 127.0.0.1" 56 | @echo " Port: ${DEVBOX_MONGO50_DB_EXPORT_PORT}" 57 | @echo " User: ${DEVBOX_MONGO50_DB_USER}" 58 | @echo " Password: ${DEVBOX_MONGO50_DB_PASSWORD}" 59 | @echo " Url: mongodb://${DEVBOX_MONGO50_DB_USER}:${DEVBOX_MONGO50_DB_PASSWORD}@127.0.0.1:${DEVBOX_MONGO50_DB_EXPORT_PORT}" 60 | @echo " Mongo Express: http://127.0.0.1:${DEVBOX_MONGO50_EXPRESS_EXPORT_PORT}" 61 | @echo " DbGate: http://127.0.0.1:${DEVBOX_MONGO50_DBGATE_EXPORT_PORT}" 62 | @echo " Nosqlclient: http://127.0.0.1:${DEVBOX_MONGO50_NOSQLCLIENT_EXPORT_PORT}" 63 | @echo 64 | -------------------------------------------------------------------------------- /mongo/5.0/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: mongo:5.0-focal 4 | environment: 5 | MONGO_INITDB_ROOT_USERNAME: ${DEVBOX_MONGO50_DB_USER:-root} 6 | MONGO_INITDB_ROOT_PASSWORD: ${DEVBOX_MONGO50_DB_PASSWORD:-password} 7 | volumes: 8 | - mongo50_db_data:/data/db 9 | networks: 10 | mongo50_network_local: 11 | aliases: 12 | - db.mongo50.devbox.local 13 | hostname: db.mongo50.devbox.local 14 | ports: 15 | - ${DEVBOX_MONGO50_DB_EXPORT_PORT:-28017}:27017 16 | healthcheck: 17 | test: ["CMD", "mongo", "--quiet", "127.0.0.1/test", "--eval", "'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'"] 18 | start_period: 10s 19 | interval: 3s 20 | timeout: 1s 21 | retries: 20 22 | mongo-express: 23 | image: mongo-express:0.54 24 | depends_on: 25 | db: 26 | condition: service_healthy 27 | environment: 28 | ME_CONFIG_MONGODB_SERVER: db.mongo50.devbox.local 29 | ME_CONFIG_MONGODB_PORT: 27017 30 | ME_CONFIG_MONGODB_ADMINUSERNAME: ${DEVBOX_MONGO50_DB_USER:-root} 31 | ME_CONFIG_MONGODB_ADMINPASSWORD: ${DEVBOX_MONGO50_DB_PASSWORD:-password} 32 | networks: 33 | mongo50_network_local: 34 | aliases: 35 | - mongo-express.mongo50.devbox.local 36 | hostname: mongo-express.mongo50.devbox.local 37 | ports: 38 | - ${DEVBOX_MONGO50_EXPRESS_EXPORT_PORT:-28018}:8081 39 | healthcheck: 40 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8081"] 41 | interval: 3s 42 | timeout: 1s 43 | retries: 40 44 | dbgate: 45 | image: dbgate/dbgate:alpine 46 | depends_on: 47 | db: 48 | condition: service_healthy 49 | environment: 50 | CONNECTIONS: mongo1 51 | ENGINE_mongo1: mongo@dbgate-plugin-mongo 52 | LABEL_mongo1: db.mongo50.devbox.local 53 | SERVER_mongo1: db.mongo50.devbox.local 54 | PORT_mongo1: 27017 55 | USER_mongo1: ${DEVBOX_MONGO50_DB_USER:-root} 56 | PASSWORD_mongo1: ${DEVBOX_MONGO50_DB_PASSWORD:-password} 57 | networks: 58 | mongo50_network_local: 59 | aliases: 60 | - dbgate.mongo50.devbox.local 61 | hostname: dbgate.mongo50.devbox.local 62 | ports: 63 | - ${DEVBOX_MONGO50_DBGATE_EXPORT_PORT:-28019}:3000 64 | healthcheck: 65 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 66 | interval: 3s 67 | timeout: 1s 68 | retries: 20 69 | nosqlclient: 70 | image: mongoclient/mongoclient:4.0.1 71 | depends_on: 72 | db: 73 | condition: service_healthy 74 | environment: 75 | MONGOCLIENT_DEFAULT_CONNECTION_URL: mongodb://${DEVBOX_MONGO50_DB_USER:-root}:${DEVBOX_MONGO50_DB_PASSWORD:-password}@db.mongo50.devbox.local:27017 76 | volumes: 77 | - mongo50_nosqlclient_data:/data/db 78 | networks: 79 | mongo50_network_local: 80 | aliases: 81 | - nosqlclient.mongo50.devbox.local 82 | hostname: nosqlclient.mongo50.devbox.local 83 | ports: 84 | - ${DEVBOX_MONGO50_NOSQLCLIENT_EXPORT_PORT:-28020}:3000 85 | healthcheck: 86 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1:3000"] 87 | interval: 3s 88 | timeout: 1s 89 | retries: 20 90 | 91 | volumes: 92 | mongo50_db_data: 93 | mongo50_nosqlclient_data: 94 | 95 | networks: 96 | mongo50_network_local: 97 | driver: bridge 98 | -------------------------------------------------------------------------------- /mongo/6.0/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MONGO60_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}hdj 2 | 3 | DEVBOX_MONGO60_DB_EXPORT_PORT ?= 29017 4 | DEVBOX_MONGO60_DB_USER ?= root 5 | DEVBOX_MONGO60_DB_PASSWORD ?= password 6 | DEVBOX_MONGO60_EXPRESS_EXPORT_PORT ?= 29018 7 | DEVBOX_MONGO60_MONGOEXPRESS_USERNAME ?= admin 8 | DEVBOX_MONGO60_MONGOEXPRESS_PASSWORD ?= password 9 | DEVBOX_MONGO60_DBGATE_EXPORT_PORT ?= 29019 10 | DEVBOX_MONGO60_NOSQLCLIENT_EXPORT_PORT ?= 29020 11 | 12 | mongo6.0-up: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f mongo/6.0/compose.yml -p ${DEVBOX_MONGO60_PROJECT_NAME} up -d 14 | 15 | mongo6.0-down: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f mongo/6.0/compose.yml -p ${DEVBOX_MONGO60_PROJECT_NAME} down 17 | 18 | mongo6.0-status: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f mongo/6.0/compose.yml -p ${DEVBOX_MONGO60_PROJECT_NAME} ps 20 | 21 | mongo6.0-logs: compose-cmd ; 22 | ${DEVBOX_COMPOSE_CMD} -f mongo/6.0/compose.yml -p ${DEVBOX_MONGO60_PROJECT_NAME} logs -f 23 | 24 | mongo6.0-purge: compose-cmd ; 25 | ${DEVBOX_COMPOSE_CMD} -f mongo/6.0/compose.yml -p ${DEVBOX_MONGO60_PROJECT_NAME} down --volumes 26 | 27 | mongo6.0-command: compose-cmd ; 28 | @echo "${DEVBOX_COMPOSE_CMD} -f mongo/6.0/compose.yml -p ${DEVBOX_MONGO60_PROJECT_NAME}" 29 | 30 | mongo6.0-help: 31 | @echo 32 | @echo "Commands:" 33 | @echo 34 | @echo " make mongo6.0-up Start MongoDB 6.0 service and management tools" 35 | @echo " make mongo6.0-down Stop MongoDB 6.0 service and management tools" 36 | @echo " make mongo6.0-status Status from running services" 37 | @echo " make mongo6.0-logs Logs from running services" 38 | @echo " make mongo6.0-purge Delete all MongoDB 6.0 data" 39 | @echo " make mongo6.0-info Information about the services for use" 40 | @echo " make mongo6.0-command Print docker compose command" 41 | @echo " make mongo6.0-help This help :)" 42 | @echo 43 | @echo "Available configurable environment variables:" 44 | @echo 45 | @echo " DEVBOX_MONGO60_DB_USER Default admin user" 46 | @echo " DEVBOX_MONGO60_DB_PASSWORD Default ${DEVBOX_MONGO60_DB_USER} password" 47 | @echo " DEVBOX_MONGO60_DB_EXPORT_PORT Port to expose MongoDB 6.0 in docker for your environment" 48 | @echo " DEVBOX_MONGO60_EXPRESS_EXPORT_PORT Port to expose Mongo Express in docker for access in your browser" 49 | @echo " DEVBOX_MONGO60_MONGOEXPRESS_USERNAME Username for login in Mongo Express in browser" 50 | @echo " DEVBOX_MONGO60_MONGOEXPRESS_PASSWORD Password for login in Mongo Express in browser" 51 | @echo " DEVBOX_MONGO60_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 52 | @echo " DEVBOX_MONGO60_NOSQLCLIENT_EXPORT_PORT Port to expose Nosqlclient in docker for access in your browser" 53 | @echo 54 | 55 | mongo6.0-info: 56 | @echo 57 | @echo "MongoDB 6.0 information" 58 | @echo 59 | @echo " Host: 127.0.0.1" 60 | @echo " Port: ${DEVBOX_MONGO60_DB_EXPORT_PORT}" 61 | @echo " User: ${DEVBOX_MONGO60_DB_USER}" 62 | @echo " Password: ${DEVBOX_MONGO60_DB_PASSWORD}" 63 | @echo " Url: mongodb://${DEVBOX_MONGO60_DB_USER}:${DEVBOX_MONGO60_DB_PASSWORD}@127.0.0.1:${DEVBOX_MONGO60_DB_EXPORT_PORT}" 64 | @echo " Mongo Express: http://127.0.0.1:${DEVBOX_MONGO60_EXPRESS_EXPORT_PORT}" 65 | @echo " Mongo Express username: ${DEVBOX_MONGO60_MONGOEXPRESS_USERNAME}" 66 | @echo " Mongo Express password: ${DEVBOX_MONGO60_MONGOEXPRESS_PASSWORD}" 67 | @echo " DbGate: http://127.0.0.1:${DEVBOX_MONGO60_DBGATE_EXPORT_PORT}" 68 | @echo " Nosqlclient: http://127.0.0.1:${DEVBOX_MONGO60_NOSQLCLIENT_EXPORT_PORT}" 69 | @echo 70 | -------------------------------------------------------------------------------- /mongo/6.0/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: mongo:6.0 4 | environment: 5 | MONGO_INITDB_ROOT_USERNAME: ${DEVBOX_MONGO60_DB_USER:-root} 6 | MONGO_INITDB_ROOT_PASSWORD: ${DEVBOX_MONGO60_DB_PASSWORD:-password} 7 | volumes: 8 | - mongo60_db_data:/data/db 9 | networks: 10 | mongo60_network_local: 11 | aliases: 12 | - db.mongo60.devbox.local 13 | hostname: db.mongo60.devbox.local 14 | ports: 15 | - ${DEVBOX_MONGO60_DB_EXPORT_PORT:-29017}:27017 16 | healthcheck: 17 | test: ["CMD", "mongosh", "--quiet", "127.0.0.1/test", "--eval", "'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'"] 18 | start_period: 10s 19 | interval: 3s 20 | timeout: 1s 21 | retries: 20 22 | mongo-express: 23 | image: mongo-express:1 24 | depends_on: 25 | db: 26 | condition: service_healthy 27 | environment: 28 | ME_CONFIG_MONGODB_SERVER: db.mongo60.devbox.local 29 | ME_CONFIG_MONGODB_PORT: 27017 30 | ME_CONFIG_MONGODB_ADMINUSERNAME: ${DEVBOX_MONGO60_DB_USER:-root} 31 | ME_CONFIG_MONGODB_ADMINPASSWORD: ${DEVBOX_MONGO60_DB_PASSWORD:-password} 32 | ME_CONFIG_BASICAUTH_USERNAME: ${DEVBOX_MONGO60_MONGOEXPRESS_USERNAME:-admin} 33 | ME_CONFIG_BASICAUTH_PASSWORD: ${DEVBOX_MONGO60_MONGOEXPRESS_PASSWORD:-password} 34 | networks: 35 | mongo60_network_local: 36 | aliases: 37 | - mongo-express.mongo60.devbox.local 38 | hostname: mongo-express.mongo60.devbox.local 39 | ports: 40 | - ${DEVBOX_MONGO60_EXPRESS_EXPORT_PORT:-29018}:8081 41 | healthcheck: 42 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8081"] 43 | interval: 3s 44 | timeout: 1s 45 | retries: 40 46 | dbgate: 47 | image: dbgate/dbgate:alpine 48 | depends_on: 49 | db: 50 | condition: service_healthy 51 | environment: 52 | CONNECTIONS: mongo1 53 | ENGINE_mongo1: mongo@dbgate-plugin-mongo 54 | LABEL_mongo1: db.mongo60.devbox.local 55 | SERVER_mongo1: db.mongo60.devbox.local 56 | PORT_mongo1: 27017 57 | USER_mongo1: ${DEVBOX_MONGO60_DB_USER:-root} 58 | PASSWORD_mongo1: ${DEVBOX_MONGO60_DB_PASSWORD:-password} 59 | networks: 60 | mongo60_network_local: 61 | aliases: 62 | - dbgate.mongo60.devbox.local 63 | hostname: dbgate.mongo60.devbox.local 64 | ports: 65 | - ${DEVBOX_MONGO60_DBGATE_EXPORT_PORT:-29019}:3000 66 | healthcheck: 67 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 68 | interval: 3s 69 | timeout: 1s 70 | retries: 20 71 | nosqlclient: 72 | image: mongoclient/mongoclient:4.0.1 73 | depends_on: 74 | db: 75 | condition: service_healthy 76 | environment: 77 | MONGOCLIENT_DEFAULT_CONNECTION_URL: mongodb://${DEVBOX_MONGO60_DB_USER:-root}:${DEVBOX_MONGO60_DB_PASSWORD:-password}@db.mongo60.devbox.local:27017 78 | volumes: 79 | - mongo60_nosqlclient_data:/data/db 80 | networks: 81 | mongo60_network_local: 82 | aliases: 83 | - nosqlclient.mongo60.devbox.local 84 | hostname: nosqlclient.mongo60.devbox.local 85 | ports: 86 | - ${DEVBOX_MONGO60_NOSQLCLIENT_EXPORT_PORT:-29020}:3000 87 | healthcheck: 88 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1:3000"] 89 | interval: 3s 90 | timeout: 1s 91 | retries: 20 92 | 93 | volumes: 94 | mongo60_db_data: 95 | mongo60_nosqlclient_data: 96 | 97 | networks: 98 | mongo60_network_local: 99 | driver: bridge 100 | -------------------------------------------------------------------------------- /mongo/7.0/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MONGO70_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}nqp 2 | 3 | DEVBOX_MONGO70_DB_EXPORT_PORT ?= 30017 4 | DEVBOX_MONGO70_DB_USER ?= root 5 | DEVBOX_MONGO70_DB_PASSWORD ?= password 6 | DEVBOX_MONGO70_EXPRESS_EXPORT_PORT ?= 30018 7 | DEVBOX_MONGO70_MONGOEXPRESS_USERNAME ?= admin 8 | DEVBOX_MONGO70_MONGOEXPRESS_PASSWORD ?= password 9 | DEVBOX_MONGO70_DBGATE_EXPORT_PORT ?= 30019 10 | DEVBOX_MONGO70_NOSQLCLIENT_EXPORT_PORT ?= 30020 11 | 12 | mongo7.0-up: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f mongo/7.0/compose.yml -p ${DEVBOX_MONGO70_PROJECT_NAME} up -d 14 | 15 | mongo7.0-down: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f mongo/7.0/compose.yml -p ${DEVBOX_MONGO70_PROJECT_NAME} down 17 | 18 | mongo7.0-status: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f mongo/7.0/compose.yml -p ${DEVBOX_MONGO70_PROJECT_NAME} ps 20 | 21 | mongo7.0-logs: compose-cmd ; 22 | ${DEVBOX_COMPOSE_CMD} -f mongo/7.0/compose.yml -p ${DEVBOX_MONGO70_PROJECT_NAME} logs -f 23 | 24 | mongo7.0-purge: compose-cmd ; 25 | ${DEVBOX_COMPOSE_CMD} -f mongo/7.0/compose.yml -p ${DEVBOX_MONGO70_PROJECT_NAME} down --volumes 26 | 27 | mongo7.0-command: compose-cmd ; 28 | @echo "${DEVBOX_COMPOSE_CMD} -f mongo/7.0/compose.yml -p ${DEVBOX_MONGO70_PROJECT_NAME}" 29 | 30 | mongo7.0-help: 31 | @echo 32 | @echo "Commands:" 33 | @echo 34 | @echo " make mongo7.0-up Start MongoDB 7.0 service and management tools" 35 | @echo " make mongo7.0-down Stop MongoDB 7.0 service and management tools" 36 | @echo " make mongo7.0-status Status from running services" 37 | @echo " make mongo7.0-logs Logs from running services" 38 | @echo " make mongo7.0-purge Delete all MongoDB 7.0 data" 39 | @echo " make mongo7.0-info Information about the services for use" 40 | @echo " make mongo7.0-command Print docker compose command" 41 | @echo " make mongo7.0-help This help :)" 42 | @echo 43 | @echo "Available configurable environment variables:" 44 | @echo 45 | @echo " DEVBOX_MONGO70_DB_USER Default admin user" 46 | @echo " DEVBOX_MONGO70_DB_PASSWORD Default ${DEVBOX_MONGO70_DB_USER} password" 47 | @echo " DEVBOX_MONGO70_DB_EXPORT_PORT Port to expose MongoDB 7.0 in docker for your environment" 48 | @echo " DEVBOX_MONGO70_EXPRESS_EXPORT_PORT Port to expose Mongo Express in docker for access in your browser" 49 | @echo " DEVBOX_MONGO70_MONGOEXPRESS_USERNAME Username for login in Mongo Express in browser" 50 | @echo " DEVBOX_MONGO70_MONGOEXPRESS_PASSWORD Password for login in Mongo Express in browser" 51 | @echo " DEVBOX_MONGO70_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 52 | @echo " DEVBOX_MONGO50_NOSQLCLIENT_EXPORT_PORT Port to expose Nosqlclient in docker for access in your browser" 53 | @echo 54 | 55 | mongo7.0-info: 56 | @echo 57 | @echo "MongoDB 7.0 information" 58 | @echo 59 | @echo " Host: 127.0.0.1" 60 | @echo " Port: ${DEVBOX_MONGO70_DB_EXPORT_PORT}" 61 | @echo " User: ${DEVBOX_MONGO70_DB_USER}" 62 | @echo " Password: ${DEVBOX_MONGO70_DB_PASSWORD}" 63 | @echo " Url: mongodb://${DEVBOX_MONGO70_DB_USER}:${DEVBOX_MONGO70_DB_PASSWORD}@127.0.0.1:${DEVBOX_MONGO70_DB_EXPORT_PORT}" 64 | @echo " Mongo Express: http://127.0.0.1:${DEVBOX_MONGO70_EXPRESS_EXPORT_PORT}" 65 | @echo " Mongo Express username: ${DEVBOX_MONGO70_MONGOEXPRESS_USERNAME}" 66 | @echo " Mongo Express password: ${DEVBOX_MONGO70_MONGOEXPRESS_PASSWORD}" 67 | @echo " DbGate: http://127.0.0.1:${DEVBOX_MONGO70_DBGATE_EXPORT_PORT}" 68 | @echo " Nosqlclient: http://127.0.0.1:${DEVBOX_MONGO70_NOSQLCLIENT_EXPORT_PORT}" 69 | @echo 70 | -------------------------------------------------------------------------------- /mongo/7.0/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: mongo:7.0 4 | environment: 5 | MONGO_INITDB_ROOT_USERNAME: ${DEVBOX_MONGO70_DB_USER:-root} 6 | MONGO_INITDB_ROOT_PASSWORD: ${DEVBOX_MONGO70_DB_PASSWORD:-password} 7 | volumes: 8 | - mongo70_db_data:/data/db 9 | networks: 10 | mongo70_network_local: 11 | aliases: 12 | - db.mongo70.devbox.local 13 | hostname: db.mongo70.devbox.local 14 | ports: 15 | - ${DEVBOX_MONGO70_DB_EXPORT_PORT:-30017}:27017 16 | healthcheck: 17 | test: ["CMD", "mongosh", "--quiet", "127.0.0.1/test", "--eval", "'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'"] 18 | start_period: 10s 19 | interval: 3s 20 | timeout: 1s 21 | retries: 20 22 | mongo-express: 23 | image: mongo-express:1 24 | depends_on: 25 | db: 26 | condition: service_healthy 27 | environment: 28 | ME_CONFIG_MONGODB_SERVER: db.mongo70.devbox.local 29 | ME_CONFIG_MONGODB_PORT: 27017 30 | ME_CONFIG_MONGODB_ADMINUSERNAME: ${DEVBOX_MONGO70_DB_USER:-root} 31 | ME_CONFIG_MONGODB_ADMINPASSWORD: ${DEVBOX_MONGO70_DB_PASSWORD:-password} 32 | ME_CONFIG_BASICAUTH_USERNAME: ${DEVBOX_MONGO70_MONGOEXPRESS_USERNAME:-admin} 33 | ME_CONFIG_BASICAUTH_PASSWORD: ${DEVBOX_MONGO70_MONGOEXPRESS_PASSWORD:-password} 34 | networks: 35 | mongo70_network_local: 36 | aliases: 37 | - mongo-express.mongo70.devbox.local 38 | hostname: mongo-express.mongo70.devbox.local 39 | ports: 40 | - ${DEVBOX_MONGO70_EXPRESS_EXPORT_PORT:-30018}:8081 41 | healthcheck: 42 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8081"] 43 | interval: 3s 44 | timeout: 1s 45 | retries: 40 46 | dbgate: 47 | image: dbgate/dbgate:alpine 48 | depends_on: 49 | db: 50 | condition: service_healthy 51 | environment: 52 | CONNECTIONS: mongo1 53 | ENGINE_mongo1: mongo@dbgate-plugin-mongo 54 | LABEL_mongo1: db.mongo70.devbox.local 55 | SERVER_mongo1: db.mongo70.devbox.local 56 | PORT_mongo1: 27017 57 | USER_mongo1: ${DEVBOX_MONGO70_DB_USER:-root} 58 | PASSWORD_mongo1: ${DEVBOX_MONGO70_DB_PASSWORD:-password} 59 | networks: 60 | mongo70_network_local: 61 | aliases: 62 | - dbgate.mongo70.devbox.local 63 | hostname: dbgate.mongo70.devbox.local 64 | ports: 65 | - ${DEVBOX_MONGO70_DBGATE_EXPORT_PORT:-30019}:3000 66 | healthcheck: 67 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 68 | interval: 3s 69 | timeout: 1s 70 | retries: 20 71 | nosqlclient: 72 | image: mongoclient/mongoclient:4.0.1 73 | depends_on: 74 | db: 75 | condition: service_healthy 76 | environment: 77 | MONGOCLIENT_DEFAULT_CONNECTION_URL: mongodb://${DEVBOX_MONGO70_DB_USER:-root}:${DEVBOX_MONGO70_DB_PASSWORD:-password}@db.mongo70.devbox.local:27017 78 | volumes: 79 | - mongo70_nosqlclient_data:/data/db 80 | networks: 81 | mongo70_network_local: 82 | aliases: 83 | - nosqlclient.mongo70.devbox.local 84 | hostname: nosqlclient.mongo70.devbox.local 85 | ports: 86 | - ${DEVBOX_MONGO70_NOSQLCLIENT_EXPORT_PORT:-30020}:3000 87 | healthcheck: 88 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1:3000"] 89 | interval: 3s 90 | timeout: 1s 91 | retries: 20 92 | 93 | volumes: 94 | mongo70_db_data: 95 | mongo70_nosqlclient_data: 96 | 97 | networks: 98 | mongo70_network_local: 99 | driver: bridge 100 | -------------------------------------------------------------------------------- /mongo/8.0/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MONGO80_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}t0a 2 | 3 | DEVBOX_MONGO80_DB_EXPORT_PORT ?= 31017 4 | DEVBOX_MONGO80_DB_USER ?= root 5 | DEVBOX_MONGO80_DB_PASSWORD ?= password 6 | DEVBOX_MONGO80_EXPRESS_EXPORT_PORT ?= 31018 7 | DEVBOX_MONGO80_MONGOEXPRESS_USERNAME ?= admin 8 | DEVBOX_MONGO80_MONGOEXPRESS_PASSWORD ?= password 9 | DEVBOX_MONGO80_DBGATE_EXPORT_PORT ?= 31019 10 | DEVBOX_MONGO80_NOSQLCLIENT_EXPORT_PORT ?= 31020 11 | 12 | mongo8.0-up: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f mongo/8.0/compose.yml -p ${DEVBOX_MONGO80_PROJECT_NAME} up -d 14 | 15 | mongo8.0-down: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f mongo/8.0/compose.yml -p ${DEVBOX_MONGO80_PROJECT_NAME} down 17 | 18 | mongo8.0-status: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f mongo/8.0/compose.yml -p ${DEVBOX_MONGO80_PROJECT_NAME} ps 20 | 21 | mongo8.0-logs: compose-cmd ; 22 | ${DEVBOX_COMPOSE_CMD} -f mongo/8.0/compose.yml -p ${DEVBOX_MONGO80_PROJECT_NAME} logs -f 23 | 24 | mongo8.0-purge: compose-cmd ; 25 | ${DEVBOX_COMPOSE_CMD} -f mongo/8.0/compose.yml -p ${DEVBOX_MONGO80_PROJECT_NAME} down --volumes 26 | 27 | mongo8.0-command: compose-cmd ; 28 | @echo "${DEVBOX_COMPOSE_CMD} -f mongo/8.0/compose.yml -p ${DEVBOX_MONGO80_PROJECT_NAME}" 29 | 30 | mongo8.0-help: 31 | @echo 32 | @echo "Commands:" 33 | @echo 34 | @echo " make mongo8.0-up Start MongoDB 8.0 service and management tools" 35 | @echo " make mongo8.0-down Stop MongoDB 8.0 service and management tools" 36 | @echo " make mongo8.0-status Status from running services" 37 | @echo " make mongo8.0-logs Logs from running services" 38 | @echo " make mongo8.0-purge Delete all MongoDB 8.0 data" 39 | @echo " make mongo8.0-info Information about the services for use" 40 | @echo " make mongo8.0-command Print docker compose command" 41 | @echo " make mongo8.0-help This help :)" 42 | @echo 43 | @echo "Available configurable environment variables:" 44 | @echo 45 | @echo " DEVBOX_MONGO80_DB_USER Default admin user" 46 | @echo " DEVBOX_MONGO80_DB_PASSWORD Default ${DEVBOX_MONGO80_DB_USER} password" 47 | @echo " DEVBOX_MONGO80_DB_EXPORT_PORT Port to expose MongoDB 8.0 in docker for your environment" 48 | @echo " DEVBOX_MONGO80_EXPRESS_EXPORT_PORT Port to expose Mongo Express in docker for access in your browser" 49 | @echo " DEVBOX_MONGO80_MONGOEXPRESS_USERNAME Username for login in Mongo Express in browser" 50 | @echo " DEVBOX_MONGO80_MONGOEXPRESS_PASSWORD Password for login in Mongo Express in browser" 51 | @echo " DEVBOX_MONGO80_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 52 | @echo " DEVBOX_MONGO50_NOSQLCLIENT_EXPORT_PORT Port to expose Nosqlclient in docker for access in your browser" 53 | @echo 54 | 55 | mongo8.0-info: 56 | @echo 57 | @echo "MongoDB 8.0 information" 58 | @echo 59 | @echo " Host: 127.0.0.1" 60 | @echo " Port: ${DEVBOX_MONGO80_DB_EXPORT_PORT}" 61 | @echo " User: ${DEVBOX_MONGO80_DB_USER}" 62 | @echo " Password: ${DEVBOX_MONGO80_DB_PASSWORD}" 63 | @echo " Url: mongodb://${DEVBOX_MONGO80_DB_USER}:${DEVBOX_MONGO80_DB_PASSWORD}@127.0.0.1:${DEVBOX_MONGO80_DB_EXPORT_PORT}" 64 | @echo " Mongo Express: http://127.0.0.1:${DEVBOX_MONGO80_EXPRESS_EXPORT_PORT}" 65 | @echo " Mongo Express username: ${DEVBOX_MONGO80_MONGOEXPRESS_USERNAME}" 66 | @echo " Mongo Express password: ${DEVBOX_MONGO80_MONGOEXPRESS_PASSWORD}" 67 | @echo " DbGate: http://127.0.0.1:${DEVBOX_MONGO80_DBGATE_EXPORT_PORT}" 68 | @echo " Nosqlclient: http://127.0.0.1:${DEVBOX_MONGO80_NOSQLCLIENT_EXPORT_PORT}" 69 | @echo 70 | -------------------------------------------------------------------------------- /mongo/8.0/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: mongo:8.0 4 | environment: 5 | MONGO_INITDB_ROOT_USERNAME: ${DEVBOX_MONGO80_DB_USER:-root} 6 | MONGO_INITDB_ROOT_PASSWORD: ${DEVBOX_MONGO80_DB_PASSWORD:-password} 7 | volumes: 8 | - mongo80_db_data:/data/db 9 | networks: 10 | mongo80_network_local: 11 | aliases: 12 | - db.mongo80.devbox.local 13 | hostname: db.mongo80.devbox.local 14 | ports: 15 | - ${DEVBOX_MONGO80_DB_EXPORT_PORT:-31017}:27017 16 | healthcheck: 17 | test: ["CMD", "mongosh", "--quiet", "127.0.0.1/test", "--eval", "'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'"] 18 | start_period: 10s 19 | interval: 3s 20 | timeout: 1s 21 | retries: 20 22 | mongo-express: 23 | image: mongo-express:1 24 | depends_on: 25 | db: 26 | condition: service_healthy 27 | environment: 28 | ME_CONFIG_MONGODB_SERVER: db.mongo80.devbox.local 29 | ME_CONFIG_MONGODB_PORT: 27017 30 | ME_CONFIG_MONGODB_ADMINUSERNAME: ${DEVBOX_MONGO80_DB_USER:-root} 31 | ME_CONFIG_MONGODB_ADMINPASSWORD: ${DEVBOX_MONGO80_DB_PASSWORD:-password} 32 | ME_CONFIG_BASICAUTH_USERNAME: ${DEVBOX_MONGO80_MONGOEXPRESS_USERNAME:-admin} 33 | ME_CONFIG_BASICAUTH_PASSWORD: ${DEVBOX_MONGO80_MONGOEXPRESS_PASSWORD:-password} 34 | networks: 35 | mongo80_network_local: 36 | aliases: 37 | - mongo-express.mongo80.devbox.local 38 | hostname: mongo-express.mongo80.devbox.local 39 | ports: 40 | - ${DEVBOX_MONGO80_EXPRESS_EXPORT_PORT:-31018}:8081 41 | healthcheck: 42 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8081"] 43 | interval: 3s 44 | timeout: 1s 45 | retries: 40 46 | dbgate: 47 | image: dbgate/dbgate:alpine 48 | depends_on: 49 | db: 50 | condition: service_healthy 51 | environment: 52 | CONNECTIONS: mongo1 53 | ENGINE_mongo1: mongo@dbgate-plugin-mongo 54 | LABEL_mongo1: db.mongo80.devbox.local 55 | SERVER_mongo1: db.mongo80.devbox.local 56 | PORT_mongo1: 27017 57 | USER_mongo1: ${DEVBOX_MONGO80_DB_USER:-root} 58 | PASSWORD_mongo1: ${DEVBOX_MONGO80_DB_PASSWORD:-password} 59 | networks: 60 | mongo80_network_local: 61 | aliases: 62 | - dbgate.mongo80.devbox.local 63 | hostname: dbgate.mongo80.devbox.local 64 | ports: 65 | - ${DEVBOX_MONGO80_DBGATE_EXPORT_PORT:-31019}:3000 66 | healthcheck: 67 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 68 | interval: 3s 69 | timeout: 1s 70 | retries: 20 71 | nosqlclient: 72 | image: mongoclient/mongoclient:4.0.1 73 | depends_on: 74 | db: 75 | condition: service_healthy 76 | environment: 77 | MONGOCLIENT_DEFAULT_CONNECTION_URL: mongodb://${DEVBOX_MONGO80_DB_USER:-root}:${DEVBOX_MONGO80_DB_PASSWORD:-password}@db.mongo80.devbox.local:27017 78 | volumes: 79 | - mongo80_nosqlclient_data:/data/db 80 | networks: 81 | mongo80_network_local: 82 | aliases: 83 | - nosqlclient.mongo80.devbox.local 84 | hostname: nosqlclient.mongo80.devbox.local 85 | ports: 86 | - ${DEVBOX_MONGO80_NOSQLCLIENT_EXPORT_PORT:-31020}:3000 87 | healthcheck: 88 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1:3000"] 89 | interval: 3s 90 | timeout: 1s 91 | retries: 20 92 | 93 | volumes: 94 | mongo80_db_data: 95 | mongo80_nosqlclient_data: 96 | 97 | networks: 98 | mongo80_network_local: 99 | driver: bridge 100 | -------------------------------------------------------------------------------- /mysql/5.7/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MYSQL57_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}4tx 2 | 3 | DEVBOX_MYSQL57_ROOT_PASSWORD ?= password 4 | DEVBOX_MYSQL57_DB_EXPORT_PORT ?= 13406 5 | DEVBOX_MYSQL57_PMA_EXPORT_PORT ?= 13407 6 | DEVBOX_MYSQL57_ADMINER_EXPORT_PORT ?= 13408 7 | DEVBOX_MYSQL57_DBGATE_EXPORT_PORT ?= 13409 8 | 9 | mysql5.7-up: compose-cmd ; 10 | ${DEVBOX_COMPOSE_CMD} -f mysql/5.7/compose.yml -p ${DEVBOX_MYSQL57_PROJECT_NAME} up -d 11 | 12 | mysql5.7-down: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f mysql/5.7/compose.yml -p ${DEVBOX_MYSQL57_PROJECT_NAME} down 14 | 15 | mysql5.7-status: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f mysql/5.7/compose.yml -p ${DEVBOX_MYSQL57_PROJECT_NAME} ps 17 | 18 | mysql5.7-logs: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f mysql/5.7/compose.yml -p ${DEVBOX_MYSQL57_PROJECT_NAME} logs -f 20 | 21 | mysql5.7-purge: compose-cmd ; 22 | ${DEVBOX_COMPOSE_CMD} -f mysql/5.7/compose.yml -p ${DEVBOX_MYSQL57_PROJECT_NAME} down --volumes 23 | 24 | mysql5.7-command: compose-cmd ; 25 | @echo "${DEVBOX_COMPOSE_CMD} -f mysql/5.7/compose.yml -p ${DEVBOX_MYSQL57_PROJECT_NAME}" 26 | 27 | mysql5.7-help: 28 | @echo 29 | @echo "Commands:" 30 | @echo 31 | @echo " make mysql5.7-up Start MySQL 5.7 service and management tools" 32 | @echo " make mysql5.7-down Stop MySQL 5.7 service and management tools" 33 | @echo " make mysql5.7-status Status from running services" 34 | @echo " make mysql5.7-logs Logs from running services" 35 | @echo " make mysql5.7-purge Delete all MySQL 5.7 data" 36 | @echo " make mysql5.7-info Information about the services for use" 37 | @echo " make mysql5.7-command Print docker compose command" 38 | @echo " make mysql5.7-help This help :)" 39 | @echo 40 | @echo "Available configurable environment variables:" 41 | @echo 42 | @echo " DEVBOX_MYSQL57_ROOT_PASSWORD Default root password" 43 | @echo " DEVBOX_MYSQL57_DB_EXPORT_PORT Port to expose MySQL 5.7 in docker for your environment" 44 | @echo " DEVBOX_MYSQL57_PMA_EXPORT_PORT Port to expose PhpMyAdmin in docker for access in your browser" 45 | @echo " DEVBOX_MYSQL57_ADMINER_EXPORT_PORT Port to expose Adminer in docker for access in your browser" 46 | @echo " DEVBOX_MYSQL57_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 47 | @echo 48 | 49 | mysql5.7-info: 50 | @echo 51 | @echo "MySQL 5.7 information" 52 | @echo 53 | @echo " Host: 127.0.0.1" 54 | @echo " Port: ${DEVBOX_MYSQL57_DB_EXPORT_PORT}" 55 | @echo " User: root" 56 | @echo " Password: ${DEVBOX_MYSQL57_ROOT_PASSWORD}" 57 | @echo " PhpMyAdmin: http://127.0.0.1:${DEVBOX_MYSQL57_PMA_EXPORT_PORT}" 58 | @echo " Adminer: http://127.0.0.1:${DEVBOX_MYSQL57_ADMINER_EXPORT_PORT}" 59 | @echo " DbGate: http://127.0.0.1:${DEVBOX_MYSQL57_DBGATE_EXPORT_PORT}" 60 | @echo 61 | -------------------------------------------------------------------------------- /mysql/5.7/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: mysql:5.7 4 | environment: 5 | MYSQL_ROOT_PASSWORD: ${DEVBOX_MYSQL57_ROOT_PASSWORD:-password} 6 | volumes: 7 | - mysql57_data:/var/lib/mysql 8 | networks: 9 | mysql57_network_local: 10 | aliases: 11 | - db.mysql57.devbox.local 12 | hostname: db.mysql57.devbox.local 13 | ports: 14 | - ${DEVBOX_MYSQL57_DB_EXPORT_PORT:-13306}:3306 15 | healthcheck: 16 | test: mysqladmin -p${DEVBOX_MYSQL57_ROOT_PASSWORD:-password} ping -h localhost 17 | start_period: 5s 18 | interval: 3s 19 | timeout: 1s 20 | retries: 20 21 | phpmyadmin: 22 | image: phpmyadmin/phpmyadmin:5 23 | depends_on: 24 | db: 25 | condition: service_healthy 26 | environment: 27 | PMA_HOST: db.mysql57.devbox.local 28 | PMA_USER: root 29 | PMA_PASSWORD: ${DEVBOX_MYSQL57_ROOT_PASSWORD:-password} 30 | networks: 31 | mysql57_network_local: 32 | aliases: 33 | - phpmyadmin.mysql57.devbox.local 34 | hostname: phpmyadmin.mysql57.devbox.local 35 | ports: 36 | - ${DEVBOX_MYSQL57_PMA_EXPORT_PORT:-13407}:80 37 | healthcheck: 38 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"] 39 | interval: 3s 40 | timeout: 1s 41 | retries: 20 42 | adminer: 43 | image: adminer:4 44 | depends_on: 45 | db: 46 | condition: service_healthy 47 | environment: 48 | ADMINER_DEFAULT_SERVER: db.mysql57.devbox.local 49 | networks: 50 | mysql57_network_local: 51 | aliases: 52 | - adminer.mysql57.devbox.local 53 | hostname: adminer.mysql57.devbox.local 54 | ports: 55 | - ${DEVBOX_MYSQL57_ADMINER_EXPORT_PORT:-13408}:8080 56 | healthcheck: 57 | test: "php -r 'exit(strpos(file_get_contents(\"http://localhost:8080/\"), \"Adminer\") !== false ? 0 : 1);'" 58 | interval: 3s 59 | timeout: 1s 60 | retries: 20 61 | dbgate: 62 | image: dbgate/dbgate:alpine 63 | depends_on: 64 | db: 65 | condition: service_healthy 66 | environment: 67 | CONNECTIONS: mysql1 68 | LABEL_mysql1: db.mysql57.devbox.local 69 | SERVER_mysql1: db.mysql57.devbox.local 70 | USER_mysql1: root 71 | PASSWORD_mysql1: ${DEVBOX_MYSQL57_ROOT_PASSWORD:-password} 72 | PORT_mysql1: 3306 73 | ENGINE_mysql1: mysql@dbgate-plugin-mysql 74 | networks: 75 | mysql57_network_local: 76 | aliases: 77 | - dbgate.mysql57.devbox.local 78 | hostname: dbgate.mysql57.devbox.local 79 | ports: 80 | - ${DEVBOX_MYSQL57_DBGATE_EXPORT_PORT:-13409}:3000 81 | healthcheck: 82 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 83 | interval: 3s 84 | timeout: 1s 85 | retries: 20 86 | 87 | volumes: 88 | mysql57_data: 89 | 90 | networks: 91 | mysql57_network_local: 92 | driver: bridge 93 | -------------------------------------------------------------------------------- /mysql/8.0/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MYSQL80_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}9ad 2 | 3 | DEVBOX_MYSQL80_ROOT_PASSWORD ?= password 4 | DEVBOX_MYSQL80_DB_EXPORT_PORT ?= 14406 5 | DEVBOX_MYSQL80_PMA_EXPORT_PORT ?= 14407 6 | DEVBOX_MYSQL80_ADMINER_EXPORT_PORT ?= 14408 7 | DEVBOX_MYSQL80_DBGATE_EXPORT_PORT ?= 14409 8 | 9 | mysql8.0-up: compose-cmd ; 10 | ${DEVBOX_COMPOSE_CMD} -f mysql/8.0/compose.yml -p ${DEVBOX_MYSQL80_PROJECT_NAME} up -d 11 | 12 | mysql8.0-down: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f mysql/8.0/compose.yml -p ${DEVBOX_MYSQL80_PROJECT_NAME} down 14 | 15 | mysql8.0-status: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f mysql/8.0/compose.yml -p ${DEVBOX_MYSQL80_PROJECT_NAME} ps 17 | 18 | mysql8.0-logs: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f mysql/8.0/compose.yml -p ${DEVBOX_MYSQL80_PROJECT_NAME} logs -f 20 | 21 | mysql8.0-purge: compose-cmd ; 22 | ${DEVBOX_COMPOSE_CMD} -f mysql/8.0/compose.yml -p ${DEVBOX_MYSQL80_PROJECT_NAME} down --volumes 23 | 24 | mysql8.0-command: compose-cmd ; 25 | @echo "${DEVBOX_COMPOSE_CMD} -f mysql/8.0/compose.yml -p ${DEVBOX_MYSQL80_PROJECT_NAME}" 26 | 27 | mysql8.0-help: 28 | @echo 29 | @echo "Commands:" 30 | @echo 31 | @echo " make mysql8.0-up Start MySQL 8.0 service and management tools" 32 | @echo " make mysql8.0-down Stop MySQL 8.0 service and management tools" 33 | @echo " make mysql8.0-status Status from running services" 34 | @echo " make mysql8.0-logs Logs from running services" 35 | @echo " make mysql8.0-purge Delete all MySQL 8.0 data" 36 | @echo " make mysql8.0-info Information about the services for use" 37 | @echo " make mysql8.0-command Print docker compose command" 38 | @echo " make mysql8.0-help This help :)" 39 | @echo 40 | @echo "Available configurable environment variables:" 41 | @echo 42 | @echo " DEVBOX_MYSQL80_ROOT_PASSWORD Default root password" 43 | @echo " DEVBOX_MYSQL80_DB_EXPORT_PORT Port to expose MySQL 8.0 in docker for your environment" 44 | @echo " DEVBOX_MYSQL80_PMA_EXPORT_PORT Port to expose PhpMyAdmin in docker for access in your browser" 45 | @echo " DEVBOX_MYSQL80_ADMINER_EXPORT_PORT Port to expose Adminer in docker for access in your browser" 46 | @echo " DEVBOX_MYSQL80_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 47 | @echo 48 | 49 | mysql8.0-info: 50 | @echo 51 | @echo "MySQL 8.0 information" 52 | @echo 53 | @echo " Host: 127.0.0.1" 54 | @echo " Port: ${DEVBOX_MYSQL80_DB_EXPORT_PORT}" 55 | @echo " User: root" 56 | @echo " Password: ${DEVBOX_MYSQL80_ROOT_PASSWORD}" 57 | @echo " PhpMyAdmin: http://127.0.0.1:${DEVBOX_MYSQL80_PMA_EXPORT_PORT}" 58 | @echo " Adminer: http://127.0.0.1:${DEVBOX_MYSQL80_ADMINER_EXPORT_PORT}" 59 | @echo " DbGate: http://127.0.0.1:${DEVBOX_MYSQL80_DBGATE_EXPORT_PORT}" 60 | @echo 61 | -------------------------------------------------------------------------------- /mysql/8.0/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: mysql:8.0 4 | environment: 5 | MYSQL_ROOT_PASSWORD: ${DEVBOX_MYSQL80_ROOT_PASSWORD:-password} 6 | volumes: 7 | - mysql80_data:/var/lib/mysql 8 | networks: 9 | mysql80_network_local: 10 | aliases: 11 | - db.mysql80.devbox.local 12 | hostname: db.mysql80.devbox.local 13 | ports: 14 | - ${DEVBOX_MYSQL80_DB_EXPORT_PORT:-14406}:3306 15 | healthcheck: 16 | test: mysqladmin -p${DEVBOX_MYSQL80_ROOT_PASSWORD:-password} ping -h localhost 17 | start_period: 5s 18 | interval: 3s 19 | timeout: 1s 20 | retries: 20 21 | phpmyadmin: 22 | image: phpmyadmin/phpmyadmin:5 23 | depends_on: 24 | db: 25 | condition: service_healthy 26 | environment: 27 | PMA_HOST: db.mysql80.devbox.local 28 | PMA_USER: root 29 | PMA_PASSWORD: ${DEVBOX_MYSQL80_ROOT_PASSWORD:-password} 30 | networks: 31 | mysql80_network_local: 32 | aliases: 33 | - phpmyadmin.mysql80.devbox.local 34 | hostname: phpmyadmin.mysql80.devbox.local 35 | ports: 36 | - ${DEVBOX_MYSQL80_PMA_EXPORT_PORT:-14407}:80 37 | healthcheck: 38 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"] 39 | interval: 3s 40 | timeout: 1s 41 | retries: 20 42 | adminer: 43 | image: adminer:4 44 | depends_on: 45 | db: 46 | condition: service_healthy 47 | environment: 48 | ADMINER_DEFAULT_SERVER: db.mysql80.devbox.local 49 | networks: 50 | mysql80_network_local: 51 | aliases: 52 | - adminer.mysql80.devbox.local 53 | hostname: adminer.mysql80.devbox.local 54 | ports: 55 | - ${DEVBOX_MYSQL80_ADMINER_EXPORT_PORT:-14408}:8080 56 | healthcheck: 57 | test: "php -r 'exit(strpos(file_get_contents(\"http://localhost:8080/\"), \"Adminer\") !== false ? 0 : 1);'" 58 | interval: 3s 59 | timeout: 1s 60 | retries: 20 61 | dbgate: 62 | image: dbgate/dbgate:alpine 63 | depends_on: 64 | db: 65 | condition: service_healthy 66 | environment: 67 | CONNECTIONS: mysql1 68 | LABEL_mysql1: db.mysql80.devbox.local 69 | SERVER_mysql1: db.mysql80.devbox.local 70 | USER_mysql1: root 71 | PASSWORD_mysql1: ${DEVBOX_MYSQL80_ROOT_PASSWORD:-password} 72 | PORT_mysql1: 3306 73 | ENGINE_mysql1: mysql@dbgate-plugin-mysql 74 | networks: 75 | mysql80_network_local: 76 | aliases: 77 | - dbgate.mysql80.devbox.local 78 | hostname: dbgate.mysql80.devbox.local 79 | ports: 80 | - ${DEVBOX_MYSQL80_DBGATE_EXPORT_PORT:-14409}:3000 81 | healthcheck: 82 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 83 | interval: 3s 84 | timeout: 1s 85 | retries: 20 86 | 87 | volumes: 88 | mysql80_data: 89 | 90 | networks: 91 | mysql80_network_local: 92 | driver: bridge 93 | -------------------------------------------------------------------------------- /mysql/8.4/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MYSQL84_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}dr7 2 | 3 | DEVBOX_MYSQL84_ROOT_PASSWORD ?= password 4 | DEVBOX_MYSQL84_DB_EXPORT_PORT ?= 15406 5 | DEVBOX_MYSQL84_PMA_EXPORT_PORT ?= 15407 6 | DEVBOX_MYSQL84_ADMINER_EXPORT_PORT ?= 15408 7 | DEVBOX_MYSQL84_DBGATE_EXPORT_PORT ?= 15409 8 | 9 | mysql8.4-up: compose-cmd ; 10 | ${DEVBOX_COMPOSE_CMD} -f mysql/8.4/compose.yml -p ${DEVBOX_MYSQL84_PROJECT_NAME} up -d 11 | 12 | mysql8.4-down: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f mysql/8.4/compose.yml -p ${DEVBOX_MYSQL84_PROJECT_NAME} down 14 | 15 | mysql8.4-status: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f mysql/8.4/compose.yml -p ${DEVBOX_MYSQL84_PROJECT_NAME} ps 17 | 18 | mysql8.4-logs: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f mysql/8.4/compose.yml -p ${DEVBOX_MYSQL84_PROJECT_NAME} logs -f 20 | 21 | mysql8.4-purge: compose-cmd ; 22 | ${DEVBOX_COMPOSE_CMD} -f mysql/8.4/compose.yml -p ${DEVBOX_MYSQL84_PROJECT_NAME} down --volumes 23 | 24 | mysql8.4-command: compose-cmd ; 25 | @echo "${DEVBOX_COMPOSE_CMD} -f mysql/8.4/compose.yml -p ${DEVBOX_MYSQL84_PROJECT_NAME}" 26 | 27 | mysql8.4-help: 28 | @echo 29 | @echo "Commands:" 30 | @echo 31 | @echo " make mysql8.4-up Start MySQL 8.4 service and management tools" 32 | @echo " make mysql8.4-down Stop MySQL 8.4 service and management tools" 33 | @echo " make mysql8.4-status Status from running services" 34 | @echo " make mysql8.4-logs Logs from running services" 35 | @echo " make mysql8.4-purge Delete all MySQL 8.4 data" 36 | @echo " make mysql8.4-info Information about the services for use" 37 | @echo " make mysql8.4-command Print docker compose command" 38 | @echo " make mysql8.4-help This help :)" 39 | @echo 40 | @echo "Available configurable environment variables:" 41 | @echo 42 | @echo " DEVBOX_MYSQL84_ROOT_PASSWORD Default root password" 43 | @echo " DEVBOX_MYSQL84_DB_EXPORT_PORT Port to expose MySQL 8.4 in docker for your environment" 44 | @echo " DEVBOX_MYSQL84_PMA_EXPORT_PORT Port to expose PhpMyAdmin in docker for access in your browser" 45 | @echo " DEVBOX_MYSQL84_ADMINER_EXPORT_PORT Port to expose Adminer in docker for access in your browser" 46 | @echo " DEVBOX_MYSQL84_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 47 | @echo 48 | 49 | mysql8.4-info: 50 | @echo 51 | @echo "MySQL 8.4 information" 52 | @echo 53 | @echo " Host: 127.0.0.1" 54 | @echo " Port: ${DEVBOX_MYSQL84_DB_EXPORT_PORT}" 55 | @echo " User: root" 56 | @echo " Password: ${DEVBOX_MYSQL84_ROOT_PASSWORD}" 57 | @echo " PhpMyAdmin: http://127.0.0.1:${DEVBOX_MYSQL84_PMA_EXPORT_PORT}" 58 | @echo " Adminer: http://127.0.0.1:${DEVBOX_MYSQL84_ADMINER_EXPORT_PORT}" 59 | @echo " DbGate: http://127.0.0.1:${DEVBOX_MYSQL84_DBGATE_EXPORT_PORT}" 60 | @echo 61 | -------------------------------------------------------------------------------- /mysql/8.4/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: mysql:8.4 4 | environment: 5 | MYSQL_ROOT_PASSWORD: ${DEVBOX_MYSQL84_ROOT_PASSWORD:-password} 6 | volumes: 7 | - mysql84_data:/var/lib/mysql 8 | networks: 9 | mysql84_network_local: 10 | aliases: 11 | - db.mysql84.devbox.local 12 | hostname: db.mysql84.devbox.local 13 | ports: 14 | - ${DEVBOX_MYSQL84_DB_EXPORT_PORT:-15406}:3306 15 | healthcheck: 16 | test: mysqladmin -p${DEVBOX_MYSQL84_ROOT_PASSWORD:-password} ping -h localhost 17 | start_period: 5s 18 | interval: 3s 19 | timeout: 1s 20 | retries: 20 21 | phpmyadmin: 22 | image: phpmyadmin/phpmyadmin:5 23 | depends_on: 24 | db: 25 | condition: service_healthy 26 | environment: 27 | PMA_HOST: db.mysql84.devbox.local 28 | PMA_USER: root 29 | PMA_PASSWORD: ${DEVBOX_MYSQL84_ROOT_PASSWORD:-password} 30 | networks: 31 | mysql84_network_local: 32 | aliases: 33 | - phpmyadmin.mysql84.devbox.local 34 | hostname: phpmyadmin.mysql84.devbox.local 35 | ports: 36 | - ${DEVBOX_MYSQL84_PMA_EXPORT_PORT:-15407}:80 37 | healthcheck: 38 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"] 39 | interval: 3s 40 | timeout: 1s 41 | retries: 20 42 | adminer: 43 | image: adminer:4 44 | depends_on: 45 | db: 46 | condition: service_healthy 47 | environment: 48 | ADMINER_DEFAULT_SERVER: db.mysql84.devbox.local 49 | networks: 50 | mysql84_network_local: 51 | aliases: 52 | - adminer.mysql84.devbox.local 53 | hostname: adminer.mysql84.devbox.local 54 | ports: 55 | - ${DEVBOX_MYSQL84_ADMINER_EXPORT_PORT:-15408}:8080 56 | healthcheck: 57 | test: ["CMD", "php", "-r", "if (@file_get_contents('http://localhost:8080') === false) { exit(1); }"] 58 | interval: 3s 59 | timeout: 1s 60 | retries: 20 61 | dbgate: 62 | image: dbgate/dbgate:alpine 63 | depends_on: 64 | db: 65 | condition: service_healthy 66 | environment: 67 | CONNECTIONS: mysql1 68 | LABEL_mysql1: db.mysql84.devbox.local 69 | SERVER_mysql1: db.mysql84.devbox.local 70 | USER_mysql1: root 71 | PASSWORD_mysql1: ${DEVBOX_MYSQL84_ROOT_PASSWORD:-password} 72 | PORT_mysql1: 3306 73 | ENGINE_mysql1: mysql@dbgate-plugin-mysql 74 | networks: 75 | mysql84_network_local: 76 | aliases: 77 | - dbgate.mysql84.devbox.local 78 | hostname: dbgate.mysql84.devbox.local 79 | ports: 80 | - ${DEVBOX_MYSQL84_DBGATE_EXPORT_PORT:-15409}:3000 81 | healthcheck: 82 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 83 | interval: 3s 84 | timeout: 1s 85 | retries: 20 86 | 87 | volumes: 88 | mysql84_data: 89 | 90 | networks: 91 | mysql84_network_local: 92 | driver: bridge 93 | -------------------------------------------------------------------------------- /mysql/9.0/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_MYSQL90_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}9a5 2 | 3 | DEVBOX_MYSQL90_ROOT_PASSWORD ?= password 4 | DEVBOX_MYSQL90_DB_EXPORT_PORT ?= 16406 5 | DEVBOX_MYSQL90_PMA_EXPORT_PORT ?= 16407 6 | DEVBOX_MYSQL90_ADMINER_EXPORT_PORT ?= 16408 7 | DEVBOX_MYSQL90_DBGATE_EXPORT_PORT ?= 16409 8 | 9 | mysql9.0-up: compose-cmd ; 10 | ${DEVBOX_COMPOSE_CMD} -f mysql/9.0/compose.yml -p ${DEVBOX_MYSQL90_PROJECT_NAME} up -d 11 | 12 | mysql9.0-down: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f mysql/9.0/compose.yml -p ${DEVBOX_MYSQL90_PROJECT_NAME} down 14 | 15 | mysql9.0-status: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f mysql/9.0/compose.yml -p ${DEVBOX_MYSQL90_PROJECT_NAME} ps 17 | 18 | mysql9.0-logs: compose-cmd ; 19 | ${DEVBOX_COMPOSE_CMD} -f mysql/9.0/compose.yml -p ${DEVBOX_MYSQL90_PROJECT_NAME} logs -f 20 | 21 | mysql9.0-purge: compose-cmd ; 22 | ${DEVBOX_COMPOSE_CMD} -f mysql/9.0/compose.yml -p ${DEVBOX_MYSQL90_PROJECT_NAME} down --volumes 23 | 24 | mysql9.0-command: compose-cmd ; 25 | @echo "${DEVBOX_COMPOSE_CMD} -f mysql/9.0/compose.yml -p ${DEVBOX_MYSQL90_PROJECT_NAME}" 26 | 27 | mysql9.0-help: 28 | @echo 29 | @echo "Commands:" 30 | @echo 31 | @echo " make mysql9.0-up Start MySQL 9.0 service and management tools" 32 | @echo " make mysql9.0-down Stop MySQL 9.0 service and management tools" 33 | @echo " make mysql9.0-status Status from running services" 34 | @echo " make mysql9.0-logs Logs from running services" 35 | @echo " make mysql9.0-purge Delete all MySQL 9.0 data" 36 | @echo " make mysql9.0-info Information about the services for use" 37 | @echo " make mysql9.0-command Print docker compose command" 38 | @echo " make mysql9.0-help This help :)" 39 | @echo 40 | @echo "Available configurable environment variables:" 41 | @echo 42 | @echo " DEVBOX_MYSQL90_ROOT_PASSWORD Default root password" 43 | @echo " DEVBOX_MYSQL90_DB_EXPORT_PORT Port to expose MySQL 9.0 in docker for your environment" 44 | @echo " DEVBOX_MYSQL90_PMA_EXPORT_PORT Port to expose PhpMyAdmin in docker for access in your browser" 45 | @echo " DEVBOX_MYSQL90_ADMINER_EXPORT_PORT Port to expose Adminer in docker for access in your browser" 46 | @echo " DEVBOX_MYSQL90_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 47 | @echo 48 | 49 | mysql9.0-info: 50 | @echo 51 | @echo "MySQL 9.0 information" 52 | @echo 53 | @echo " Host: 127.0.0.1" 54 | @echo " Port: ${DEVBOX_MYSQL90_DB_EXPORT_PORT}" 55 | @echo " User: root" 56 | @echo " Password: ${DEVBOX_MYSQL90_ROOT_PASSWORD}" 57 | @echo " PhpMyAdmin: http://127.0.0.1:${DEVBOX_MYSQL90_PMA_EXPORT_PORT}" 58 | @echo " Adminer: http://127.0.0.1:${DEVBOX_MYSQL90_ADMINER_EXPORT_PORT}" 59 | @echo " DbGate: http://127.0.0.1:${DEVBOX_MYSQL90_DBGATE_EXPORT_PORT}" 60 | @echo 61 | -------------------------------------------------------------------------------- /mysql/9.0/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: mysql:9.0 4 | environment: 5 | MYSQL_ROOT_PASSWORD: ${DEVBOX_MYSQL90_ROOT_PASSWORD:-password} 6 | volumes: 7 | - mysql90_data:/var/lib/mysql 8 | networks: 9 | mysql90_network_local: 10 | aliases: 11 | - db.mysql90.devbox.local 12 | hostname: db.mysql90.devbox.local 13 | ports: 14 | - ${DEVBOX_MYSQL90_DB_EXPORT_PORT:-16406}:3306 15 | healthcheck: 16 | test: mysqladmin -p${DEVBOX_MYSQL90_ROOT_PASSWORD:-password} ping -h localhost 17 | start_period: 5s 18 | interval: 3s 19 | timeout: 1s 20 | retries: 20 21 | phpmyadmin: 22 | image: phpmyadmin/phpmyadmin:5 23 | depends_on: 24 | db: 25 | condition: service_healthy 26 | environment: 27 | PMA_HOST: db.mysql90.devbox.local 28 | PMA_USER: root 29 | PMA_PASSWORD: ${DEVBOX_MYSQL90_ROOT_PASSWORD:-password} 30 | networks: 31 | mysql90_network_local: 32 | aliases: 33 | - phpmyadmin.mysql90.devbox.local 34 | hostname: phpmyadmin.mysql90.devbox.local 35 | ports: 36 | - ${DEVBOX_MYSQL90_PMA_EXPORT_PORT:-16407}:80 37 | healthcheck: 38 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"] 39 | interval: 3s 40 | timeout: 1s 41 | retries: 20 42 | adminer: 43 | image: adminer:4 44 | depends_on: 45 | db: 46 | condition: service_healthy 47 | environment: 48 | ADMINER_DEFAULT_SERVER: db.mysql90.devbox.local 49 | networks: 50 | mysql90_network_local: 51 | aliases: 52 | - adminer.mysql90.devbox.local 53 | hostname: adminer.mysql90.devbox.local 54 | ports: 55 | - ${DEVBOX_MYSQL90_ADMINER_EXPORT_PORT:-16408}:8080 56 | healthcheck: 57 | test: ["CMD", "php", "-r", "if (@file_get_contents('http://localhost:8080') === false) { exit(1); }"] 58 | interval: 3s 59 | timeout: 1s 60 | retries: 20 61 | dbgate: 62 | image: dbgate/dbgate:alpine 63 | depends_on: 64 | db: 65 | condition: service_healthy 66 | environment: 67 | CONNECTIONS: mysql1 68 | LABEL_mysql1: db.mysql90.devbox.local 69 | SERVER_mysql1: db.mysql90.devbox.local 70 | USER_mysql1: root 71 | PASSWORD_mysql1: ${DEVBOX_MYSQL90_ROOT_PASSWORD:-password} 72 | PORT_mysql1: 3306 73 | ENGINE_mysql1: mysql@dbgate-plugin-mysql 74 | networks: 75 | mysql90_network_local: 76 | aliases: 77 | - dbgate.mysql90.devbox.local 78 | hostname: dbgate.mysql90.devbox.local 79 | ports: 80 | - ${DEVBOX_MYSQL90_DBGATE_EXPORT_PORT:-16409}:3000 81 | healthcheck: 82 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 83 | interval: 3s 84 | timeout: 1s 85 | retries: 20 86 | 87 | volumes: 88 | mysql90_data: 89 | 90 | networks: 91 | mysql90_network_local: 92 | driver: bridge 93 | -------------------------------------------------------------------------------- /postgres/13.2/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_POSTGRES132_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}qjk 2 | 3 | DEVBOX_POSTGRES132_POSTGRES_USER ?= postgres 4 | DEVBOX_POSTGRES132_POSTGRES_PASSWORD ?= password 5 | DEVBOX_POSTGRES132_POSTGRES_DB ?= dev 6 | DEVBOX_POSTGRES132_DB_EXPORT_PORT ?= 15432 7 | DEVBOX_POSTGRES132_PGADMIN_EXPORT_PORT ?= 15433 8 | DEVBOX_POSTGRES132_PGADMIN_EMAIL ?= pgadmin4@devbox.local 9 | DEVBOX_POSTGRES132_PGADMIN_PASSWORD ?= password 10 | DEVBOX_POSTGRES132_PGWEB_EXPORT_PORT ?= 15434 11 | DEVBOX_POSTGRES132_DBGATE_EXPORT_PORT ?= 15435 12 | 13 | postgres13.2-up: compose-cmd ; 14 | ${DEVBOX_COMPOSE_CMD} -f postgres/13.2/compose.yml -p ${DEVBOX_POSTGRES132_PROJECT_NAME} up -d 15 | 16 | postgres13.2-down: compose-cmd ; 17 | ${DEVBOX_COMPOSE_CMD} -f postgres/13.2/compose.yml -p ${DEVBOX_POSTGRES132_PROJECT_NAME} down 18 | 19 | postgres13.2-status: compose-cmd ; 20 | ${DEVBOX_COMPOSE_CMD} -f postgres/13.2/compose.yml -p ${DEVBOX_POSTGRES132_PROJECT_NAME} ps 21 | 22 | postgres13.2-logs: compose-cmd ; 23 | ${DEVBOX_COMPOSE_CMD} -f postgres/13.2/compose.yml -p ${DEVBOX_POSTGRES132_PROJECT_NAME} logs -f 24 | 25 | postgres13.2-purge: compose-cmd ; 26 | ${DEVBOX_COMPOSE_CMD} -f postgres/13.2/compose.yml -p ${DEVBOX_POSTGRES132_PROJECT_NAME} down --volumes 27 | 28 | postgres13.2-command: compose-cmd ; 29 | @echo "${DEVBOX_COMPOSE_CMD} -f postgres/13.2/compose.yml -p ${DEVBOX_POSTGRES132_PROJECT_NAME}" 30 | 31 | postgres13.2-help: 32 | @echo 33 | @echo "Commands:" 34 | @echo 35 | @echo " make postgres13.2-up Start Postgres 13.2 service and management tools" 36 | @echo " make postgres13.2-down Stop Postgres 13.2 service and management tools" 37 | @echo " make postgres13.2-status Status from running services" 38 | @echo " make postgres13.2-logs Logs from running services" 39 | @echo " make postgres13.2-purge Delete all Postgres 13.2 data" 40 | @echo " make postgres13.2-info Information about the services for use" 41 | @echo " make postgres13.2-command Print docker compose command" 42 | @echo " make postgres13.2-help This help :)" 43 | @echo 44 | @echo "Available configurable environment variables:" 45 | @echo 46 | @echo " DEVBOX_POSTGRES132_POSTGRES_USER Default admin user" 47 | @echo " DEVBOX_POSTGRES132_POSTGRES_PASSWORD Default ${DEVBOX_POSTGRES132_POSTGRES_USER} password" 48 | @echo " DEVBOX_POSTGRES132_POSTGRES_DB Default database" 49 | @echo " DEVBOX_POSTGRES132_DB_EXPORT_PORT Port to expose Postgres 13.2 in docker for your environment" 50 | @echo " DEVBOX_POSTGRES132_PGADMIN_EXPORT_PORT Port to expose PgAdmin in docker for access in your browser" 51 | @echo " DEVBOX_POSTGRES132_PGADMIN_EMAIL E-mail to login in PgAdmin in browser" 52 | @echo " DEVBOX_POSTGRES132_PGADMIN_PASSWORD Password to login in PgAdmin in browser" 53 | @echo " DEVBOX_POSTGRES132_PGWEB_EXPORT_PORT Port to expose Pgweb in docker for access in your browser" 54 | @echo " DEVBOX_POSTGRES132_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 55 | @echo 56 | 57 | postgres13.2-info: 58 | @echo 59 | @echo "Postgres 13.2 information" 60 | @echo 61 | @echo " Host: 127.0.0.1" 62 | @echo " Port: ${DEVBOX_POSTGRES132_DB_EXPORT_PORT}" 63 | @echo " User: ${DEVBOX_POSTGRES132_POSTGRES_USER}" 64 | @echo " Password: ${DEVBOX_POSTGRES132_POSTGRES_PASSWORD}" 65 | @echo " Database: ${DEVBOX_POSTGRES132_POSTGRES_DB}" 66 | @echo " Url: postgres://${DEVBOX_POSTGRES132_POSTGRES_USER}:${DEVBOX_POSTGRES132_POSTGRES_PASSWORD}@127.0.0.1:${DEVBOX_POSTGRES132_DB_EXPORT_PORT}/${DEVBOX_POSTGRES132_POSTGRES_DB}?sslmode=disable" 67 | @echo " PgAdmin: http://127.0.0.1:${DEVBOX_POSTGRES132_PGADMIN_EXPORT_PORT}" 68 | @echo " PgAdmin user: ${DEVBOX_POSTGRES132_PGADMIN_EMAIL}" 69 | @echo " PgAdmin password: ${DEVBOX_POSTGRES132_PGADMIN_PASSWORD}" 70 | @echo " Pgweb: http://127.0.0.1:${DEVBOX_POSTGRES132_PGWEB_EXPORT_PORT}" 71 | @echo " DbGate: http://127.0.0.1:${DEVBOX_POSTGRES132_DBGATE_EXPORT_PORT}" 72 | @echo 73 | -------------------------------------------------------------------------------- /postgres/13.2/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: postgres:13.2-alpine 4 | environment: 5 | POSTGRES_USER: ${DEVBOX_POSTGRES132_POSTGRES_USER:-postgres} 6 | POSTGRES_PASSWORD: ${DEVBOX_POSTGRES132_POSTGRES_PASSWORD:-password} 7 | POSTGRES_DB: ${DEVBOX_POSTGRES132_POSTGRES_DB:-dev} 8 | volumes: 9 | - postgres132_db_data:/var/lib/postgresql/data 10 | networks: 11 | postgres132_network_local: 12 | aliases: 13 | - db.postgres132.devbox.local 14 | hostname: db.postgres132.devbox.local 15 | ports: 16 | - ${DEVBOX_POSTGRES132_DB_EXPORT_PORT:-15432}:5432 17 | healthcheck: 18 | test: ["CMD-SHELL", "pg_isready -U postgres"] 19 | start_period: 5s 20 | interval: 3s 21 | timeout: 1s 22 | retries: 20 23 | pgadmin: 24 | image: dpage/pgadmin4:5 25 | depends_on: 26 | db: 27 | condition: service_healthy 28 | environment: 29 | PGADMIN_DEFAULT_EMAIL: ${DEVBOX_POSTGRES132_PGADMIN_EMAIL:-pgadmin4@devbox.local} 30 | PGADMIN_DEFAULT_PASSWORD: ${DEVBOX_POSTGRES132_PGADMIN_PASSWORD:-password} 31 | volumes: 32 | - ./config/servers.json:/pgadmin4/servers.json 33 | - ./config/pgpassfile:/pgadmin4/pgpassfile 34 | networks: 35 | postgres132_network_local: 36 | aliases: 37 | - pgadmin.postgres132.devbox.local 38 | hostname: pgadmin.postgres132.devbox.local 39 | ports: 40 | - ${DEVBOX_POSTGRES132_PGADMIN_EXPORT_PORT:-15433}:80 41 | healthcheck: 42 | test: ["CMD", "nc", "-vz", "127.0.0.1", "80"] 43 | start_period: 30s 44 | interval: 3s 45 | timeout: 1s 46 | retries: 160 47 | pgweb: 48 | image: sosedoff/pgweb:latest 49 | depends_on: 50 | db: 51 | condition: service_healthy 52 | environment: 53 | DATABASE_URL: postgres://${DEVBOX_POSTGRES132_POSTGRES_USER:-postgres}:${DEVBOX_POSTGRES132_POSTGRES_PASSWORD:-password}@db.postgres132.devbox.local:5432/${DEVBOX_POSTGRES132_POSTGRES_DB:-dev}?sslmode=disable 54 | networks: 55 | postgres132_network_local: 56 | aliases: 57 | - pgweb.postgres132.devbox.local 58 | hostname: pgweb.postgres132.devbox.local 59 | ports: 60 | - ${DEVBOX_POSTGRES132_PGWEB_EXPORT_PORT:-15434}:8081 61 | healthcheck: 62 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8081"] 63 | interval: 3s 64 | timeout: 1s 65 | retries: 20 66 | dbgate: 67 | image: dbgate/dbgate:alpine 68 | depends_on: 69 | db: 70 | condition: service_healthy 71 | environment: 72 | CONNECTIONS: postgres1 73 | ENGINE_postgres1: postgres@dbgate-plugin-postgres 74 | LABEL_postgres1: db.postgres132.devbox.local 75 | SERVER_postgres1: db.postgres132.devbox.local 76 | PORT_postgres1: 5432 77 | USER_postgres1: ${DEVBOX_POSTGRES132_POSTGRES_USER:-postgres} 78 | PASSWORD_postgres1: ${DEVBOX_POSTGRES132_POSTGRES_PASSWORD:-password} 79 | networks: 80 | postgres132_network_local: 81 | aliases: 82 | - dbgate.postgres132.devbox.local 83 | hostname: dbgate.postgres132.devbox.local 84 | ports: 85 | - ${DEVBOX_POSTGRES132_DBGATE_EXPORT_PORT:-15435}:3000 86 | healthcheck: 87 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 88 | interval: 3s 89 | timeout: 1s 90 | retries: 20 91 | 92 | volumes: 93 | postgres132_db_data: 94 | 95 | networks: 96 | postgres132_network_local: 97 | driver: bridge 98 | -------------------------------------------------------------------------------- /postgres/13.2/config/pgpassfile: -------------------------------------------------------------------------------- 1 | db.postgres132.devbox.local:5432:dev:postgres:password -------------------------------------------------------------------------------- /postgres/13.2/config/servers.json: -------------------------------------------------------------------------------- 1 | { 2 | "Servers": { 3 | "1": { 4 | "Name": "db.postgres132.devbox.local", 5 | "Group": "Servers", 6 | "Host": "db.postgres132.devbox.local", 7 | "Port": 5432, 8 | "MaintenanceDB": "postgres", 9 | "Username": "postgres", 10 | "PassFile": "/pgadmin4/pgpassfile", 11 | "SSLMode": "prefer", 12 | "SSLCert": "/.postgresql/postgresql.crt", 13 | "SSLKey": "/.postgresql/postgresql.key", 14 | "SSLCompression": 0, 15 | "Timeout": 10, 16 | "UseSSHTunnel": 0, 17 | "TunnelPort": "22", 18 | "TunnelAuthentication": 0 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /postgres/14.2/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_POSTGRES142_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}js3 2 | 3 | DEVBOX_POSTGRES142_POSTGRES_USER ?= postgres 4 | DEVBOX_POSTGRES142_POSTGRES_PASSWORD ?= password 5 | DEVBOX_POSTGRES142_POSTGRES_DB ?= dev 6 | DEVBOX_POSTGRES142_DB_EXPORT_PORT ?= 15442 7 | DEVBOX_POSTGRES142_PGADMIN_EXPORT_PORT ?= 15443 8 | DEVBOX_POSTGRES142_PGADMIN_EMAIL ?= pgadmin4@devbox.local 9 | DEVBOX_POSTGRES142_PGADMIN_PASSWORD ?= password 10 | DEVBOX_POSTGRES142_PGWEB_EXPORT_PORT ?= 15444 11 | DEVBOX_POSTGRES142_DBGATE_EXPORT_PORT ?= 15445 12 | 13 | postgres14.2-up: compose-cmd ; 14 | ${DEVBOX_COMPOSE_CMD} -f postgres/14.2/compose.yml -p ${DEVBOX_POSTGRES142_PROJECT_NAME} up -d 15 | 16 | postgres14.2-down: compose-cmd ; 17 | ${DEVBOX_COMPOSE_CMD} -f postgres/14.2/compose.yml -p ${DEVBOX_POSTGRES142_PROJECT_NAME} down 18 | 19 | postgres14.2-status: compose-cmd ; 20 | ${DEVBOX_COMPOSE_CMD} -f postgres/14.2/compose.yml -p ${DEVBOX_POSTGRES142_PROJECT_NAME} ps 21 | 22 | postgres14.2-logs: compose-cmd ; 23 | ${DEVBOX_COMPOSE_CMD} -f postgres/14.2/compose.yml -p ${DEVBOX_POSTGRES142_PROJECT_NAME} logs -f 24 | 25 | postgres14.2-purge: compose-cmd ; 26 | ${DEVBOX_COMPOSE_CMD} -f postgres/14.2/compose.yml -p ${DEVBOX_POSTGRES142_PROJECT_NAME} down --volumes 27 | 28 | postgres14.2-command: compose-cmd ; 29 | @echo "${DEVBOX_COMPOSE_CMD} -f postgres/14.2/compose.yml -p ${DEVBOX_POSTGRES142_PROJECT_NAME}" 30 | 31 | postgres14.2-help: 32 | @echo 33 | @echo "Commands:" 34 | @echo 35 | @echo " make postgres14.2-up Start Postgres 14.2 service and management tools" 36 | @echo " make postgres14.2-down Stop Postgres 14.2 service and management tools" 37 | @echo " make postgres14.2-status Status from running services" 38 | @echo " make postgres14.2-logs Logs from running services" 39 | @echo " make postgres14.2-purge Delete all Postgres 14.2 data" 40 | @echo " make postgres14.2-info Information about the services for use" 41 | @echo " make postgres14.2-command Print docker compose command" 42 | @echo " make postgres14.2-help This help :)" 43 | @echo 44 | @echo "Available configurable environment variables:" 45 | @echo 46 | @echo " DEVBOX_POSTGRES142_POSTGRES_USER Default admin user" 47 | @echo " DEVBOX_POSTGRES142_POSTGRES_PASSWORD Default ${DEVBOX_POSTGRES142_POSTGRES_USER} password" 48 | @echo " DEVBOX_POSTGRES142_POSTGRES_DB Default database" 49 | @echo " DEVBOX_POSTGRES142_DB_EXPORT_PORT Port to expose Postgres 14.2 in docker for your environment" 50 | @echo " DEVBOX_POSTGRES142_PGADMIN_EXPORT_PORT Port to expose PgAdmin in docker for access in your browser" 51 | @echo " DEVBOX_POSTGRES142_PGADMIN_EMAIL E-mail to login in PgAdmin in browser" 52 | @echo " DEVBOX_POSTGRES142_PGADMIN_PASSWORD Password to login in PgAdmin in browser" 53 | @echo " DEVBOX_POSTGRES142_PGWEB_EXPORT_PORT Port to expose Pgweb in docker for access in your browser" 54 | @echo " DEVBOX_POSTGRES142_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 55 | @echo 56 | 57 | postgres14.2-info: 58 | @echo 59 | @echo "Postgres 14.2 information" 60 | @echo 61 | @echo " Host: 127.0.0.1" 62 | @echo " Port: ${DEVBOX_POSTGRES142_DB_EXPORT_PORT}" 63 | @echo " User: ${DEVBOX_POSTGRES142_POSTGRES_USER}" 64 | @echo " Password: ${DEVBOX_POSTGRES142_POSTGRES_PASSWORD}" 65 | @echo " Database: ${DEVBOX_POSTGRES142_POSTGRES_DB}" 66 | @echo " Url: postgres://${DEVBOX_POSTGRES142_POSTGRES_USER}:${DEVBOX_POSTGRES142_POSTGRES_PASSWORD}@127.0.0.1:${DEVBOX_POSTGRES142_DB_EXPORT_PORT}/${DEVBOX_POSTGRES142_POSTGRES_DB}?sslmode=disable" 67 | @echo " PgAdmin: http://127.0.0.1:${DEVBOX_POSTGRES142_PGADMIN_EXPORT_PORT}" 68 | @echo " PgAdmin user: ${DEVBOX_POSTGRES142_PGADMIN_EMAIL}" 69 | @echo " PgAdmin password: ${DEVBOX_POSTGRES142_PGADMIN_PASSWORD}" 70 | @echo " Pgweb: http://127.0.0.1:${DEVBOX_POSTGRES142_PGWEB_EXPORT_PORT}" 71 | @echo " DbGate: http://127.0.0.1:${DEVBOX_POSTGRES142_DBGATE_EXPORT_PORT}" 72 | @echo 73 | -------------------------------------------------------------------------------- /postgres/14.2/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: postgres:14.2-alpine 4 | environment: 5 | POSTGRES_USER: ${DEVBOX_POSTGRES142_POSTGRES_USER:-postgres} 6 | POSTGRES_PASSWORD: ${DEVBOX_POSTGRES142_POSTGRES_PASSWORD:-password} 7 | POSTGRES_DB: ${DEVBOX_POSTGRES142_POSTGRES_DB:-dev} 8 | volumes: 9 | - postgres142_db_data:/var/lib/postgresql/data 10 | networks: 11 | postgres142_network_local: 12 | aliases: 13 | - db.postgres142.devbox.local 14 | hostname: db.postgres142.devbox.local 15 | ports: 16 | - ${DEVBOX_POSTGRES142_DB_EXPORT_PORT:-15442}:5432 17 | healthcheck: 18 | test: ["CMD-SHELL", "pg_isready -U postgres"] 19 | start_period: 5s 20 | interval: 3s 21 | timeout: 1s 22 | retries: 20 23 | pgadmin: 24 | image: dpage/pgadmin4:5 25 | depends_on: 26 | db: 27 | condition: service_healthy 28 | environment: 29 | PGADMIN_DEFAULT_EMAIL: ${DEVBOX_POSTGRES142_PGADMIN_EMAIL:-pgadmin4@devbox.local} 30 | PGADMIN_DEFAULT_PASSWORD: ${DEVBOX_POSTGRES142_PGADMIN_PASSWORD:-password} 31 | volumes: 32 | - ./config/servers.json:/pgadmin4/servers.json 33 | - ./config/pgpassfile:/pgadmin4/pgpassfile 34 | networks: 35 | postgres142_network_local: 36 | aliases: 37 | - pgadmin.postgres142.devbox.local 38 | hostname: pgadmin.postgres142.devbox.local 39 | ports: 40 | - ${DEVBOX_POSTGRES142_PGADMIN_EXPORT_PORT:-15443}:80 41 | healthcheck: 42 | test: ["CMD", "nc", "-vz", "127.0.0.1", "80"] 43 | start_period: 100s 44 | interval: 3s 45 | timeout: 1s 46 | retries: 60 47 | pgweb: 48 | image: sosedoff/pgweb:latest 49 | depends_on: 50 | db: 51 | condition: service_healthy 52 | environment: 53 | DATABASE_URL: postgres://${DEVBOX_POSTGRES142_POSTGRES_USER:-postgres}:${DEVBOX_POSTGRES142_POSTGRES_PASSWORD:-password}@db.postgres142.devbox.local:5432/${DEVBOX_POSTGRES142_POSTGRES_DB:-dev}?sslmode=disable 54 | networks: 55 | postgres142_network_local: 56 | aliases: 57 | - pgweb.postgres142.devbox.local 58 | hostname: pgweb.postgres142.devbox.local 59 | ports: 60 | - ${DEVBOX_POSTGRES142_PGWEB_EXPORT_PORT:-15444}:8081 61 | healthcheck: 62 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8081"] 63 | interval: 3s 64 | timeout: 1s 65 | retries: 20 66 | dbgate: 67 | image: dbgate/dbgate:alpine 68 | depends_on: 69 | db: 70 | condition: service_healthy 71 | environment: 72 | CONNECTIONS: postgres1 73 | ENGINE_postgres1: postgres@dbgate-plugin-postgres 74 | LABEL_postgres1: db.postgres142.devbox.local 75 | SERVER_postgres1: db.postgres142.devbox.local 76 | PORT_postgres1: 5432 77 | USER_postgres1: ${DEVBOX_POSTGRES142_POSTGRES_USER:-postgres} 78 | PASSWORD_postgres1: ${DEVBOX_POSTGRES142_POSTGRES_PASSWORD:-password} 79 | networks: 80 | postgres142_network_local: 81 | aliases: 82 | - dbgate.postgres142.devbox.local 83 | hostname: dbgate.postgres142.devbox.local 84 | ports: 85 | - ${DEVBOX_POSTGRES142_DBGATE_EXPORT_PORT:-15445}:3000 86 | healthcheck: 87 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 88 | interval: 3s 89 | timeout: 1s 90 | retries: 20 91 | 92 | volumes: 93 | postgres142_db_data: 94 | 95 | networks: 96 | postgres142_network_local: 97 | driver: bridge 98 | -------------------------------------------------------------------------------- /postgres/14.2/config/pgpassfile: -------------------------------------------------------------------------------- 1 | db.postgres142.devbox.local:5432:dev:postgres:password 2 | -------------------------------------------------------------------------------- /postgres/14.2/config/servers.json: -------------------------------------------------------------------------------- 1 | { 2 | "Servers": { 3 | "1": { 4 | "Name": "db.postgres142.devbox.local", 5 | "Group": "Servers", 6 | "Host": "db.postgres142.devbox.local", 7 | "Port": 5432, 8 | "MaintenanceDB": "postgres", 9 | "Username": "postgres", 10 | "PassFile": "/pgadmin4/pgpassfile", 11 | "SSLMode": "prefer", 12 | "SSLCert": "/.postgresql/postgresql.crt", 13 | "SSLKey": "/.postgresql/postgresql.key", 14 | "SSLCompression": 0, 15 | "Timeout": 10, 16 | "UseSSHTunnel": 0, 17 | "TunnelPort": "22", 18 | "TunnelAuthentication": 0 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /postgres/15.3/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_POSTGRES153_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}js3 2 | 3 | DEVBOX_POSTGRES153_POSTGRES_USER ?= postgres 4 | DEVBOX_POSTGRES153_POSTGRES_PASSWORD ?= password 5 | DEVBOX_POSTGRES153_POSTGRES_DB ?= dev 6 | DEVBOX_POSTGRES153_DB_EXPORT_PORT ?= 16442 7 | DEVBOX_POSTGRES153_PGADMIN_EXPORT_PORT ?= 16443 8 | DEVBOX_POSTGRES153_PGADMIN_EMAIL ?= pgadmin4@devbox.local 9 | DEVBOX_POSTGRES153_PGADMIN_PASSWORD ?= password 10 | DEVBOX_POSTGRES153_PGWEB_EXPORT_PORT ?= 16444 11 | DEVBOX_POSTGRES153_DBGATE_EXPORT_PORT ?= 16445 12 | 13 | postgres15.3-up: compose-cmd ; 14 | ${DEVBOX_COMPOSE_CMD} -f postgres/15.3/compose.yml -p ${DEVBOX_POSTGRES153_PROJECT_NAME} up -d 15 | 16 | postgres15.3-down: compose-cmd ; 17 | ${DEVBOX_COMPOSE_CMD} -f postgres/15.3/compose.yml -p ${DEVBOX_POSTGRES153_PROJECT_NAME} down 18 | 19 | postgres15.3-status: compose-cmd ; 20 | ${DEVBOX_COMPOSE_CMD} -f postgres/15.3/compose.yml -p ${DEVBOX_POSTGRES153_PROJECT_NAME} ps 21 | 22 | postgres15.3-logs: compose-cmd ; 23 | ${DEVBOX_COMPOSE_CMD} -f postgres/15.3/compose.yml -p ${DEVBOX_POSTGRES153_PROJECT_NAME} logs -f 24 | 25 | postgres15.3-purge: compose-cmd ; 26 | ${DEVBOX_COMPOSE_CMD} -f postgres/15.3/compose.yml -p ${DEVBOX_POSTGRES153_PROJECT_NAME} down --volumes 27 | 28 | postgres15.3-command: compose-cmd ; 29 | @echo "${DEVBOX_COMPOSE_CMD} -f postgres/15.3/compose.yml -p ${DEVBOX_POSTGRES153_PROJECT_NAME}" 30 | 31 | postgres15.3-help: 32 | @echo 33 | @echo "Commands:" 34 | @echo 35 | @echo " make postgres15.3-up Start Postgres 15.3 service and management tools" 36 | @echo " make postgres15.3-down Stop Postgres 15.3 service and management tools" 37 | @echo " make postgres15.3-status Status from running services" 38 | @echo " make postgres15.3-logs Logs from running services" 39 | @echo " make postgres15.3-purge Delete all Postgres 15.3 data" 40 | @echo " make postgres15.3-info Information about the services for use" 41 | @echo " make postgres15.3-command Print docker compose command" 42 | @echo " make postgres15.3-help This help :)" 43 | @echo 44 | @echo "Available configurable environment variables:" 45 | @echo 46 | @echo " DEVBOX_POSTGRES153_POSTGRES_USER Default admin user" 47 | @echo " DEVBOX_POSTGRES153_POSTGRES_PASSWORD Default ${DEVBOX_POSTGRES153_POSTGRES_USER} password" 48 | @echo " DEVBOX_POSTGRES153_POSTGRES_DB Default database" 49 | @echo " DEVBOX_POSTGRES153_DB_EXPORT_PORT Port to expose Postgres 15.3 in docker for your environment" 50 | @echo " DEVBOX_POSTGRES153_PGADMIN_EXPORT_PORT Port to expose PgAdmin in docker for access in your browser" 51 | @echo " DEVBOX_POSTGRES153_PGADMIN_EMAIL E-mail to login in PgAdmin in browser" 52 | @echo " DEVBOX_POSTGRES153_PGADMIN_PASSWORD Password to login in PgAdmin in browser" 53 | @echo " DEVBOX_POSTGRES153_PGWEB_EXPORT_PORT Port to expose Pgweb in docker for access in your browser" 54 | @echo " DEVBOX_POSTGRES153_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 55 | @echo 56 | 57 | postgres15.3-info: 58 | @echo 59 | @echo "Postgres 15.3 information" 60 | @echo 61 | @echo " Host: 127.0.0.1" 62 | @echo " Port: ${DEVBOX_POSTGRES153_DB_EXPORT_PORT}" 63 | @echo " User: ${DEVBOX_POSTGRES153_POSTGRES_USER}" 64 | @echo " Password: ${DEVBOX_POSTGRES153_POSTGRES_PASSWORD}" 65 | @echo " Database: ${DEVBOX_POSTGRES153_POSTGRES_DB}" 66 | @echo " Url: postgres://${DEVBOX_POSTGRES153_POSTGRES_USER}:${DEVBOX_POSTGRES153_POSTGRES_PASSWORD}@127.0.0.1:${DEVBOX_POSTGRES153_DB_EXPORT_PORT}/${DEVBOX_POSTGRES153_POSTGRES_DB}?sslmode=disable" 67 | @echo " PgAdmin: http://127.0.0.1:${DEVBOX_POSTGRES153_PGADMIN_EXPORT_PORT}" 68 | @echo " PgAdmin user: ${DEVBOX_POSTGRES153_PGADMIN_EMAIL}" 69 | @echo " PgAdmin password: ${DEVBOX_POSTGRES153_PGADMIN_PASSWORD}" 70 | @echo " Pgweb: http://127.0.0.1:${DEVBOX_POSTGRES153_PGWEB_EXPORT_PORT}" 71 | @echo " DbGate: http://127.0.0.1:${DEVBOX_POSTGRES153_DBGATE_EXPORT_PORT}" 72 | @echo 73 | -------------------------------------------------------------------------------- /postgres/15.3/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: postgres:15.3-alpine 4 | environment: 5 | POSTGRES_USER: ${DEVBOX_POSTGRES153_POSTGRES_USER:-postgres} 6 | POSTGRES_PASSWORD: ${DEVBOX_POSTGRES153_POSTGRES_PASSWORD:-password} 7 | POSTGRES_DB: ${DEVBOX_POSTGRES153_POSTGRES_DB:-dev} 8 | volumes: 9 | - postgres153_db_data:/var/lib/postgresql/data 10 | networks: 11 | postgres153_network_local: 12 | aliases: 13 | - db.postgres153.devbox.local 14 | hostname: db.postgres153.devbox.local 15 | ports: 16 | - ${DEVBOX_POSTGRES153_DB_EXPORT_PORT:-16442}:5432 17 | healthcheck: 18 | test: ["CMD-SHELL", "pg_isready -U postgres"] 19 | start_period: 5s 20 | interval: 3s 21 | timeout: 1s 22 | retries: 20 23 | pgadmin: 24 | image: dpage/pgadmin4:5 25 | depends_on: 26 | db: 27 | condition: service_healthy 28 | environment: 29 | PGADMIN_DEFAULT_EMAIL: ${DEVBOX_POSTGRES153_PGADMIN_EMAIL:-pgadmin4@devbox.local} 30 | PGADMIN_DEFAULT_PASSWORD: ${DEVBOX_POSTGRES153_PGADMIN_PASSWORD:-password} 31 | networks: 32 | postgres153_network_local: 33 | aliases: 34 | - pgadmin.postgres153.devbox.local 35 | hostname: pgadmin.postgres153.devbox.local 36 | ports: 37 | - ${DEVBOX_POSTGRES153_PGADMIN_EXPORT_PORT:-16443}:80 38 | healthcheck: 39 | test: ["CMD", "nc", "-vz", "127.0.0.1", "80"] 40 | start_period: 100s 41 | interval: 3s 42 | timeout: 1s 43 | retries: 60 44 | pgweb: 45 | image: sosedoff/pgweb:latest 46 | depends_on: 47 | db: 48 | condition: service_healthy 49 | environment: 50 | DATABASE_URL: postgres://${DEVBOX_POSTGRES153_POSTGRES_USER:-postgres}:${DEVBOX_POSTGRES153_POSTGRES_PASSWORD:-password}@db.postgres153.devbox.local:5432/${DEVBOX_POSTGRES153_POSTGRES_DB:-dev}?sslmode=disable 51 | networks: 52 | postgres153_network_local: 53 | aliases: 54 | - pgweb.postgres153.devbox.local 55 | hostname: pgweb.postgres153.devbox.local 56 | ports: 57 | - ${DEVBOX_POSTGRES153_PGWEB_EXPORT_PORT:-16444}:8081 58 | healthcheck: 59 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8081"] 60 | interval: 3s 61 | timeout: 1s 62 | retries: 20 63 | dbgate: 64 | image: dbgate/dbgate:alpine 65 | depends_on: 66 | db: 67 | condition: service_healthy 68 | environment: 69 | CONNECTIONS: postgres1 70 | ENGINE_postgres1: postgres@dbgate-plugin-postgres 71 | LABEL_postgres1: db.postgres153.devbox.local 72 | SERVER_postgres1: db.postgres153.devbox.local 73 | PORT_postgres1: 5432 74 | USER_postgres1: ${DEVBOX_POSTGRES153_POSTGRES_USER:-postgres} 75 | PASSWORD_postgres1: ${DEVBOX_POSTGRES153_POSTGRES_PASSWORD:-password} 76 | networks: 77 | postgres153_network_local: 78 | aliases: 79 | - dbgate.postgres153.devbox.local 80 | hostname: dbgate.postgres153.devbox.local 81 | ports: 82 | - ${DEVBOX_POSTGRES153_DBGATE_EXPORT_PORT:-16445}:3000 83 | healthcheck: 84 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 85 | interval: 3s 86 | timeout: 1s 87 | retries: 20 88 | 89 | volumes: 90 | postgres153_db_data: 91 | 92 | networks: 93 | postgres153_network_local: 94 | driver: bridge 95 | -------------------------------------------------------------------------------- /postgres/16/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_POSTGRES16_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}t20 2 | 3 | DEVBOX_POSTGRES16_POSTGRES_USER ?= postgres 4 | DEVBOX_POSTGRES16_POSTGRES_PASSWORD ?= password 5 | DEVBOX_POSTGRES16_POSTGRES_DB ?= dev 6 | DEVBOX_POSTGRES16_DB_EXPORT_PORT ?= 17442 7 | DEVBOX_POSTGRES16_PGADMIN_EXPORT_PORT ?= 17443 8 | DEVBOX_POSTGRES16_PGADMIN_EMAIL ?= pgadmin4@devbox.local 9 | DEVBOX_POSTGRES16_PGADMIN_PASSWORD ?= password 10 | DEVBOX_POSTGRES16_PGWEB_EXPORT_PORT ?= 17444 11 | DEVBOX_POSTGRES16_DBGATE_EXPORT_PORT ?= 17445 12 | 13 | postgres16-up: compose-cmd ; 14 | ${DEVBOX_COMPOSE_CMD} -f postgres/16/compose.yml -p ${DEVBOX_POSTGRES16_PROJECT_NAME} up -d 15 | 16 | postgres16-down: compose-cmd ; 17 | ${DEVBOX_COMPOSE_CMD} -f postgres/16/compose.yml -p ${DEVBOX_POSTGRES16_PROJECT_NAME} down 18 | 19 | postgres16-status: compose-cmd ; 20 | ${DEVBOX_COMPOSE_CMD} -f postgres/16/compose.yml -p ${DEVBOX_POSTGRES16_PROJECT_NAME} ps 21 | 22 | postgres16-logs: compose-cmd ; 23 | ${DEVBOX_COMPOSE_CMD} -f postgres/16/compose.yml -p ${DEVBOX_POSTGRES16_PROJECT_NAME} logs -f 24 | 25 | postgres16-purge: compose-cmd ; 26 | ${DEVBOX_COMPOSE_CMD} -f postgres/16/compose.yml -p ${DEVBOX_POSTGRES16_PROJECT_NAME} down --volumes 27 | 28 | postgres16-command: compose-cmd ; 29 | @echo "${DEVBOX_COMPOSE_CMD} -f postgres/16/compose.yml -p ${DEVBOX_POSTGRES16_PROJECT_NAME}" 30 | 31 | postgres16-help: 32 | @echo 33 | @echo "Commands:" 34 | @echo 35 | @echo " make postgres16-up Start Postgres 16 service and management tools" 36 | @echo " make postgres16-down Stop Postgres 16 service and management tools" 37 | @echo " make postgres16-status Status from running services" 38 | @echo " make postgres16-logs Logs from running services" 39 | @echo " make postgres16-purge Delete all Postgres 16 data" 40 | @echo " make postgres16-info Information about the services for use" 41 | @echo " make postgres16-command Print docker compose command" 42 | @echo " make postgres16-help This help :)" 43 | @echo 44 | @echo "Available configurable environment variables:" 45 | @echo 46 | @echo " DEVBOX_POSTGRES16_POSTGRES_USER Default admin user" 47 | @echo " DEVBOX_POSTGRES16_POSTGRES_PASSWORD Default ${DEVBOX_POSTGRES16_POSTGRES_USER} password" 48 | @echo " DEVBOX_POSTGRES16_POSTGRES_DB Default database" 49 | @echo " DEVBOX_POSTGRES16_DB_EXPORT_PORT Port to expose Postgres 16 in docker for your environment" 50 | @echo " DEVBOX_POSTGRES16_PGADMIN_EXPORT_PORT Port to expose PgAdmin in docker for access in your browser" 51 | @echo " DEVBOX_POSTGRES16_PGWEB_EXPORT_PORT Port to expose Pgweb in docker for access in your browser" 52 | @echo " DEVBOX_POSTGRES16_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 53 | @echo 54 | 55 | postgres16-info: 56 | @echo 57 | @echo "Postgres 16 information" 58 | @echo 59 | @echo " Host: 127.0.0.1" 60 | @echo " Port: ${DEVBOX_POSTGRES16_DB_EXPORT_PORT}" 61 | @echo " User: ${DEVBOX_POSTGRES16_POSTGRES_USER}" 62 | @echo " Password: ${DEVBOX_POSTGRES16_POSTGRES_PASSWORD}" 63 | @echo " Database: ${DEVBOX_POSTGRES16_POSTGRES_DB}" 64 | @echo " Url: postgres://${DEVBOX_POSTGRES16_POSTGRES_USER}:${DEVBOX_POSTGRES16_POSTGRES_PASSWORD}@127.0.0.1:${DEVBOX_POSTGRES16_DB_EXPORT_PORT}/${DEVBOX_POSTGRES16_POSTGRES_DB}?sslmode=disable" 65 | @echo " PgAdmin: http://127.0.0.1:${DEVBOX_POSTGRES16_PGADMIN_EXPORT_PORT}" 66 | @echo " Pgweb: http://127.0.0.1:${DEVBOX_POSTGRES16_PGWEB_EXPORT_PORT}" 67 | @echo " DbGate: http://127.0.0.1:${DEVBOX_POSTGRES16_DBGATE_EXPORT_PORT}" 68 | @echo 69 | -------------------------------------------------------------------------------- /postgres/16/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: postgres:16-alpine 4 | environment: 5 | POSTGRES_USER: ${DEVBOX_POSTGRES16_POSTGRES_USER:-postgres} 6 | POSTGRES_PASSWORD: ${DEVBOX_POSTGRES16_POSTGRES_PASSWORD:-password} 7 | POSTGRES_DB: ${DEVBOX_POSTGRES16_POSTGRES_DB:-dev} 8 | volumes: 9 | - postgres16_db_data:/var/lib/postgresql/data 10 | networks: 11 | postgres16_network_local: 12 | aliases: 13 | - db.postgres16.devbox.local 14 | hostname: db.postgres16.devbox.local 15 | ports: 16 | - ${DEVBOX_POSTGRES16_DB_EXPORT_PORT:-17442}:5432 17 | healthcheck: 18 | test: ["CMD-SHELL", "pg_isready -U postgres"] 19 | start_period: 5s 20 | interval: 3s 21 | timeout: 1s 22 | retries: 20 23 | pgadmin: 24 | image: dpage/pgadmin4:8 25 | depends_on: 26 | db: 27 | condition: service_healthy 28 | user: root 29 | configs: 30 | - source: pgadmin_servers 31 | target: /pgadmin4/servers.json 32 | - source: pgadmin_pgpass 33 | target: /pgpass 34 | environment: 35 | PGADMIN_DEFAULT_EMAIL: pgadmin4@devbox.local 36 | PGADMIN_DEFAULT_PASSWORD: password 37 | PGADMIN_DISABLE_POSTFIX: "True" 38 | PGADMIN_CONFIG_ALLOW_SPECIAL_EMAIL_DOMAINS: "['local']" 39 | PGADMIN_CONFIG_SERVER_MODE: "False" 40 | PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED: "False" 41 | networks: 42 | postgres16_network_local: 43 | aliases: 44 | - pgadmin.postgres16.devbox.local 45 | hostname: pgadmin.postgres16.devbox.local 46 | ports: 47 | - ${DEVBOX_POSTGRES16_PGADMIN_EXPORT_PORT:-17443}:80 48 | entrypoint: /bin/sh -c "chmod 600 /pgpass; /entrypoint.sh;" 49 | healthcheck: 50 | test: ["CMD", "nc", "-vz", "127.0.0.1", "80"] 51 | start_period: 100s 52 | interval: 3s 53 | timeout: 1s 54 | retries: 60 55 | pgweb: 56 | image: sosedoff/pgweb:latest 57 | depends_on: 58 | db: 59 | condition: service_healthy 60 | environment: 61 | DATABASE_URL: postgres://${DEVBOX_POSTGRES16_POSTGRES_USER:-postgres}:${DEVBOX_POSTGRES16_POSTGRES_PASSWORD:-password}@db.postgres16.devbox.local:5432/${DEVBOX_POSTGRES16_POSTGRES_DB:-dev}?sslmode=disable 62 | networks: 63 | postgres16_network_local: 64 | aliases: 65 | - pgweb.postgres16.devbox.local 66 | hostname: pgweb.postgres16.devbox.local 67 | ports: 68 | - ${DEVBOX_POSTGRES16_PGWEB_EXPORT_PORT:-17444}:8081 69 | healthcheck: 70 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8081"] 71 | interval: 3s 72 | timeout: 1s 73 | retries: 20 74 | dbgate: 75 | image: dbgate/dbgate:alpine 76 | depends_on: 77 | db: 78 | condition: service_healthy 79 | environment: 80 | CONNECTIONS: postgres1 81 | ENGINE_postgres1: postgres@dbgate-plugin-postgres 82 | LABEL_postgres1: db.postgres16.devbox.local 83 | SERVER_postgres1: db.postgres16.devbox.local 84 | PORT_postgres1: 5432 85 | USER_postgres1: ${DEVBOX_POSTGRES16_POSTGRES_USER:-postgres} 86 | PASSWORD_postgres1: ${DEVBOX_POSTGRES16_POSTGRES_PASSWORD:-password} 87 | networks: 88 | postgres16_network_local: 89 | aliases: 90 | - dbgate.postgres16.devbox.local 91 | hostname: dbgate.postgres16.devbox.local 92 | ports: 93 | - ${DEVBOX_POSTGRES16_DBGATE_EXPORT_PORT:-17445}:3000 94 | healthcheck: 95 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 96 | interval: 3s 97 | timeout: 1s 98 | retries: 20 99 | 100 | configs: 101 | pgadmin_pgpass: 102 | content: db.postgres16.devbox.local:5432:*:${DEVBOX_POSTGRES16_POSTGRES_USER:-postgres}:${DEVBOX_POSTGRES16_PGADMIN_PASSWORD:-password} 103 | pgadmin_servers: 104 | content: | 105 | {"Servers": {"1": { 106 | "Group": "Servers", 107 | "Name": "db.postgres16.devbox.local", 108 | "Host": "db.postgres16.devbox.local", 109 | "Port": 5432, 110 | "MaintenanceDB": "postgres", 111 | "Username": "${DEVBOX_POSTGRES16_POSTGRES_USER:-postgres}", 112 | "PassFile": "/pgpass", 113 | "SSLMode": "prefer" 114 | }}} 115 | 116 | volumes: 117 | postgres16_db_data: 118 | 119 | networks: 120 | postgres16_network_local: 121 | driver: bridge 122 | -------------------------------------------------------------------------------- /postgres/17/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_POSTGRES17_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}t21 2 | 3 | DEVBOX_POSTGRES17_POSTGRES_USER ?= postgres 4 | DEVBOX_POSTGRES17_POSTGRES_PASSWORD ?= password 5 | DEVBOX_POSTGRES17_POSTGRES_DB ?= dev 6 | DEVBOX_POSTGRES17_DB_EXPORT_PORT ?= 18442 7 | DEVBOX_POSTGRES17_PGADMIN_EXPORT_PORT ?= 18443 8 | DEVBOX_POSTGRES17_PGADMIN_EMAIL ?= pgadmin4@devbox.local 9 | DEVBOX_POSTGRES17_PGADMIN_PASSWORD ?= password 10 | DEVBOX_POSTGRES17_PGWEB_EXPORT_PORT ?= 18444 11 | DEVBOX_POSTGRES17_DBGATE_EXPORT_PORT ?= 18445 12 | 13 | postgres17-up: compose-cmd ; 14 | ${DEVBOX_COMPOSE_CMD} -f postgres/17/compose.yml -p ${DEVBOX_POSTGRES17_PROJECT_NAME} up -d 15 | 16 | postgres17-down: compose-cmd ; 17 | ${DEVBOX_COMPOSE_CMD} -f postgres/17/compose.yml -p ${DEVBOX_POSTGRES17_PROJECT_NAME} down 18 | 19 | postgres17-status: compose-cmd ; 20 | ${DEVBOX_COMPOSE_CMD} -f postgres/17/compose.yml -p ${DEVBOX_POSTGRES17_PROJECT_NAME} ps 21 | 22 | postgres17-logs: compose-cmd ; 23 | ${DEVBOX_COMPOSE_CMD} -f postgres/17/compose.yml -p ${DEVBOX_POSTGRES17_PROJECT_NAME} logs -f 24 | 25 | postgres17-purge: compose-cmd ; 26 | ${DEVBOX_COMPOSE_CMD} -f postgres/17/compose.yml -p ${DEVBOX_POSTGRES17_PROJECT_NAME} down --volumes 27 | 28 | postgres17-command: compose-cmd ; 29 | @echo "${DEVBOX_COMPOSE_CMD} -f postgres/17/compose.yml -p ${DEVBOX_POSTGRES17_PROJECT_NAME}" 30 | 31 | postgres17-help: 32 | @echo 33 | @echo "Commands:" 34 | @echo 35 | @echo " make postgres17-up Start Postgres 17 service and management tools" 36 | @echo " make postgres17-down Stop Postgres 17 service and management tools" 37 | @echo " make postgres17-status Status from running services" 38 | @echo " make postgres17-logs Logs from running services" 39 | @echo " make postgres17-purge Delete all Postgres 17 data" 40 | @echo " make postgres17-info Information about the services for use" 41 | @echo " make postgres17-command Print docker compose command" 42 | @echo " make postgres17-help This help :)" 43 | @echo 44 | @echo "Available configurable environment variables:" 45 | @echo 46 | @echo " DEVBOX_POSTGRES17_POSTGRES_USER Default admin user" 47 | @echo " DEVBOX_POSTGRES17_POSTGRES_PASSWORD Default ${DEVBOX_POSTGRES17_POSTGRES_USER} password" 48 | @echo " DEVBOX_POSTGRES17_POSTGRES_DB Default database" 49 | @echo " DEVBOX_POSTGRES17_DB_EXPORT_PORT Port to expose Postgres 17 in docker for your environment" 50 | @echo " DEVBOX_POSTGRES17_PGADMIN_EXPORT_PORT Port to expose PgAdmin in docker for access in your browser" 51 | @echo " DEVBOX_POSTGRES17_PGWEB_EXPORT_PORT Port to expose Pgweb in docker for access in your browser" 52 | @echo " DEVBOX_POSTGRES17_DBGATE_EXPORT_PORT Port to expose DbGate in docker for access in your browser" 53 | @echo 54 | 55 | postgres17-info: 56 | @echo 57 | @echo "Postgres 17 information" 58 | @echo 59 | @echo " Host: 127.0.0.1" 60 | @echo " Port: ${DEVBOX_POSTGRES17_DB_EXPORT_PORT}" 61 | @echo " User: ${DEVBOX_POSTGRES17_POSTGRES_USER}" 62 | @echo " Password: ${DEVBOX_POSTGRES17_POSTGRES_PASSWORD}" 63 | @echo " Database: ${DEVBOX_POSTGRES17_POSTGRES_DB}" 64 | @echo " Url: postgres://${DEVBOX_POSTGRES17_POSTGRES_USER}:${DEVBOX_POSTGRES17_POSTGRES_PASSWORD}@127.0.0.1:${DEVBOX_POSTGRES17_DB_EXPORT_PORT}/${DEVBOX_POSTGRES17_POSTGRES_DB}?sslmode=disable" 65 | @echo " PgAdmin: http://127.0.0.1:${DEVBOX_POSTGRES17_PGADMIN_EXPORT_PORT}" 66 | @echo " Pgweb: http://127.0.0.1:${DEVBOX_POSTGRES17_PGWEB_EXPORT_PORT}" 67 | @echo " DbGate: http://127.0.0.1:${DEVBOX_POSTGRES17_DBGATE_EXPORT_PORT}" 68 | @echo 69 | -------------------------------------------------------------------------------- /postgres/17/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: postgres:17-alpine 4 | environment: 5 | POSTGRES_USER: ${DEVBOX_POSTGRES17_POSTGRES_USER:-postgres} 6 | POSTGRES_PASSWORD: ${DEVBOX_POSTGRES17_POSTGRES_PASSWORD:-password} 7 | POSTGRES_DB: ${DEVBOX_POSTGRES17_POSTGRES_DB:-dev} 8 | volumes: 9 | - postgres17_db_data:/var/lib/postgresql/data 10 | networks: 11 | postgres17_network_local: 12 | aliases: 13 | - db.postgres17.devbox.local 14 | hostname: db.postgres17.devbox.local 15 | ports: 16 | - ${DEVBOX_POSTGRES17_DB_EXPORT_PORT:-18442}:5432 17 | healthcheck: 18 | test: ["CMD-SHELL", "pg_isready -U postgres"] 19 | start_period: 5s 20 | interval: 3s 21 | timeout: 1s 22 | retries: 20 23 | pgadmin: 24 | image: dpage/pgadmin4:8 25 | depends_on: 26 | db: 27 | condition: service_healthy 28 | user: root 29 | configs: 30 | - source: pgadmin_servers 31 | target: /pgadmin4/servers.json 32 | - source: pgadmin_pgpass 33 | target: /pgpass 34 | environment: 35 | PGADMIN_DEFAULT_EMAIL: pgadmin4@devbox.local 36 | PGADMIN_DEFAULT_PASSWORD: password 37 | PGADMIN_DISABLE_POSTFIX: "True" 38 | PGADMIN_CONFIG_ALLOW_SPECIAL_EMAIL_DOMAINS: "['local']" 39 | PGADMIN_CONFIG_SERVER_MODE: "False" 40 | PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED: "False" 41 | networks: 42 | postgres17_network_local: 43 | aliases: 44 | - pgadmin.postgres17.devbox.local 45 | hostname: pgadmin.postgres17.devbox.local 46 | ports: 47 | - ${DEVBOX_POSTGRES17_PGADMIN_EXPORT_PORT:-18443}:80 48 | entrypoint: /bin/sh -c "chmod 600 /pgpass; /entrypoint.sh;" 49 | healthcheck: 50 | test: ["CMD", "nc", "-vz", "127.0.0.1", "80"] 51 | start_period: 100s 52 | interval: 3s 53 | timeout: 1s 54 | retries: 60 55 | pgweb: 56 | image: sosedoff/pgweb:latest 57 | depends_on: 58 | db: 59 | condition: service_healthy 60 | environment: 61 | DATABASE_URL: postgres://${DEVBOX_POSTGRES17_POSTGRES_USER:-postgres}:${DEVBOX_POSTGRES17_POSTGRES_PASSWORD:-password}@db.postgres17.devbox.local:5432/${DEVBOX_POSTGRES17_POSTGRES_DB:-dev}?sslmode=disable 62 | networks: 63 | postgres17_network_local: 64 | aliases: 65 | - pgweb.postgres17.devbox.local 66 | hostname: pgweb.postgres17.devbox.local 67 | ports: 68 | - ${DEVBOX_POSTGRES17_PGWEB_EXPORT_PORT:-18444}:8081 69 | healthcheck: 70 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8081"] 71 | interval: 3s 72 | timeout: 1s 73 | retries: 20 74 | dbgate: 75 | image: dbgate/dbgate:alpine 76 | depends_on: 77 | db: 78 | condition: service_healthy 79 | environment: 80 | CONNECTIONS: postgres1 81 | ENGINE_postgres1: postgres@dbgate-plugin-postgres 82 | LABEL_postgres1: db.postgres17.devbox.local 83 | SERVER_postgres1: db.postgres17.devbox.local 84 | PORT_postgres1: 5432 85 | USER_postgres1: ${DEVBOX_POSTGRES17_POSTGRES_USER:-postgres} 86 | PASSWORD_postgres1: ${DEVBOX_POSTGRES17_POSTGRES_PASSWORD:-password} 87 | networks: 88 | postgres17_network_local: 89 | aliases: 90 | - dbgate.postgres17.devbox.local 91 | hostname: dbgate.postgres17.devbox.local 92 | ports: 93 | - ${DEVBOX_POSTGRES17_DBGATE_EXPORT_PORT:-18445}:3000 94 | healthcheck: 95 | test: ["CMD", "nc", "-vz", "127.0.0.1", "3000"] 96 | interval: 3s 97 | timeout: 1s 98 | retries: 20 99 | 100 | configs: 101 | pgadmin_pgpass: 102 | content: db.postgres17.devbox.local:5432:*:${DEVBOX_POSTGRES17_POSTGRES_USER:-postgres}:${DEVBOX_POSTGRES17_PGADMIN_PASSWORD:-password} 103 | pgadmin_servers: 104 | content: | 105 | {"Servers": {"1": { 106 | "Group": "Servers", 107 | "Name": "db.postgres17.devbox.local", 108 | "Host": "db.postgres17.devbox.local", 109 | "Port": 5432, 110 | "MaintenanceDB": "postgres", 111 | "Username": "${DEVBOX_POSTGRES17_POSTGRES_USER:-postgres}", 112 | "PassFile": "/pgpass", 113 | "SSLMode": "prefer" 114 | }}} 115 | 116 | volumes: 117 | postgres17_db_data: 118 | 119 | networks: 120 | postgres17_network_local: 121 | driver: bridge 122 | -------------------------------------------------------------------------------- /rabbitmq/3.10/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_RABBITMQ310_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}uhs 2 | 3 | DEVBOX_RABBITMQ310_BROKER_PORT ?= 15671 4 | DEVBOX_RABBITMQ310_MANAGEMENT_PORT ?= 15672 5 | 6 | rabbitmq3.10-up: compose-cmd ; 7 | ${DEVBOX_COMPOSE_CMD} -f rabbitmq/3.10/compose.yml -p ${DEVBOX_RABBITMQ310_PROJECT_NAME} up -d 8 | 9 | rabbitmq3.10-down: compose-cmd ; 10 | ${DEVBOX_COMPOSE_CMD} -f rabbitmq/3.10/compose.yml -p ${DEVBOX_RABBITMQ310_PROJECT_NAME} down --volumes 11 | 12 | rabbitmq3.10-status: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f rabbitmq/3.10/compose.yml -p ${DEVBOX_RABBITMQ310_PROJECT_NAME} ps 14 | 15 | rabbitmq3.10-logs: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f rabbitmq/3.10/compose.yml -p ${DEVBOX_RABBITMQ310_PROJECT_NAME} logs -f 17 | 18 | rabbitmq3.10-command: compose-cmd ; 19 | @echo "${DEVBOX_COMPOSE_CMD} -f rabbitmq/3.10/compose.yml -p ${DEVBOX_RABBITMQ310_PROJECT_NAME}" 20 | 21 | rabbitmq3.10-help: 22 | @echo 23 | @echo "Commands:" 24 | @echo 25 | @echo " make rabbitmq3.10-up Start RabbitMQ 3.10 service and management tools" 26 | @echo " make rabbitmq3.10-down Stop RabbitMQ 3.10 service and management tools" 27 | @echo " make rabbitmq3.10-status Status from running services" 28 | @echo " make rabbitmq3.10-logs Logs from running services" 29 | @echo " make rabbitmq3.10-info Information about the services for use" 30 | @echo " make rabbitmq3.10-command Print docker compose command" 31 | @echo " make rabbitmq3.10-help This help :)" 32 | @echo 33 | @echo "Available configurable environment variables:" 34 | @echo 35 | @echo " DEVBOX_RABBITMQ310_BROKER_PORT Port to expose RabbitMQ broker in docker for your environment" 36 | @echo " DEVBOX_RABBITMQ310_MANAGEMENT_PORT Port to expose RabbitMQ Management in docker for access in your browser" 37 | @echo 38 | 39 | rabbitmq3.10-info: 40 | @echo 41 | @echo "RabbitMQ 3.10 information" 42 | @echo 43 | @echo " Broker Host: 127.0.0.1" 44 | @echo " Broker Port: ${DEVBOX_RABBITMQ310_BROKER_PORT}" 45 | @echo " Management: http://127.0.0.1:${DEVBOX_RABBITMQ310_MANAGEMENT_PORT}" 46 | @echo " Management user: guest" 47 | @echo " Management password: guest" 48 | @echo 49 | -------------------------------------------------------------------------------- /rabbitmq/3.10/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | broker: 3 | image: rabbitmq:3.10-management-alpine 4 | networks: 5 | rabbitmq310_network_local: 6 | aliases: 7 | - broker.rabbitmq310.devbox.local 8 | hostname: broker.rabbitmq310.devbox.local 9 | ports: 10 | - ${DEVBOX_RABBITMQ310_BROKER_PORT:-15671}:5672 11 | - ${DEVBOX_RABBITMQ310_MANAGEMENT_PORT:-15672}:15672 12 | healthcheck: 13 | test: rabbitmq-diagnostics -q ping 14 | interval: 3s 15 | timeout: 1s 16 | retries: 20 17 | 18 | networks: 19 | rabbitmq310_network_local: 20 | driver: bridge 21 | -------------------------------------------------------------------------------- /rabbitmq/4.0/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_RABBITMQ40_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}uhs 2 | 3 | DEVBOX_RABBITMQ40_BROKER_PORT ?= 16671 4 | DEVBOX_RABBITMQ40_MANAGEMENT_PORT ?= 16672 5 | 6 | rabbitmq4.0-up: compose-cmd ; 7 | ${DEVBOX_COMPOSE_CMD} -f rabbitmq/4.0/compose.yml -p ${DEVBOX_RABBITMQ40_PROJECT_NAME} up -d 8 | 9 | rabbitmq4.0-down: compose-cmd ; 10 | ${DEVBOX_COMPOSE_CMD} -f rabbitmq/4.0/compose.yml -p ${DEVBOX_RABBITMQ40_PROJECT_NAME} down --volumes 11 | 12 | rabbitmq4.0-status: compose-cmd ; 13 | ${DEVBOX_COMPOSE_CMD} -f rabbitmq/4.0/compose.yml -p ${DEVBOX_RABBITMQ40_PROJECT_NAME} ps 14 | 15 | rabbitmq4.0-logs: compose-cmd ; 16 | ${DEVBOX_COMPOSE_CMD} -f rabbitmq/4.0/compose.yml -p ${DEVBOX_RABBITMQ40_PROJECT_NAME} logs -f 17 | 18 | rabbitmq4.0-command: compose-cmd ; 19 | @echo "${DEVBOX_COMPOSE_CMD} -f rabbitmq/4.0/compose.yml -p ${DEVBOX_RABBITMQ40_PROJECT_NAME}" 20 | 21 | rabbitmq4.0-help: 22 | @echo 23 | @echo "Commands:" 24 | @echo 25 | @echo " make rabbitmq4.0-up Start RabbitMQ 4.0 service and management tools" 26 | @echo " make rabbitmq4.0-down Stop RabbitMQ 4.0 service and management tools" 27 | @echo " make rabbitmq4.0-status Status from running services" 28 | @echo " make rabbitmq4.0-logs Logs from running services" 29 | @echo " make rabbitmq4.0-info Information about the services for use" 30 | @echo " make rabbitmq4.0-command Print docker compose command" 31 | @echo " make rabbitmq4.0-help This help :)" 32 | @echo 33 | @echo "Available configurable environment variables:" 34 | @echo 35 | @echo " DEVBOX_RABBITMQ40_BROKER_PORT Port to expose RabbitMQ broker in docker for your environment" 36 | @echo " DEVBOX_RABBITMQ40_MANAGEMENT_PORT Port to expose RabbitMQ Management in docker for access in your browser" 37 | @echo 38 | 39 | rabbitmq4.0-info: 40 | @echo 41 | @echo "RabbitMQ 4.0 information" 42 | @echo 43 | @echo " Broker Host: 127.0.0.1" 44 | @echo " Broker Port: ${DEVBOX_RABBITMQ40_BROKER_PORT}" 45 | @echo " Management: http://127.0.0.1:${DEVBOX_RABBITMQ40_MANAGEMENT_PORT}" 46 | @echo " Management user: guest" 47 | @echo " Management password: guest" 48 | @echo 49 | -------------------------------------------------------------------------------- /rabbitmq/4.0/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | broker: 3 | image: rabbitmq:4.0-management-alpine 4 | networks: 5 | rabbitmq40_network_local: 6 | aliases: 7 | - broker.rabbitmq40.devbox.local 8 | hostname: broker.rabbitmq40.devbox.local 9 | ports: 10 | - ${DEVBOX_RABBITMQ40_BROKER_PORT:-16671}:5672 11 | - ${DEVBOX_RABBITMQ40_MANAGEMENT_PORT:-16672}:15672 12 | healthcheck: 13 | test: rabbitmq-diagnostics -q ping 14 | interval: 3s 15 | timeout: 1s 16 | retries: 20 17 | 18 | networks: 19 | rabbitmq40_network_local: 20 | driver: bridge 21 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 |

Devbox

2 |

Devbox

3 |

Run dev environments easily and fastly using Podman or Docker

4 | 5 | ## Purpose 6 | 7 | This project provides a easy and fast way to run common services for development environments using Podman or Docker. for your project or tests, instead installing these locally in your machine. Using this, you can run anyone [services](#services-provided) listed below with web interfaces to manage them. 8 | 9 |

Terminal

10 | 11 | ## Dependencies 12 | 13 | * [Make](https://www.gnu.org/software/make/) 14 | * [Docker](https://www.docker.com/) or [Podman](https://podman.io/) with [Podman compose](https://github.com/containers/podman-compose) 15 | 16 | ## How to use? 17 | 18 | Clone this repository or download and run `make help` to see all informations. 19 | 20 | This project is using Docker by default, if you want to use Podman instead, you need to use `DEVBOX_ENGINE` variable before run the command. Example: `DEVBOX_ENGINE=podman make redis7.0-up`. 21 | 22 | ## Services provided 23 | 24 | * Apache Kafka 2.7 on Confluent Platform [6.1.1](https://docs.confluent.io/platform/6.1.1/release-notes/index.html). 25 | * Beanstalkd [1.12](https://beanstalkd.github.io/2020/06/04/1.12-release-notes.html). 26 | * Keycloak [24.0](https://www.keycloak.org/docs/latest/release_notes/index.html#keycloak-24-0-0), [25.0](https://www.keycloak.org/docs/latest/release_notes/index.html#keycloak-25-0-0). 27 | * MariaDB [10.5](https://mariadb.com/kb/en/mariadb-server-10-5/), [10.6](https://mariadb.com/kb/en/mariadb-server-10-6/), [11.0](https://mariadb.com/kb/en/mariadb-server-11-0/), [11.4](https://mariadb.com/kb/en/mariadb-server-11-4/). 28 | * Memcached [1.6](https://memcached.org/). 29 | * [MinIO](https://min.io/). 30 | * MongoDB [4.4](https://docs.mongodb.com/manual/release-notes/4.4/), [5.0](https://docs.mongodb.com/manual/release-notes/5.0/), [6.0](https://docs.mongodb.com/manual/release-notes/6.0/), [7.0](https://docs.mongodb.com/manual/release-notes/7.0/), [8.0](https://docs.mongodb.com/manual/release-notes/8.0/). 31 | * MySQL [5.7](https://dev.mysql.com/doc/relnotes/mysql/5.7/en/), [8.0](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/), [8.4](https://dev.mysql.com/doc/relnotes/mysql/8.4/en/), [9.0](https://dev.mysql.com/doc/relnotes/mysql/9.0/en/). 32 | * Postgres [13.2](https://www.postgresql.org/docs/13/release-13-2.html), [14.2](https://www.postgresql.org/docs/14/release-14-2.html), [15.3](https://www.postgresql.org/docs/15/release-15-3.html), [16](https://www.postgresql.org/docs/16/release.html), [17](https://www.postgresql.org/docs/17/release.html). 33 | * RabbitMQ [3.10](https://blog.rabbitmq.com/tags/v3.10.x/), [4.0](https://www.rabbitmq.com/blog/tags/rabbit-mq-4-0). 34 | * Redis [6.2](https://raw.githubusercontent.com/redis/redis/6.2/00-RELEASENOTES), [7.0](https://raw.githubusercontent.com/redis/redis/7.0/00-RELEASENOTES), [7.2](https://raw.githubusercontent.com/redis/redis/7.2/00-RELEASENOTES). 35 | * Zipkin [3.1](https://github.com/openzipkin/zipkin/releases/tag/3.1.0). 36 | 37 | ## License 38 | [MIT](/license) license, logo by [Burhan Adiatma](https://www.vecteezy.com/members/gembuls). 39 | -------------------------------------------------------------------------------- /redis/6.2/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_REDIS62_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}k69 2 | 3 | DEVBOX_REDIS62_DB_EXPORT_PORT ?= 16379 4 | DEVBOX_REDIS62_PRA_EXPORT_PORT ?= 16380 5 | DEVBOX_REDIS62_COMMANDER_EXPORT_PORT ?= 16381 6 | 7 | redis6.2-up: compose-cmd ; 8 | ${DEVBOX_COMPOSE_CMD} -f redis/6.2/compose.yml -p ${DEVBOX_REDIS62_PROJECT_NAME} up -d 9 | 10 | redis6.2-down: compose-cmd ; 11 | ${DEVBOX_COMPOSE_CMD} -f redis/6.2/compose.yml -p ${DEVBOX_REDIS62_PROJECT_NAME} down 12 | 13 | redis6.2-status: compose-cmd ; 14 | ${DEVBOX_COMPOSE_CMD} -f redis/6.2/compose.yml -p ${DEVBOX_REDIS62_PROJECT_NAME} ps 15 | 16 | redis6.2-logs: compose-cmd ; 17 | ${DEVBOX_COMPOSE_CMD} -f redis/6.2/compose.yml -p ${DEVBOX_REDIS62_PROJECT_NAME} logs -f 18 | 19 | redis6.2-purge: compose-cmd ; 20 | ${DEVBOX_COMPOSE_CMD} -f redis/6.2/compose.yml -p ${DEVBOX_REDIS62_PROJECT_NAME} down --volumes 21 | 22 | redis6.2-command: compose-cmd ; 23 | @echo "${DEVBOX_COMPOSE_CMD} -f redis/6.2/compose.yml -p ${DEVBOX_REDIS62_PROJECT_NAME}" 24 | 25 | redis6.2-help: 26 | @echo 27 | @echo "Commands:" 28 | @echo 29 | @echo " make redis6.2-up Start Redis 6.2 service and management tools" 30 | @echo " make redis6.2-down Stop Redis 6.2 service and management tools" 31 | @echo " make redis6.2-status Status from running services" 32 | @echo " make redis6.2-logs Logs from running services" 33 | @echo " make redis6.2-purge Delete all Redis 6.2 data" 34 | @echo " make redis6.2-info Information about the services for use" 35 | @echo " make redis6.2-command Print docker compose command" 36 | @echo " make redis6.2-help This help :)" 37 | @echo 38 | @echo "Available configurable environment variables:" 39 | @echo 40 | @echo " DEVBOX_REDIS62_DB_EXPORT_PORT Port to expose Redis 6.2 in docker for your environment" 41 | @echo " DEVBOX_REDIS62_PRA_EXPORT_PORT Port to expose phpRedisAdmin in docker for access in your browser" 42 | @echo " DEVBOX_REDIS62_COMMANDER_EXPORT_PORT Port to expose Redis Commander in docker for access in your browser" 43 | @echo 44 | 45 | redis6.2-info: 46 | @echo 47 | @echo "Redis 6.2 information" 48 | @echo 49 | @echo " Host: 127.0.0.1" 50 | @echo " Port: ${DEVBOX_REDIS62_DB_EXPORT_PORT}" 51 | @echo " phpRedisAdmin: http://127.0.0.1:${DEVBOX_REDIS62_PRA_EXPORT_PORT}" 52 | @echo " Redis Commander: http://127.0.0.1:${DEVBOX_REDIS62_COMMANDER_EXPORT_PORT}" 53 | @echo 54 | -------------------------------------------------------------------------------- /redis/6.2/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: redis:6.2-alpine 4 | volumes: 5 | - redis62_db_data:/var/lib/redis 6 | networks: 7 | redis62_network_local: 8 | aliases: 9 | - db.redis62.devbox.local 10 | hostname: db.redis62.devbox.local 11 | ports: 12 | - ${DEVBOX_REDIS62_DB_EXPORT_PORT:-16379}:6379 13 | healthcheck: 14 | test: ["CMD", "redis-cli", "--raw", "incr", "ping"] 15 | interval: 3s 16 | timeout: 1s 17 | retries: 20 18 | phpredisadmin: 19 | image: erikdubbelboer/phpredisadmin:latest 20 | depends_on: 21 | db: 22 | condition: service_healthy 23 | environment: 24 | REDIS_1_NAME: db.redis62.devbox.local 25 | REDIS_1_HOST: db.redis62.devbox.local 26 | REDIS_1_PORT: 6379 27 | networks: 28 | redis62_network_local: 29 | aliases: 30 | - phpredisadmin.redis62.devbox.local 31 | hostname: phpredisadmin.redis62.devbox.local 32 | ports: 33 | - ${DEVBOX_REDIS62_PRA_EXPORT_PORT:-16380}:80 34 | healthcheck: 35 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"] 36 | interval: 3s 37 | timeout: 1s 38 | retries: 20 39 | redis-commander: 40 | image: rediscommander/redis-commander:latest 41 | depends_on: 42 | db: 43 | condition: service_healthy 44 | environment: 45 | REDIS_HOSTS: db.redis62.devbox.local:db.redis62.devbox.local:6379 46 | networks: 47 | redis62_network_local: 48 | aliases: 49 | - redis-commander.redis62.devbox.local 50 | hostname: redis-commander.redis62.devbox.local 51 | ports: 52 | - ${DEVBOX_REDIS62_COMMANDER_EXPORT_PORT:-16381}:8081 53 | healthcheck: 54 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8081"] 55 | interval: 3s 56 | timeout: 1s 57 | retries: 20 58 | 59 | volumes: 60 | redis62_db_data: 61 | 62 | networks: 63 | redis62_network_local: 64 | driver: bridge 65 | -------------------------------------------------------------------------------- /redis/7.0/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_REDIS70_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}m5k 2 | 3 | DEVBOX_REDIS70_DB_EXPORT_PORT ?= 17379 4 | DEVBOX_REDIS70_PRA_EXPORT_PORT ?= 17380 5 | DEVBOX_REDIS70_COMMANDER_EXPORT_PORT ?= 17381 6 | 7 | redis7.0-up: compose-cmd ; 8 | ${DEVBOX_COMPOSE_CMD} -f redis/7.0/compose.yml -p ${DEVBOX_REDIS70_PROJECT_NAME} up -d 9 | 10 | redis7.0-down: compose-cmd ; 11 | ${DEVBOX_COMPOSE_CMD} -f redis/7.0/compose.yml -p ${DEVBOX_REDIS70_PROJECT_NAME} down 12 | 13 | redis7.0-status: compose-cmd ; 14 | ${DEVBOX_COMPOSE_CMD} -f redis/7.0/compose.yml -p ${DEVBOX_REDIS70_PROJECT_NAME} ps 15 | 16 | redis7.0-logs: compose-cmd ; 17 | ${DEVBOX_COMPOSE_CMD} -f redis/7.0/compose.yml -p ${DEVBOX_REDIS70_PROJECT_NAME} logs -f 18 | 19 | redis7.0-purge: compose-cmd ; 20 | ${DEVBOX_COMPOSE_CMD} -f redis/7.0/compose.yml -p ${DEVBOX_REDIS70_PROJECT_NAME} down --volumes 21 | 22 | redis7.0-command: compose-cmd ; 23 | @echo "${DEVBOX_COMPOSE_CMD} -f redis/7.0/compose.yml -p ${DEVBOX_REDIS70_PROJECT_NAME}" 24 | 25 | redis7.0-help: 26 | @echo 27 | @echo "Commands:" 28 | @echo 29 | @echo " make redis7.0-up Start Redis 7.0 service and management tools" 30 | @echo " make redis7.0-down Stop Redis 7.0 service and management tools" 31 | @echo " make redis7.0-status Status from running services" 32 | @echo " make redis7.0-logs Logs from running services" 33 | @echo " make redis7.0-purge Delete all Redis 7.0 data" 34 | @echo " make redis7.0-info Information about the services for use" 35 | @echo " make redis7.0-command Print docker compose command" 36 | @echo " make redis7.0-help This help :)" 37 | @echo 38 | @echo "Available configurable environment variables:" 39 | @echo 40 | @echo " DEVBOX_REDIS70_DB_EXPORT_PORT Port to expose Redis 7.0 in docker for your environment" 41 | @echo " DEVBOX_REDIS70_PRA_EXPORT_PORT Port to expose phpRedisAdmin in docker for access in your browser" 42 | @echo " DEVBOX_REDIS70_COMMANDER_EXPORT_PORT Port to expose Redis Commander in docker for access in your browser" 43 | @echo 44 | 45 | redis7.0-info: 46 | @echo 47 | @echo "Redis 7.0 information" 48 | @echo 49 | @echo " Host: 127.0.0.1" 50 | @echo " Port: ${DEVBOX_REDIS70_DB_EXPORT_PORT}" 51 | @echo " phpRedisAdmin: http://127.0.0.1:${DEVBOX_REDIS70_PRA_EXPORT_PORT}" 52 | @echo " Redis Commander: http://127.0.0.1:${DEVBOX_REDIS70_COMMANDER_EXPORT_PORT}" 53 | @echo 54 | -------------------------------------------------------------------------------- /redis/7.0/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: redis:7.0-alpine 4 | volumes: 5 | - redis70_db_data:/var/lib/redis 6 | networks: 7 | redis70_network_local: 8 | aliases: 9 | - db.redis70.devbox.local 10 | hostname: db.redis70.devbox.local 11 | ports: 12 | - ${DEVBOX_REDIS70_DB_EXPORT_PORT:-17379}:6379 13 | healthcheck: 14 | test: ["CMD", "redis-cli", "--raw", "incr", "ping"] 15 | interval: 3s 16 | timeout: 1s 17 | retries: 20 18 | phpredisadmin: 19 | image: erikdubbelboer/phpredisadmin:latest 20 | depends_on: 21 | db: 22 | condition: service_healthy 23 | environment: 24 | REDIS_1_NAME: db.redis70.devbox.local 25 | REDIS_1_HOST: db.redis70.devbox.local 26 | REDIS_1_PORT: 6379 27 | networks: 28 | redis70_network_local: 29 | aliases: 30 | - phpredisadmin.redis70.devbox.local 31 | hostname: phpredisadmin.redis70.devbox.local 32 | ports: 33 | - ${DEVBOX_REDIS70_PRA_EXPORT_PORT:-17380}:80 34 | healthcheck: 35 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"] 36 | interval: 3s 37 | timeout: 1s 38 | retries: 20 39 | redis-commander: 40 | image: rediscommander/redis-commander:latest 41 | depends_on: 42 | db: 43 | condition: service_healthy 44 | environment: 45 | REDIS_HOSTS: db.redis70.devbox.local:db.redis70.devbox.local:6379 46 | networks: 47 | redis70_network_local: 48 | aliases: 49 | - redis-commander.redis70.devbox.local 50 | hostname: redis-commander.redis70.devbox.local 51 | ports: 52 | - ${DEVBOX_REDIS70_COMMANDER_EXPORT_PORT:-17381}:8081 53 | healthcheck: 54 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8081"] 55 | interval: 3s 56 | timeout: 1s 57 | retries: 20 58 | 59 | volumes: 60 | redis70_db_data: 61 | 62 | networks: 63 | redis70_network_local: 64 | driver: bridge 65 | -------------------------------------------------------------------------------- /redis/7.2/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_REDIS72_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}ljk 2 | 3 | DEVBOX_REDIS72_DB_EXPORT_PORT ?= 18379 4 | DEVBOX_REDIS72_PRA_EXPORT_PORT ?= 18380 5 | DEVBOX_REDIS72_COMMANDER_EXPORT_PORT ?= 18381 6 | DEVBOX_REDIS72_REDISINSIGHT_EXPORT_PORT ?= 18382 7 | 8 | redis7.2-up: compose-cmd ; 9 | ${DEVBOX_COMPOSE_CMD} -f redis/7.2/compose.yml -p ${DEVBOX_REDIS72_PROJECT_NAME} up -d 10 | 11 | redis7.2-down: compose-cmd ; 12 | ${DEVBOX_COMPOSE_CMD} -f redis/7.2/compose.yml -p ${DEVBOX_REDIS72_PROJECT_NAME} down 13 | 14 | redis7.2-status: compose-cmd ; 15 | ${DEVBOX_COMPOSE_CMD} -f redis/7.2/compose.yml -p ${DEVBOX_REDIS72_PROJECT_NAME} ps 16 | 17 | redis7.2-logs: compose-cmd ; 18 | ${DEVBOX_COMPOSE_CMD} -f redis/7.2/compose.yml -p ${DEVBOX_REDIS72_PROJECT_NAME} logs -f 19 | 20 | redis7.2-purge: compose-cmd ; 21 | ${DEVBOX_COMPOSE_CMD} -f redis/7.2/compose.yml -p ${DEVBOX_REDIS72_PROJECT_NAME} down --volumes 22 | 23 | redis7.2-command: compose-cmd ; 24 | @echo "${DEVBOX_COMPOSE_CMD} -f redis/7.2/compose.yml -p ${DEVBOX_REDIS72_PROJECT_NAME}" 25 | 26 | redis7.2-help: 27 | @echo 28 | @echo "Commands:" 29 | @echo 30 | @echo " make redis7.2-up Start Redis 7.2 service and management tools" 31 | @echo " make redis7.2-down Stop Redis 7.2 service and management tools" 32 | @echo " make redis7.2-status Status from running services" 33 | @echo " make redis7.2-logs Logs from running services" 34 | @echo " make redis7.2-purge Delete all Redis 7.2 data" 35 | @echo " make redis7.2-info Information about the services for use" 36 | @echo " make redis7.2-command Print docker compose command" 37 | @echo " make redis7.2-help This help :)" 38 | @echo 39 | @echo "Available configurable environment variables:" 40 | @echo 41 | @echo " DEVBOX_REDIS72_DB_EXPORT_PORT Port to expose Redis 7.2 in docker for your environment" 42 | @echo " DEVBOX_REDIS72_PRA_EXPORT_PORT Port to expose phpRedisAdmin in docker for access in your browser" 43 | @echo " DEVBOX_REDIS72_COMMANDER_EXPORT_PORT Port to expose Redis Commander in docker for access in your browser" 44 | @echo 45 | 46 | redis7.2-info: 47 | @echo 48 | @echo "Redis 7.2 information" 49 | @echo 50 | @echo " Host: 127.0.0.1" 51 | @echo " Port: ${DEVBOX_REDIS72_DB_EXPORT_PORT}" 52 | @echo " Connection URL: redis://127.0.0.1:${DEVBOX_REDIS72_DB_EXPORT_PORT}" 53 | @echo " phpRedisAdmin: http://127.0.0.1:${DEVBOX_REDIS72_PRA_EXPORT_PORT}" 54 | @echo " Redis Commander: http://127.0.0.1:${DEVBOX_REDIS72_COMMANDER_EXPORT_PORT}" 55 | @echo " Redis Insight: http://127.0.0.1:${DEVBOX_REDIS72_REDISINSIGHT_EXPORT_PORT}" 56 | @echo 57 | -------------------------------------------------------------------------------- /redis/7.2/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | db: 3 | image: redis:7.2-alpine 4 | volumes: 5 | - redis72_db_data:/var/lib/redis 6 | networks: 7 | redis72_network_local: 8 | aliases: 9 | - db.redis72.devbox.local 10 | hostname: db.redis72.devbox.local 11 | ports: 12 | - ${DEVBOX_REDIS72_DB_EXPORT_PORT:-18379}:6379 13 | healthcheck: 14 | test: ["CMD", "redis-cli", "--raw", "incr", "ping"] 15 | interval: 3s 16 | timeout: 1s 17 | retries: 20 18 | phpredisadmin: 19 | image: erikdubbelboer/phpredisadmin:latest 20 | depends_on: 21 | db: 22 | condition: service_healthy 23 | environment: 24 | REDIS_1_NAME: db.redis72.devbox.local 25 | REDIS_1_HOST: db.redis72.devbox.local 26 | REDIS_1_PORT: 6379 27 | networks: 28 | redis72_network_local: 29 | aliases: 30 | - phpredisadmin.redis72.devbox.local 31 | hostname: phpredisadmin.redis72.devbox.local 32 | ports: 33 | - ${DEVBOX_REDIS72_PRA_EXPORT_PORT:-18380}:80 34 | healthcheck: 35 | test: ["CMD", "curl", "--connect-timeout", "1", "-s", "http://127.0.0.1"] 36 | interval: 3s 37 | timeout: 1s 38 | retries: 20 39 | redis-commander: 40 | image: rediscommander/redis-commander:latest 41 | depends_on: 42 | db: 43 | condition: service_healthy 44 | environment: 45 | REDIS_HOSTS: db.redis72.devbox.local:db.redis72.devbox.local:6379 46 | networks: 47 | redis72_network_local: 48 | aliases: 49 | - redis-commander.redis72.devbox.local 50 | hostname: redis-commander.redis72.devbox.local 51 | ports: 52 | - ${DEVBOX_REDIS72_COMMANDER_EXPORT_PORT:-18381}:8081 53 | healthcheck: 54 | test: ["CMD", "nc", "-vz", "127.0.0.1", "8081"] 55 | interval: 3s 56 | timeout: 1s 57 | retries: 20 58 | redisinsight: 59 | image: redis/redisinsight:latest 60 | depends_on: 61 | db: 62 | condition: service_healthy 63 | networks: 64 | redis72_network_local: 65 | aliases: 66 | - redisinsight.redis72.devbox.local 67 | hostname: redisinsight.redis72.devbox.local 68 | ports: 69 | - ${DEVBOX_REDIS72_REDISINSIGHT_EXPORT_PORT:-18382}:5540 70 | healthcheck: 71 | test: ["CMD", "nc", "-vz", "127.0.0.1", "5540"] 72 | interval: 3s 73 | timeout: 1s 74 | retries: 20 75 | 76 | volumes: 77 | redis72_db_data: 78 | 79 | networks: 80 | redis72_network_local: 81 | driver: bridge 82 | -------------------------------------------------------------------------------- /terminal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joubertredrat/devbox/e2e75163b4a8e5460192ff11ddb3375cd66ebec4/terminal.gif -------------------------------------------------------------------------------- /zipkin/3.1/Makefile: -------------------------------------------------------------------------------- 1 | DEVBOX_ZIPKIN31_PROJECT_NAME = ${DEVBOX_PROJECT_PREFIX}zpk 2 | 3 | DEVBOX_ZIPKIN31_TRACING_EXPORT_PORT ?= 19411 4 | DEVBOX_ZIPKIN31_COLLECTOR_GRPC_PORT ?= 14317 5 | DEVBOX_ZIPKIN31_COLLECTOR_HTTP_PORT ?= 14318 6 | 7 | zipkin3.1-up: compose-cmd ; 8 | ${DEVBOX_COMPOSE_CMD} -f zipkin/3.1/compose.yml -p ${DEVBOX_ZIPKIN31_PROJECT_NAME} up -d 9 | 10 | zipkin3.1-down: compose-cmd ; 11 | ${DEVBOX_COMPOSE_CMD} -f zipkin/3.1/compose.yml -p ${DEVBOX_ZIPKIN31_PROJECT_NAME} down 12 | 13 | zipkin3.1-status: compose-cmd ; 14 | ${DEVBOX_COMPOSE_CMD} -f zipkin/3.1/compose.yml -p ${DEVBOX_ZIPKIN31_PROJECT_NAME} ps 15 | 16 | zipkin3.1-logs: compose-cmd ; 17 | ${DEVBOX_COMPOSE_CMD} -f zipkin/3.1/compose.yml -p ${DEVBOX_ZIPKIN31_PROJECT_NAME} logs -f 18 | 19 | zipkin3.1-command: compose-cmd ; 20 | @echo "${DEVBOX_COMPOSE_CMD} -f zipkin/3.1/compose.yml -p ${DEVBOX_ZIPKIN31_PROJECT_NAME}" 21 | 22 | zipkin3.1-help: 23 | @echo 24 | @echo "Commands:" 25 | @echo 26 | @echo " make zipkin3.1-up Start Zipkin 3.1 service and management tools" 27 | @echo " make zipkin3.1-down Stop Zipkin 3.1 service and management tools" 28 | @echo " make zipkin3.1-status Status from running services" 29 | @echo " make zipkin3.1-logs Logs from running services" 30 | @echo " make zipkin3.1-info Information about the services for use" 31 | @echo " make zipkin3.1-command Print docker compose command" 32 | @echo " make zipkin3.1-help This help :)" 33 | @echo 34 | @echo "Available configurable environment variables:" 35 | @echo 36 | @echo " DEVBOX_ZIPKIN31_TRACING_EXPORT_PORT Port to expose Zipkin 3.1 in docker for your environment" 37 | @echo " DEVBOX_ZIPKIN31_COLLECTOR_GRPC_PORT Port to expose OTEL Opentelemetry collector GRPC port" 38 | @echo " DEVBOX_ZIPKIN31_COLLECTOR_HTTP_PORT Port to expose OTEL Opentelemetry collector HTTP port" 39 | @echo 40 | 41 | zipkin3.1-info: 42 | @echo 43 | @echo "Zipkin 3.1 information" 44 | @echo 45 | @echo " Tracing: http://127.0.0.1:${DEVBOX_ZIPKIN31_TRACING_EXPORT_PORT}" 46 | @echo " Collector GRPC host: 127.0.0.1:${DEVBOX_ZIPKIN31_COLLECTOR_GRPC_PORT}" 47 | @echo " Collector HTTP host: 127.0.0.1:${DEVBOX_ZIPKIN31_COLLECTOR_HTTP_PORT}" 48 | @echo -------------------------------------------------------------------------------- /zipkin/3.1/collector_config.yml: -------------------------------------------------------------------------------- 1 | receivers: 2 | otlp: 3 | protocols: 4 | grpc: 5 | endpoint: 0.0.0.0:4317 6 | http: 7 | endpoint: 0.0.0.0:4318 8 | exporters: 9 | zipkin: 10 | endpoint: http://tracing.zipkin31.devbox.local:9411/api/v2/spans 11 | debug: 12 | verbosity: detailed 13 | processors: 14 | batch: 15 | memory_limiter: 16 | check_interval: 5s 17 | limit_mib: 4000 18 | spike_limit_mib: 512 19 | service: 20 | pipelines: 21 | traces: 22 | receivers: [otlp] 23 | processors: [memory_limiter, batch] 24 | exporters: [zipkin] 25 | metrics: 26 | receivers: [otlp] 27 | processors: [memory_limiter, batch] 28 | exporters: [debug] -------------------------------------------------------------------------------- /zipkin/3.1/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | tracing: 3 | image: openzipkin/zipkin:3.1 4 | networks: 5 | zipkin31_network_local: 6 | aliases: 7 | - tracing.zipkin31.devbox.local 8 | hostname: tracing.zipkin31.devbox.local 9 | ports: 10 | - ${DEVBOX_ZIPKIN31_TRACING_EXPORT_PORT:-19411}:9411 11 | collector: 12 | image: otel/opentelemetry-collector-contrib:0.96.0 13 | volumes: 14 | - ./collector_config.yml:/etc/otel-collector/config.yml 15 | command: ["--config=/etc/otel-collector/config.yml"] 16 | networks: 17 | zipkin31_network_local: 18 | aliases: 19 | - collector.zipkin31.devbox.local 20 | hostname: collector.zipkin31.devbox.local 21 | ports: 22 | - ${DEVBOX_ZIPKIN31_COLLECTOR_GRPC_PORT:-14317}:4317 23 | - ${DEVBOX_ZIPKIN31_COLLECTOR_HTTP_PORT:-14318}:4318 24 | 25 | networks: 26 | zipkin31_network_local: 27 | driver: bridge 28 | --------------------------------------------------------------------------------