Overall hardware platform:
4 pcengines alix boxes for openbsd router/firewall appliances
3 supermicro Opteron servers with KVM/corosync/Sheepdog/csync2 for hosting all VMs
Software:
PF + CARP + pfsync + OpenBGPD for routing
Unbound + NSD + Bind for DNS
SSH/OpenBSD ipsec/apache Guacamole for roaming and permanent site-to-site VPN (pcengines ALIX hosted at my inlaws in Japan)
Apache + Lets Encrypt + awstats + relayd for serving web pages and analysis
ZoneMinder for video monitoring. Tied into legacy security system for automation
Postgres for database work. Some mysql/redis
NetDisco + Nagios + NagVis + NFSen + MRTG + Smokeping + PNP4Nagios + NUT + Splunk + Racktables for monitoring. All configs are dynamically generated from netdisco db
OpenSMTPD + Citadel (webcit) for email delivery and webmail
Minetest server for kids. We use this tons as a family, and the kids spend lots of time modding. TW2002 server. TShock server.
OpenELEC for diskless netboot KODI machines around the house
Samba4 Domain controller + NFS for sharing files in different applications
SVN for source control and Config diffs for all servers/tools/network devices
Asterisk via FreePBX / NCID for all phone/CallerID services, including remote handsets at VPN locations
And that's just the ones that I really enjoy using off the top of my head. I hope to find lots more things to try in this thread. Metabase already looks like an awesome candidate!
Hardware actually cost money. Here's a breakdown:
> 4 pcengines alix boxes for openbsd router/firewall appliances
These were around $120 each with 4GB flash storage at the time. They're half that now. Low power, no cooling required, x86, 3 ethernet. You could buy APU2 now for more power
> 3 supermicro Opteron servers with KVM/corosync/Sheepdog/csync2 for hosting all VMs
I used cheap cases, eBay MB/CPU/RAM, tiered storage (green/black/ssd) to keep costs down and infiniband for 10gbit interconnects ($15/card on ebay!). I made sure to get quality components (esp MB/power supplies). One of the servers is also my desktop. I'm guessing they were about $800 each. Having the 3 node cluster is nice. When we had a forest fire threaten our town and we were ordered to evacuate I just grabbed one box and all my data was already replicated to it. When we returned home I plugged it back in and it re-synched back up.
Maintenance has been a non-issue. I haven't had any components die except the occasional HD. Power costs are the main thing. Estimate about $500/yr at $0.10/KWh
> PF + CARP + pfsync + OpenBGPD for routing
I use a local indy ISP that gives me a bunch of static IPs and lets me route a /29 with BGP. I know them fairly well, and get a sweet deal. Doesn't cost more than a regular consumer connect, though it is slower. I've used OpenBSD since the early 2.x days, and find it very easy to administer. The release and documentation quality are second to none, and I've found the community to be very helpful as long as you've tried to help yourself first.
> Unbound + NSD + Bind for DNS I keep my Bind server vlanned off and serve everything out thru unbound/nsd. Both of those programs are very easy to set up, the real beast being bind. I know there are better alternatives out there, but I know Bind well and have lots of custom config I don't want to throw away.
> SSH/OpenBSD ipsec/apache Guacamole for roaming and permanent site-to-site VPN (pcengines ALIX hosted at my inlaws in Japan)
If I were to pick one outstanding program on this list it'd probably be Guacamole. Pure HTML5 rdp/vnc/ssh/telnet/etc client that is seriously amazing. I've set it up at a half dozen places now, and it's never so much as hiccuped. OpenBSD IPSEC is VERY easy to set up, if you've had nightmare experiences with other packages!
> Apache + Lets Encrypt + awstats + relayd for serving web pages and analysis
Apache is the old standard, and awstats is cool for keeping tabs on what is going on in the logs (geoip as well). Lets encrypt was amazingly easy. I'm using certbot and set it up in under an hour. I'm forcing SSL on all my web services now. Relayd is another "so simple and it just works" package from OpenBSD. I use it as a front-end load balancer.
> ZoneMinder for video monitoring. Tied into legacy security system for automation
On Debian (my Linux distro of choice), this was simple to set up. Perl scripts to integrate it into my DSC security system. Auto arm/disarm camera recording and relay light control required the IT serial integration board and programmers manual for the system
> Postgres for database work. Some mysql/redis
I've been using postgres forever, so setup and use are second nature. An absolutely incredible piece of software engineering.
> NetDisco + Nagios + NagVis + NFSen + MRTG + Smokeping + PNP4Nagios + NUT + Splunk + Racktables for monitoring. All configs are dynamically generated from netdisco db
This is another stack I've set up at many locations (including businesses). They are a real timesink to integrate together. I have MANY custom scripts to make the config generation from netdisco work properly, but once setup you have total insight into every aspect of your network (and I forgot to list RANCID!). Netdisco/NFSen on their own are still a killer combination, and work as well or better than packages that cost tens of thousands of dollars. I'm happy to help any one trying to set these up if you PM me.
> OpenSMTPD + Citadel (webcit) for email delivery and webmail
Citadel is maybe the weakest thing I have in my stack. I'm looking at the other webmail solutions in this thread carefully
> Minetest server for kids. We use this tons as a family, and the kids spend lots of time modding. TW2002 server. TShock server.
When your kids are asking to learn LUA, you know something is working!
> OpenELEC for diskless netboot KODI machines around the house
Amazing and easy to set up if you already have your own DHCP server you can modify. Just need tftp and nfs after that. Using OLD desktop PCs for this works great. I'm using cast off dell gx290s
> Samba4 Domain controller + NFS for sharing files in different applications
I've been using Samba4 since pre-alpha (TP series) when you had to run your own LDAP server. Things are so easy now its hard to overstate. Using Bind makes it a bit trickier since I need to add some magic entries, but if you use the builtin its a single python script between you and a full SSO AD domain.
> SVN for source control and Config diffs for all servers/tools/network devices
I found SVN config to be a bit of a head-scratcher. I think this is another one where other tools are probably better nowadays. I'm looking at some of the other things people are suggesting.
> Asterisk via FreePBX / NCID for all phone/CallerID services, including remote handsets at VPN locations.
Another timesink. PBXs are hard to configure, and I'd move to another system if there was something less esoteric.
As to why I do it? I find it satisfying to learn how things work, like the idea that I'm master of my own destiny and know how my data is being used
Any specific questions, let me know!
Even in BC with $0.10/KWh it still adds up, but I write it down to education, privacy and entertainment : D
Rancher (to control Docker stacks, set up HTTPS with Let's encrypt, etc): http://rancher.com/
GitLab (git repositories): https://about.gitlab.com/
Rocket.Chat (internal chat): https://rocket.chat/
Sentry (production code error handling): https://sentry.io/welcome/
Metabase (DB analytics and graphs): http://www.metabase.com/ Mailu (email server): https://github.com/Mailu/Mailu
Mailtrain (email marketing, using Mailgun or SparkPost): https://mailtrain.org/
KeeWeb (password storage and handling, kind of "self hosted", offline app): https://keeweb.info/
KeeWeb is a drop in replacement for KeePass, it uses the same format, so you can use the same Android clients to open the same file. IMHO It's a lot better than KeePass, especially if you are in Linux.
KeeWeb is written in JS with desktop apps using Electron. I moved away from KeePass to KeeWeb because, although KeePass was first, it is old now, it was written for Windows and then ported using Mono to Linux.
As it uses Mono for Linux, that generates some issues. For example, I couldn't copy a password from the interface and paste it in a Terminal (I'm not sure if it was because I use Tmux all the time). It handles the clipboard in weird ways. I had to paste it somewhere else, like the browser and then copy it from the browser to paste it in the Terminal. With KeeWeb it works normally.
Recently they added support for a plug-in that creates a local server compatible with the one created by plug-ins in KeePass. It can then be used by Chrome extensions like: https://chrome.google.com/webstore/detail/chromeipass/ompiai...
That last part is what made me finally decide to go for KeeWeb instead of KeePass. It gives you "LastPass" like functionality in the browser while you keep being the one that handles your encrypted DB. And then you can store that file in Dropbox, so that you have access to it everywhere.
[0]: https://www.archlinux.org/packages/community/x86_64/keepassx...
[1]: https://www.archlinux.org/packages/community/x86_64/lastpass...
Syncthing mirrors everything between my desktop, laptop, and phone (and there's an Android app[2] that works with OpenKeychain[3] so passwords are accessible from my phone). I haven't done this yet, but it'd be trivial to also run syncthing on a cheap VM somewhere, and replicate the passwords to it (but obviously not my GPG private key) for disaster recovery.
0: https://www.passwordstore.org/
Most services are tied to my email, so I have both 2factor auth AND recovery codes that I have stored in a safe place. Additionally I have the Keepass password written down in a safe (separate) place just in case. This is my backup in case I lose access to my Keepass db.
As one last bit, I have Keepass to auto-lock after a bit of inactivity, so I'm constantly retyping that password. This helps me memorize it.
In many ways this keeps me safer. I stay logged out of most websites by default. It can also protect me against terrible password policies. For example, I once had a bank that limited passwords to 8 characters. I had Keepass remind me to generate and rotate that password every quarter just in case. When Heartbleed dropped, I marked all my passwords in red and only changed them back when I updated that website password.
- GitLab as an alternative for GitHub https://about.gitlab.com/
- Restyaboard as an alternative for Trello http://restya.com/board
Even an hour a month of lost dev time would make it worth it.
Does Plex count? If so, Plex. I love it, and don't remember how I lived without it.
Definitely suggest giving a try! I'd absolutely love it if the same functionality were available with git/github.
[0] http://fossil-scm.org/index.html/doc/trunk/www/index.wiki
It's basically self-hosted Dropbox, with clients for all mayor Desktop and Mobile OSes. I set it up for a little team project. Just one account, and a shared folder where people with a password could upload. I think we will move to individual accounts at some point.
But it supports much more. It has a calendar similar to Google Calendar and I've switched to it. It also has plugins for image galleries, contacts, LibreOffice in the browser, collaborative editing like EtherPad, and so on. I was very sceptical, but it is really well done.
Everyone is welcome to contribute at https://github.com/nextcloud/ :) And in case anyone is in Berlin, we’re having our annual conference at the moment! https://nextcloud.com/conf/
Do you expose it over the internet or access it through a VPN?
I have mine configured as a public website with most data protected by the inbuilt encryption, and I use EncFS directories to sync more sensitive data across machines. Some things require client-side encryption and this is easy to achieve.
After getting tired paying GSuite/GMail $5/mth per user I figured it's time to get my own email server running again.
Runs on a single $10 Linode instance, pretty easy to setup, super-easy to maintain, does a great job making your emails _not_ end up in the Spam Folder.
I was very pleasantly surprised, and have been hosting email for one of my domains on it for almost 4 years now. It was very easy to set up, and has been very easy to maintain.
Highly recommended.
Dokku - Heroku-like Docker env for Ruby on Rails development
The only reference I found online is a single deleted blog post. Can someone please point me in the right direction?
It basically runs almost every service I use:
- Plex. I tried to use XBMC, but Plex just kills it with their mobile app as well so I can just continue watching on the iPad. It's like having your private Netflix.
- OwnCloud, a self-hosted Dropbox/Google Drive. I keep my password database (KeePass) here and it nicely syncs across my devices. I also store non-essential photos there.
- cgit, a simple Git server. I used to run gitlab, but this is much more elegant and simple for archiving repo's and hosting my personal repo's, I don't need much.
- OpenVPN Server, in case I am in a country where there are certain restrictions to what I can access and what not. Also useful in case I need to access some stuff I don't expose over the internet.
- Henk, my personal home-automation system. I've automated various parts of my home, such as lighting, air conditioning, heating, roller blinds etc. It's a bit too exhaustive to outline here. In short, some micro services hooked up over Kafka. I have multiple instances of those services running in some EC2 machines on Google Cloud in case something happens to my home-server. This is probably the most important piece of software I have running. It's fully automated, so if it goes down, I'll lose the comfort of the AC turning on when I am on my way home.
- Camera security system. I used to work at a camera security company. I run their software to monitor my home.
- Transmission, torrent client. I've written some scripts for post-processing downloads. When a move finishes downloading, it moves it into the right location, looks up subtitles on OpenSubtitles.org and adds it to Plex.
- Nginx + LetsEncrypt for all of that. All of those services have web-interfaces. I run the web servers locally and use Nginx's reverse proxy to expose them on a subdomain. LetsEncrypt certificates for all of it.
I've considered renting dedicated machines, but I don't really feel comfortable not having this on my own servers.
Other tid bits:
- I live in Romania, 1Gpbs/down costs about $5/month here. Same goes for electricity, that costs about $15/month for the entire home.
- Webmin for admin and monitoring (better than Nagios imo). http://www.webmin.com/
- Postfix + OpenDKIM for self-hosted email sending & forwarding.
- SFTP/Samba/AFP for my fileserver.
- Ikev2 VPN https://github.com/jawj/IKEv2-setup
- Wekan (Trello clone) https://wekan.github.io/
- Taskwarrior + Taskserver (Todo lists) https://taskwarrior.org/
- Syncthing (File sync) https://taskwarrior.org/
- The Lounge (IRC client) https://github.com/thelounge/lounge/
The "Awesome Selfhosted" GitHub repo is a decent place to discover things: https://github.com/Kickball/awesome-selfhosted
There's also Gitea which is a fork of Gogs after some contributors became concerned with the bus factor, very slow feature development, and occasional disappearance of the maintainer of Gogs. I haven't use it but that's probably what I'd try first now.
Saves me a lot of money vs using something like MailChimp.
[1] https://github.com/pavlovai/match
[2] http://readevalprint.tumblr.com/post/163569150438/your-perso...
Self hosted BI tool.
I always wanted to have the habit of taking lots of notes, but I didn't really like having to carry around a physical notebook. I set up etherpad and now I constantly use it to take notes. It has saved me so many times!
Works on OpenVPN clients and had zero problems connecting multiple users for many months.
I'm having 5 dedicated servers at Online.net + Small VPS at Scaleway & OVH; + some backup boxes at friends behind an ADSL.
Tinc for the private network
Proxmox & CBSD for VMs/FreeBSD Jails
Prometheus
ELK
Gitlab. Used gogs in the past but it missed features I needed
Etherpad
Hackpad
nginx + dehydrated (let's encrypt client)
PowerDNS + PowerAdmin
Modoboa (email stack. postfix/amavis/web interface/…)
Rainloop (email web client)
Cloud-Init with No-Cloud
rsyncd
pgsql, mysql, redis, riak, elasticsearch
charybdis (ircd)
bitlbee
znc
irssi
PmWiki
Sentry
Mastodon
Minio
… :) self-host is <3
edit: typo & forgot minio
Support is fast and always reactive as well.
- GoCD - https://www.gocd.org/
- Hadoop
Technically it's an email client but since it works in your browser anyway, you can run it on a server as a personal webmail. It can work with a local MTA or regular accounts at other providers for which it provides automatic configuration with ISPDB. It supports all the basic functions and GPG.
Awesome home media library solution. I finally broke down and bought the lifetime license so I can download media to my tablet and watch it offline.
But even without the license the software is rock solid and amazing.
Other than that my list resembles other lists.
pcengines apu for home router
gitlab (I actually found that gitlab was overkill for personal use so I either use gitlab.com private repos or just git+ssh at home)
nextcloud for family pics
siptrack for password and inventory management
kodi
openvpn to access my LAN
I have a kvm hypervisor at home with a homebuilt nas for setting up testing and PoC virtually.
the nas is fedora+zfs+iscsi with one 4x2.5" SATA 5.25" bay in an external cradle connected with eSATA and one internal 5.25" bay with 6x2.5" sata disks. all disks 1TB, two separate zpools with raidz.
I've tried in vain to find an open-source equivalent that has TeamCity's world view regarding snapshot dependencies and VCS triggers, but so far my search has left me empty-handed. That, plus the wide variety of niceties it bakes in (manually cancelling a build that was running for much longer than usual? It will automatically offer to add a note to that build that it was cancelled because it was hung. Etc.) has made it hard to use anything else. The search continues...
For those who don't know, they give out $free licenses to open source projects so it's a viable and more customizable alternative to TravisCI for your next Github adventure if you want to try it out.
It's even $free for closed source with <= 20 build configurations. I'm sitting on... 19
Website: nginx + Let's Encrypt + Piwik (analytics)
Mail: mailcow
IM: Riot.im
Blog: Pelican static site generator
Logs: Graylog
Monitoring: Zabbix
Seedbox: deluge
Music: subsonic
File sharing: Seafile
Contacts&Calendar: Nextcloud
DNS: unbound
VPN: OpenVPN
Git: Gitlab
There is probably more.
https://chrome.google.com/webstore/detail/web-maker/lkfkkhfh...
KeeWeb (for accessing KeePass database) - https://github.com/keeweb/keeweb
I've started to use QueryClips for all of my simple querying and sharing. It's got some advantages over Heroku Dataclips, like the ability to invite your colleagues, support for MySQL, etc.
Disclosure: I made the app.
nginx deserves particular mention for handling a HN frontpage crowd on a single-core VM without even blinking.
ELK Stack.
I wish it had a proper API, though.
I plan to start self hosting a copy of five-filters rss, which scrapes full text from rss feed articles. It is basically the ultimate ad blocker / AMP replacement.
Does Syncthing count as self hosted too?
Self-hosted option absolutely annihilates Chart.io and Periscope Data on pricing.
EDIT: Oops, wrong definition.
- Koel (Web-based music player; https://github.com/phanan/koel)
- Aria2 (generic downloader; https://aria2.github.io/)
- GPodder (podcast downloader; https://gpodder.github.io/)
- PiHole (mostly for curiosity, I now use full-blown DNS & DHCP servers; https://pi-hole.net/)
- OpenVPN (https://openvpn.net/)
- Pritunl (OpenVPN failover; https://pritunl.com/)
- PlexPy (Plex monitoring; https://github.com/JonnyWong16/plexpy)
- BIND (DNS server; https://wiki.debian.org/Bind9)
- ISC-DHCP (https://wiki.debian.org/DHCP_Server)
- Smokeping (connection monitoring; https://oss.oetiker.ch/smokeping/)
- Ansible (central host with playbooks; https://www.ansible.com/)
- Graylog (log aggregation; https://www.graylog.org/)
- Wallabag ("read it later"; https://wallabag.org/en)
- Home Assistant (home automation; https://home-assistant.io/)
- Bookstack (documentation; https://www.bookstackapp.com/)
- Observium (network devices monitoring; https://www.observium.org/)
VMs:
- PfSense (firewall & permanent VPN for some containers; https://www.pfsense.org/)
- Rancher (Docker orchestration; http://rancher.com/)
Rancher (Cattle environment):
+ ELK stack (https://www.elastic.co/)
+ Concourse CI (just to experiment, I prefer GitLab's CI; https://concourse.ci/)
+ Dumpster (my own temporary file upload platform, with additional YubiKey support; https://github.com/nmaggioni/dumpster)
+ Own Telegram bot (talks with ELK)
+ Let's Encrypt renewal daemon
+ FaaS (either https://github.com/iron-io/functions or https://github.com/alexellis/faas, even though I'm actually waiting for https://openwhisk.incubator.apache.org/)
+ Private Docker registry
I may have left something out, some more services/containers/VMs are disabled due to low usage.
- znc bouncer - caddy server that proxies to a few sites - libreelec/kodi - dnscrypt server
Aria2c for torrents and other downloads.
Wireguard for vpn.
portainer for nice docker mgt ui
discourse for forums wordpress w discourse sso
netdata for health monitoring
pg
actionherojs for microsvcs
simplesamlphp
shinyserver
cocalc for notebooks
looking at nextcloud if i can get libreoffice to behave w ssl