References:
redactions/replacements:
- component_secret in each Slidge gateway should match been cfg.lua and --secret in docker-compose
- me@domain.tld should be replaced with your jid
- domain.tld should be replaced by your own hostname
References:
redactions/replacements:
| version: "3.3" | |
| networks: | |
| www: | |
| name: www | |
| external: true | |
| services: | |
| snikket_proxy: | |
| container_name: snikket-proxy | |
| image: snikket/snikket-web-proxy:dev | |
| env_file: ./conf/snikket.conf | |
| network_mode: host | |
| volumes: | |
| - ./data:/snikket | |
| - /srv/snikket/entrypoint.sh:/entrypoint.sh | |
| - /srv/snikket/etc/nginx/templates/proxy:/etc/nginx/templates/proxy | |
| restart: "unless-stopped" | |
| snikket_portal: | |
| container_name: snikket-portal | |
| image: snikket/snikket-web-portal:dev | |
| network_mode: host | |
| env_file: ./conf/snikket.conf | |
| restart: "unless-stopped" | |
| snikket_server: | |
| container_name: snikket | |
| image: snikket/snikket-server:dev | |
| network_mode: host | |
| volumes: | |
| - ./data:/snikket | |
| - /srv/snikket/etc/prosody/certs/domain.tld.key:/etc/prosody/certs/domain.tld.key | |
| - /srv/snikket/etc/prosody/certs/domain.tld.crt:/etc/prosody/certs/domain.tld.crt | |
| - /srv/snikket/etc/sv/prosody/wait-for-certs:/etc/sv/prosody/wait-for-certs:ro | |
| env_file: ./conf/snikket.conf | |
| restart: "unless-stopped" | |
| conversejs: | |
| image: sebp/lighttpd | |
| container_name: conversejs | |
| volumes: | |
| - ./conversejs:/var/www/localhost/htdocs | |
| networks: | |
| - www | |
| restart: unless-stopped | |
| tty: true | |
| matteridge: | |
| #image: codeberg.org/slidge/matteridge:token-expiry-investigation | |
| image: codeberg.org/slidge/matteridge:main | |
| command: | |
| - "--admins=me@domain.tld" | |
| - "--jid=mattermost.domain.tld" | |
| - "--secret=redacted" | |
| - "--user-jid-validator=.*@domain.tld" | |
| volumes: | |
| - ./slidge_data:/var/lib/slidge | |
| network_mode: host | |
| depends_on: | |
| snikket_server: | |
| condition: service_started | |
| restart: "unless-stopped" | |
| slidge-whatsapp: | |
| image: codeberg.org/slidge/slidge-whatsapp:main-amd64 | |
| command: | |
| - "--admins=me@domain.tld" | |
| - "--jid=whatsapp.domain.tld" | |
| - "--secret=redacted" | |
| #- "--upload-requester=me@domain.tld" | |
| - "--user-jid-validator=.*@domain.tld" | |
| volumes: | |
| - ./slidge_data:/var/lib/slidge | |
| network_mode: host | |
| depends_on: | |
| snikket_server: | |
| condition: service_started | |
| restart: "unless-stopped" | |
| matridge: | |
| image: codeberg.org/slidge/matridge | |
| command: | |
| - "--admins=me@domain.tld" | |
| - "--jid=matrix.domain.tld" | |
| - "--secret=redacted" | |
| - "--user-jid-validator=.*@domain.tld" | |
| volumes: | |
| - ./slidge_data:/var/lib/slidge | |
| network_mode: host | |
| depends_on: | |
| snikket_server: | |
| condition: service_started | |
| restart: "unless-stopped" | |
| slidgram: | |
| image: codeberg.org/slidge/slidgram:main | |
| command: | |
| - "--admins=me@domain.tld" | |
| - "--jid=telegram.domain.tld" | |
| - "--secret=redacted" | |
| - "--user-jid-validator=.*@domain.tld" | |
| volumes: | |
| - ./slidge_data:/var/lib/slidge | |
| network_mode: host | |
| depends_on: | |
| snikket_server: | |
| condition: service_started | |
| restart: "unless-stopped" | |
| slidgnal: | |
| image: codeberg.org/slidge/slidgnal:main-amd64 | |
| command: | |
| - "--admins=me@domain.tld" | |
| - "--jid=signal.domain.tld" | |
| - "--secret=redacted" | |
| - "--user-jid-validator=.*@domain.tld" | |
| volumes: | |
| - ./slidge_data:/var/lib/slidge | |
| network_mode: host | |
| depends_on: | |
| snikket_server: | |
| condition: service_started | |
| restart: "unless-stopped" |
| local DOMAIN = Lua.assert(ENV_SNIKKET_DOMAIN, "Please set the SNIKKET_DOMAIN environment variable") | |
| modules_enabled: append { | |
| "privilege"; | |
| } | |
| local _privileges = { | |
| roster = "both"; | |
| message = "outgoing"; | |
| iq = { | |
| ["http://jabber.org/protocol/pubsub"] = "both"; | |
| ["http://jabber.org/protocol/pubsub#owner"] = "set"; | |
| }; | |
| } | |
| VirtualHost (DOMAIN) | |
| -- for roster sync and 'legacy carbons' | |
| privileged_entities = { | |
| ["mattermost.domain.tld"] = _privileges, | |
| ["whatsapp.domain.tld"] = _privileges, | |
| ["matrix.domain.tld"] = _privileges, | |
| ["telegram.domain.tld"] = _privileges, | |
| ["signal.domain.tld"] = _privileges, | |
| } | |
| Component ("share."..DOMAIN) "http_file_share" | |
| server_user_role = "prosody:registered" | |
| Component ("mattermost."..DOMAIN) | |
| component_secret = "redacted" | |
| modules_enabled = {"privilege"} | |
| Component ("whatsapp."..DOMAIN) | |
| component_secret = "redacted" | |
| modules_enabled = {"privilege"} | |
| Component ("matrix."..DOMAIN) | |
| component_secret = "redacted" | |
| modules_enabled = {"privilege"} | |
| Component ("telegram."..DOMAIN) | |
| component_secret = "redacted" | |
| modules_enabled = {"privilege"} | |
| Component ("signal."..DOMAIN) | |
| component_secret = "redacted" | |
| modules_enabled = {"privilege"} |