Self-hosting for non-coders?
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Number of Parts | 542 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/61650 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
00:00
Projective planeRight angleProcess (computing)Multiplication signServer (computing)Medical imagingComputer animation
01:06
Physical systemBlock (periodic table)Installation artGamma functionKey (cryptography)LoginPasswordComplex (psychology)Mobile appOpen sourceVirtual machineMereologyWeb pageComputer animation
01:44
Projective planePoint (geometry)Process (computing)
02:28
Instance (computer science)Text editorDatabaseFunction (mathematics)Configuration spaceRepository (publishing)Computer-generated imageryLocal ringInclusion mapComputer configurationInteractive televisionBuildingTime domainServer (computing)
02:52
Surjective functionVolumeComputer wormNormed vector spaceIntegrated development environmentDatabaseService (economics)Configuration spaceVirtual machineInstance (computer science)BitComputer animationSource codeProgram flowchart
03:43
BitVirtual machineInternetworking2 (number)Uniform resource locatorDomain nameSource code
04:24
QuadrilateralServer (computing)MereologySet (mathematics)Line (geometry)Software as a serviceProcess (computing)Level (video gaming)Open sourceSelf-organizationRight angleSoftware testingMobile appProduct (business)Computing platformLattice (order)Web 2.0Service (economics)Projective planeVirtual machineGoodness of fitWeb applicationExterior algebraComputer fontWebsiteTwitterPoint cloudIntegrated development environmentElectronic mailing listComputer animation
08:09
Bookmark (World Wide Web)BackupOpen sourceOpen setWhiteboardCodeRight angleBitMobile appComputer configuration
08:25
Computer configurationMobile appRepository (publishing)Process (computing)File archiverComputer animation
08:52
Common Language InfrastructureFile formatPoint (geometry)SoftwareMobile appDifferent (Kate Ryan album)BitOpen sourceCASE <Informatik>Service (economics)Computer animation
10:21
Inclusion mapOpen sourceMobile appSoftware as a serviceComputer animation
10:56
Source codeWorld Wide Web ConsortiumOpen sourceSoftware as a serviceSoftware developerDefault (computer science)Scaling (geometry)Information privacyComputer animation
11:40
NumberComputer animation
12:03
Product (business)NumberPoint cloud
12:40
Software maintenanceInformation securityRevision controlCommodore VIC-20Game controllerPrice indexFormal grammarPhysical systemScalabilityUltraviolet photoelectron spectroscopyVertex (graph theory)Online chatPoint cloudLinker (computing)Cartesian coordinate systemInstance (computer science)Self-organizationComputer fileVirtual machineMobile appMereologyEncryptionBefehlsprozessorWeightAnalytic setLoginService (economics)Computer configurationComputing platformRevision controlOpen sourceGoodness of fitSoftware
16:03
Program flowchart
Transcript: English(auto-generated)
00:07
Time. All right. We're all good. Sorry. Rama, hit the button when you're ready. And help yourself to water as well. Yeah, sure. Check, check, check. All right, all right, all right. Hello, everyone.
00:21
First time, actually, I'm talking about this project on the conference. So Fozdem hears it first. The images that are generated with midjourney. So I'm going to talk about this, self-hosting for noncoders. Somewhat of a click-by title, but we'll get there. I have a question for you all. Did anyone try?
00:41
Raise your hand if you tried hosting Mastodon on your own. A Mastodon server. I think so. All right, all right. We have a couple of hands. Now, keep your hand up. Only lower your hand if you think the process was easy, or simple, or enjoyable.
01:04
OK. All right. So this is the Mastodon docs on how to host it. This is just one page. This is actually not even the hosting part. This is just preparing the machine.
01:22
So out of this room here, I guess three or four people tried that, and I can understand them. It's not easy. And this doesn't just apply to Mastodon. It applies to many apps, actually,
01:40
that you would want to self-host. Many open source apps, because apps are getting complex. Does this not work? Your microphone sucks. I'm sorry. The other one is much better. Oh, really? Should I try it? Will there be a? Does this work better?
02:00
Yes, it does. OK, all right. So yeah, so you saw the huge instruction. What we want is everyone to be able to host Mastodon, because that's kind of the point of Mastodon, right? It's decentralized. There's Docker out there that many, many projects use to simplify this process of hosting something.
02:24
Maybe we could host Mastodon with Docker. So this would be the Docker setup. I guess it doesn't look that much easier. And I mean, I assume that most of us here are technical people.
02:43
But imagine if you don't know how to use a command line. That would just be impossible. You can forget about it. You would use someone else's Mastodon server. So what if I tell you there is a way, actually, for people who don't even know how to use a command line to spin up a Mastodon instance?
03:04
And this is how it would look like. This GIF is a bit sped up. But it actually is close to the normal speed. And what's happening here is I'm entering a couple of config values. The Mastodon is deployed on my machine anywhere I want, where I have this gardens hub.
03:22
Mastodon is deployed. Streaming service is deployed, configured. Sidekick service is deployed, configured. Postgres database is deployed, configured. Redis service is deployed, configured. As you see, Mastodon has a lot of services. And we're done.
03:41
We have a Mastodon instance now. This would be the... It's actually open on the internet. I host a couple of those myself with this method. And this would be the URL that I end up having. And of course, you can have it on your own domain.
04:01
If you own a domain, you would have a Mastodon, let's say, on your domain. So the process, with regard to me speeding up the GIF, took one minute and 44 seconds. I counted. And you can do this locally on your own machine. If you want, you can do this in a cloud.
04:22
If you do this in a cloud, that would be even a bit easier. But we'll talk about it. So this is called Gardens. It's an app. It's a platform that I'm making. It's open source under AGPL 0.3. And it's not the only one.
04:41
Not the only self-hosting platform out there that really simplifies deployments. Actually, this project is based on another one called CapRower. I don't know if anyone in the room knows it. OK, it has 100 million plus Docker pools. So a very established project. It's out there for many years already.
05:01
It was called Captain Duck Duck previously. But CapRower was meant for hobbyists and kind of for testing. Our aim with Gardens is to bring it more to the organizations. So get it to a level where it's actually the stuff that you deploy, like Mastodon or anything. You can use it instead of a SaaS service, for example,
05:23
in an organizational setting. So the technical part of this is roughly this. It's a web app. The web app, actually, you deploy on your own server. So even the web app is on your own server. We have a website for non-technical people
05:41
where they can connect their cloud account to deploy to their server. But after they do that, everything else happens on their machine. This web app talks to Docker API. It uses Docker Compose, which actually you cannot use via API. So there is some processing there to deploy containers for these apps.
06:03
So for example, like I was showing these various services that Mastodon spins up. They're all in separate containers. And of course, you can not just have Mastodon deployed like this. You can deploy Jitsi Meet. You can deploy WordPress. And I'm going to show a couple more examples. And then we use Nginx to show these apps on the web
06:25
and allow the actual end user to interact with them. Now, what I mentioned, for non-technical users, right now we support DigitalOcean. If, let's say, you don't know how to use a command line,
06:40
but you want to have guidance on your, let's say, VPS or your machine, you just, there's an overflow. You connect to DigitalOcean, and then there's a no-code process where you spin up Gardens, and then from Gardens you can use it. But there's also a local process where you just run one line in the CLI.
07:01
You pull basically the Gardens container, and then Gardens does everything from there. It doesn't actually, I mean, it talks back to us to get the list of apps available. But our end goal is for it not even to talk back, to kind of really be isolated in your environment.
07:24
So these are just some examples of the apps we have in Gardens. There's really a lot of good open source products that are coming out recently. Of course, there are established players like WordPress. There is stuff to replace social media, like PeerTube.
07:42
Here are just some examples of what those replace. So, of course, with Mastodon you can replace something like Twitter. PenPod here at the bottom left, it can replace Figma. They actually had the talk previously at the conference. Bizro or NocoDB can replace Airtable.
08:00
G2Meet can replace Zoom, Outline can replace Confluence, and there's actually other alternatives there. So you can choose whatever open source product you want to host. We have about 130 apps, a bit more, available right now that you can self-host with one click. But there is also an option to deploy your own apps or even connect to GitLab, let's say, have a bit of CI-CD going,
08:24
if you're more technical. As I mentioned, the process of spinning up those apps is based on Docker Compose mostly. There are options to even spin up from tar archive and so on, but this is like the main method.
08:42
Yeah, we do some processing of Docker Compose files that are taken from official repositories of these app developers, and then we just spin this up for you. So, Gardens is just one example. I'm talking about it because I'm making it. CapRour is what we forked because it's very reliable,
09:04
very nice service. Coolify is a newer service similar to that. The main difference, I'd say, is for the proxy, we use Nginx, they use Traffic. And Unihost is a bit different, but it covers the same use case to self-host stuff.
09:20
It's a bit different because it's a Debian distribution, so you have that on kind of replace your operating system, whereas Gardens, CapRour, and Coolify, they are all apps that you can put right now on Ubuntu, Debian. I think on CentOS it works as well. I actually got it working on Mac OS, but that's more experimental.
09:42
So, why do we even want to self-host? Let's go back to that. I'd say, actually, if we want software freedom, which is, I guess, the point of open source in a lot of ways, you have to be able to self-host.
10:00
But as we can see from here, just several people hosted Mastodon, let's say. I imagine many more here use Mastodon. It's kind of like if you're not using this freedom or if you're not able to because you can't handle the technical side because it's too difficult, that kind of defeats the purpose, right?
10:23
So, if you cannot host, you don't really have freedom if you have it technically or formally, let's say. So, I'd argue that this not having freedom is bad, but also bad not just in a kind of ideological way,
10:40
but also in a competitive way, if open source wants to be able to compete with all these SaaS apps out there. Because this is like something that open source has that proprietary apps just don't have and it's an unfair advantage. I think, I believe that right now, organizations,
11:03
how they use it is they use proprietary SaaS by default. They self-host when they are really worried about privacy or there's some kind of sovereignty concerns or something. They don't care about open source. And how it should be is you self-host instead of SaaS by default,
11:23
but then you choose a SaaS where it's too complex or you want the scale or there's some specific requirements or if you want to support developers because that's one way they earn and they can financially support the development.
11:42
So, to bring some numbers in there, I've been hanging out on Reddit self-hosted subreddit and I found the statistics. So, for the past seven years, the number of people there skyrocketed to more than 200,000 people on this subreddit.
12:00
So, it looks like people are interested actually in hosting their stuff. But I also ran a poll with 1,250 participants about that number where I found out that people on that subreddit, they don't really self-host anything business critical, so to say, or anything for their organization, anything for productive use,
12:22
or at least not a lot of them. So, about only 100 people self-host, let's say, Next Cloud or something, but most of them self-host for media, so let's say for movies or something, or for personal use, so maybe something for their smart home. So, that I think is a pity,
12:42
but I can understand that why people are not self-hosting because it's complex, like we discussed, for organizations. Because it's complex, but also because of these issues. You don't just want to spin up an app. There's also a part that comes after you deploy, which is about maintenance, which is about making sure that your instance is secure,
13:03
and if you get a lot of users, you also want to scale. You want to have an option to scale. So, how we deal with that is for maintenance, for each app, for each service that I was showing you, let's say for Macedon, you can view logs in the graphical interface,
13:21
so you don't have to SSH into your instance to view logs. We keep a version history. We track analytics for your instance with net data, so you can see, let's say, how much CPU is utilized, how much RAM is utilized, so you can kind of check the health,
13:42
and net data actually provides nice notifications, so you can even get notifications where you want or have a webhook to get updated when, let's say, you're running out of CPU or RAM. For security, we cover that with automatic SSL for all apps.
14:01
You can force it. You can force HTTPS. We have basic auth, so that we do with Let's Encrypt. For scalability, actually, that's the part I love the most. If you have a lot of users, you can scale, either by adding more instances of the same app on the same machine,
14:22
and New Orleans will redistribute automatically the load, or you can scale by adding more machines into a Docker swarm, so we support Docker swarm. This is the same for CapRover. I'd say people want to self-host, but it's hard, and we need to help them.
14:41
Otherwise, they just use SaaS, like currently, and this is one way to do it. You can help this effort by, if you're a developer, maintaining Docker Compose files or documentation, just a way to self-host for your application.
15:01
If you're a sysadmin or devops, you can think about providing a platform like this to your organization, so that people in your organization can spin something up without having to bother you. And you can, everyone here, of course, should use open source instead of SaaS,
15:20
and you should try self-hosting. If you find self-hosting hard, you can check out some of those self-hosting platforms. And of course, host not on AWS or something, but you can use some of those hosters. Cloud68 has been giving a talk here a bit earlier. Chatons is a French network of good hosters.
15:42
liberalhost is another one. So look at other hosting solutions. Thank you, and yeah, have a good rest of the conference.