would it make sense to host something on my main machine?
Not something that would have to be on all the time, but more something that can be off overnight.
This question feels like it has an obvious yes/no answer that I'm missing.
Long answer, you're going to get annoyed with it on your main machine, things like pihole will have all of your network traffic routed through it, they'll need to be constantly on. Plus with self hosting it's just better to have the server/client setup, you'll thank yourself later.
If cost is a factor, look into an old/used PC, I have old PCs from 10 years ago with linux servers running on them.
If power is a factor, look into a simple raspberry pi, or I like the potatos as well (found on Amazon)
Pihole will have all your DNS requests routed through it at least, not all your traffic. But of course without DNS not much traffic is going anywhere anyway.
I really like having separation of duties between my main laptop and my home servers. I’m constantly screwing around with my laptop and I really don’t want eg a laptop reboot to screw up my phones ability to resolve DNS.
My home servers sit in the garage and rarely get touched unless I’m doing some serious maintenance.
From experience I would say avoid this. I started my homelab this way. First it was a plex server just so 1 family member could locally stream movies without me having to copy it to a flash drive. Then another family member saw it, so it was 2, then 3. Less than a year later I have ~10-15 regular regular streamers and I can't play video games on my computer from the hours of 4PM to 1AM because my CPU was being hit so hard.
Eventually I built a new gaming rig, pulled out my GPU. Turned the old machine into a full time server and gamed on the new machine.
For something such as PiHole, your main machine may be overkill honestly. It can run on literally potatoes (or raspberries). That being said, if the price of keeping your machine on is not an issue, it's perfectly reasonable to run something on it whenever it'll be needed. If possible, potentially a smaller computer like a Raspberry Pi may work for this, or even a small online VPS (cloud server).
No. It will become a pain. For 100$ you can get an SBC or, better yet, a second hand HP Mini computer with 6-8th gen i3/i5 CPU that is most likely enough for your needs.
It would make sense to host something on your main machine if your main machine will be the only machine that needs to access it.
If you have any other devices that will use that hosted service, imagine how annoying it will be to try and use it, forget that you didn’t turn your main machine on yet today and you have to get up and go turn it on. And for what? What positive benefit would you get to counteract that inconvenience?
If any other device on your network, such as your phone, exclusively uses pihole for DNS, they won't be able to resolve web addresses when your computer is off - effectively cutting off internet access. Pihole should really be running 24/7 to avoid complications.
It would make sense if you're using your main machine to test the waters with to see if it's worth getting invested.
So your pihole as an example would work as follows:
Install Docker.
Follow the docs to install the container/image/etc. for pihole
Change your home router's DNS entries to now START with your main machine.
--Your main machine goes offline for the night, your home router uses the secondary as does everything else that's now been taught by DHCP to use your main machine for primary DNS.
Make your call and break it all back to where it started.
With the primary DNS being a "local", I can't imagine it taking that long to realize it's offline and change to the secondary DNS on most devices. Make sure you set your "main machine" to a Static/DHCP Reserved IP on the home router, as a good general practice.
Other things I self-host are media related. I like to watch media from bed instead of in front of the computer. I turn my computer off when I'm not at it.
I could see if you were like hosting a local repository maybe. Like you want that whole "self-hosted" GitHub experience. That would be a decent use case for main machine hosting. Or VMs for testing different environments.
Just fyi how a client handles multiple DNS servers might not always be you expect and just depends on how it was implemented. Some clients can just send a DNS request to all DNS servers at once and take whatever responds first, essentially randomizing which DNS server gets used
@backhdlp@selfhosted What is going to depend on the thing you're hosting? If you are browsing the web on your main computer, through an ad-blocking proxy on your main computer, obviously it is fine for the proxy to go away when your main computer is off. But if you want to browse the web on your phone through that proxy when your computer is off, it won't work. If you want your phone to stop using the proxy when your computer is off, that's going to end up being a pile of duct tape.
as the name implies pihole is often installed on a Raspberry Pi which is left runnign 24/7. You may consider getting one, even an older model. It's a perfectly cromulent computer. Note: There are also non-Raspberry Pi's which might be cheaper - the generic term is "single-board computer" or SBC.