Confused about Self Hosting

(My level: built few semi complex websites on Wix, beginner coder)
A major confusion I had that’s a lil more clarified now is that self hosting Discourse is very different to ‘web hosting’
1) Self hosting Discourse requiring a server, means a whole other thing right? (hence the big price difference from web hosting prices commonly advertised, right)
2) So is ‘VPS hosting’ the equivalent term relating to self hosting Discourse? Or are there other options for this too? Another kind of self hosting? (I’m aware of hosting on your own hardware though)

3.1) Then ‘managed hosting’; is this a service on top of that VPS type hosting? 3.2) Is this much more pricey? 3.3) Doing exactly what though? 3.4) As a rookie brokie starting a small forum (~100 users/month), managed hosting can be done without right?

After hrs reading online re hosting Discourse, the post the foll. quote’s from, was a most helpful & complete overview to help chose my hosting path

Re this quoted point, can someone pls clarify these:
4.1) I take it that this is about maintaining the server? Isn’t that already included now when going through DO/Hetzner? Or will that only be included in a separate kinda service? Then what’s it called? Like if I do DO’s 1 click droplet thing, is this the kinda thing including that maintenance? Or is that only related to setup
4.2) What kinda time/time & knowledge level does ‘maintaining it’ entail for my kinda forum?
4.3) @tophee said “For various reasons, managed servers are rarely used by admins of discourse forums” Why’s this?

I found this decision tree also pretty helpful, maybe it’s outdated so if some of em are easier now pls lmk


5.1) I don’t quite get what SSH is, & as per this graph do all self hosters need this?
5.2) What do they mean by being ok with managing DO, MailGun & DNS? What kinda time/time & knowledge level does managing these entail for my kinda forum?

I’ll try to answer your questions although I think you may have some over-lapping terms leading to some of your confusion.

When folks on this forum refer to ‘self-hosting’ Discourse they are referring to running an instance of Discourse on your own server. (more on this in a minute) When they refer to ‘managed hosting’ they are referring to a service which provides an instance of Discourse running on hardware the host also provides. By ‘managed hosting’ they mean the instance of Discourse is managed by the service, they handle keeping the Discourse instance updated and the operating system Discourse is running on updated and running properly.

To ‘self-host’ Discourse you need a server which has access to the internet and a properly configured DNS service pointing at your server. The server can be real hardware running on your premise or it can be a ‘VPS’. A VPS stands for Virtual Private Server. A VPS is server hardware provided to you which you have total control over as if it was on premise but you access it ‘remotely’. By ‘accessing it remotely’ I mean you use tools such as SSH and FTP to access the server, control it and transfer files to it.

SSH is ‘Secure Shell’. A secure shell is basically a command prompt running through a secure (encrypted) tunnel. Are you familiar with running a server from the command prompt?

Shell, terminal, command line and command prompt all kind of mean the same thing. Running a computer using a terminal window and typing in commands at the prompt. If everything I just said sounds like a different language this might require some learning before attempting.

When you rent a VPS, you are provided credentials and the IP address of your new server. Usually when you purchase, you are given a chose of operating systems. You log on to your server using a terminal program such as PuTTY or just the terminal window on your computer. You can use a FTP (File Transfer Protocol) program such as Filezilla to transfer files from your computer to the VPS

So once you have rented a VPS and logged onto it using your SSH you can then install an instance of Discourse on your server and then you will be ‘self-hosting’ Discourse. You have full control over your Discourse instance and the server it is running on. You can usually keep Discourse up to date with the built in administration tools within Discourse itself but occasionally you will have to use the command prompt to update manually. You also need to keep backups of your data and know how to restore them. Discourse makes backups automatically but you must download them and store them securely in case you need them.

With a VPS you will also have to maintain the operating system your Discourse instance is running on. This requires some knowledge of the operating system and how to keep it up to date and properly running. If you screw up the VPS usually all the VPS hosting service is capable of doing is wiping out your operating system and reloading a fresh version. You also have to backup the important data needed should you need to reload the operating system.

