Последняя активность 2 days ago

curiouser's Avatar Winston Hoy ревизий этого фрагмента 2 days ago. К ревизии

3 files changed, 179 insertions

README.md(файл создан)

@@ -0,0 +1,9 @@
1 + References:
2 + - [Slidge Docs](https://slidge.im/docs/slidge/main/)
3 + - [Snikket Quickstart](https://snikket.org/service/quickstart/)
4 + - [Snikket patch guide for reverse proxy](https://github.com/snikket-im/snikket-web-proxy/pull/26#issue-2836247230)
5 +
6 + redactions/replacements:
7 + - component_secret in each Slidge gateway should match been cfg.lua and --secret in docker-compose
8 + - me@domain.tld should be replaced with your jid
9 + - domain.tld should be replaced by your own hostname

docker-compose.yml(файл создан)

@@ -0,0 +1,123 @@
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"

slidge.cfg.lua(файл создан)

@@ -0,0 +1,47 @@
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"}
Новее Позже