Synapse + synapse-admin - Matrix....

Moi drodzy - zainstalowałem sobie https://matrix.jurkiewicz.chat

services:
  synapse:
    image: "matrixdotorg/synapse:latest"
    container_name: "synapse"
    volumes:
      - "./data:/data"
    environment:
      VIRTUAL_HOST: "matrix.jurkiewicz.chat"
      VIRTUAL_PORT: 8008
      LETSENCRYPT_HOST: "matrix.jurkiewicz.chat"
      SYNAPSE_SERVER_NAME: "matrix.jurkiewicz.chat"
      SYNAPSE_REPORT_STATS: "yes"
    restart: unless-stopped
    networks:
      - nginx-proxy-manager-network


networks:
  local:
  nginx-proxy-manager-network:
    external: true

Do tego mam nginx-proxy:

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'    # HTTP
      - '81:81'    # Admin Panel
      - '443:443'  # HTTPS
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

    networks:
     - nginx-proxy-manager-network

networks:
  nginx-proxy-manager-network:
    external: true

No i teraz chcę sobie synapse-admin dodać:

services:
  synapse-admin:
    container_name: synapse-admin
    hostname: synapse-admin
    image: awesometechnologies/synapse-admin:latest
    ports:
      - "8080:80"
    restart: unless-stopped
    networks:
      - nginx-proxy-manager-network


networks:
  local:
  nginx-proxy-manager-network:
    external: true

W nginx-manager mam definicję obu:

Sam Matrix działa poprawnie:

Ale już admin nie:

I tutaj nie wiem, co robię nie tak - nie znam się zbytnio na Dockerze, tyle, ile mogę - sam robię. Ale tu stanąłem i proszę o pomoc.

Adam

Po pierwsze – dlaczego kontenery wrzucasz osobno do różnych Docker compose, jeśli dotyczą tej samej usługi?

Po drugie – nie używaj dyrektywy ports, jeśli masz zamiar pukać w usługę po sieci wewnętrznej. Dyrektywa ports służy do wystawienia portu “na świat”.

Wrzuć to wszystko w jeden compose i jedną sieć LAN:

networks:
  nginx-proxy-manager-network:
    external: true

services:
  synapse:
    image: "matrixdotorg/synapse:latest"
    container_name: "synapse"
    restart: unless-stopped
    volumes:
      - "./data:/data"
    environment:
      VIRTUAL_HOST: "matrix.jurkiewicz.chat"
      VIRTUAL_PORT: 8008
      LETSENCRYPT_HOST: "matrix.jurkiewicz.chat"
      SYNAPSE_SERVER_NAME: "matrix.jurkiewicz.chat"
      SYNAPSE_REPORT_STATS: "yes"
    networks:
      - nginx-proxy-manager-network

  synapse-admin:
    image: awesometechnologies/synapse-admin:latest
    container_name: synapse-admin
    restart: unless-stopped
    networks:
      - nginx-proxy-manager-network

  nginx-proxy-manager:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '81:81' # Admin Panel
      - '443:443' # HTTPS
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    networks:
      - nginx-proxy-manager-network

Nie będziesz potrzebować portu 80 – większość przeglądarek sama z siebie automatycznie robi probe najpierw portu 443, a dopiero potem, jak się nie uda – port 80.

Dzięki…
kilka composów bo:

  1. dopiero się uczę, więc nie wiedziałem
  2. robiłem powoli i jak coś mi już działało, to wolałem nie dotykać :wink:

Ale zaraz postaram się to przerobić…

A ten kontener nginx-proxy - używam dla różnych dockerów w systemie - to wtedy dać go na osobnym docker-compose?

@adam.jurkiewicz Może to nie taki rodzaj pomocy, jakiego oczekujesz, ale ja mogę doradzić, że próbowałem wielu sposobów na hostowanie Matrixa i zawsze miałem z tym problemy. Pierwsze “proste” rozwiązanie, jakie mi działa, i na którym z sukcesem utrzymuję matriks.chat, jest https://github.com/spantaleev/matrix-docker-ansible-deploy. Naprawdę mocno polecam :muscle:

2 Likes

Sprawdzę, chwilowo działa :wink:

Ewentualnie webowy interfejs… ale to tylko jeśli będzie taka konieczność, bo to ma być GPDR compilant :wink: i to tylko w mojej firmie, więc właściwie lepiej, jak integracji nie będzie…

1 Like

A btw, w jakich aspektach miałeś obawy o GDPR compliance?

Wtedy tak, ale sieć wtedy już nie jest lokalna i wypada ustawić ją na typ bridge, czyli dopisujesz driver: bridge wszędzie gdzie tej sieci używasz