Once setup and running, this is a fairly easy thing to maintain, if you know what you are doing. From your description of your skills I think you could handle it. The best way to learn how to do all this is try. Renting a VPS is fairly inexpensive these days. Set up a server, try to get Discourse up and running on it and come here or ask.discourse.org if you have questions.

Just bear in mind if the forum you run doesn’t get a lot of traffic, which it won’t all on it’s own, if you screw it up you can just start over. If a bunch of people join your forum and start posting then you will need to keep it maintained and backed up. If you have a pre-existing forum, or a product you want to promote or support maybe check out a hosting provider. If you are just goofing around and learning… go for it

Discourse hosting =/= self-hosted

i am an experienced self-hoster and have done some complex configurations; as well, i used to work for Discourse, so i have some insight into the two concepts, which it seems like you have a bit mixed up. i will try to clear some things up for you, but this is by no means an exhaustive explanation, even if longwinded lol. i don’t know where you got that flow chart from but it isn’t really correct.

Discourse hosting is what it sounds like - Discourse will host your site for a fee, and as you have already discovered, there are different priced tiers, starting at free, that offer more options as you go up, and enterprise is the top and most expensive (it gives you the most options as well as their top-of-line support team services and custom design and development options). managed hosting is the same (Discourse hosting is a form of managed hosting), but also offered by other partner companies like Communiteq or Literate Computing. these partner companies also offer various development and support services for a fee apart from hosting (as do i). keep in mind work is not usually free for development and specialized support, and this is what the Marketplace is for. Also, while the Discourse hosting prices structure may seem expensive to you, i can assure you that many well-known companies pay them top-dollar for their very large, busy and well run enterprise forums, many of them private. the SLAs and levels of support / development services that Discourse offers them are such because their business activity demands it. for example, if you are a tech firm or financial organization and you are hit by a DDoS attack that can cost your company 6 figures in downtime and loss of services, or you require a very customized professional interface for a large number of employees, then paying enterprise hosting is well-worth it.

self-hosting means what it says - you are hosting your own site on a rented server (or a physical one you own, which i don’t recommend because that is another advanced can of worms). self-hosting isn’t just renting a server (or VPS - virtual private server) and ssh’ing in and there you go. there is some knowledge that one has to have in order to be a self-hosted admin. a beginner coder who’s built a few wix websites isn’t going to do much for you from a self-hosting Discourse perspective; very different things and skill level. the fact you don’t know what SSH is yet is probably an indicator that you have some growing to do in that area. Secure Shell - Wikipedia

if you are interested in learning, i would suggest you begin by reading the standard install documentation and learn the ropes from there. some find it easier than others, and the fact you have some website admin experience may help you learn faster. just being able ssh into a server is one thing, but you have to be comfortable in a command line interface and understand the basics of docker admin, and how containers work. since you say you have a small site, then a standard install will probable work fine to start from, and it will give you access to all the built-in plugins, plus any others you might want to add; essentially, a self-hosted Discourse instance is like having your own enterprise level Discourse hosted forum but without their expert support and uptime SLAs and performance (for example, you will have some downtime every time you re-build or do updates, but Discourse hosting does this for you and without any descernable downtime).

there is no reason whatsoever that you cannot learn how to self-host, but remember that nothing is free and what service and scale you want will determine what cost you will need to pay. some VPS services are cheaper than others, and there is a list here that @pfaffman has put together that can help you decide. for example, i have 3 Discourse sites, all on Hetzner, but with different sized servers and costs associated with them: 2 sites are dual-container installs behind Cloudflare CDN with R2 (S3 compatible) object storage for uploads and backups, and the other is a standard install used for testing purposes. i have used DigitalOcean before but it can be relatively expensive; however, it is the recommended starting point for those learning standard installs (although i don’t actually find Hetzner that much different, and i prefer their dashboard).

