Reverse Proxy - ggogel/seafile-containerized GitHub Wiki

Reverse Proxy

The caddy reverse proxy integrated with the deployment exposes port 80. Point your existing reverse proxy to that port.

This deployment does by design not include a reverse proxy capable of HTTPS and Let's Encrypt, unlike the official deployment, because usually Docker users already have some docker-based reverse proxy solution deployed, which does exactly that.

Reverse Proxy Recommendations

jwilder/nginx-proxy (recommended for beginners)

  • popular solution for beginners
  • doesn't support Docker Swarm
  • automatic Let's Encrypt with plugin
  • lacks a lot of advanced features

lucaslorentz/caddy-docker-proxy (recommended for Docker Swarm and advanced users)

  • designed for Docker Swarm but can be used on regular Docker too
  • automatic Let's Encrypt integrated
  • very feature rich
  • initial setup can be difficult

Examples

Example for jwilder/nginx-proxy

    seafile-caddy:
        image: ggogel/seafile-caddy:1.0.6
        expose:
        - "80"
        networks:
        - seafile-net
        - default
        environment:
        - VIRTUAL_PORT=80
        - VIRTUAL_HOST=seafile.mydomain.com

Example for lucaslorentz/caddy-docker-proxy on Docker Swarm

    seafile-caddy:
        image: ggogel/seafile-caddy:0.1
        networks:
        - seafile-net
        - caddy
        deploy:
        labels:
            caddy: seafile.mydomain.com #this will automatically enable https and Let's Encrypt
            caddy.reverse_proxy: "{{upstreams 80}}"