captainVersion: 4
services:
    $$cap_appname:
        environment:
            GHOST_DATABASE_NAME: ghost
            GHOST_DATABASE_PASSWORD: $$cap_db_ghost_password
            GHOST_DATABASE_USER: ghost
            GHOST_EMAIL: $$cap_ghost_email
            GHOST_HOST: $$cap_ghost_host
            GHOST_PASSWORD: $$cap_ghost_password
            GHOST_PROTOCOL: $$cap_ghost_protocol
            GHOST_PORT_NUMBER: $$cap_ghost_port
            MARIADB_HOST: srv-captain--$$cap_appname-db
            MARIADB_PORT_NUMBER: '3306'
            SMTP_FROM_ADDRESS: $$cap_ghost_smtp_from
            SMTP_HOST: $$cap_ghost_smtp_host
            SMTP_PASSWORD: $$cap_ghost_smtp_password
            SMTP_PORT: $$cap_ghost_smtp_port
            SMTP_SERVICE: $$cap_ghost_smtp_service
            SMTP_USER: $$cap_ghost_smtp_user
        image: bitnami/ghost:$$cap_ghost_version
        restart: always
        volumes:
            - $$cap_appname-data:/bitnami
        caproverExtra:
            containerHttpPort: '2368'
    $$cap_appname-db:
        environment:
            MARIADB_DATABASE: ghost
            MARIADB_PASSWORD: $$cap_db_ghost_password
            MARIADB_ROOT_PASSWORD: $$cap_db_password
            MARIADB_ROOT_USER: $$cap_db_user
            MARIADB_USER: ghost
        image: bitnami/mariadb:10.1
        restart: always
        volumes:
            - $$cap_appname-mariadb-data:/bitnami
        caproverExtra:
            notExposeAsWebApp: 'true'
caproverOneClickApp:
    variables:
        - defaultValue: 2.16.4
          description: Check out their Docker page for the valid tags https://hub.docker.com/r/bitnami/ghost/tags
          id: $$cap_ghost_version
          label: Ghost Version
          validRegex: /^([^\s^\/])+$/
        - defaultValue: admin
          description: Root user that will be created on MariaDB
          id: $$cap_db_user
          label: MariaDB root user
          validRegex: /^([^\s^\/])+$/
        - description: Root password that will be created on MariaDB
          id: $$cap_db_password
          label: MariaDB root password
          validRegex: /^(?=.*\d).{10,}$/
        - description: Password for database user named `ghost`
          id: $$cap_db_ghost_password
          label: MariaDB Ghost password
          validRegex: /^(?=.*\d).{10,}$/
        - defaultValue: youremail@example.com
          description: Ghost application email, you will use it to login
          id: $$cap_ghost_email
          label: Ghost email
          validRegex: /^([^\s^\/])+$/
        - description: The admin password must be at least 10 characters, and at least one number and letter
          id: $$cap_ghost_password
          label: Ghost password
          validRegex: /^(?=.*\d).{10,}$/
        - defaultValue: blog.example.com
          description: Enter the URL that is used to access your publication
          id: $$cap_ghost_host
          label: Ghost Host
          validRegex: /^([^\s^\/])+$/
        - defaultValue: http
          description: Protocol that you will be using
          id: $$cap_ghost_protocol
          label: Ghost Protocol
          validRegex: /^([^\s^\/])+$/
        - defaultValue: '80'
          description: Port that you will be using
          id: $$cap_ghost_port
          label: Ghost Port
        - defaultValue: GMail
          description: Ghost uses node mailer, check this docs https://docs.ghost.org/concepts/config/#mail
          id: $$cap_ghost_smtp_service
          label: STMP service to use
        - defaultValue: smtp.gmail.com
          description: The STMP host you will be using
          id: $$cap_ghost_smtp_host
          label: STMP host
        - defaultValue: '465'
          description: The STMP port you will be using
          id: $$cap_ghost_smtp_port
          label: STMP port
        - defaultValue: your_email@gmail.com
          description: Your user on the SMTP service
          id: $$cap_ghost_smtp_user
          label: STMP user
        - description: Your password on the SMTP service
          id: $$cap_ghost_smtp_password
          label: STMP password
        - defaultValue: your_email@gmail.com
          description: STMP from address
          id: $$cap_ghost_smtp_from
          label: STMP from address
    instructions:
        end: >
            Ghost is deployed and available as $$cap_appname. 

             IMPORTANT: It will take up to 2 minutes for Ghost to be ready. Before that, you might see 502 error page.
        start: Ghost is a fully open source, adaptable platform for building and running a modern online publication. We power blogs, magazines and journalists from Zappos to Sky News.
    displayName: ''
    isOfficial: true
    description: Ghost is a free and open source blogging platform written in JavaScript and distributed under the MIT License
    documentation: Taken from https://docs.ghost.org/
