# 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