Yeah sure check check check all right all right all right hello everyone first time actually
I'm talking about this project on the conference so far as them here's at first the images
that are generated with mid-journey so I'm going to talk about this self-hosting for
non-coders somewhat of a click-by-title but we'll get there I have a question for you
all did anyone try raise your hand if you tried hosting mastodon on your own a mastodon
server all right all right we have a couple hands now keep your hand up only lower your
hand if you think the process was easy or simple or enjoyable okay 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 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 this doesn't
just apply to mastodon it applies to many apps actually that you would want to self-host
many open source apps because apps are getting complex does this not work oh really should
that right will there be does this work better okay all right so yeah so you saw the huge
instruction you know 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 maybe maybe we could host
mastodon with Docker so this would be the Docker setup I guess doesn't look that much
easier and I mean imagine I'm I assume that most of us here are technical people but imagine
if you don't know how to use a command line that'll 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 and this is how it would look like this gif is a bit sped up but it actually
is close to the normal speed what's happening here is I'm entering a couple config values
the mastodon is deployed on my machine anywhere I want where I have this gardens have mastodon
is deployed streaming services deployed configured sidekick services deployed configured post
grass databases deployed configured ready services deployed configured as you see master
has a lot of services and we're done 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 if you own a domain you would have the mastodon let's say on your domain so the
process without regard to speed me speeding up the gif took one minute forty four seconds
I counted and you can do this locally on your own machine if you want you can do this in
a cloud 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 a gpl point three and it's not the only one not the only self hosting platform out
there that really simplifies deployments actually this project is based on another one called
cap rower I don't know if anyone in the room knows it okay it has a hundred million plus
docker pools so a very established project it's out there for many years already it was
called captain dug dug previously but cap rower 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 is you
can use it instead of a SAS service for example 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 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 the API so there is some processing there
to deploy containers for these apps so for example like I was showing this 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 jitsimid you can deploy wordpress I'm going
to show a couple more examples and then we use nginx to show these apps on the web and
allow the actual end user to interact with them now what I mentioned for non technical
users right now we support digital ocean if let's say you don't know how to use a command
line but you want to have gardens on your let's say VPS or your machine you just there's
not all the flow you connect to digital ocean 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 you pull basically the gardens container and
then gardens does everything from there 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 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 peer to you here are just some examples of what those replace so of course
with mastodon you can replace something like Twitter pen pot here at the bottom left you
can replace figma they actually had the talk previously at the conference basero or no
code B can replace air table juicy meat can replace zoom outlining an improved confidence
and there's actually other alternatives there so you're 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 sell host with one click but there is also an option to deploy your own apps or
even connect to git lab let's say have a bit of CI CD going if you're more technical as
I mentioned the process of spinning up those apps is based on docker compose mostly there
are option to even spin up from tar archive and so on but this is like the main method
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
it's I'm talking about it because I'm making it cap rower is what we forked because it's
very reliable very nice service cool if I is a newer service similar to that the main
difference I'd say is for the proxy we use engine x they use traffic and you know host
is a bit different but it covers the same use case to self host stuff it's a bit different
because it's a debut and distribution so you have that on kind of replace your operating
system whereas gardens cap rower and qualified they are all apps that you can put right now
on Ubuntu debut and I think on CentOS as well I actually got it working on macOS but that's
more experimental 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 but as we can see from here you know 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 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 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 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 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 a one way they earn and they can financially support the development 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 like seven years the number of people there skyrocketed to more than 200,000 people
on the subreddit so it looks like people are interested actually in hosting their stuff
but I also run 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 or at least not a lot of them so about
only a hundred 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 but I can understand that why people are not
self hosting because it's complex like we discussed for organizations I mean 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 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 so you don't have to as attached to 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 and native that actually provides nice notifications so you can even get notifications
where you want or have a web hook to get updated one let's say you're running out of CPU RAM
for security we covered that with automatic SSL for all apps 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 and gardens 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 capro or so I'd say people want a self host but it's hard and we need
to help them so otherwise they just use SAS 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 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 spend something up without having to bother you and you can everyone here of course should
use open source instead of SAS and you should try self hosting if it's 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 posters cloud 68 been giving a talk
here a bit earlier chat on says a French network of good hosters liberal host is another one
so look at other hosting solutions thank you and yeah have a good rest of the conference.