Skip to main content

Using Docker Image

Docker Installation (Guide)

Have a VPS?

Desktop?

Just create a docker-compose.yml file on your server, and change the values (which start with the example_*) with real values.

For passwords, we recommend using strong values. You can use this tool to generate strong passwords:

Required:

  • LICENSE_KEY (license key, see Mixpost license page)
  • APP_URL (your app URL, for example, https://my-project.com)
  • APP_KEY (your app key. Generate a base64 secret with this tool)
  • DB_DATABASE (the database name of the linked MySQL container)
  • DB_USERNAME (the user of the linked MySQL container)
  • DB_PASSWORD (the user password of the linked MySQL container)

Optional:

  • APP_NAME (Your project name. Default value: 'Mixpost')
  • APP_DEBUG (Available options: true/false. Default value: false)
  • MIXPOST_CORE_PATH (This is the path that Mixpost will use to load its core routes and assets. Default value: mixpost)
  • MIXPOST_PUBLIC_PAGES_PREFIX (public pages have an endpoint directly after the URL domain (for example, https://your-domain/privacy-policy). Default value: pages, which means https://your-domain/pages/privacy-policy)
  • MIXPOST_FORGOT_PASSWORD (Enable/Disable Forgot Password feature. Default value: 'true')
  • MIXPOST_TWO_FACTOR_AUTH (Enable/Disable Two Factor Authentication feature. Default value: 'true')
  • MIXPOST_DEFAULT_LOCALE (Default value: 'en-GB')
  • MAIL_HOST (Default value: smtp.mailgun.org)
  • MAIL_PORT (Default value: 587)
  • MAIL_USERNAME
  • MAIL_PASSWORD
  • MAIL_ENCRYPTION (Default value: tls)
  • MAIL_FROM_ADDRESS (Default value: hello@example.com)
  • MAIL_FROM_NAME (Default value: Example)
  • DB_HOST (The IP of the MySql server. Default value: mysql)
  • DB_PORT (The port of the MySql server. Default value: 3306)
  • REDIS_HOST (The IP of Redis server. Default value: redis)
  • REDIS_PORT (The port of the Redis server. Default value: 6379)
version: '3.1'

services:
    mixpost:
        image: inovector/mixpost-pro-team:latest
        environment:
            LICENSE_KEY: 'example_license_key'
            APP_URL: https://your-domain.com
            APP_KEY: example_secret_key # Generate a base64 secret with this tool: https://mixpost.app/encryption-key-generator
            DB_DATABASE: 'example_db_name'
            DB_USERNAME: 'example_db_user'
            DB_PASSWORD: 'example_db_password'
        ports:
            - 9000:80
        volumes:
            - storage:/var/www/html/storage/app
        depends_on:
            - mysql
            - redis  
        restart: unless-stopped    
    mysql:
        image: 'mysql/mysql-server:8.0'
        ports:
            - '3306:3306'
        environment:
            MYSQL_DATABASE: 'example_db_name'
            MYSQL_USER: 'example_db_user'
            MYSQL_PASSWORD: 'example_db_password'
        volumes:
            - 'mysql:/var/lib/mysql'
        healthcheck:
            test: ["CMD", "mysqladmin", "ping", "-p example_db_password"]
            retries: 3
            timeout: 5s
        restart: unless-stopped    
    redis:
        image: 'redis:latest'
        command: redis-server --appendonly yes --replica-read-only no
        volumes:
            - 'redis:/data'
        healthcheck:
            test: ["CMD", "redis-cli", "ping"]
            retries: 3
            timeout: 5s
        restart: unless-stopped    
volumes:
    mysql:
        driver: local
    redis:
        driver: local
    storage:
        driver: local

Then execute this command: 

docker-compose up -d

You can connect to Mixpost by accessing the URL address set in APP_URL

Important information

Mixpost uses encrypting and decrypting text via OpenSSL using AES-256 and AES-128 encryption to secure your credentials of services and connected social accounts. That said, we don't recommend you change APP_KEY. By changing the APP_KEY, some functions in the applications will stop working, namely: service credentials and connected social account tokens will no longer be able to be decrypted. You will have to re-enter your service credentials and reconnect your social accounts. For Mastodon, you have to re-create a new app, see the instruction.

Change the API_KEY only if you have a serious reason such as your access to the server has been compromised.