I am currently planning to set up nextcloud as it is described in https://help.nextcloud.com/t/nextcloud-docker-compose-setup-with-caddy-2024/204846 and make it available via tailscale.

I found a tailscale reverse proxy example for the AIO Version: https://github.com/nextcloud/all-in-one/discussions/5439 which also uses caddy as reverse proxy.

It might be possible to adjust it to the nextcloud:fpm stack.

But it might also be possible to use the built in reverse proxy of the tailscale sidecar by using a TS_SERVE_CONFIG . In this json file the multiple paths (/push/* and the / root) can be configured and can redirect to the right internal dns name and port (notify_push:7867 and web:80) https://tailscale.com/blog/docker-tailscale-guide

Has anyone done that? Can someone share a complete example?

  • beautiful_orcaOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 days ago

    I kind of followed the tutorial, but changed the tailscale configuration to how it is advised by tailscale in their blog about tailscale in docker. It is running fine for me.

    compose.yml:

    services:
      nextcloud-aio-mastercontainer:
        image: nextcloud/all-in-one:latest
        init: true
        restart: always
        container_name: nextcloud-aio-mastercontainer
        volumes:
          - nextcloud_aio_mastercontainer:/mnt/docker-aio-config # do not change
          - /var/run/docker.sock:/var/run/docker.sock:ro # do not change
        networks:
          - nextcloud-aio
        ports:
          - 8091:8080
        environment:
          APACHE_PORT: 11000
          APACHE_IP_BINDING: 127.0.0.1
          SKIP_DOMAIN_VALIDATION: true
    
      nc-caddy:
        image: caddy:alpine
        container_name: nc-caddy
        restart: always
        environment:
          NC_DOMAIN: nc.tailnet.ts.net
        volumes:
          - ./caddy/Caddyfile:/etc/caddy/Caddyfile
          - ./caddy/caddy_data:/data
          - ./caddy/caddy_config:/config
          - ./caddy/caddy_certs:/certs
          - ./tailscale/tailscale_sock:/var/run/tailscale/:ro
        network_mode: service:nc-tailscale
        labels:
          - com.centurylinklabs.watchtower.enable=true
    
      nc-tailscale:
        image: tailscale/tailscale:latest
        container_name: nc-tailscale
        restart: always
        init: true
        environment:
          - TS_HOSTNAME=nc
          - TS_AUTH_KEY=tskey-auth-xxx
          - TS_EXTRA_ARGS=--advertise-tags=tag:container
          - TS_STATE_DIR=/var/lib/tailscale
        volumes:
          - ./tailscale/state:/var/lib/tailscale
          - ./tailscale/config:/config
          - ./tailscale/tailscale_sock:/tmp
        devices:
          - /dev/net/tun:/dev/net/tun
        cap_add:
          - net_admin
          - sys_module
        networks:
          - nextcloud-aio
        labels:
          - com.centurylinklabs.watchtower.enable=true
    
    volumes:
      nextcloud_aio_mastercontainer:
        name: nextcloud_aio_mastercontainer
    
    networks:
      nextcloud-aio:
        name: nextcloud-aio
        driver: bridge
        enable_ipv6: false
    
    

    Caddyfile:

    https://{$NC_DOMAIN}:443 {
        reverse_proxy nextcloud-aio-apache:11000
    }