diff --git a/server/docker-compose.yml b/server/docker-compose.yml index 9dbf8e7f..0a355f5a 100644 --- a/server/docker-compose.yml +++ b/server/docker-compose.yml @@ -11,7 +11,7 @@ services: container_name: nginx-proxy-manager ports: - "80:80" - - "81:81" # Admin interface + - "81:81" # Admin interface (Do not expose) - "443:443" environment: - DISABLE_IPV6=true @@ -101,7 +101,7 @@ services: networks: - server-network - # --- N8n Automation --- + # --- N8N Automation --- n8n: # :5678 image: n8nio/n8n:latest restart: unless-stopped @@ -192,25 +192,40 @@ services: privileged: true # network_mode: host ports: - - "6052:6052" + - "6052:6052" # Web interface - # # --- Prosody XMPP Server --- - # prosody: # :5280 - # image: prosody/prosody:latest - # container_name: prosody - # restart: unless-stopped - # ports: - # - "5222:5222" # XMPP client connections - # - "5269:5269" # XMPP server-to-server connections - # volumes: - # - ${PROSODY_CONFIG}:/etc/prosody - # - ${PROSODY_LOGS}:/var/log/prosody - # - ${PROSODY_MODULES}:/usr/lib/prosody-modules - # networks: - # - server-network - -volumes: - model-cache: + # --- ejabberd XMPP Client --- + ejabberd: # :5280 (Admin interface) + image: ejabberd/ecs:latest + container_name: ejabberd + restart: unless-stopped + depends_on: + - ejabberd-db + volumes: + - ${EJABBERD_CONF}/ejabberd.yml:/opt/ejabberd/conf/ejabberd.yml + ports: + - "5222:5222" # XMPP client + - "5223:5223" # XMPP client (TLS) + - "5269:5269" # XMPP server-to-server (in) + - "5443:5443" # HTTP upload + - "5478:5478/udp" # STUN/TURN + - "1883:1883" # MQTT + networks: + - server-network + - ejabberd-network + + ejabberd-db: # Edit DB settings here: /mnt/md0/ejabberd/conf/ejabberd.yml + image: postgres:latest + container_name: ejabberd-db + restart: unless-stopped + environment: + - POSTGRES_DB=ejabberd + - POSTGRES_USER=ejabberd + - POSTGRES_PASSWORD=${EJABBERD_DB_PASSWORD} + volumes: + - ${EJABBERD_DB_DATA}:/var/lib/postgresql/data + networks: + - ejabberd-network networks: server-network: @@ -219,3 +234,6 @@ networks: driver: bridge ha-network: driver: bridge + ejabberd-network: + driver: bridge + diff --git a/server/notes.md b/server/notes.md new file mode 100644 index 00000000..ed42ec7e --- /dev/null +++ b/server/notes.md @@ -0,0 +1,9 @@ +# How to change public IP +- Edit `turn_ipv4_address:` at `/mnt/md0/ejabberd/conf/ejabberd.yml`. +- Point domain to the new IP and all subdomains. + +# Change private IP +- Edit port forward settings to point to the new IP. + +# Configure port forward from scratch +- Forward every port explicitly declared in `ports` field of every container.