Files
mixpost/docker-compose.yml

94 lines
2.3 KiB
YAML

# Mixpost Lite - Docker Compose
# Fonte: https://docs.mixpost.app/lite/installation/docker
# Adaptado para Coolify (já tem Traefik + rede coolify)
#
# O start.sh original do Mixpost roda "chown -R www-data:www-data /var/www/html"
# que pode travar em volumes Docker. A solução é pré-permitir o volume.
services:
app:
image: inovector/mixpost:latest
restart: always
env_file:
- .env
volumes:
- mixpost-storage:/var/www/html/storage/app
- mixpost-logs:/var/www/html/storage/logs
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
networks:
- coolify
labels:
- traefik.enable=true
- traefik.http.routers.mixpost.rule=Host(`mixpost.fluxtechnologies.uk`)
- traefik.http.routers.mixpost.tls=true
- traefik.http.routers.mixpost.tls.certresolver=letsencrypt
- traefik.http.services.mixpost.loadbalancer.server.port=80
- coolify.managed=true
horizon:
image: inovector/mixpost:latest
restart: always
command: php artisan horizon
env_file:
- .env
depends_on:
app:
condition: service_started
networks:
- coolify
scheduler:
image: inovector/mixpost:latest
restart: always
command: sh -c "while true; do php artisan schedule:run; sleep 60; done"
env_file:
- .env
networks:
- coolify
db:
image: mysql:8.0
restart: always
environment:
MYSQL_DATABASE: mixpost
MYSQL_USER: mixpost
MYSQL_PASSWORD: 282a989ffe21a5db3daa757f29871a57
MYSQL_ROOT_PASSWORD: fe21dcf3a9658d24850ed7d7f66fa2f9
volumes:
- mixpost-db:/var/lib/mysql
networks:
- coolify
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
restart: always
command: redis-server --appendonly yes --replica-read-only no
volumes:
- mixpost-redis:/data
networks:
- coolify
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
volumes:
mixpost-db:
mixpost-storage:
mixpost-logs:
mixpost-redis:
networks:
coolify:
external: true