Skip to content

Latest commit

 

History

History
69 lines (61 loc) · 1.72 KB

port-based-multi-tenancy.md

File metadata and controls

69 lines (61 loc) · 1.72 KB

WARNING: Do not use this in production if the site is going to be served over plain http.

Step 1

Remove the traefik service from docker-compose.yml

Step 2

Add service for each port that needs to be exposed.

e.g. port-site-1, port-site-2, port-site-3.

# ... removed for brevity
services:
	# ... removed for brevity
  port-site-1:
    image: frappe/erpnext:v14.11.1
    deploy:
      restart_policy:
        condition: on-failure
    command:
      - nginx-entrypoint.sh
    environment:
      BACKEND: backend:8000
      FRAPPE_SITE_NAME_HEADER: site1.local
      SOCKETIO: websocket:9000
    volumes:
      - sites:/home/frappe/frappe-bench/sites
    ports:
      - "8080:8080"
  port-site-2:
    image: frappe/erpnext:v14.11.1
    deploy:
      restart_policy:
        condition: on-failure
    command:
      - nginx-entrypoint.sh
    environment:
      BACKEND: backend:8000
      FRAPPE_SITE_NAME_HEADER: site2.local
      SOCKETIO: websocket:9000
    volumes:
      - sites:/home/frappe/frappe-bench/sites
    ports:
      - "8081:8080"
  port-site-3:
    image: frappe/erpnext:v14.11.1
    deploy:
      restart_policy:
        condition: on-failure
    command:
      - nginx-entrypoint.sh
    environment:
      BACKEND: backend:8000
      FRAPPE_SITE_NAME_HEADER: site3.local
      SOCKETIO: websocket:9000
    volumes:
      - sites:/home/frappe/frappe-bench/sites
    ports:
      - "8082:8080"

Notes:

  • Above setup will expose site1.local, site2.local, site3.local on port 8080, 8081, 8082 respectively.
  • Change site1.local to site name to serve from bench.
  • Change the BACKEND and SOCKETIO environment variables as per your service names.
  • Make sure sites: volume is available as part of yaml.