Files
mixpost/docker-compose.yml
T
2026-06-11 21:53:52 +02:00

142 lines
3.6 KiB
YAML

# Mixpost - Self-hosted social media management (Laravel)
# https://github.com/inovector/mixpost
#
# Stack:
# - app: Laravel + nginx (porta interna 80)
# - horizon: queue worker
# - scheduler: cron-like scheduled tasks
# - db: MySQL 8.0
# - redis: Redis 7
services:
app:
image: inovector/mixpost:latest
restart: always
environment:
APP_NAME: Mixpost
APP_ENV: production
APP_KEY: base64:2a7a8d497c22c43be59bc4d873763f8505ee0f8dbda6
APP_DEBUG: "false"
APP_URL: https://mixpost.fluxtechnologies.uk
DB_CONNECTION: mysql
DB_HOST: db
DB_PORT: "3306"
DB_DATABASE: mixpost
DB_USERNAME: mixpost
DB_PASSWORD: 282a989ffe21a5db3daa757f29871a57
REDIS_HOST: redis
REDIS_PORT: "6379"
CACHE_DRIVER: redis
QUEUE_CONNECTION: redis
SESSION_DRIVER: redis
MAIL_MAILER: log
LOG_CHANNEL: stderr
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
networks:
- coolify-proxy
- mixpost
labels:
- traefik.enable=true
- traefik.http.routers.mixapp.rule=Host(`mixpost.fluxtechnologies.uk`)
- traefik.http.routers.mixapp.entrypoints=https
- traefik.http.routers.mixapp.tls=true
- traefik.http.routers.mixapp.tls.certresolver=letsencrypt
- traefik.http.services.mixapp.loadbalancer.server.port=80
- coolify.managed=true
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost/api/mixpost"]
interval: 30s
timeout: 10s
retries: 3
horizon:
image: inovector/mixpost:latest
restart: always
command: php artisan horizon
environment:
APP_NAME: Mixpost
APP_ENV: production
APP_KEY: base64:2a7a8d497c22c43be59bc4d873763f8505ee0f8dbda6
APP_URL: https://mixpost.fluxtechnologies.uk
DB_CONNECTION: mysql
DB_HOST: db
DB_PORT: "3306"
DB_DATABASE: mixpost
DB_USERNAME: mixpost
DB_PASSWORD: 282a989ffe21a5db3daa757f29871a57
REDIS_HOST: redis
REDIS_PORT: "6379"
CACHE_DRIVER: redis
QUEUE_CONNECTION: redis
SESSION_DRIVER: redis
depends_on:
app:
condition: service_started
networks:
- mixpost
scheduler:
image: inovector/mixpost:latest
restart: always
command: sh -c "while true; do php artisan schedule:run; sleep 60; done"
environment:
APP_NAME: Mixpost
APP_ENV: production
APP_KEY: base64:2a7a8d497c22c43be59bc4d873763f8505ee0f8dbda6
APP_URL: https://mixpost.fluxtechnologies.uk
DB_CONNECTION: mysql
DB_HOST: db
DB_PORT: "3306"
DB_DATABASE: mixpost
DB_USERNAME: mixpost
DB_PASSWORD: 282a989ffe21a5db3daa757f29871a57
REDIS_HOST: redis
REDIS_PORT: "6379"
CACHE_DRIVER: redis
QUEUE_CONNECTION: redis
SESSION_DRIVER: redis
networks:
- mixpost
db:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: fe21dcf3a9658d24850ed7d7f66fa2f9
MYSQL_DATABASE: mixpost
MYSQL_USER: mixpost
MYSQL_PASSWORD: 282a989ffe21a5db3daa757f29871a57
volumes:
- mixpost-db:/var/lib/mysql
networks:
- mixpost
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
networks:
- mixpost
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
volumes:
mixpost-db:
networks:
coolify-proxy:
external: true
mixpost:
driver: bridge