aboutsummaryrefslogtreecommitdiff
path: root/services/outline/compose.yaml
blob: f52a07501a1c5e5fb09619debdbed36cbfa44a33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
networks:
  default:
  proxy:
    external: true

volumes:
  data: 
  postgres:

services:
  outline:
    image: docker.getoutline.com/outlinewiki/outline:latest
    env_file: .env
    volumes:
      - data:/var/lib/outline/data
    networks:
      - default
      - proxy
    labels:
      traefik.enable: true
      traefik.http.routers.outline.rule: Host(`outline.4d6178.work`)
      traefik.http.services.outline.loadbalancer.server.port: 3000
      traefik.http.routers.outline.entrypoints: websecure
      traefik.http.routers.outline.tls: true
      traefik.http.routers.outline.tls.certresolver: le
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy
    restart: unless-stopped

  redis:
    image: redis
    env_file: .env
    volumes:
      - /opt/outline/redis.conf:/redis.conf
    command: ["redis-server", "/redis.conf"]
    networks:
      - default
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 30s
      retries: 3
    restart: unless-stopped

  postgres:
    image: postgres
    env_file: .env
    volumes:
      - postgres:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD", "pg_isready", "-d", "outline", "-U", "outline"]
      interval: 30s
      timeout: 20s
      retries: 3
    networks:
      - default
    environment:
      POSTGRES_USER: 'outline'
      POSTGRES_PASSWORD: 'outline'
      POSTGRES_DB: 'outline'
    restart: unless-stopped