version: "3.7" x-ui-default: &ui-default init: true image: dessalines/lemmy-ui:0.18.4 # assuming lemmy-ui is cloned besides lemmy directory # build: # context: ../../../lemmy-ui # dockerfile: dev.dockerfile environment: - LEMMY_UI_HTTPS=false x-lemmy-default: &lemmy-default image: lemmy-federation:latest environment: - RUST_BACKTRACE=1 - RUST_LOG="warn,lemmy_server=debug,lemmy_api=debug,lemmy_api_common=debug,lemmy_api_crud=debug,lemmy_apub=debug,lemmy_db_schema=debug,lemmy_db_views=debug,lemmy_db_views_actor=debug,lemmy_db_views_moderator=debug,lemmy_routes=debug,lemmy_utils=debug,lemmy_websocket=debug" restart: always x-postgres-default: &postgres-default image: postgres:15-alpine environment: - POSTGRES_USER=lemmy - POSTGRES_PASSWORD=password - POSTGRES_DB=lemmy restart: always services: nginx: image: nginx:1-alpine ports: - "8540:8540" - "8550:8550" - "8560:8560" - "8570:8570" - "8580:8580" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:Z restart: always depends_on: - pictrs - lemmy-alpha-ui - lemmy-beta-ui - lemmy-gamma-ui - lemmy-delta-ui - lemmy-epsilon-ui pictrs: restart: always image: asonix/pictrs:0.4.0-beta.19 user: 991:991 volumes: - ./volumes/pictrs_alpha:/mnt:Z lemmy-alpha-ui: <<: *ui-default environment: - LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy-alpha:8541 - LEMMY_UI_LEMMY_EXTERNAL_HOST=localhost:8541 depends_on: - lemmy-alpha lemmy-alpha: <<: *lemmy-default volumes: - ./lemmy_alpha.hjson:/config/config.hjson:Z depends_on: - postgres_alpha ports: - "8541:8541" postgres_alpha: <<: *postgres-default volumes: - ./volumes/postgres_alpha:/var/lib/postgresql/data:Z lemmy-beta-ui: <<: *ui-default environment: - LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy-beta:8551 - LEMMY_UI_LEMMY_EXTERNAL_HOST=localhost:8551 depends_on: - lemmy-beta lemmy-beta: <<: *lemmy-default volumes: - ./lemmy_beta.hjson:/config/config.hjson:Z depends_on: - postgres_beta ports: - "8551:8551" postgres_beta: <<: *postgres-default volumes: - ./volumes/postgres_beta:/var/lib/postgresql/data:Z lemmy-gamma-ui: <<: *ui-default environment: - LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy-gamma:8561 - LEMMY_UI_LEMMY_EXTERNAL_HOST=localhost:8561 depends_on: - lemmy-gamma lemmy-gamma: <<: *lemmy-default volumes: - ./lemmy_gamma.hjson:/config/config.hjson:Z depends_on: - postgres_gamma ports: - "8561:8561" postgres_gamma: <<: *postgres-default volumes: - ./volumes/postgres_gamma:/var/lib/postgresql/data:Z # An instance with only an allowlist for beta lemmy-delta-ui: <<: *ui-default environment: - LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy-delta:8571 - LEMMY_UI_LEMMY_EXTERNAL_HOST=localhost:8571 depends_on: - lemmy-delta lemmy-delta: <<: *lemmy-default volumes: - ./lemmy_delta.hjson:/config/config.hjson:Z depends_on: - postgres_delta ports: - "8571:8571" postgres_delta: <<: *postgres-default volumes: - ./volumes/postgres_delta:/var/lib/postgresql/data:Z # An instance who has a blocklist, with lemmy-alpha blocked lemmy-epsilon-ui: <<: *ui-default environment: - LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy-epsilon:8581 - LEMMY_UI_LEMMY_EXTERNAL_HOST=localhost:8581 depends_on: - lemmy-epsilon lemmy-epsilon: <<: *lemmy-default volumes: - ./lemmy_epsilon.hjson:/config/config.hjson:Z depends_on: - postgres_epsilon ports: - "8581:8581" postgres_epsilon: <<: *postgres-default volumes: - ./volumes/postgres_epsilon:/var/lib/postgresql/data:Z