Compare commits

...

2 Commits

Author SHA1 Message Date
Citlali del Rey 3cddfc608d
Add link 2024-01-08 18:23:56 -08:00
Citlali del Rey 1b6770f561
Update services page and add link to bridges 2024-01-08 18:22:47 -08:00
2 changed files with 165 additions and 105 deletions

View File

@ -1,75 +1,114 @@
% title 'UNIX.dog Services'; % title 'UNIX.dog Services';
% layout 'default'; % layout 'default';
<section> <article>
<h2>XMPP and Matrix Bridge Helper</h2> <h1>Legacy Service Bridging</h1>
<p id="result"> <p>
UNIX.dog runs a few bridges to other services, documented on
this page.
</p> </p>
<noscript>Since JS is disabled, this form will send the addresses to <section>
the UNIX.dog server to convert.</noscript> <h2>Matrix Bifrost</h2>
<form id="bridging" method="post"> <p>
<div> The ARIA-net fork of Bifrost is set up to provide access to
<label for="bridge_service">Bridge:</label> XMPP MUCs and Matrix rooms to users of both services. Use
<select name="bridge" id="bridge_service"> the <a href="#bridgehelper">bridge helper</a> below to
<option value="unix.dog">UNIX.dog</option> quickly get the correct address.
<option value="aria-net">ARIA-net</option> </p>
</select> <p>
</div> The Bifrost instance on UNIX.dog is set up as follows:
<div> </p>
<select name="type" id="bridge_type"> <p>
<option value="muc">XMPP MUC:</option> From XMPP, use #roomname#domain@matrix.unix.dog for rooms
<option value="room">Matrix Room:</option> and username_host@matrix.unix.dog for users.
<option value="jid">XMPP User:</option> </p>
<option value="user">Matrix User:</option> <p>
</select> From Matrix, use @_xmpp_user=40domain:unix.dog for users and
<input type="text" id="handle" name="handle" required /> #_xmpp_roomname_domain:unix.dog for MUCs.
</div> </p>
<div> </section>
<input type="submit"/> <section>
</div> <h2>Biboumi IRC Bridge</h2>
</form> <p>
</section> Biboumi provides access to IRC networks from XMPP. The
<script> component domain is biboumi.unix.dog.
const conversion = { </p>
"unix.dog": { <p>
"muc": jid => (s => `#_xmpp_${s[0]}_${s[1]}:unix.dog`)(jid.split("@")), You can connect to IRC channels using the syntax
"room": rm => `${rm.replace(":","#")}@matrix.unix.dog`, #roomname%domain@biboumi.unix.dog.
"jid": jid => `@_xmpp_${jid.replace("@", "=40")}:unix.dog`, </p>
"user": u => `${u.slice(1).replace(":","_")}@matrix.unix.dog` </section>
},
"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();
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"); const form = document.getElementById("bridging");
let type = formData.get("type"); const output = document.getElementById("result");
let handle = formData.get("handle");
form.addEventListener("submit", e => {
let bridged = conversion[service][type](handle); e.preventDefault();
output.textContent = `Use address `
const formData = new FormData(form);
let link = document.createElement("a");
link.href = urlify[type](bridged); let service = formData.get("bridge");
link.textContent = bridged; let type = formData.get("type");
let handle = formData.get("handle");
output.appendChild(link);
}); let bridged = conversion[service][type](handle);
</script> 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) 3072 SHA256:1BH7BPNlROWxh+4/LttipJQFLps+J51IHRn+f6j+tVI root@woofer (RSA)
</pre> </pre>
</section> </section>
<h1>Social</h1>
<section> <section>
<h2>File sync (Nextcloud)</h2> <h2>XMPP Messaging</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>
<p> <p>
XMPP is a federated IM protocol. UNIX.dog uses ejabberd, and you can 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 connect to it using a client of your choice. A web client is also
@ -65,10 +40,22 @@
the UNIX.dog main chatroom. Your JID should be username@unix.dog. the UNIX.dog main chatroom. Your JID should be username@unix.dog.
</p> </p>
</section> </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>
<p>
More information can be found on <a
href="/services/bridges">the bridges page.</a>
</p>
</section>
<section> <section>
<h2>Voice chat (Mumble)</h2> <h2>Mumble VoIP</h2>
<p> <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> 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 Users can create their own non-persistent channel, but if
you'd like a persistent channel for your group, just reach you'd like a persistent channel for your group, just reach
@ -78,7 +65,8 @@
<section> <section>
<h2>EMail</h2> <h2>EMail</h2>
<p> <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 You can connect any standard email client to smtp.unix.dog and
imap.unix.dog using your credentials imap.unix.dog using your credentials
to access your inbox. The server also provides sendmail over SSH, to access your inbox. The server also provides sendmail over SSH,
@ -89,7 +77,38 @@
</p> </p>
</section> </section>
<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> <p>
Forgejo is a simple git host. It is hosted at Forgejo is a simple git host. It is hosted at
<a href="https://git.unix.dog">git.unix.dog</a> and should <a href="https://git.unix.dog">git.unix.dog</a> and should
@ -100,22 +119,24 @@
</p> </p>
</section> </section>
<section> <section>
<h2>Static webhosting</h2> <h2>Static Webhosting</h2>
<p> <p>
Files under ~/public are hosted at unix.dog/~username. A list Files under ~/public are hosted at unix.dog/~username. A list
of user websites can be found <a href="/users">here.</a> of user websites can be found <a href="/users">here.</a>
</p> </p>
</section> </section>
<section> <section>
<h2>Gemini hosting</h2> <h2>Gemini Hosting</h2>
<p> <p>
You can also host gemini pages under ~/public/gemini. UNIX.dog runs 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 the Molly-Brown server, so all pages are hosted under unix.dog/~username
as well. :3 as well. :3
</p> </p>
</section> </section>
<h1>Networks</h1>
<section> <section>
<h2>Yggdrasil node</h2> <h2>Yggdrasil Node</h2>
<p> <p>
The server is also a part of the <a The server is also a part of the <a
href="https://yggdrasil-network.github.io/">Yggdrasil href="https://yggdrasil-network.github.io/">Yggdrasil