Wonderfall / docker-isso

18 stars 18 forks source link

Does this work with traefik? #7

Open thepenguinthatwants opened 4 years ago

thepenguinthatwants commented 4 years ago

I am trying to figure out how to get this work and implement this on my hugo blog.

Wondering if some documentations or help is available?

hatamiarash7 commented 4 years ago

You can use Traefik as a load-balancer for your services ... It's not important which one

version: "3.7"

services:
  isso:
    ...
    labels:
      - "traefik.enable=true"
      # HTTPS
      - "traefik.http.routers.isso.rule=Host(`isso.domain.com`)"
      - "traefik.http.routers.isso.entrypoints=web"
      - "traefik.http.routers.isso.service=isso"
      - "traefik.http.services.isso.loadbalancer.server.port=8080"
oktomus commented 3 years ago

Yes it works. I tested it using the following configuration:

# /home/oktomus/docker/docker-compose.yml
version: '3'

networks:
  http-proxy:

volumes:
  traefik-acme:
  isso-config:
    driver: local-persist
    driver_opts:
      mountpoint: /home/oktomus/docker/volumes/isso-config
  isso-db:
    driver: local-persist
    driver_opts:
      mountpoint: /home/oktomus/docker/volumes/isso-db

services:
  isso:
    restart: always
    image: wonderfall/isso
    environment:
      - GID=${ISSO_GID}
      - UID=${ISSO_UID}
    volumes:
      - isso-config:/config:rw
      - isso-db:/db:rw
    networks:
      - http-proxy
    ports:
      - 8080
    labels:
      traefik.domain: "${ISSO_VIRTUAL_HOST}"
      traefik.backend: isso
      traefik.frontend.rule: "Host:${ISSO_VIRTUAL_HOST}"
      traefik.port: 8080

  traefik:
    restart: always
    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=${ISSO_VIRTUAL_HOST}"
      - "--docker.exposedbydefault=true"
      - "--docker.watch=true"
      - "--acme"
      - "--acme.domains=${ISSO_VIRTUAL_HOST}"
      - "--acme.email=${TRAEFIK_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
# /home/oktomus/docker/.env
TRAEFIK_LETSENCRYPT_EMAIL=XXXX
ISSO_VIRTUAL_HOST=XXXX
ISSO_UID=1000
ISSO_GID=1001
# /home/oktomus/docker/volumes/isso-config/isso.conf
[general]
name = oktomus
dbpath = /db/comments.db
host = WEBSITE_URL
max-age = 15m

[moderation]
enabled = false

[admin]
enabled = true
password = XXX

[server]
listen = http://0.0.0.0:8080/
reload = off
profile = off
public-endpoint = https://ISSO_PUBLIC_URL # Important to set the public endpoint to load css and js correctly from the admin

Hope it helps !