I've never blogged about this directly before, but I operate my own ISP locally. I've got stable customers, and I'm profitable! I recently started getting bogged down on port speed however, we managed to exhaust an entire 10G port. Wowsers.
I've spun up new nodes to my cluster for higher bandwidth, and migrated some hosts over this evening. I use Grafana, Observium, and a few other tools to catalog + monitor everything in production - it's perfect for this sort of thing. Right now the new cluster node is averaging 2G consistently, which is pretty awesome. I didn't have to spend hundreds to spin it up either, due to my extensive work at scaling my business, it took me about 45 minutes and pushing some configuration files to customers.
Being an ISP, my customers have a variety of needs, some stream consistently, some are heavy data hoarders and download tonnes. As you can see from the above screenshot, there's a lot of data being transferred here. I do extensive monitoring on what is being used to ensure there is no abuse.
It started in 2016, I was fed up with the prices the local ISPs were offering, and they had shotty service at best. If you paid for a 1G pipe, you'd get at best 500Mbit down, 150Mbit up. This wasn't due to any congestion, they just didn't want to allot more bandwidth, despite selling it with more.
I entered into an agreement to lease lines, and colocated gear. I bought bandwidth from transit browsers, acquired an ASN + IP range. Bingo, I began. Selling was easy due to my area of town, I was the best option - I costed about $25/mo more than my competitors, but instead of 1G "symmetrical" with 5TB cap, I offered 1GB symmetrical with 50TB cap. That's a lot of bandwidth.
Automating this wasn't easy, a mixture of freeredius, ansible scripts to push config files. It works, it communicates back with my billing appliance, and my bandwidth calculator pumps the data into the billing appliance as well. At the end of the month, my customers get a detailed invoice stating amount used, average speed, and bandwidth credit (if applicable).
And, as of early this year, I am beginning to become profitable. This is a big milestone, it's been my dream to run an ISP, and it's happening every single day.
First, it's hard - the logistics of this all is complex. Before you consider it, get a list of at least 10-20 people who would sign up with you immediately. This helps bring in money, possibly startup funds to acquire equipment.
Start small, don't immediately buy 50G of transit, start with 1G, sell slowly, upgrade as you need. If you jump into it big, you'll lose big time.
Don't fold - even if your competitor is cheaper, keep your same rates - focus on quality not quantity.
Have an actual support panel and reply to tickets actively, engage customers.
Don't focus on selling your own hardware, it's OK to resell and put your own scripts on it.
Most importantly, have fun - this is an experience you'll never forget. You don't need lots of money, you just need passion.