š¤ š š§ What if, What if we built our own self-hosted / small-web / community-built/run Internet on top of the Internet using Wireguard as the underlying tech? What if we ran our own Root DNS servers? What if we set a zero tolerance policy on bots, spammers and other kind of abuse that should never have existed in the first place. Hmmmm
@alexonit@twtxt.alessandrocutolo.it yeah, i didnāt even consider this as an option lol, though if it works it works! will you be writing a compatible proxy for self-hosting separate from the custom backend you were thinking of? :o
@zvava@twtxt.net CORS is our worst enemy. š„·
I too had the same issue being a browser-based request, so the only solution is using a proxy.
For testing (and real personal use) I rely on this one https://corsproxy.io/.
In my client, I first check if the source allows me to fetch it without issues first and fallback to prefixing with a proxy if it gives an error.
For security reasons the client donāt give you a readable error for CORS, so you must use a catch-all for that, if it fails again with the proxy you can deal with any other errors it throws as you normally would (preferably outside of the fetch function).
After the fetching responded, I store the response.url
value to fetch it again for updates without having to do extra calls (you can store it verbatim or as a flag to be able to change the proxy later).
Here an extract of my code:
export async function fetchWithProxy(url, proxy=null) {
return await fetch(url).catch(err => {
if (!proxy) throw err;
return fetch(`${proxy}${encodeURIComponent(url)}`);
});
}
// Using it with
const res = await fetchWithProxy('https://twtxt.net/user/zvava/twtxt.txt', 'https://corsproxy.io/?');
// Get the working url (direct or through proxy)
const fetchingURL = res.url;
// Get the twtxt feed content (or handle errors)
const text = await res.text();
I also plan to allow the user to define a custom proxy field, I like the solution used by Delta.chat in their android app, where you can define the URL format with a variable https://my-proxy?$TWTXT_URL
since it allows you to define with more freedom any proxy without a prefix format.
If the idea of using a third-party proxy is not to the user liking they can use a self-hosted solution like cors-anywhere
or build their own (with twtxt it should just be a GET).
Hi everyone, hereās a little introduction of my twtxt client (still WIP).
The client Iām developing is a single tenant project that runs entirely in the browser (it might use an optional backend).
Itās entirely based on native web-components and vanilla JS, it is designed to act closer to a toolkit than a full-fledged client, allowing users to āDIYā their own interface with pure html or plain javascript functions.
Users can also build their own engines by including a global javascript object that implement the defined internal API (TBD).
Iām planning to build a system that is easy enough to build and use with any skill level, using only pure html (with a homebrew minimal template engine) or via plain JS (Iāll be also providing some pre-made templates too).
Everything can be self-hosted on any static hosting provider, this allows to spread twtxt within communities like Neocities and similarly hosted websites (basically any Indieweb/Smallweb/Digital garden website and any of the common GitHub/Lab/Berg/lify Pages).
It will be probably named something like TxtCraft or craf.txt but Iām not really sure yet⦠š¤ (Maybe some suggestions could help)
Iām still in the experimental phase, so thereās no decent source-code to share yet, but it will soon enough!
@prologic@twtxt.net I too, self-host various services on a VPS (and considering buying a mini PC to keep at home instead).
I use most of it as a hosting platform for personal use only and as a remote development environment (I do share a couple of tools with a friend though).
But given the costant risks of DDoS, hacking, bots, etc. I keep any of my public facing resources purely static and on separate hosting providers (without lock-ins of course).
Lately, I began using homebrew PWAs with CouchDB as a sync database, this way I get a fantastic local-first experience and also have total control of my data, that also sync in a locally hosted backup instance in real-time.
Also, I was already aware of Salty.im, but what Iām thinking is a more feature complete solution that even my family can use quickly, Delta.chat with the new chatmail provider (self-hostable) might be the solution for my needs.
But Iām still thinking if itās worth the trouble. I might just drop everything and only use safe channels to speak with them (free 24/7 family tech-support is easy to manage š).
Also, Iāll be waiting for the day youāll share with us your story, Iām pretty curious about it!
@alexonit@twtxt.alessandrocutolo.it Yes well Iām pretty big on self-hosting. Iāve even tried to start a small business/company around it (but thatās another story for another day!) ā Meanwhile I would encourage you to have a look at the work weāve done in Salty.im š
@prologic@twtxt.net Donāt worry about it!
I also getting angry thinking how this Chat Control crap will escalate to.
Iām already thinking of countermeasures and self-hosted alternatives, while searching lists of affected apps and services to replace/drop in the worst scenario (and probably devices).
@prologic@twtxt.net Iām doing that now as well, but I donāt think this is a good solution. This is going to hurt āself-hostingā in the long run: I cannot afford true self-hosting where I actually do host everything here at home ā instead, I must use a cloud provider / VPS for that. It is only a matter of time until my provider starts doing AI shit as well (or rather, the customers do it) and then what? I get blocked, e.g. I canāt send email to (some) people anymore. This is already bad and itās going to get worse.
@bender@twtxt.net yeah, my friendās considering moving away from linode and instead self hosting. VPS stuff is a pain
@eldersnake@we.loveprivacy.club Yeah for sure! The thing that annoys me about a lot of this, is the sheer fact you canāt really self-host let alone self-train these things Iāve been playing around with AI at home over the past few months and building my own neural networks from scratch (in Go) with genetic algorithms on a few tasks and training sets, but man itās hard⢠𤣠I feel like weāre doing something wrong hereā¦
@bender@twtxt.net Both Gopher and Mastodon are a way for me to ābabbleā. š I basically shut down Gopher in favor of Mastodon/Fedi last year. But the Fediverse doesnāt really work for me. Itās too focused on people (I prefer topics) and I dislike the addictive nature of likes and boosts (Iām not disciplined enough to ignore them). Self-hosting some Fedi thing is also out of the question (the minimalistic daemons donāt really support following hashtags, which is a must-have for me).
Iāll probably keep reading Fedi stuff, I just wonāt post that much, I think.
just read about it, i was strongly agaisnt AI since the benninging and have also moved from GH to self-hosted Gitea.
thanks for sharing and thanks for making this!
@bender@twtxt.net I like to self-host š¤£
@kat@yarn.girlonthemoon.xyz MinIO is a good choice for a self-hosted Object Storage (compatible with S3 APIs) š
gah iāve been so busy working on love4eva! TL;DR i switched image backends from the test/dev only module i was using to the S3 one, but with a catch - iām not using S3 or cloud shit!!! i instead got it to work with minio, so itās a middle ground between self hosting the image uploads & being compatible with the highly efficient S3 module. iām super happy with it :)
i posted a patreon update that details the changes more: https://www.patreon.com/posts/i-am-now-working-127687614
that post says i didnāt update my guide yet but i actually did like right after i made that post lol so you can CTRL+F
for minio stuff there!
@kate@yarn.girlonthemoon.xyz I think itās totally fine. I mean self-hosting costs money too. Power, Hardware, Time/effort, etc.
is it like⦠ethical to offer access to certain self hosted services as patreon exclusives. like i wanna offer the IRC client/bouncer i hosted which seems ok i think because iāve seen pico.sh offer their instances of that as paid services. but the other ones i have in mind are alt web frontends for stuff like imgur and pinterest. and i just feel weird about it for some reason. idk iām trying to think of ways to support my server stuff but every time i come up with something it feels weird
@bender@twtxt.net NOOOO i self host an XMPP server and also revolt but as much as i love XMPP (gajim client reminds me of using skype as a kid highkey) i donāt use it much and revolt is a bitch to maintain. like i broke revolt file uploads and it stayed that way for months until literally last week lmao. i never bothered with matrix tbh maybe i shouldāve but it seems not worth it
Conduwit is set to archive on GitHub. It was my favourite Matrix server, which I still self host. I think I am going to get off Matrix altogether now.
Maybe go back to Jabber?
@prologic@twtxt.net Spring cleanup! Thatās one way to encourage people to self-host their feeds. :-D
Since Iām only interested in the url
metadata field for hashing, I do not keep any comments or metadata for that matter, just the messages themselves. The last time I fetched was probably some time yesterday evening (UTC+2). I cannot tell exactly, because the recorded last fetch timestamp has been overridden with todayās by now.
I dumped my new SQLite cache into: https://lyse.isobeef.org/tmp/backup.tar.gz This time maybe even correctly, if youāre lucky. Iām not entirely sure. It took me a few attempts (date and time were separated by space instead of T
at first, I normalized offsets +00:00
to Z
as yarnd does and converted newlines back to U+2028
). At least now the simple cross check with the Twtxt Feed Validator does not yield any problems.
@prologic@twtxt.net Gemini has an answer for you:
This is a conversation thread from a twtxt network, detailing a userās (movq) frustration with the Mastodon āexport dataā feature and their consideration of self-hosting a fediverse alternative. Hereās a summary:
- movqās initial issue:
- movq is concerned about the volatility of their data on their current Mastodon instance due to a broken āexport dataā feature.
- They contacted the admins, but the issue remains unresolved.
- This led them to contemplate self-hosting.
- movq is concerned about the volatility of their data on their current Mastodon instance due to a broken āexport dataā feature.
- Alternative fediverse software suggestions:
- kat suggests gotosocial as a lightweight alternative to Mastodon.
- movq agrees, and also mentions snac as a potential option.
- kat suggests gotosocial as a lightweight alternative to Mastodon.
- movqās change of heart:
- movq ultimately decides that self-hosting any fediverse software, besides twtxt, is too much effort.
- movq ultimately decides that self-hosting any fediverse software, besides twtxt, is too much effort.
- Resolution and compromise:
- The Mastodon admins attribute the export failure to the size of movqās account.
- movq decides to set their Mastodon account to auto-delete posts after approximately 180 days to manage data size.
- Movq also mentions that they use auto-expiring links on twtxt to reduce data storage.
- The Mastodon admins attribute the export failure to the size of movqās account.
@movq@www.uninformativ.de mastodon is probably the worst fedi software to self host tbh, you might wanna check out gotosocial? not to like pull you in another direction but idk masto is just suuuuper heavy lol
I think I should try self-hosting some Mastodon thingy again.
The āexport dataā feature on the Mastodon instance Iām using seems to be broken. Iāve contacted the admins but we couldnāt find the issue ā yet. I donāt want to bother them too much, itās a free service after all.
But this means that everything I post over there is very, very volatile. It could all be gone in 5 minutes and Iāll have no way to restore it. Hmm.
Iām sharing a short tutorial, in Spanish, for self-hosting #twtxt with Docker:
https://programadorwebvalencia.com/twtxt-desplegar-tu-feed-con-docker/
pls elaborate on a āp2p databaseā, āall storyā and āRegistriesā.
My first thought takes me to something like secure-scuttlebutt
which itās painful to sync data using clients, and too slow compared to downloading a text file.
Also Iād like for twtxt to avoid becoming an ActivityPub. Works well but itās uses too many resources IMO.
https://kingant.net/2025/02/mastodon-the-cost-of-running-my-own-server/
Iām defending being able to self-host your Web client (like youād do with a Wordpress, twtxt is a micrologging, at the end), instead of federated instances, so in a first thought Iād say Registries have many disadvantages being the first one that someone has to maintain them active.
@prologic@twtxt.net I wish getting a static IP and a (more) stable internet connection wasnāt so hard over here. Then I could do proper self-hosting as well. But as it stands, I need some rented VPS.
I could go ahead and just use the VPS for the IP, i.e. forward all traffic through Wireguard to a box here at home. Big downside is that the network connection would be even slower than it already is and my ISP breaks down all the time for a few minutes ⦠itās just bad overall and much easier/better to rent a VPS. š«¤
@prologic@twtxt.net Or databag self-hosted on a RaspberryPi you can throw on a corner of your basement (or a small vps if one is willing to pay for threema) and never look back. The hardest part is getting others to at least test anything other than the already mainstream apps.
i self hosted the soft serve git server cuz i felt like it. itās sooo cute i love everything charm CLI does
ssh -p 24010 soft.git.girlonthemoon.xyz
@prologic@twtxt.net fuck yeah!!! i love self hosting things that friends can use itās sooo fun
@prologic@twtxt.net i self host wayyyy too many things LOL iām a nerd!
asciinema is really cool. thought about self hosting my own upload site which they have docs for but i donāt need to host everything even if itād be a fun project. the default/main site is fine enough for me when i wonāt be uploading a whole lot.
thank you for building such a wonderful platform! i discovered it from messing with base twtxt and then went āhm iāve self hosted fedi instances and a bsky PDS i can do this tooā and so i did LOL!
One thing Iāve learned over the many years now (approaching a decade and a half now) about self-hosting is two things; 1) There are many āassholesā on the open Internet that will either attack your stuff or are incompetent and write stupid shit⢠that goes crazy on your stuff 2) You have to be careful about resources, especially memory and disk i/o. Especially disk i/o. this can kill your overall performance when you either have written software yourself or use someone elseās that can do unconfined/uncontrolled disk i/o causing everything to grind to a halt and even fail. #self-hosted
@bender@twtxt.net Well, so far, Iām using the standard web client. Havenāt found a great client yet. 𫤠Mastodon/Fediverse is also very different from twtxt, there are way more images/videos that Iād like to see ā a TUI client like toot wouldnāt work for me.
Dunno, maybe Iāll make some changes in this area after christmas. Try self-hosting again or something like that ā¦
Yeah.. it is very similar to salty.im a smp is a relay queue for messages. You can self host one if you choose. They also have something called xftp for data storage and device state transfer. You can also self host one.
Yes, that is exactly what I meant. I like that collection and ātwtxt v2ā feels like a departure.
Maybe thereās an advantage to grouping it into one spec, but IMO that shouldnāt be done at the same time as introducing new untested ideas.
See https://yarn.social (especially this section: https://yarn.social/#self-host) ā It really doesnāt get much simpler than this š¤£
Again, I like this existing simplicity. (I would even argue you donāt need the metadata.)
That page says āFor the best experience your client should also support some of the Twtxt Extensionsā¦ā but it is clear you donāt need to. I would like it to stay that way, and publishing a big long spec and calling it ātwtxt v2ā feels like a departure from that. (I think the content of the document is valuable; Iām just carping about how itās being presented.)
Starting a couple of new projects (geez where do I find the time?!):
HomeTunnel:
HomeTunnel is a self-hosted solution that combines secure tunneling, proxying, and automation to create your own private cloud. Utilizing Wireguard for VPN, Caddy for reverse proxying, and Traefik for service routing, HomeTunnel allows you to securely expose your home network services (such as Gitea, Poste.io, etc.) to the Internet. With seamless automation and on-demand TLS, HomeTunnel gives you the power to manage your own cloud-like environment with the control and privacy of self-hosting.
CraneOps:
craneops is an open-source operator framework, written in Go, that allows self-hosters to automate the deployment and management of infrastructure and applications. Inspired by Kubernetes operators, CraneOps uses declarative YAML Custom Resource Definitions (CRDs) to manage Docker Swarm deployments on Proxmox VE clusters.
@prologic@twtxt.net wellā¦
how would that work exactly?
To my limited knowledge, Keyoxide is an open source project offering different tools for verifying oneās online persona(s). Thatās done by either A) creating an Ariande Profile using the web interface, a CLI. or B) Just using your GPG key. Either way, you add in Identity claims to your different profiles, links and whatnot, and finally advertise your profile ⦠Then there is a second set of Mobile/Web clients and CLI your correspondents can use to check your identity claims. I think of them like the front-ends of GPG Keyservers (which keyoxide leverages for verification when you opt for the GPG Key method), where you verify profiles using links, Key IDs and Fingerprintsā¦
Who maintains cox site? Is it centralized or decentralized can be relied upon?
- Maintainers? Definitely not me, but hereās their Git stuff and OpenCollective page ā¦
- Both ASP and Keyoxide Webtools can be self-hosted. I donāt see a central authority here⦠+ As mentioned on their FAQ page the whole process can be done manually, so you donāt have to relay on any one/thing if you donāt want to, the whole thing is just another tool for convenience (with a bit of eye candy).
Does that mean then that every user is required to have a cox side profile?
Nop. But it looks like a nice option to prove that Iām the same person to whom that may concern if I ever change my Twtxt URL, host/join a yarn pod or if I reach out on other platforms to someone Iāve met in her. Otherwise Iām just happy exchanging GPG keys or confirm the change IRL at a coffee shop or something. š
I wonder if bento has slightly missed the key to being a total genius approach to host management. ok hear me out. each node periodically pulls configuration from a coordination node that hosts a binary cache. the admin may make changes and pre-build them maybe kick off an update task manually if they want, but the point is thereās an automated checkin. for my case, the device I have available for coordination isnāt really capable of hosting a binary cache for any of my other machines. the nix store for my dev machine is larger than the entire disk of the coordinator! and due to the yearly heat my best machine canāt be reliably powered on all the time. so i started thinking to myself, āself, what if instead of having a central coordinator we fetched configuration from a reliable git mirror (maybe git+torrent some day) and consume it as a flake. the source could even be swapped out using a flake registry (so you donāt even have to commit to self-hosting anything other than a json file). then managed hosts only have to be setup to consume the registry and the shared flake (which registers the update agent) and DONE?ā
@prologic@twtxt.net I tried hosting my own Matrix server once, I got wrecked! 𤣠and I believe that experience established a good base line for me to avoid self-hosting anything federated (except for a TWTX feed).
Skill issues aside (since Iām willing to learn), my internet speed is a huge limitation (I have less than 1Mb Up) š« Then again, thereās the Running stuff off of my RPI's SD Card
š
thatās just asking for trouble.
Seriously, I should get a proper Job, at least Iāll be able to afford my curiosities š
Is it really that fucking hard to use decentralized, Self-Hosted tech? š¤ Or do people just not know how? š¢
@prologic@twtxt.net Interesting! Had no idea about that, but trust you to know of a self-hosted implementation š š
If you want to talk about (self) hosting with #OpenBSD, fell free to join the mailing list I just made: https://si3t.ch/log/2024-05-10-ah-mailing-list.txt #selfhost
š Okay folks, letās startup the Yarn.social calls again.
- Event: Yarn.social Online Meetup
- When: 25th May 2024 at 12:00pm UTC (midday)
- Where: Mills Meet : Yarn.social
- Cadence: 4th Saturday of every Month
Agenda:
Anything we want to talk about. Twtxt, Yarn, self hosting, cool stuff youāve been working on. chit-chat, whatever š
Feedback on why I didnāt choose Mattermost (lack of OIDC) Ā· mattermost/mattermost Ā· Discussion ā My discussions/feedback on Mattermostās decision to have certain useful and IMO should be standard features as paid-for features on a per-seat licensed basis. My primary argument is that if you offer a self-host(able) product and require additional features the free version does not have, you should not have to pay for a per-seat license for something you are footing the bill for in terms of Hardware/Compute and Maintenance/Support (havintg to operate it).
I used to be a big fan of a service called cocalc, which you could also self host. It was kind of an integrated math, data science, research, writing, and teaching platform.
I hadnāt run it in awhile, and when I checked in with it today I found their web site brags that cocalc is now āextensively integrated with ChatGPTā.
Which means I canāt use it anymore, and frankly anyone doing anything serious shouldnāt use it either. Very disappointing.
@prologic@twtxt.net wow! The place to go for whiteboard tech is mills.io.
That stinks about Excalidraw. theyāve been saying that (working on adding collab/self hosting) for over a year.
I take it back. Excalidraw is like tldrawāyou can integrate it into a Javascript front end if you want. Which means technically you could self-host it if you wanted, but youād have to write your own front end code to embed it, and host that code somehow.