# Using version 3 to provide play-with-docker badge
# You can change to version 2 without breaking.
#version: '2'
version: '3'
services:
  database:
    # Don't upgrade PostgreSQL by simply changing the version number
    # You need to migrate the Database to the new PostgreSQL version
    image: postgres:9.6-alpine
    #mem_limit: 256mb         # version 2 only
    #memswap_limit: 512mb     # version 2 only
    #read_only: true          # not supported in swarm mode please enable along with tmpfs
    #tmpfs:
    #  - /run/postgresql:size=512K
    #  - /tmp:size=256K
    environment:
      - POSTGRES_USER=hedgedoc
      - POSTGRES_PASSWORD=e404+hB2x6Gu3wBycp55Sf8knEc+flOZxrKEBKZViog
      - POSTGRES_DB=hedgedoc
    volumes:
      - ./volumes/database:/var/lib/postgresql/data
    networks:
      backend:
    restart: always

  # MySQL example
  # Most of the documentation that applies to PostgreSQL applies also to MySQL
  #database:
  #    # You should be able to upgrade MySQL without problems
  #    # but to make sure no even when a problem appears you
  #    # should have a backup
  #    image: mariadb:10
  #    environment:
  #      - MYSQL_USER=hedgedoc
  #      - MYSQL_PASSWORD=password
  #      - MYSQL_DATABASE=hedgedoc
  #      - MYSQL_ALLOW_EMPTY_PASSWORD=true
  #    volumes:
  #      - database:/var/lib/mysql
  #      # This config provides UTF-8 support to the database by default
  #      # If this config is not used, HedgeDoc breaks as it tries to write
  #      # UTF-8 to a latin database.
  #      - ./resources/utf8.cnf:/etc/mysql/conf.d/utf8.cnf
  #    networks:
  #      backend:
  #    restart: always

  app:
    # Uncomment the following section to build the image yourself:
    #build:
    #  context: .
    #  dockerfile: debian/Dockerfile
    #  args:
    #    - "VERSION=master"
    #    - "HEDGEDOC_REPOSITORY=https://github.com/hedgedoc/hedgedoc.git"
    #image: quay.io/hedgedoc/hedgedoc:1.8.2
    image: quay.io/hedgedoc/hedgedoc:1.9.0
    #mem_limit: 256mb         # version 2 only
    #memswap_limit: 512mb     # version 2 only
    #read_only: true          # not supported in swarm mode, enable along with tmpfs
    #tmpfs:
    #  - /tmp:size=10M
    #  # Make sure you remove this when you use filesystem as upload type
    #  - /hedgedoc/public/uploads:size=10M
    environment:
      # DB_URL is formatted like: <databasetype>://<username>:<password>@<hostname>:<port>/<database>
      # Other examples are:
      # - mysql://hedgedoc:password@database:3306/hedgedoc
      # - sqlite:///data/sqlite.db (NOT RECOMMENDED)
      # - For details see the official sequelize docs: http://docs.sequelizejs.com/en/v3/
      - CMD_DB_URL=postgres://hedgedoc:e404+hB2x6Gu3wBycp55Sf8knEc+flOZxrKEBKZViog@database:5432/hedgedoc
      - CMD_DOMAIN=docs.copincha.org
      - CMD_ALLOW_FREEURL=true
      - CMD_PROTOCOL_USESSL=true
      
    volumes:
      - ./volumes/uploads:/hedgedoc/public/uploads
    ports:
      # Ports that are published to the outside.
      # The latter port is the port inside the container. It should always stay on 3000
      # If you only specify a port it'll published on all interfaces. If you want to use a
      # local reverse proxy, you may want to listen on 127.0.0.1.
      # Example:
      # - "127.0.0.1:3000:3000"
      - "3000:3000"
    networks:
      backend:
    restart: always
    depends_on:
      - database

# Define networks to allow best isolation
networks:
  # Internal network for communication with PostgreSQL/MySQL
  backend:
