I wanted to ask where the border of selfhosting is. Do I need to have the storage and computing at home?
Is a cheap VPS on hetzner where I installed python, PieFed and it’s Postgres database but also nginx and letsencrpt manually by mydelf and pointed my domain to it, selfhosting?
I would say yes, it’s still self-hosting. It’s probably not “home labbing”, but it’s still you responsible for all the services you host yourself, it’s just the hardware which is managed by someone else.
Also don’t let people discourage you from doing bare-metal.
I would say there’s no value in assigning such a tight definition on self-hosting–in saying that you must use your own hardware and have it on premise.
I would define selfhost as setting up software/hardware to work for you, when turn-key solutions exist because of one reason or another.
Netflix exists. But we selfhost Jellyfin. Doesn’t matter if its not on our hardware or not. What matters is that we’re not using Netflix.
It depends who you ask (which we can already tell hehe), but I’d say YES, because you’re the one running the show – you’re free to grab all of your bits and pieces at any time, and move to a different provider. That flexibility of not being locked into one specific cloud service (which can suddenly take a bad turn) is what’s precious to me.
And on a related note, I also make sure that this applies to my software-stack too – I’m not running anything that would be annoying to swap out if it turns bad.
Is a cheap VPS on hetzner where I installed python, PieFed and it’s Postgres database but also nginx and letsencrpt manually by mydelf and pointed my domain to it, selfhosting?
I don’t get hung up on the definitions and labels. I run a hybrid of 3 vps and one rack in the closet. I’m totally fine with you thinking that is not selfhosting or homelabbing. LOL I have a ton of fun doing it, and that’s the main reason why I do it; to learn and have fun. It’s like producing music, or creating bonsai, or any of the other many hobbies I have.
Your stuff is still in the cloud, so I would say no. It’s better than using the big tech products, but I wouldn’t say it’s fully “self hosted”. Not that that really makes much of a difference. You’re still pretty much in control of everything, so you should be fine.
Where is the tipping point though? If I have a server at my parents house, they live in Germany and I in Korea, does my dad host it then because he is paying for the electricity and the access to the internet and makes sure those things work?
Isn’t my dad the hosting provider? I ordered the hardware, he connected it to his switch and his electricity and pressed the button to start it the first time. From there on I logged in to his VPN and set up the server like I would at Hetzner.
But you’re right it doesn’t really make a difference. I feel the only difference it makes for me where I post my questions on Lemmy if it is in a !selfhosting community or a !linux community.
From a feeling perspective, even if I use Hetzners cloud, I feel I self host my single user PieFed instance (and matrix, my other websites, mastodon, etc.) because I have to preform basically the same steps as for things I’m really hosting at home like open-webui, immich, peertube.
A hosting provider is a business. If your dad is a business and you are buying hosting services from him, then yes, he is a hosting provider and you are not self hosting. But that’s not what you’re doing. You’re hosting on your own hardware on your family’s internet. That’s self hosting.
When you host on Hetzner, you’re hosting on their hardware using their internet. That’s not self hosting. It’s similar, cause like you said, you have to do a lot of the same administration work, but it’s not self hosting.
Where it gets a little murky is rack space providers. Then you’re hosting on your own hardware, but it’s not your own internet, and there’s staff there to help you… kinda iffy whether you’re self hosting, but I’d say yeah, since you own the hardware.
I did that first but that always required much more resources than doing it yourself because every docker starts it’s own database and it’s own nginx/apache server in addition to the software itself.
Now I have just one Postgresql database instance running with many users and databases on it. Also just one Nginx which does all the virtual host stuff in one central place. And both the things which I install with apt and manually are set up similarly.
I use one docker setup for firefox-sync but only because doing it manually is not documented and even the docker way I had to research for quite some time.
What? No it doesn’t… You could still have just one postgresql database if you wanted just one. It is a big antithetical to microservices, but there is no reason you can do it.
But then you can’t just use the containers provided by the service developers and have to figure out how to redo their container which in the end is more work than just run it manually.
Typically, the container image maintainer will provide environment variables which can override the database connection. This isn’t always the case but usually it’s as simple as updating those and ensuring network access between your containers.
You absolutely can. It’s not like the developers of postgresql maintain a version of postgresql that only allows one db. You can connect to that db and add however many things you want to it.
Yeah why wouldn’t you want to know how things work!
I obviously don’t know you, but to me it seems that a majority of Docker users know how to spin up a container, but have zero knowledge of how to fix issues within their containers, or to create their own for their custom needs.
That’s half the point of the container… You let an expert set it up so you don’t have to know it on that level. You can manage fast more containers this way.
And I have no troubling spinning up new services, fast. Currently sitting at around ~30 Internet-facing services, 0 docker containers, and reproducing those installs from scratch + restoring backups would be a single command plus waiting 5 minutes.
Fair, but others, unless they are getting paid for it, just want their shit to work. Same as people who take their cars to a mechanic instead of wrenching on it themselves, or calling a handyman when stuff breaks at home. There’s nothing wrong with that.
I literally get paid to do this type of work and there is no way for me to be an expert in all the services that our platform runs. Again, that’s kind of the point. Let the person who writes the container be the expert. I’ll provide the platform, the maintenance, upgrades, etc… the developer can provide the expertise in their app.
A lot of times it is necessary to build the container oneself, e.g., to fix a bug, satisfy a security requirement, or because the container as-built just isn’t compatible with the environment. So in that case would you contract an expert to rebuild it, host it on a VM, look for a different solution, or something else?
30, that’s cute. I currently have 70 containers running on my home server. That doesn’t include any lab I run or the stuff I use at work. Containers make life much easier. I also guarantee you don’t know those apps as well as you think you do either. Just being able to install and configure something doesn’t mean you know the inner workings of them. I used to do the same thing you do. Eventually, I would rather spend my time doing other things or learning certain things more in-depth and be okay with a working knowledge of others. It can be fun and rewarding to do things the hard way but don’t kid yourself and think you’re somehow superior for doing it that way.
Correct, not all containers are for services. I would never say that docker is superior. I would however say that containers are (I can be pedantic too). They’re version-controlled, they come with the correct dependencies, etc… There are many reasons why developing with containers is superior and I’m sure you’re aware of them already. Everyone is moving to do exactly that. There are always edge cases, but those are few and far between these days.
I use apps on my phone, but have no clue how to troubleshoot them. I have programs on my computer that I hardly know how to use, let alone know the inner workings of. How is running things in Docker any different? Why put down people who have an interest in running things themselves?
I know you’re just trying to answer the above question of “why do it the hard way”, but it struck me as a little condescending. Sorry if I’m reading too much into it!
No, I actually think that is a good analogy. If you just want to have something up and running and use it, that’s obviously totally fine and valid, and a good use-case of Docker.
What I take issue with is the attitude which the person I replied to exhibits, the “why would anyone not use docker”.
I find that to be a very weird reaction to people doing bare metal. But also I am biased. ~30 Internet facing services, 0 docker in use 😄
This is interesting to me. I run all of my services, custom and otherwise, in docker. For my day job, I am the sole maintainer of all of our docker environment and I build and deploy internal applications to custom docker containers and maintain all of the network routing and server architecture. After years of hosting on bare metal, I don’t know if I could go back to the occasional dependency hell that is hosting a ton of apps at the same time. It is just too nice not having to think about what version of X software I am on and to make sure there isn’t incompatibility. Just managing a CI/CD workflow on bare metal makes me shudder.
Not to say that either way is wrong, if it works it works imo. But, it is just a viewpoint that counters my own biases.
I wanted to ask where the border of selfhosting is. Do I need to have the storage and computing at home?
Is a cheap VPS on hetzner where I installed python, PieFed and it’s Postgres database but also nginx and letsencrpt manually by mydelf and pointed my domain to it, selfhosting?
It’s self hosting as long as you are in control of the data you’re hosting.
I would say yes, it’s still self-hosting. It’s probably not “home labbing”, but it’s still you responsible for all the services you host yourself, it’s just the hardware which is managed by someone else.
Also don’t let people discourage you from doing bare-metal.
That’s actually a good point, self hosting and home lab are similar things but don’t necessarily mean the same thing
I would say there’s no value in assigning such a tight definition on self-hosting–in saying that you must use your own hardware and have it on premise.
I would define selfhost as setting up software/hardware to work for you, when turn-key solutions exist because of one reason or another.
Netflix exists. But we selfhost Jellyfin. Doesn’t matter if its not on our hardware or not. What matters is that we’re not using Netflix.
It depends who you ask (which we can already tell hehe), but I’d say YES, because you’re the one running the show – you’re free to grab all of your bits and pieces at any time, and move to a different provider. That flexibility of not being locked into one specific cloud service (which can suddenly take a bad turn) is what’s precious to me.
And on a related note, I also make sure that this applies to my software-stack too – I’m not running anything that would be annoying to swap out if it turns bad.
I don’t get hung up on the definitions and labels. I run a hybrid of 3 vps and one rack in the closet. I’m totally fine with you thinking that is not selfhosting or homelabbing. LOL I have a ton of fun doing it, and that’s the main reason why I do it; to learn and have fun. It’s like producing music, or creating bonsai, or any of the other many hobbies I have.
I’d say you need storage. Once you get storage, use cases start popping up into view over time.
Your stuff is still in the cloud, so I would say no. It’s better than using the big tech products, but I wouldn’t say it’s fully “self hosted”. Not that that really makes much of a difference. You’re still pretty much in control of everything, so you should be fine.
Where is the tipping point though? If I have a server at my parents house, they live in Germany and I in Korea, does my dad host it then because he is paying for the electricity and the access to the internet and makes sure those things work?
Your parents’ house isn’t the cloud, so yeah, it’s self hosted. The “tipping point” is whether you’re using a hosting provider.
They are using a hosting provider - their dad.
“The cloud” is also just a bunch of machines in a basement. Lots of machines in lots of “basements”, but still.
Their dad is not a hosting provider. I mean, maybe he is, but that would be really weird.
“hosting provider” in this instance I think means “do you pay them (whoever has the hardware in their possession) a monthly/quarterly/yearly fee”
otherwise you can also say “well ACTUALLY your isp is providing the ability to host on the wan so they are the real hosting provider” and such…
Isn’t my dad the hosting provider? I ordered the hardware, he connected it to his switch and his electricity and pressed the button to start it the first time. From there on I logged in to his VPN and set up the server like I would at Hetzner.
But you’re right it doesn’t really make a difference. I feel the only difference it makes for me where I post my questions on Lemmy if it is in a !selfhosting community or a !linux community.
From a feeling perspective, even if I use Hetzners cloud, I feel I self host my single user PieFed instance (and matrix, my other websites, mastodon, etc.) because I have to preform basically the same steps as for things I’m really hosting at home like open-webui, immich, peertube.
A hosting provider is a business. If your dad is a business and you are buying hosting services from him, then yes, he is a hosting provider and you are not self hosting. But that’s not what you’re doing. You’re hosting on your own hardware on your family’s internet. That’s self hosting.
When you host on Hetzner, you’re hosting on their hardware using their internet. That’s not self hosting. It’s similar, cause like you said, you have to do a lot of the same administration work, but it’s not self hosting.
Where it gets a little murky is rack space providers. Then you’re hosting on your own hardware, but it’s not your own internet, and there’s staff there to help you… kinda iffy whether you’re self hosting, but I’d say yeah, since you own the hardware.
Personally, I’d say no. At that point you are administering it, not hosting it yourself.
Why wouldn’t you just use Docker or Podman
Manually installing stuff is actually harder in a lot of cases
I did that first but that always required much more resources than doing it yourself because every docker starts it’s own database and it’s own nginx/apache server in addition to the software itself.
Now I have just one Postgresql database instance running with many users and databases on it. Also just one Nginx which does all the virtual host stuff in one central place. And both the things which I install with apt and manually are set up similarly.
I use one docker setup for firefox-sync but only because doing it manually is not documented and even the docker way I had to research for quite some time.
What? No it doesn’t… You could still have just one postgresql database if you wanted just one. It is a big antithetical to microservices, but there is no reason you can do it.
But then you can’t just use the containers provided by the service developers and have to figure out how to redo their container which in the end is more work than just run it manually.
Typically, the container image maintainer will provide environment variables which can override the database connection. This isn’t always the case but usually it’s as simple as updating those and ensuring network access between your containers.
Some examples:
and many more.
Well, yes that’s best practice. That doesn’t mean you have to do it that way.
You absolutely can. It’s not like the developers of postgresql maintain a version of postgresql that only allows one db. You can connect to that db and add however many things you want to it.
Yeah why wouldn’t you want to know how things work!
I obviously don’t know you, but to me it seems that a majority of Docker users know how to spin up a container, but have zero knowledge of how to fix issues within their containers, or to create their own for their custom needs.
You can customize or build custom containers with a Dockerfile
Also, I want to know how containers work. That’s way more useful.
That’s half the point of the container… You let an expert set it up so you don’t have to know it on that level. You can manage fast more containers this way.
OK, but I’d rather be the expert.
And I have no troubling spinning up new services, fast. Currently sitting at around ~30 Internet-facing services, 0 docker containers, and reproducing those installs from scratch + restoring backups would be a single command plus waiting 5 minutes.
Is that with Ansible or your own tooling or something else?
Fair, but others, unless they are getting paid for it, just want their shit to work. Same as people who take their cars to a mechanic instead of wrenching on it themselves, or calling a handyman when stuff breaks at home. There’s nothing wrong with that.
I literally get paid to do this type of work and there is no way for me to be an expert in all the services that our platform runs. Again, that’s kind of the point. Let the person who writes the container be the expert. I’ll provide the platform, the maintenance, upgrades, etc… the developer can provide the expertise in their app.
A lot of times it is necessary to build the container oneself, e.g., to fix a bug, satisfy a security requirement, or because the container as-built just isn’t compatible with the environment. So in that case would you contract an expert to rebuild it, host it on a VM, look for a different solution, or something else?
30, that’s cute. I currently have 70 containers running on my home server. That doesn’t include any lab I run or the stuff I use at work. Containers make life much easier. I also guarantee you don’t know those apps as well as you think you do either. Just being able to install and configure something doesn’t mean you know the inner workings of them. I used to do the same thing you do. Eventually, I would rather spend my time doing other things or learning certain things more in-depth and be okay with a working knowledge of others. It can be fun and rewarding to do things the hard way but don’t kid yourself and think you’re somehow superior for doing it that way.
Containers != services.
I don’t think I am better than anyone. I jumped into these comments because docker was pushed as superior, unprompted.
Installing and configuring does not an expert make, agreed; but that’s not what I said.
I would say I’m pretty knowledgeable about the things I host though, seeing as I am a contributor and / or package maintainer for a number of them…
Correct, not all containers are for services. I would never say that docker is superior. I would however say that containers are (I can be pedantic too). They’re version-controlled, they come with the correct dependencies, etc… There are many reasons why developing with containers is superior and I’m sure you’re aware of them already. Everyone is moving to do exactly that. There are always edge cases, but those are few and far between these days.
I use apps on my phone, but have no clue how to troubleshoot them. I have programs on my computer that I hardly know how to use, let alone know the inner workings of. How is running things in Docker any different? Why put down people who have an interest in running things themselves?
I know you’re just trying to answer the above question of “why do it the hard way”, but it struck me as a little condescending. Sorry if I’m reading too much into it!
No, I actually think that is a good analogy. If you just want to have something up and running and use it, that’s obviously totally fine and valid, and a good use-case of Docker.
What I take issue with is the attitude which the person I replied to exhibits, the “why would anyone not use docker”.
I find that to be a very weird reaction to people doing bare metal. But also I am biased. ~30 Internet facing services, 0 docker in use 😄
This is interesting to me. I run all of my services, custom and otherwise, in docker. For my day job, I am the sole maintainer of all of our docker environment and I build and deploy internal applications to custom docker containers and maintain all of the network routing and server architecture. After years of hosting on bare metal, I don’t know if I could go back to the occasional dependency hell that is hosting a ton of apps at the same time. It is just too nice not having to think about what version of X software I am on and to make sure there isn’t incompatibility. Just managing a CI/CD workflow on bare metal makes me shudder.
Not to say that either way is wrong, if it works it works imo. But, it is just a viewpoint that counters my own biases.