When I lived off grid, I wrote an energy production measurement application. With both hydroelectric and solar going through a 1990s inverter, it was something. Nowadays these are off the shelf for suburban yuppies, but for my DYI-everything homestead, only DIY would do. Measurement was via shunts. I put it online over satellite internet and could watch my production and static consumption from work.
Self-Hosted Main
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
For Example
- Service: Dropbox - Alternative: Nextcloud
- Service: Google Reader - Alternative: Tiny Tiny RSS
- Service: Blogger - Alternative: WordPress
We welcome posts that include suggestions for good self-hosted alternatives to popular online services, how they are better, or how they give back control of your data. Also include hints and tips for less technical readers.
Useful Lists
- Awesome-Selfhosted List of Software
- Awesome-Sysadmin List of Software
You built your own hydro? Tell me more!
From what I've gathered from youtube you'll usually need to create a height difference of some sort by damning up a bit of a stream, then have the overflow go through a pipe that's a sheer drop down onto an impeller attached to an electric motor (bonus points if it's recycled from something like a washing machine).
Then from that motor it's on to battery chargers etc....
I have two! The first is exotic purpose, the second is just tightly integrated so much that it might be only useful to me.
Smashcam
I live on a busy corner, in an otherwise slow and sleepy town right outside the city line. I live between a lot of town services on one side (fire house, library, athletic fields, town hall) and the elementary school on the other side. Pedestrian traffic is very high, the amount of children crossing is very high, bicycles abounds, and the cross street between them is decently high traffic.
So I see a decent amount of car accidents on my corner. 30mph limits on both streets so usually not catastrophic, you might be driving away instead of towed. But the repairs will be substantial on most of these. To provide an objective reality-as-a-service, I set up a camera high up in the eaves of my roof pointed right at the intersection. I've sent the police enough clips that they know where to archive my emails for evidence by routine. I've started training a model to detect car crash noises (and honks) to cut and save the clips automatically. It's not reliable enough yet, but this could become a reasonable pipeline:
Car crash audio detected ->
Notification "Possible crash, do you want to review the footage and send to the po-po?" ->
manual human review to make sure we're not sending false positives ->
hit send ->
email with clip constructed and sent
Photos
This is not exotic in terms of its purpose. Lots or people have self-hosted photo sites (heres a whole chart of them all!)
But none of them integrated with my foss RAW editor darktable.
So I built my own photo site alternative that parses the darktable edit files and DB.
So now on the web, I can see the ☆ ratings I gave the photos in my editor. The tags and labels, etc. I parse the RAW files to show the focus boxes that the cameras write in the metadata when they took the picture, the facial recognition bounding boxes, etc.
And it shows the edit history stack and all the edits from my RAW editor. And of course, it has the left-right swiper to show before/after the photo edits. I can export any size, and it calls out to darktable with command-line control to export with the given edit stack to make the JPG of whatever size I'm requesting.
So yes, alternatives exist. Mine is simply very specialized to a particular editor program. I don't believe I made the repo public, so as far as I know, I (and my family) are the only ones using it. It's probably more featureful than things I have released.
That with the car crash is awesome. I’ve read a few month ago of a gun shot detector someone was deploying around their city to triangulate where it happened, that’s more sci-fi than anything the law enforcement is doing. Kudos to you for helping out the police.
I suppose my most well known one is a recreation of the BBC's Ceefax service (https://www.nathanmediaservices.co.uk/ceefax/) - I wrote a program which scrapes the BBC and various other sources for data and turns it into old-style teletext pages. All hosted from my rack in the attic. Not very exotic but still.
Can you broadcast it via RTSP or something to your TV?
Future project: I have chickens. They lay eggs. I have cameras. I want to know which hen lays how many eggs. Solution? AI image recognition of the hens (who is who) and if they have laid an egg. Any inputs welcome.
You'd probably like this: https://www.reddit.com/r/homeassistant/comments/schcw0/diy_smart_chicken_coop_and_inapp_egg_counter/
I self hosted searxng, but the problem is after I was done I realised that defeats most of the privacy benefits of searxng: If I'm the only one using it, then I might as well just be using the search engines themselves directly.
So now I also have firefox running in a docker container, searching random junk on searxng every couple of minutes.
I have kubernetes cluster running a vanilla warcraft server full of computer controlled bots that play in the world while I'm offline, just chuggs away all day then sometimes I log in and see how the bots are doing and play a little.
Our car has wifi so you can connect to it and start the heat/ac. It doesn't have 5g/4g just no data wifi so you have to be within ~20 feet to warm it up. The app sucks also, along with connecting to its wifi.
Alexa "Warm Up The Car" -> Home Assistant -> trigger an android phone to run a touch script on the phone to run the stupid app and warm up the car -> then report back it did it correctly.
It still fucking works after 5 years and I refuse to even touch the damn thing, as it's way way too handy when it's cold out.
0815: Tell me you are German without telling me you are German :D
I too have a chicken cam, but no image recognition at this point. However, I have used it to discover that an opossum was breaking in and eating the eggs.
Other than that, the most unique things I have cobbled together are probably these:
- I work from home, so I created an automation using Home Assistant to tie into the Webex API to determine if I'm on a call or busy and, if so, turn on my Do Not Disturb light so that people don't just barge into my office.
- A script my son can run from my OliveTin dashboard to update our Minecraft server (docker container).
- Another script I can run from my OliveTin dashboard to log into my firewall and disable/enable my son's internet.
-- Both of these scripts notify me when they've been run via ntfy.
I love custom HA work flows that are specific to ones needs. Great job! Show’s the beauty of HA that most people miss when all they do is the standard stuff, but you can basically do anything you can imagine. I have door sensors and instead of only relying on a baby monitor, when my toddlers open their door after 2200, the lights turn on in the hallways (so they see something) and a light in our bedroom turns on as well as a notification on the phone. Because sometimes toddlers are sneaky and you hear nothing on the baby monitor. Set this up after I heard one of them cry two floors down (he went through the entire dark house alone down two flights of stairs).
I also used a cheap wifi motion sensor to tie into Home Assistant which triggers another automation for a smart bulb in my office to let me know when the dog wants in from the garage.
A former colleague of mine had an even more advanced version of this. Since his dog is chipped, and the chip is RFID, he hooked up an RFID reader to an Arduino, and built a dog door with a motor that automatically opens when his, and only his, dog is there, and sends him a notification.
The industry I work in has many many companies. For whatever reason they all seem to use a very similar website template. Job openings are almost always listed on their webpage. Almost always its a plugin from workday or whatever their HR software is. Years ago I noticed that job listings were almost always published to their websites before they appeared on major job sites like linkedin.
I used a business to business website that lists every single company in this industry by location and has a link for each to generate a list of companys and URLS. I monitor this for changes with changedetection.io
Then changedetection.io + company list and their job posting URLS that look like this company.com/careers/join-us/?_sft_job_posting_category=technical
So I now have about 800 companies that I am able to monitor for job leads and get notified via NTFY with company, job title and job description.
Its turned off currently cause I am actively employed, but when I was looking about a year ago I had it running hourly and if I look again I will indeed use it
RemindMe! 3 Days
I host two exotic solutions beside all other.
Restreamer https://github.com/datarhei/restreamer Complete stack to stream on each plateform without congesting my home network.
Rustdesk https://github.com/rustdesk/rustdesk-server Teamviewer like, very stable and as powerfull as I need.
RemindMe! 4 days
Mine is a bit exotic I guess. I use Terraform to manage my home lab. I tried all of the docker update solutions out there and they'd always make my Terraform out of sync. So I built my own solution that interacts with an orchestrator, a backend and a front-end.
I use Terraform to create flows for each service. Then the flows interact with the backend to manage the actual updates. The frontend is there to let me see the latest change log of each project before I update.
For my next project I want to set up an oil tank monitor for our heating. Then I can use Prometheus and Grafana to monitor usage. From there I can start making predictions and so on
Sounds very cool, and I'm going to be a huge ass and say that could have easily been done with k3s and either flux or argo image watcher.
+1 for terraform at home tho, I do the same and people look at me like I've curb stomped their child
Well we all need a 100G capable firewall sometimes
I need a connection that warrants a 100g firewall.
If you have fiber, chances are you can get a 100G+ connection.
Really? I’ve seen fiber being a nice treat only in some locations. Most of them are pushing 1gig with 10gig as the new option in select areas. I haven’t heard of any 100g broad rollout as a residential connection. Heck, who can even utilize that pipe? Besides a distributed mesh type network, I think even your best CDN’s can’t dedicate more than 10g (maybe 1) to a single client. Besides, what would that cost? Holy smokes.
One can never do without one.
I don’t know how exotic hosting a SIEM and EDR (Elastic Security) solution for self hosting ist but I do that. Complete with custom alerts and all. Additionally I use Wazuh for vulnerability management and integrity monitoring on my assets. Also I run a SOAR-like script that enriches my alerts with other SIEM and external Threat Intel data.
Is Elastic Security free? I have Graylog but the security functionality is not included in the free edition.
Also, if you don’t mind, what triggers did you implement?
It’s completely free even the EDR and Threat Intel functionality. It blows my mind too. The only things that are not free are things like machine learning detection, ransomware and cloud (k8) protection and other enterprise stuff like SSO. Besides the prebuilt elastic rules (https://github.com/elastic/detection-rules) I implemented about 50 of custom rules for stuff like too many failed logins, unusual traffic flow (you can also send flows from your FW to Elastic), user account creation, network reconnaissance, unusual geo-ip location etc.
The stack is based on the „pfELK“ docker compose file (meaning it integrates automatically with Pfsense/OPNsense logs) that I further modified to automatically include the fleet server and threat intel agent and stuff: https://github.com/maof97/pfelk-docker
Elastic Security
This is great, I've been running Security ONION for a while but looking to change it up. Right now all I can find is Elastic Security's cloud trial, can you point me to where to grab it?
I've recently did something that made my friend go "why the fuck would you even need that?"
I've recently discovered that I can't neither VPN into my VPS nor my home network from my college. Both OpenVPN and wireguard were not working. So, to fix that, I'm running a shadowsocks proxy, which is behind an nginx reverse proxy, through which I connect to my services.
Now, I haven't tested it with my college network yet, but based on other similar reddit posts I've read, it should theoretically work.
Spank me and tell me you host your own email.
Custom rss to iptv solution that monitors Peertube channels, scrapes the videos to grab a m3u8 if available and consolidates it to a iptv vod m3u with xmltv to serve it to my stream station
In 2016 purchased and jailbroke 20 iPhone 4, and later upgraded to 30 iPhone 5s on iOS 9.3
I wrote a custom theos tweak which injected an HTTP server into Snapchat.
A raspberry pi was running an nginx server as a load balancer across the 30 iPhones.
I developed an Android app called "Casper", which was a 3rd party Snapchat client. It sent http requests to my load balancer server to fetch signed security tokens from a random iPhone, which spoofed that it was the official Snapchat app.
The Snapchat APIs believed my app was the real app, so it could download and view snaps without the sender knowing it was even opened.
Self hosted an iPhone farm :)
Here's a link to my tweet with photos and videos of the setup for anyone interested!
https://twitter.com/LiamCottle/status/1406616490783117322
That is amazing! So much effort just to “hack” into Snapchats ecosystem, that’s what I’m talking about. I did or do the same with Pokémon Go to map areas. I’ve first used Android HTPC for that but now I use arm VM’s to walk around with dozens of accounts that will then report back the location of the Pokémon it detects as well as their IV’s and such, so you can just go there and catch your much needed perfect IV Pikachu.
A guys that I known did something similar: he bought lot of SMS unlimited SIMs, a bunch of cheaper chinese Android phones and he create an SMS gateway with this solution. After a while the telco start banning the phones from the network because they see an huge number of SMSs coming from the same mobile cell. Then he decide to spread the phones to friends and family, but after a while they got banned too. So he made an agreement with a friend that have a courier company and in every truck they put 20/30 phones sending SMSes all the time. Never got banned and he grow up the company until he sold it for 5 milion
RemindMe! 2 days
10 years ago I had a problem: I burn wood to heat the house. The problem was that many times I had something else to do and couldn’t wait for the fire to go out and close the hatch that lets air in the boiler. If the hatch is left open the air goes thru the boiler and cools it down quicker.
The solution: I installed a raspberry pi with a usb cd drive. From the cd drive I tied a fishing line via the adjusting arm to the hatch. When the cd drive opens the hatch closes. I then host a website on the raspberry where I can push for example on ”Close the hatch after one hour” and it would do it.
It was a temporary solution and I have had parts for a better arduino solution for years, but here we are 10 years later.
100g in the mountains? Where is this mythical place?
Switzerland, has to be. Once you learn about Init7's $70 25Gbps FTTH service, you get sad panda.
I've recently did something that made my friend go "why the fuck would you even need that?"
I've recently discovered that I can't neither VPN into my VPS nor my home network from my college. Both OpenVPN and wireguard were not working. So, to fix that, I'm running a shadowsocks proxy, which is behind an nginx reverse proxy, through which I connect to my services.
Now, I haven't tested it with my college network yet, but based on other similar reddit posts I've read, it should theoretically work.
I'm not hosting anything exotic right now, but in the past, before the -arrs existed, back in the 2000s:
- Linux computers in every room, all PXE booted thin clients I crafted myself from a pallete of off-lease computers
- A custom RSS feed to rtorrent to a MythTV setup that migrated video as you walked between rooms.
The first one was actually useful. The second one was more of a novelty I'd show to visitors.
2 years ago , when our 1st child been born, my wife was super stressed about how to raise her. Especially about sleep and feeding times.
I installed Baby monitor on docker and it provided huge help with her stress and with the baby ofc.
Simple but people were like WTF for sure
I have an automation that is triggered by a door open/close sensor that I have attached to the flushing arm in my toilet with a custom made 3d printed mount for the sensor, which triggers a script on the server which connects to the chromecast speaker in the bathroom and plays the final fantasy 7 battle victory theme whenever someone flushes the toilet. It is perhaps my favorite part of my home.
I wanted to know what the airquality was outside my house, but this was hard as multiple houses here use woodstoves, so i needed to compare the quality of air over multiple points to have a proper baseline.
In short, i now run a virtual m2m lora-wan provider for 5 sensors around my town that feed into homeassistant using mqtt, all sensors are battery powered with solarpanels and powered by esp32's.