Volatile's future
What is this document?
This living document serves as an overview of Volatile's goals, why a collective funding approach is advantageous, what services we currently offer, and what we plan to expand in the future.
Overall goals
Volatile intends to be a platform of multiple independent services, all centred around a common set of goals:
- We wish to provide privacy by design and not by policy, such that unnecessary metadata is minimised before it even has a chance to be logged by servers, and personal/private data stays between the sender and the recipient.
- Since we all have different needs, we wish to empower individuals to make their own self-moderation decisions when possible. We believe in the power of curating and filtering our own experiences, rather than entrusting others to tell us what we want to hear or say. Volatile looks out for individual interests so long as they do not encroach on the ability to offer services for others. Service administrators have a duty to stay within the law, to mitigate spam, and to ensure service availability.
- We have a strong interest in decentralisation and self-hosting, and many people in the community have an interest in keeping up with the latest advancements in decentralised and peer-to-peer technologies. Technology is a moving target, and we will adapt where necessary. We see centralised corporations as single points of failure, and we believe they are destined to fail, clinging to obsolete business models.
- Volatile wishes to work together with other likeminded individuals and organisations, bounce off ideas, share users, and in general improve both the online and the real world over time. We are not enemies; that goes against the spirit of decentralisation. However, we believe that healthy competition allows us all to find better solutions to current problems.
Why the jump to a donation model?
Up to this point, Volatile's expenses have fully been paid out of my own pocket, and thanks to the generosity of others who have offered non-monetary donations in the past (mostly I'm referring to those who operate their own servers for Volatile's IRC network).
This model has allowed Volatile to survive as a platform for a small group of people, but it has prevented us from reaching our full potential as a group of services that goes above and beyond.
With a collective donor model, this would open the door to funding new ventures that benefit the existing community and can draw in new users from less-ethical and more-centralised platforms. Volatile will make clear all current and projected expenses so that current and potential donors can see where their money is going.
Who can use Volatile's services?
To encourage self-hosting and decentralisation, and in an effort to
manage our time and effort responsibly, I believe donating is an
appropriate prerequisite to being able to use Volatile's member
services. This should be donate-what-you-wish, as any amount is
appreciated. This should act as a barrier to evaluate who actually wants
to use the services for good
rather than to freeload and use the
services for bad faith and spam. But also, it means we all get what we
pay for: a free account model would mean dependencies on advertising and
other distractions from our goals. We're paying for others to maintain
and configure the services, to do all the dirty work
of hosting,
because we may not have enough time or experience or interest to invest
in self-hosting.
Note that if you wish to contribute but cannot donate financially, your inclusion in the community, your expertise, your suggestions and actions are equally-valuable contributions. Volatile ambitiously plans to offer multiple services, and perhaps there are people who know the ins-and-outs of one service better than others, and can help make that service better.
As an alternative to direct contributions, existing users can vouch for others to have an account on here. This means that our friends can use the same platform if they wish.
Some services will be free for all and not require an account. For example, IRC should remain accountless and available for all.
Current services and planned renovations
You will notice a common theme: as well as clearnet (ICANN) service that you would expect from most of the Internet, where you can connect with any old Internet connection and no additional tools; I also offer many services via the following networks:
I plan to adopt Lokinet when it reaches
maturity, because I believe it will offset both Tor and I2P in the long
run. I will continue to offer Tor and I2P access to services, but my
main focus will be both on Lokinet and Yggdrasil – the
up-and-coming
solutions both to privacy and decentralisation.
I offer E-mail that federates with the ICANN Internet, with Tor hidden services such as Torbox, and with anoNet. It should also be able to send and receive mail via the Yggdrasil network, but I have not tested.
I offer IMAP and SMTP support via ICANN (mail.volatile.bz), Tor onion, I2P hidden service, and anoNet (mail.volatile.ano). I currently do not host a webmail client, as I am opposed to webmail and encourage native clients that support PGP, but I will accept feedback on whether I should host a webmail client, and if so, which software I should use.
Currently I have set up SPF, DKIM, and a whitelist record. I plan to fully support DANE and possibly some other protocols that have been proven to benefit the E-mail network overall.
Also, as of now there are no serverside filtering mechanisms. No SpamAssassin, no Sieve; the filtering responsibility is currently left up to the user. I want to devise a proper filtering mechanism to benefit users and allow them to decide what mail they want and how they want to organise their mail.
XMPP
Volatile XMPP is provided by a Prosody server that should federate with ICANN and Tor with no issue. It's currently accessible via ICANN, Tor, and I2P. A web client also exists at https://xmpp.volatile.bz/ but its use is discouraged in favour of native clients.
Efforts are made to support the de facto XMPP extensions (XEPs) and federation practices (such as TLS negotiation).
OMEMO is strongly encouraged. Volatile XMPP may be modified in the future to warn on unencrypted communication or restrict it entirely. Currently I know of OMEMO, OTR, and PGP as encryption transports that multiple XMPP clients support.
Matrix
Currently we use Synapse for Volatile Matrix. I would like an alternative that is lightweight and featureful, or for the reference Synapse implementation to improve enough that makes it suitable for longterm use.
Git
Volatile Git currently uses cgit and Gitolite. I have had issues with cgit under heavy load (bot/spider traffic, or other traffic intended to DoS the service) so I have desired a move to stagit instead. Gitolite should still be fine for current push access to repositories.
Future services
Self-hosting consultation
In the spirit of decentralisation and encouraging self-hosting, I wish to work with others to provide support, services, and resources for those who wish to get into hosting their own services. As well, I wish to make self-hosting easier in the first place. Some things I want to look into providing:
- (D)DoS mitigation techniques (software level) and hardware (IaaS, possibly);
- legal support and consultation, since independent hosts are less equipped to handle litigation threats and harassment via attempted deplatforming;
- software, scripts, and guides to aid in setting up secure systems with little effort.
There are plenty of guides on how to set up services, but they're scattered about and potentially out-of-date or missing critical information. Currently the biggest DDoS/CDN services are offered by Cloudflare and other centralised and potentially-unethical corporations. And lawyers are expensive. Many service administrators would sooner choose to give up and shut down, rather than to waste time and money on fighting legal battles.
Single sign-on
I wish to have E-mail, XMPP, Matrix, and ActivityPub services all share
a username database so that username@volatile.bz
on one service is
guaranteed to be the same username@volatile.bz
on another. Currently I
do not do that, but to my knowledge there are currently no username
conflicts. I will make the adjustments necessary to allow for migrating
to a single-username model.
I also want to offer OpenID (or really, any well-adopted authentication mechanism) for registration and login to third-party services. I believe a well-protected OpenID login (with a strong passphrase and 2FA, for example) is far more advantageous than any of:
- using the same or similar password across services (worse practice);
- using a password manager (good practice but difficult to manage);
- connecting accounts to the same E-mail address, effectively making
password resets
into the same issue as using the same password across logins.
Mailing lists / newsgroups
I want to offer a public mailing-list and/or newsgroup platform, complete with first-class E-mail support (of course), appropriate moderation tools, and public archives possibly in MBOX, Web, IMAP, and NNTP formats.
Mailing list software is ubiquitous and more people have mail clients than newsreaders, but NNTP seems to serve as a better analogue for this sort of thing. It's always possible to offer both and have a compatibility layer between the two, like some groups do.
Issue tracker
To accompany Git hosting, a bug tracker would be useful. I personally want first-class E-mail support in a bug tracker, which means my choice in tracking software will focus on this. I have often been deterred by having to make accounts on various bug trackers just to offer one-time bug fixes or feature requests. This is especially painful with people who host their projects on Github, where you have to agree to Github's centralised model as well as their unfair terms of service.
This can go hand-in-hand with mailing lists and allow for sending code patchsets, à la how Sourcehut works (and in fact, we may copy Sourcehut's efforts where it's deemed suitable).
ActivityPub
I will write an ActivityPub server that's designed less monolithic,
and more with Unix philosophy in mind. I model the design decisions:
technically after the examples set by djb and Suckless software,
and socially after my time on Twitter (before 2015, when Twitter felt
like a free platform, and the blue checkmark
epidemic was nowhere
near what it became today) and after such efforts made by Librem
One.
Basically, I want separate but interoperable pieces that make up the
ActivityPub server, I want easy plug-in with existing clients (both web
and native, but none that are included with the server – it isn't the
server's job to provide a client). I want more focus on the individual's
choice rather than the choices of a server administrator, or the
tone
that a particular instance may set for its users. I believe
users are free to associate with whomever, that the fediverse deserves
and needs better discovery methods, and that current discovery (public
timelines, limited search, limited tag search) must be improved in order
to provide an experience comparable to Twitter and other central social
media.
Until this happens, I provide anime.website separately from Volatile as a Pleroma fediverse server. I will continue hosting anime.website from my own initiative, perhaps even after setting up a service like the one I described above. Some people prefer Pleroma, and I like it as well; it just does not meet my own standards of idealism for a fediverse server software.
DNS
I want to offer a whitelist-only Tier 2 resolver for the OpenNIC project. From my understanding, most of the existing infrastructure uses BIND. I personally use NSD and Unbound and found it to be a much easier experience to configure and run than BIND, so I would like to diversify the software that OpenNIC uses, as well as provide a stable server free for use by users.
NextCloud
Personally I don't need NextCloud anymore, opting instead for the simpler Radicale to sync my contacts. But, it's a great alternative to using Google to manage your information, and NextCloud gives the option to encrypt files at rest on the server.
Searx
I have used a personal Searx instance for a period of time. The only reason I have discontinued using it for now is, I need to debug why it stopped working after an update, and I need to spend time developing search engines and a more thematic frontend style. Once I do this, I will do my best to open the instance to public use.
Video game servers
I like playing video games. There are a few games that (officially or unofficially) allow people to host third-party multiplayer servers.
Agario
One game I enjoy is Agario, but Miniclip (current owner of agar.io)
is infamous for neglecting at least its desktop playerbase, as well as
offering both cosmetic microtransactions and a sort of pay-to-win model.
The pay-to-win aspect isn't too severe; you only get minor benefits when
you either pay with real currency or save up their free coins
in
order to afford such benefits. Still, it is dishonest to request this
type of payment and end up not caring for the servers and the
playerbase. Some issues with Agario:
- frequent server downtime and performance issues;
- the agar.io official client suffers from intense resource usage and bugs;
- not being attentive to player feedback (new game modes, fixing current game modes);
- Miniclip itself using player-made media (from YouTube gameplay videos, as one example) without the publishers' permission, effectively sharing it as Miniclip's own media.
I would like to focus on free and open-source alternatives to Agario. There exists both client and server implementations, but they need some polishing. Also, I wish to have a native client written in OpenGL for those (such as myself) who do not like allowing WebGL and JavaScript in Web browsers.
I plan to establish a community for those specifically interested in Agario. I'm aware it's a niche, but I do not want the game to die, when it is one-of-a-kind and has allowed me to meet and interact with a lot of new people over the years.
Minecraft
Minecraft has plenty of open multiplayer servers for all styles of gameplay. However, to my knowledge, few to none of those servers focus on FOSS, and the Java server implementation is known to require expensive server resources to remain at a tolerable playing experience that supports dozens or even hundreds of players.
I wish to focus efforts into Cuberite in order to have a playable, efficient, and libre server. I know of Minetest which is very performant and has both client and server implementation, but as a Minecraft survival player, and due to the extensive modding community that focuses solely around Java Minecraft, it is difficult to drop Minecraft for Minetest. Certainly we could improve Minetest for Minecraft-like survival gameplay, and that is something I am willing to discuss with others interested, but to me, focusing on Minecraft's ecosystem has a better payoff.
Others
I am aware of other self-hostable multiplayer games and may focus on them if interest is expressed in them (either by me or by the community). If you have anything to consider, reach out to us. And if you have the expertise, you can even help make those considerations a reality for us all!