aboutsummaryrefslogtreecommitdiffhomepage
path: root/docker-compose.yml
blob: a3de4b1c42424a2fcd25fccc17513b11e8556a5d (plain) (blame)
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
---
# Shaarli - Docker Compose example configuration
#
# See:
# - https://shaarli.readthedocs.io/en/master/docker/shaarli-images/
# - https://shaarli.readthedocs.io/en/master/guides/install-shaarli-with-debian9-and-docker/
#
# Environment variables:
# - SHAARLI_VIRTUAL_HOST      Fully Qualified Domain Name for the Shaarli instance
# - SHAARLI_LETSENCRYPT_EMAIL Contact email for certificate renewal
version: '3'

networks:
  http-proxy:

volumes:
  traefik-acme:
  shaarli-cache:
  shaarli-data:

services:
  shaarli:
    image: shaarli/shaarli:master
    build: ./
    networks:
      - http-proxy
    volumes:
      - shaarli-cache:/var/www/shaarli/cache
      - shaarli-data:/var/www/shaarli/data
    labels:
      traefik.domain: "${SHAARLI_VIRTUAL_HOST}"
      traefik.backend: shaarli
      traefik.frontend.rule: "Host:${SHAARLI_VIRTUAL_HOST}"

  traefik:
    image: traefik:1.7-alpine
    command:
      - "--defaultentrypoints=http,https"
      - "--entrypoints=Name:http Address::80 Redirect.EntryPoint:https"
      - "--entrypoints=Name:https Address::443 TLS"
      - "--retry"
      - "--docker"
      - "--docker.domain=docker.localhost"
      - "--docker.exposedbydefault=true"
      - "--docker.watch=true"
      - "--acme"
      - "--acme.domains=${SHAARLI_VIRTUAL_HOST}"
      - "--acme.email=${SHAARLI_LETSENCRYPT_EMAIL}"
      - "--acme.entrypoint=https"
      - "--acme.onhostrule=true"
      - "--acme.storage=/acme/acme.json"
      - "--acme.httpchallenge"
      - "--acme.httpchallenge.entrypoint=http"
    networks:
      - http-proxy
    ports:
      - 80:80
      - 443:443
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - traefik-acme:/acme