Update services page and add link to bridges

This commit is contained in:
Citlali del Rey 2024-01-08 18:22:47 -08:00
parent cb6aa9f724
commit 1b6770f561
Signed by: nullobsi
GPG Key ID: 933A1F44222C2634
2 changed files with 161 additions and 105 deletions

View File

@ -1,75 +1,114 @@
% title 'UNIX.dog Services';
% layout 'default';
<section>
<h2>XMPP and Matrix Bridge Helper</h2>
<p id="result">
<article>
<h1>Legacy Service Bridging</h1>
<p>
UNIX.dog runs a few bridges to other services, documented on
this page.
</p>
<noscript>Since JS is disabled, this form will send the addresses to
the UNIX.dog server to convert.</noscript>
<form id="bridging" method="post">
<div>
<label for="bridge_service">Bridge:</label>
<select name="bridge" id="bridge_service">
<option value="unix.dog">UNIX.dog</option>
<option value="aria-net">ARIA-net</option>
</select>
</div>
<div>
<select name="type" id="bridge_type">
<option value="muc">XMPP MUC:</option>
<option value="room">Matrix Room:</option>
<option value="jid">XMPP User:</option>
<option value="user">Matrix User:</option>
</select>
<input type="text" id="handle" name="handle" required />
</div>
<div>
<input type="submit"/>
</div>
</form>
</section>
<script>
const conversion = {
"unix.dog": {
"muc": jid => (s => `#_xmpp_${s[0]}_${s[1]}:unix.dog`)(jid.split("@")),
"room": rm => `${rm.replace(":","#")}@matrix.unix.dog`,
"jid": jid => `@_xmpp_${jid.replace("@", "=40")}:unix.dog`,
"user": u => `${u.slice(1).replace(":","_")}@matrix.unix.dog`
},
"aria-net": {
"muc": jid => (s => `#_bifrost_${s[0]}_${s[1]}:aria-net.org`)(jid.split("@")),
"room": rm => `${rm.replace(":","#")}@aria-net.org`,
"jid": jid => `@_bifrost_${jid.replace("@", "=40")}:aria-net.org`,
"user": u => `${u.slice(1).replace(":", "_")}@aria-net.org`
},
};
const urlify = {
"room": jid => `xmpp:${encodeURI(jid)}?join`,
"muc": room => `https://matrix.to/#/%23${encodeURI(room.slice(1))}`,
"user": jid => `xmpp:${encodeURI(jid)}?roster`,
"jid": u => `https://matrix.to/#/${encodeURI(u)}`,
};
const form = document.getElementById("bridging");
const output = document.getElementById("result");
form.addEventListener("submit", e => {
e.preventDefault();
<section>
<h2>Matrix Bifrost</h2>
<p>
The ARIA-net fork of Bifrost is set up to provide access to
XMPP MUCs and Matrix rooms to users of both services. Use
the <a href="#bridgehelper">bridge helper</a> below to
quickly get the correct address.
</p>
<p>
The Bifrost instance on UNIX.dog is set up as follows:
</p>
<p>
From XMPP, use #roomname#domain@matrix.unix.dog for rooms
and username_host@matrix.unix.dog for users.
</p>
<p>
From Matrix, use @_xmpp_user=40domain:unix.dog for users and
#_xmpp_roomname_domain:unix.dog for MUCs.
</p>
</section>
<section>
<h2>Biboumi IRC Bridge</h2>
<p>
Biboumi provides access to IRC networks from XMPP. The
component domain is biboumi.unix.dog.
</p>
<p>
You can connect to IRC channels using the syntax
#roomname%domain@biboumi.unix.dog.
</p>
</section>
const formData = new FormData(form);
<section id="bridgehelper">
<h2>XMPP and Matrix Bridge Helper</h2>
<p id="result">
</p>
<noscript>Since JS is disabled, this form will send the addresses to
the UNIX.dog server to convert.</noscript>
<form id="bridging" method="post">
<div>
<label for="bridge_service">Bridge:</label>
<select name="bridge" id="bridge_service">
<option value="unix.dog">UNIX.dog</option>
<option value="aria-net">ARIA-net</option>
</select>
</div>
<div>
<select name="type" id="bridge_type">
<option value="muc">XMPP MUC:</option>
<option value="room">Matrix Room:</option>
<option value="jid">XMPP User:</option>
<option value="user">Matrix User:</option>
</select>
<input type="text" id="handle" name="handle" required />
</div>
<div>
<input type="submit"/>
</div>
</form>
</section>
<script>
const conversion = {
"unix.dog": {
"muc": jid => (s => `#_xmpp_${s[0]}_${s[1]}:unix.dog`)(jid.split("@")),
"room": rm => `${rm.replace(":","#")}@matrix.unix.dog`,
"jid": jid => `@_xmpp_${jid.replace("@", "=40")}:unix.dog`,
"user": u => `${u.slice(1).replace(":","_")}@matrix.unix.dog`
},
"aria-net": {
"muc": jid => (s => `#_bifrost_${s[0]}_${s[1]}:aria-net.org`)(jid.split("@")),
"room": rm => `${rm.replace(":","#")}@aria-net.org`,
"jid": jid => `@_bifrost_${jid.replace("@", "=40")}:aria-net.org`,
"user": u => `${u.slice(1).replace(":", "_")}@aria-net.org`
},
};
const urlify = {
"room": jid => `xmpp:${encodeURI(jid)}?join`,
"muc": room => `https://matrix.to/#/%23${encodeURI(room.slice(1))}`,
"user": jid => `xmpp:${encodeURI(jid)}?roster`,
"jid": u => `https://matrix.to/#/${encodeURI(u)}`,
};
let service = formData.get("bridge");
let type = formData.get("type");
let handle = formData.get("handle");
let bridged = conversion[service][type](handle);
output.textContent = `Use address `
let link = document.createElement("a");
link.href = urlify[type](bridged);
link.textContent = bridged;
output.appendChild(link);
});
</script>
const form = document.getElementById("bridging");
const output = document.getElementById("result");
form.addEventListener("submit", e => {
e.preventDefault();
const formData = new FormData(form);
let service = formData.get("bridge");
let type = formData.get("type");
let handle = formData.get("handle");
let bridged = conversion[service][type](handle);
output.textContent = `Use address `
let link = document.createElement("a");
link.href = urlify[type](bridged);
link.textContent = bridged;
output.appendChild(link);
});
</script>
</article>

