shlink/docker-compose.yml

225 lines
6.5 KiB
YAML
Raw Normal View History

version: '3'
2017-01-19 15:56:45 -06:00
services:
shlink_nginx:
container_name: shlink_nginx
2023-09-17 04:59:23 -05:00
image: nginx:1.25-alpine
2017-01-19 15:56:45 -06:00
ports:
- "8000:80"
volumes:
- ./:/home/shlink/www
- ./docs:/home/shlink/www/public/docs
- ./data/infra/vhost.conf:/etc/nginx/conf.d/default.conf
2017-01-19 15:56:45 -06:00
links:
- shlink_php
shlink_php:
container_name: shlink_php
build:
context: .
dockerfile: ./data/infra/php.Dockerfile
ports:
- '8888:8888'
2017-01-19 15:56:45 -06:00
volumes:
- ./:/home/shlink/www
- ./data/infra/php.ini:/usr/local/etc/php/php.ini
links:
- shlink_db_mysql
- shlink_db_postgres
- shlink_db_maria
2020-02-03 14:20:40 -06:00
- shlink_db_ms
- shlink_redis
2022-12-12 13:50:21 -06:00
- shlink_redis_acl
- shlink_mercure
- shlink_mercure_proxy
2021-12-11 09:19:38 -06:00
- shlink_rabbitmq
2023-06-04 05:40:10 -05:00
- shlink_matomo
environment:
LC_ALL: C
2021-12-05 08:16:41 -06:00
extra_hosts:
- 'host.docker.internal:host-gateway'
2017-01-19 15:56:45 -06:00
2020-05-02 05:04:42 -05:00
shlink_swoole_proxy:
container_name: shlink_swoole_proxy
2023-09-17 04:59:23 -05:00
image: nginx:1.25-alpine
2020-05-02 05:04:42 -05:00
ports:
- "8002:80"
volumes:
- ./:/home/shlink/www
- ./data/infra/swoole_proxy_vhost.conf:/etc/nginx/conf.d/default.conf
links:
- shlink_swoole
shlink_swoole:
container_name: shlink_swoole
build:
context: .
dockerfile: ./data/infra/swoole.Dockerfile
ports:
- "8080:8080"
2019-11-01 03:52:56 -05:00
- "9001:9001"
volumes:
- ./:/home/shlink
- ./data/infra/php.ini:/usr/local/etc/php/php.ini
links:
- shlink_db_mysql
- shlink_db_postgres
- shlink_db_maria
2020-02-03 14:20:40 -06:00
- shlink_db_ms
- shlink_redis
2022-12-12 13:50:21 -06:00
- shlink_redis_acl
- shlink_mercure
- shlink_mercure_proxy
2021-12-11 09:19:38 -06:00
- shlink_rabbitmq
2023-06-04 05:40:10 -05:00
- shlink_matomo
2020-02-03 14:20:40 -06:00
environment:
LC_ALL: C
2021-12-05 08:16:41 -06:00
extra_hosts:
- 'host.docker.internal:host-gateway'
2022-08-21 06:19:27 -05:00
shlink_roadrunner:
container_name: shlink_roadrunner
build:
context: .
dockerfile: ./data/infra/roadrunner.Dockerfile
ports:
- "8800:8080"
volumes:
- ./:/home/shlink
- ./data/infra/php.ini:/usr/local/etc/php/php.ini
links:
- shlink_db_mysql
- shlink_db_postgres
- shlink_db_maria
- shlink_db_ms
- shlink_redis
2022-12-12 13:50:21 -06:00
- shlink_redis_acl
2022-08-21 06:19:27 -05:00
- shlink_mercure
- shlink_mercure_proxy
- shlink_rabbitmq
2023-06-04 05:40:10 -05:00
- shlink_matomo
2022-08-21 06:19:27 -05:00
environment:
LC_ALL: C
extra_hosts:
- 'host.docker.internal:host-gateway'
shlink_db_mysql:
container_name: shlink_db_mysql
2023-01-05 11:50:49 -06:00
image: mysql:8.0
2017-01-19 15:56:45 -06:00
ports:
- "3307:3306"
volumes:
- ./:/home/shlink/www
- ./data/infra/database:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: shlink
shlink_db_postgres:
container_name: shlink_db_postgres
image: postgres:12.2-alpine
ports:
- "5433:5432"
volumes:
- ./:/home/shlink/www
- ./data/infra/database_pg:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: root
POSTGRES_DB: shlink
PGDATA: /var/lib/postgresql/data/pgdata
shlink_db_maria:
container_name: shlink_db_maria
image: mariadb:10.7
ports:
- "3308:3306"
volumes:
- ./:/home/shlink/www
- ./data/infra/database_maria:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: shlink
MYSQL_INITDB_SKIP_TZINFO: 1
2020-02-03 14:20:40 -06:00
shlink_db_ms:
container_name: shlink_db_ms
image: mcr.microsoft.com/mssql/server:2019-latest
ports:
- "1433:1433"
environment:
ACCEPT_EULA: Y
SA_PASSWORD: "Passw0rd!"
shlink_redis:
container_name: shlink_redis
2022-12-12 13:50:21 -06:00
image: redis:6.2-alpine
ports:
- "6380:6379"
2022-12-12 13:50:21 -06:00
shlink_redis_acl:
container_name: shlink_redis_acl
image: redis:6.2-alpine
command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
ports:
- "6382:6379"
volumes:
- ./data/infra/redis/redis-acl.conf:/usr/local/etc/redis/redis.conf
shlink_mercure_proxy:
container_name: shlink_mercure_proxy
2023-09-17 04:59:23 -05:00
image: nginx:1.25-alpine
ports:
- "8001:80"
volumes:
- ./:/home/shlink/www
- ./data/infra/mercure_proxy_vhost.conf:/etc/nginx/conf.d/default.conf
links:
- shlink_mercure
shlink_mercure:
container_name: shlink_mercure
2023-09-17 04:59:23 -05:00
image: dunglas/mercure:v0.15
ports:
- "3080:80"
environment:
SERVER_NAME: ":80"
2022-08-21 06:19:27 -05:00
MERCURE_PUBLISHER_JWT_KEY: mercure_jwt_key_long_enough_to_avoid_error
MERCURE_SUBSCRIBER_JWT_KEY: mercure_jwt_key_long_enough_to_avoid_error
MERCURE_EXTRA_DIRECTIVES: "cors_origins https://app.shlink.io http://localhost:3000 http://127.0.0.1:3000"
2021-12-11 09:19:38 -06:00
shlink_rabbitmq:
container_name: shlink_rabbitmq
2023-09-17 04:59:23 -05:00
image: rabbitmq:3.11-management-alpine
2021-12-11 09:19:38 -06:00
ports:
- "15672:15672"
- "5672:5672"
environment:
RABBITMQ_DEFAULT_USER: "rabbit"
RABBITMQ_DEFAULT_PASS: "rabbit"
2023-09-17 04:59:23 -05:00
shlink_swagger_ui:
container_name: shlink_swagger_ui
image: swaggerapi/swagger-ui:v5.11.3
2023-09-17 04:59:23 -05:00
ports:
- "8005:8080"
volumes:
- ./docs/swagger:/app
2023-06-04 05:40:10 -05:00
shlink_matomo:
container_name: shlink_matomo
2023-11-09 02:04:41 -06:00
image: matomo:4.15-apache
2023-06-04 05:40:10 -05:00
ports:
- "8003:80"
volumes:
2023-11-22 11:30:03 -06:00
# Matomo does not persist port in trusted hosts. This volume is needed to edit config afterward
2023-06-04 05:40:10 -05:00
# https://github.com/matomo-org/matomo/issues/9549
- ./data/infra/matomo:/var/www/html
links:
- shlink_db_mysql
environment:
MATOMO_DATABASE_HOST: "shlink_db_mysql"
MATOMO_DATABASE_ADAPTER: "mysql"
MATOMO_DATABASE_DBNAME: "matomo"
MATOMO_DATABASE_USERNAME: "root"
MATOMO_DATABASE_PASSWORD: "root"