Recently I started using OpenWRT and found out abt OpenWisp for managing my 
two Xiaomi/Redmi routers.
I am using a rental server for installing OpenWisp and an instance of 
traefik as a reverse proxy.
But since the docker version of openwisp has its own proxy, I started to 
fiddle with it, to get it to work and came up with this docker-compose.yaml 
file:


version: "3"

services:
  dashboard:
    image: openwisp/openwisp-dashboard:latest
    env_file:
      - .env
    volumes:
      - ./openwisp_static:/opt/openwisp/static
      - ./openwisp_media:/opt/openwisp/media
    depends_on:
      - postgres
      - redis
      - postfix

  controller:
    image:  openwisp/openwisp-controller:latest
    env_file:
      - .env
    depends_on:
      - postgres
      - redis
      - dashboard

  radius:
    image: openwisp/openwisp-radius:latest
    env_file:
      - .env
    depends_on:
      - postgres
      - dashboard

  topology:
    image: openwisp/openwisp-topology:latest
    env_file:
      - .env
    depends_on:
      - postgres
      - dashboard

  websocket:
    image: openwisp/openwisp-websocket:latest
    env_file:
      - .env
    depends_on:
      - dashboard

  nginx:
    image: openwisp/openwisp-nginx:latest
    env_file:
      - .env
    volumes:
      - ./openwisp_static:/opt/openwisp/static:ro
      - ./openwisp_media:/opt/openwisp/media:ro
      - ./openwisp_certs:/etc/letsencrypt
      - ./public_html:/opt/openwisp/public_html
    networks:
      default:
        aliases:
         - dashboard.internal
         - controller.internal
         - radius.internal
         - topology.internal
    depends_on:
      - dashboard
      - controller
      - radius
      - topology
      - websocket
    networks:
      - default
      - web
    labels:
      - traefik.enable=true
      - traefik.docker.network=web
      - traefik.http.routers.openwisp_proxy.rule=Host(`wisp.example.org`)||
Host(`dashboard.wisp.example.org`)||Host(`controller.wisp.example.org`)||
Host(`vpn.wisp.example.org`)||Host(`topology.wisp.example.org`)||Host(
`radius.wisp.example.org`)
      - traefik.http.routers.openwisp_proxy.tls.certresolver=myresolver
      - traefik.http.routers.openwisp_proxy.entrypoints=websecure

  celery:
    image: openwisp/openwisp-dashboard:latest
    environment:
      - MODULE_NAME=celery
    env_file:
      - .env
    depends_on:
      - postgres
      - redis
      - dashboard

  celerybeat:
    image: openwisp/openwisp-dashboard:latest
    environment:
      - MODULE_NAME=celerybeat
    env_file:
      - .env
    depends_on:
      - postgres
      - redis
      - dashboard

  postfix:
    image: openwisp/openwisp-postfix:latest
    env_file:
      - .env
    volumes:
      - ./openwisp_certs:/etc/ssl/mail

  freeradius:
    image: openwisp/openwisp-freeradius:latest
    env_file:
      - .env
    ports:
      - "1812:1812/udp"
      - "1813:1813/udp"
    depends_on:
      - postgres
      - radius
      - dashboard

  postgres:
    image: mdillon/postgis:11-alpine
    environment:
      - POSTGRES_DB=$DB_NAME
      - POSTGRES_USER=$DB_USER
      - POSTGRES_PASSWORD=$DB_PASS
      - TZ=$TZ
    volumes:
      - ./postgres_data:/var/lib/postgresql/data

  openvpn:
    image: openwisp/openwisp-openvpn:latest
    ports:
      - "1194:1194/udp"
    env_file:
      - .env
    depends_on:
      - postgres
    cap_add:
      - NET_ADMIN

  redis:
    image: redis:alpine

networks:
  web:
    external: true
  default:
    ipam:
      config:
        - subnet: 172.42.0.0/16

The network *web* is the for all containers, which have a website for 
displaying something.
Hope this helps some people with their setup :)

Best regards
Mirza

-- 
You received this message because you are subscribed to the Google Groups 
"OpenWISP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/openwisp/62992aae-8442-4ef9-a498-5cb3d4db7e73o%40googlegroups.com.

Reply via email to