This commit is contained in:
nm1 2026-11-04 00:33:23 +05:30
commit 74ae93a96e

View file

@ -0,0 +1,127 @@
xmpp
resources
https://www.reddit.com/r/xmpp/comments/cavyiv/good_xmpp_clients_and_servers/
clients
https://xmpp.org/getting-started/
one such is https://mov.im/login, conversejs
and gajim for windows and linux ie https://github.com/gajim/gajim
- xmpp providers: https://providers.xmpp.net/provider/07f.de/, https://providers.xmpp.net/provider/chapril.org/ (weird capchas) , https://providers.xmpp.net/provider/movim.eu/ (50 mb max file)
https://07f.de/ provides other free services too
dino client
https://github.com/dino/dino/
after building it,to have different profiles
`XDG_DATA_HOME="$HOME/.dino_profiles/work/share" XDG_CONFIG_HOME="$HOME/.dino_profiles/work/config" dino`
or
`XDG_DATA_HOME="$HOME/.dino_profiles/work/" dino`
**server**
prosody
https://prosody.im/doc/installing_from_source
first install lua and all the dependecnies
`apt install lua5.4 liblua5.4-dev libicu-dev libssl-dev`
and also luarocks too
then more lua dependencies using luarocks
to use luarocks directly
`luarocks install luaexpat --local --lua-version=5.4`
similarly do same for luafilesystem and luaunbound too
this can be headache too like setting ssl and all that thing so using snikket can help too, only con is more space required and cant be simply used in termux
**snikket**
https://snikket.org/service/quickstart/
if using podman then add `docker.io/` before images so podman knows to fetch from here
and also change the port too by changing `snikket.conf` and adding these lines
```txt
SNIKKET_TWEAK_HTTP_PORT=5080
SNIKKET_TWEAK_HTTPS_PORT=5443
# The primary domain of your Snikket instance
SNIKKET_DOMAIN=snikket.local
# An email address where the admin can be contacted
# (also used to register your Let's Encrypt account to obtain certificates)
SNIKKET_ADMIN_EMAIL=admin@localhost
```
Also create a `.env` file and
```txt
SNIKKET_DATA_DIR=/home/hpmi/Downloads/executables/Snikket/data
```
and in compose file make these changes
```yml
version: "3.3"
services:
snikket_proxy:
container_name: snikket-proxy
image: docker.io/snikket/snikket-web-proxy:stable
env_file: snikket.conf
network_mode: host
volumes:
- ${SNIKKET_DATA_DIR}:/snikket
- acme_challenges:/var/www/html/.well-known/acme-challenge
restart: "unless-stopped"
snikket_certs:
container_name: snikket-certs
image: docker.io/snikket/snikket-cert-manager:stable
network_mode: host
env_file: snikket.conf
volumes:
- ${SNIKKET_DATA_DIR}:/snikket
- acme_challenges:/var/www/.well-known/acme-challenge
restart: "unless-stopped"
snikket_portal:
container_name: snikket-portal
image: docker.io/snikket/snikket-web-portal:stable
network_mode: host
env_file: snikket.conf
restart: "unless-stopped"
snikket_server:
container_name: snikket
image: docker.io/snikket/snikket-server:stable
network_mode: host
volumes:
- ${SNIKKET_DATA_DIR}:/snikket
env_file: snikket.conf
restart: "unless-stopped"
volumes:
acme_challenges:
```
so for localhost, need to generate fake certificates
```sh
# 1. Create the new folder structure matching the domain
mkdir -p /your/custom/path/letsencrypt/live/snikket.local/
# 2. Generate the certificate with Multi-SAN support
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
-keyout /your/custom/path/letsencrypt/live/snikket.local/privkey.pem \
-out /your/custom/path/letsencrypt/live/snikket.local/fullchain.pem \
-subj "/CN=snikket.local" \
-addext "subjectAltName=DNS:snikket.local,DNS:localhost,IP:127.0.0.1,IP:
```
in `/etc/hosts`
```txt
127.0.0.1 snikket.local share.snikket.local
```
using this will give invite link for admin
`docker exec snikket create-invite --admin --group default`
since port 5443 is used so add that. eg
`https://snikket.local:5443/invite/PP46bac4bk0wxHD50RbR7_6G/`