diff --git a/outline/docker-compose.yml b/outline/docker-compose.yml index d146dc7..8dea01a 100644 --- a/outline/docker-compose.yml +++ b/outline/docker-compose.yml @@ -1,72 +1,88 @@ -version: "2" +version: "3.2" services: - outline_redis: - image: redis - restart: always - container_name: outline_redis - outline_postgres: - image: postgres:13 - restart: always - container_name: outline_postgres - environment: - - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - - POSTGRES_USER=outline - - POSTGRES_DB=outline + outline: + image: docker.getoutline.com/outlinewiki/outline:latest + env_file: ./docker.env + ports: + - "3000:3000" + depends_on: + - postgres + - redis + - storage + + redis: + image: redis + env_file: ./docker.env + ports: + - "6379:6379" volumes: - - /var/lib/docker/volumes/outline/db:/var/lib/postgresql/data:Z + - ./redis.conf:/redis.conf + command: ["redis-server", "/redis.conf"] + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 30s + retries: 3 - outline_minio: - image: minio/minio - restart: always - container_name: outline_minio + postgres: + image: postgres + env_file: ./docker.env + ports: + - "5432:5432" volumes: - - /var/lib/docker/volumes/outline/data:/data:Z + - database-data:/var/lib/postgresql/data + healthcheck: + test: ["CMD", "pg_isready"] + interval: 30s + timeout: 20s + retries: 3 environment: - - MINIO_ROOT_USER=minio - - MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} - - MINIO_BROWSER_REDIRECT_URL=${MINIO_BROWSER_REDIRECT_URL} + POSTGRES_USER: 'user' + POSTGRES_PASSWORD: 'pass' + POSTGRES_DB: 'outline' + + storage: + image: minio/minio + env_file: ./docker.env ports: - - 9000:9000 - - 9001:9001 - command: "server /data --console-address :9001" + - "9000:9000" + entrypoint: sh + command: -c 'minio server' + deploy: + restart_policy: + condition: on-failure + volumes: + - storage-data:/data + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] + interval: 30s + timeout: 20s + retries: 3 - outline: - image: outlinewiki/outline - user: root + https-portal: + image: steveltn/https-portal + env_file: ./docker.env + ports: + - '80:80' + - '443:443' + links: + - outline + - storage restart: always - container_name: outline - # command: sh -c "yarn sequelize:migrate && yarn start" - depends_on: - - outline_postgres - - outline_redis - - outline_minio + volumes: + - https-portal-data:/var/lib/https-portal + healthcheck: + test: ["CMD", "service", "nginx", "status"] + interval: 30s + timeout: 20s + retries: 3 environment: - - PGSSLMODE=disable - - SECRET_KEY=${SECRET_KEY} - - UTILS_SECRET=${UTILS_SECRET} - - DATABASE_URL=postgres://outline:${POSTGRES_PASSWORD}@outline_postgres:5432/outline - - REDIS_URL=redis://outline_redis:6379 - - URL=${WIKI_URL} - - PORT=3000 - - AWS_ACCESS_KEY_ID=minio - - AWS_REGION=us-east-1 - - AWS_SECRET_ACCESS_KEY=${MINIO_ROOT_PASSWORD} - - AWS_S3_UPLOAD_BUCKET_URL=${WIKIDATA_URL} - - AWS_S3_UPLOAD_BUCKET_NAME=outline - - AWS_S3_UPLOAD_MAX_SIZE=26214400 - - AWS_S3_FORCE_PATH_STYLE=true - - AWS_S3_ACL=private - # - SLACK_KEY=505633415890.2395437869377 - # - SLACK_SECRET=114f1ba04f85ac91de711ee42353e73e - - FORCE_HTTPS=false - - OIDC_CLIENT_ID=outline - - OIDC_CLIENT_SECRET=${OIDC_SECRET} - - OIDC_AUTH_URI=${AUTH_URL}/api/oidc/authorize - - OIDC_TOKEN_URI=${AUTH_URL}/api/oidc/token - - OIDC_USERINFO_URI=${AUTH_URL}/api/oidc/userinfo - - OIDC_DISPLAY_NAME=Authelia - - OIDC_USERNAME_CLAIM=email - - OIDC_SCOPES=openid profile email - ports: - - 3000:3000 + DOMAINS: 'docs.mycompany.com -> http://outline:3000' + STAGE: 'production' + WEBSOCKET: 'true' + +volumes: + https-portal-data: + storage-data: + database-data: \ No newline at end of file