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
Last active 3 days ago
Snikket + Slidge stack configuration files
Revision 7808c949b1c4e0683d29a9d74fcd4d0968bbd0be
References:
redactions/replacements:
| 1 | version: "3.3" |
| 2 | |
| 3 | networks: |
| 4 | www: |
| 5 | name: www |
| 6 | external: true |
| 7 | |
| 8 | services: |
| 9 | snikket_proxy: |
| 10 | container_name: snikket-proxy |
| 11 | image: snikket/snikket-web-proxy:dev |
| 12 | env_file: ./conf/snikket.conf |
| 13 | network_mode: host |
| 14 | volumes: |
| 15 | - ./data:/snikket |
| 16 | - /srv/snikket/entrypoint.sh:/entrypoint.sh |
| 17 | - /srv/snikket/etc/nginx/templates/proxy:/etc/nginx/templates/proxy |
| 18 | restart: "unless-stopped" |
| 19 | snikket_portal: |
| 20 | container_name: snikket-portal |
| 21 | image: snikket/snikket-web-portal:dev |
| 22 | network_mode: host |
| 23 | env_file: ./conf/snikket.conf |
| 24 | restart: "unless-stopped" |
| 25 | |
| 26 | snikket_server: |
| 27 | container_name: snikket |
| 28 | image: snikket/snikket-server:dev |
| 29 | network_mode: host |
| 30 | volumes: |
| 31 | - ./data:/snikket |
| 32 | - /srv/snikket/etc/prosody/certs/domain.tld.key:/etc/prosody/certs/domain.tld.key |
| 33 | - /srv/snikket/etc/prosody/certs/domain.tld.crt:/etc/prosody/certs/domain.tld.crt |
| 34 | - /srv/snikket/etc/sv/prosody/wait-for-certs:/etc/sv/prosody/wait-for-certs:ro |
| 35 | env_file: ./conf/snikket.conf |
| 36 | restart: "unless-stopped" |
| 37 | |
| 38 | conversejs: |
| 39 | image: sebp/lighttpd |
| 40 | container_name: conversejs |
| 41 | volumes: |
| 42 | - ./conversejs:/var/www/localhost/htdocs |
| 43 | networks: |
| 44 | - www |
| 45 | restart: unless-stopped |
| 46 | tty: true |
| 47 | |
| 48 | matteridge: |
| 49 | #image: codeberg.org/slidge/matteridge:token-expiry-investigation |
| 50 | image: codeberg.org/slidge/matteridge:main |
| 51 | command: |
| 52 | - "--admins=me@domain.tld" |
| 53 | - "--jid=mattermost.domain.tld" |
| 54 | - "--secret=redacted" |
| 55 | - "--user-jid-validator=.*@domain.tld" |
| 56 | volumes: |
| 57 | - ./slidge_data:/var/lib/slidge |
| 58 | network_mode: host |
| 59 | depends_on: |
| 60 | snikket_server: |
| 61 | condition: service_started |
| 62 | restart: "unless-stopped" |
| 63 | |
| 64 | slidge-whatsapp: |
| 65 | image: codeberg.org/slidge/slidge-whatsapp:main-amd64 |
| 66 | command: |
| 67 | - "--admins=me@domain.tld" |
| 68 | - "--jid=whatsapp.domain.tld" |
| 69 | - "--secret=redacted" |
| 70 | #- "--upload-requester=me@domain.tld" |
| 71 | - "--user-jid-validator=.*@domain.tld" |
| 72 | volumes: |
| 73 | - ./slidge_data:/var/lib/slidge |
| 74 | network_mode: host |
| 75 | depends_on: |
| 76 | snikket_server: |
| 77 | condition: service_started |
| 78 | restart: "unless-stopped" |
| 79 | |
| 80 | matridge: |
| 81 | image: codeberg.org/slidge/matridge |
| 82 | command: |
| 83 | - "--admins=me@domain.tld" |
| 84 | - "--jid=matrix.domain.tld" |
| 85 | - "--secret=redacted" |
| 86 | - "--user-jid-validator=.*@domain.tld" |
| 87 | volumes: |
| 88 | - ./slidge_data:/var/lib/slidge |
| 89 | network_mode: host |
| 90 | depends_on: |
| 91 | snikket_server: |
| 92 | condition: service_started |
| 93 | restart: "unless-stopped" |
| 94 | |
| 95 | slidgram: |
| 96 | image: codeberg.org/slidge/slidgram:main |
| 97 | command: |
| 98 | - "--admins=me@domain.tld" |
| 99 | - "--jid=telegram.domain.tld" |
| 100 | - "--secret=redacted" |
| 101 | - "--user-jid-validator=.*@domain.tld" |
| 102 | volumes: |
| 103 | - ./slidge_data:/var/lib/slidge |
| 104 | network_mode: host |
| 105 | depends_on: |
| 106 | snikket_server: |
| 107 | condition: service_started |
| 108 | restart: "unless-stopped" |
| 109 | |
| 110 | slidgnal: |
| 111 | image: codeberg.org/slidge/slidgnal:main-amd64 |
| 112 | command: |
| 113 | - "--admins=me@domain.tld" |
| 114 | - "--jid=signal.domain.tld" |
| 115 | - "--secret=redacted" |
| 116 | - "--user-jid-validator=.*@domain.tld" |
| 117 | volumes: |
| 118 | - ./slidge_data:/var/lib/slidge |
| 119 | network_mode: host |
| 120 | depends_on: |
| 121 | snikket_server: |
| 122 | condition: service_started |
| 123 | restart: "unless-stopped" |
| 1 | local DOMAIN = Lua.assert(ENV_SNIKKET_DOMAIN, "Please set the SNIKKET_DOMAIN environment variable") |
| 2 | |
| 3 | modules_enabled: append { |
| 4 | "privilege"; |
| 5 | } |
| 6 | |
| 7 | local _privileges = { |
| 8 | roster = "both"; |
| 9 | message = "outgoing"; |
| 10 | iq = { |
| 11 | ["http://jabber.org/protocol/pubsub"] = "both"; |
| 12 | ["http://jabber.org/protocol/pubsub#owner"] = "set"; |
| 13 | }; |
| 14 | } |
| 15 | |
| 16 | VirtualHost (DOMAIN) |
| 17 | -- for roster sync and 'legacy carbons' |
| 18 | privileged_entities = { |
| 19 | ["mattermost.domain.tld"] = _privileges, |
| 20 | ["whatsapp.domain.tld"] = _privileges, |
| 21 | ["matrix.domain.tld"] = _privileges, |
| 22 | ["telegram.domain.tld"] = _privileges, |
| 23 | ["signal.domain.tld"] = _privileges, |
| 24 | } |
| 25 | |
| 26 | Component ("share."..DOMAIN) "http_file_share" |
| 27 | server_user_role = "prosody:registered" |
| 28 | |
| 29 | Component ("mattermost."..DOMAIN) |
| 30 | component_secret = "redacted" |
| 31 | modules_enabled = {"privilege"} |
| 32 | |
| 33 | Component ("whatsapp."..DOMAIN) |
| 34 | component_secret = "redacted" |
| 35 | modules_enabled = {"privilege"} |
| 36 | |
| 37 | Component ("matrix."..DOMAIN) |
| 38 | component_secret = "redacted" |
| 39 | modules_enabled = {"privilege"} |
| 40 | |
| 41 | Component ("telegram."..DOMAIN) |
| 42 | component_secret = "redacted" |
| 43 | modules_enabled = {"privilege"} |
| 44 | |
| 45 | Component ("signal."..DOMAIN) |
| 46 | component_secret = "redacted" |
| 47 | modules_enabled = {"privilege"} |