if you do not want to pay Discourse or any of their partner hosting companies to manage your hosting, and you need more than the free tier, then my recommendation is to do some research and reading, then try a self-install. learn what an app.yml file is and how to edit it, how to setup your nameserver and email services - this is the starting point for learning how to configure your own discourse instance as a self-hoster. some VPS services will let you rent servers quite cheap for short periods just for testing or learning.

This is a decent chart and I agree with everything the people above me have already said (even though I would strongly advise against a beginner using a LLM for support because they are so blatantly wrong a lot of the time). However, self-hosting is a large umbrella term that could be disambiguated here.

If you:

  • are comfortable running Linux on your own hardware (or suffering through reading 15 year old Reddit posts)
  • don’t have money to spend with big tech
  • have consistent, guaranteed 24/7 internet and power
  • do not have ISP-imposed restrictions (such as a closed port 80/443 or dynamic ipv4)
  • can do basic networking (port forwarding)
  • have a spare computer (can be an old office box with 4gb of ddr3 realistically so long as you have a SSD)

… then I would definitely recommend hosting on your own hardware. It gets a bad reputation a lot of the time around here for reasons unknown to me (variability?) but so long as you are capable of it then I would definitely recommend giving it a go! Self-hosting has always been my way of doing things and it was great when I was younger and couldn’t afford cloud. Even now, I choose to self-host on local servers because it’s cheap, predictable, and you’re free to do things however you’d like.

There is a lot to learn with self-hosting and even if you manage to successfully install it on either your own hardware or a VPS , you’ll still have more work cut out for you. You can always skip all of this and go for a hosted plan but if you’re looking to save money then self-hosting (especially on your own hardware) is great.

If one runs it on say, a spare computer at home, that would require both the computer to be on 24/7, and likely a Cloudflare Tunnel be set up, no? So I would be geared towards simply renting a server, getting a domain name and getting a email server. When I first started self-hosting, I was pretty muddled with so many terms flying around, but since Discourse has some solid documentation, and with the installation being a guided process through the CLI installer, I’d say setting it up as a beginner isn’t that hard after all.

Not necessarily. Port forwarding is supported by a lot of routers (even basic ones and ISP gateways) which is obviously the preferred way to do things especially if you can have a reverse proxy. I would only recommend a Cloudflare tunnel to somebody who can’t port forward or doesn’t want to tinker with the network of anything.

This misses on a key consideration, You can’t be sure your home firewall is ready to handle all the attack vectors that can be exploited by opening ports to the public internet. In general I would advise against opening ports directly, use something like cf tunnels to protect your home IP from being DDoS’ed and potentially being banned by most other networks.

This is something that I might have taken for granted because my Unifi network automatically sets up and maintains a firewall with little to no intervention, besides unblocking signatures it misidentifies as malicious (soulseek and minecraft namely). Cloudflare tunnels are a good solution for most ISP-related bottlenecks but I’ve never used it in the name of security to give an accurate comment on that, besides knowing that using an orange cloud in DNS offers better security with DDOS protection and everything else built in.

The internet is a dangerous place and publishing anything on the public web poses a risk that bots will find you and try attacking you. CF Tunnels are good at preventing some of that but you won’t stop the automated bot scanner traffic and there is no such thing as a 100% secure program.

Your Unifi does what any reasonably configured firewall is supposed to do, but we never know if or when there is an unpatched vulnerability being actively exploited in the wild.

the rationale behind not opening ports on a residential connection, particularly if you are hosting homelab or services with important/personal data, an open port, if not properly secured can and will be used to get unauthorised access to your home network.

The merit of routing it via something like cf tunnels is that you’re not immediately exposing your home network to the public. You have cloudflare as a middleman and given their size, there is strong chance their filtering will be far more proactive at preventing emerging threats.

What we’re saying I think is that self hosting demands some level of skill in Linux system administration and security.

The cheaper ways to proceed demand more expertise and effort.