View File

@ -27,35 +27,10 @@
3072 SHA256:1BH7BPNlROWxh+4/LttipJQFLps+J51IHRn+f6j+tVI root@woofer (RSA)
</pre>
</section>
<h1>Social</h1>
<section>
<h2>File sync (Nextcloud)</h2>
<p>
Nextcloud is a FOSS, federating cloud drive platform with support
for messaging, web calendar and contacts management, and more.
It is available at <a href="https://cloud.unix.dog/">cloud.unix.dog</a>,
and you can log in with your UNIX.dog account for 10GB of storage :3
</p>
</section>
<section>
<h2>Social (Akkoma)</h2>
<p>
Akkoma is a federated social media platform, forked from Pleroma.
It can communicate with other instances running Mastodon, Misskey,
Friendica, and more.
Check it out at <a href="https://akko.unix.dog">akko.unix.dog</a>.
</p>
</section>
<section>
<h2>File upload (IPFS Pinning)</h2>
<p>
A custom-built IPFS remote pinning service is available at UNIX.dog.
It's hosted at <a href="https://u.unix.dog">u.unix.dog</a>.
Also, it works as a simple cURL or online file uploader; you don't
need to use a local IPFS node :3
</p>
</section>
<section>
<h2>Messaging (XMPP)</h2>
<h2>XMPP Messaging</h2>
<p>
XMPP is a federated IM protocol. UNIX.dog uses ejabberd, and you can
connect to it using a client of your choice. A web client is also
@ -65,10 +40,18 @@
the UNIX.dog main chatroom. Your JID should be username@unix.dog.
</p>
</section>
<section>
<h2>Legacy Network Bridges</h2>
<p>
Some custom bridges are also available for use, including a
Matrix Bifrost bridge and an IRC Biboumi bridge, both
accessible from XMPP.
</p>
</section>
<section>
<h2>Voice chat (Mumble)</h2>
<h2>Mumble VoIP</h2>
<p>
Mumble is a free VOIP software that you can download from <a href="https://www.mumble.info/">mumble.info.</a>
Mumble is a free VoIP software that you can download from <a href="https://www.mumble.info/">mumble.info.</a>
You can join at <a href="mumble://chat.unix.dog/Hangout?title=UNIX.dog&version=1.2.0">chat.unix.dog.</a>
Users can create their own non-persistent channel, but if
you'd like a persistent channel for your group, just reach
@ -78,7 +61,8 @@
<section>
<h2>EMail</h2>
<p>
The future of messaging is here! Electronic mail is also provided.
The future of messaging is here! Electronic mail services
are provided.
You can connect any standard email client to smtp.unix.dog and
imap.unix.dog using your credentials
to access your inbox. The server also provides sendmail over SSH,
@ -89,7 +73,38 @@
</p>
</section>
<section>
<h2>Git hosting (Forgejo)</h2>
<h2>Akkoma (ActivityPub)</h2>
<p>
Akkoma is a federated social media platform, forked from Pleroma.
It can communicate with other instances running Mastodon, Misskey,
Friendica, and more.
Check it out at <a href="https://akko.unix.dog">akko.unix.dog</a>.
</p>
</section>
<h1>Files and Productivity</h1>
<section>
<h2>IPFS Upload &amp; Pinning</h2>
<p>
A custom-built IPFS remote pinning service is available at UNIX.dog.
It's hosted at <a href="https://u.unix.dog">u.unix.dog</a>.
Also, it works as a simple cURL or online file uploader; you don't
need to use a local IPFS node :3
</p>
</section>
<section>
<h2>Nextcloud</h2>
<p>
Nextcloud is a FOSS, federating cloud drive platform with support
for messaging, web calendar and contacts management, and more.
It is available at <a href="https://cloud.unix.dog/">cloud.unix.dog</a>,
and you can log in with your UNIX.dog account for 10GB of storage :3
</p>
</section>
<h1>Hosting</h1>
<section>
<h2>Forgejo Git Hosting</h2>
<p>
Forgejo is a simple git host. It is hosted at
<a href="https://git.unix.dog">git.unix.dog</a> and should
@ -100,22 +115,24 @@
</p>
</section>
<section>
<h2>Static webhosting</h2>
<h2>Static Webhosting</h2>
<p>
Files under ~/public are hosted at unix.dog/~username. A list
of user websites can be found <a href="/users">here.</a>
</p>
</section>
<section>
<h2>Gemini hosting</h2>
<h2>Gemini Hosting</h2>
<p>
You can also host gemini pages under ~/public/gemini. UNIX.dog runs
the Molly-Brown server, so all pages are hosted under unix.dog/~username
as well. :3
</p>
</section>
<h1>Networks</h1>
<section>
<h2>Yggdrasil node</h2>
<h2>Yggdrasil Node</h2>
<p>
The server is also a part of the <a
href="https://yggdrasil-network.github.io/">Yggdrasil