This is an old revision of the document!
Selfhosting
Self-hosting is the approach to be independent from big corporations for your digital life. I think that this is important because depending on some for-profit external company to provide you services and tools on which our today's life depends so much is risky. Leaving aside privacy considerations (which you shouldn't, just saying) it can lead to a few more issues like vendor lock-in (where you are forced to keep purchasing devices from the same brand/type or you lose years of photos/mails/etc) and like exploitation (because, frankly, we are used to have those services “for free”, but what if Google or Apple put a pricey price tag? What will you do?) and, why not, like enshittification (who would like to watch ads and worse every time you receive a WhatsApp message or email?).
Self-Hosting is possible, might be less difficult than you expect, and indeed can be fun. I do it mostly for fun, i admit.
The end goal is to have the following functionalities hosted on your server at your home:
- Sharing files and documents
- Centralized, shared calendars
- Store your address books
- Backup and access your photos
- Control and access your Smart Home stuff
- Access your media files (films, tv shows, music…) and stream them
- Grow your media collection
- Host and manage your emails
Architecture
Local, internal, server at home. It contains most of the services.
Remote, external, server hosted somewhere on the network. It acts as a thin client redirecting connections to I have a home server (i will call it “local”) and an external front-end server (i will call it “remote”). Everything is stored on the local server, the remote server is a thin lightweight server used only to tunnel back to the local server all the external requests.
The advantages of this solution are:
- Secure setup (encrypted tunnel to home, all services exposed trough https, well, almost all)
- Easy maintenance: only an SSH tunnel, the front end has nothing else installed except SSH.
Main services
- webcam / DVR access
- Photo backup and storage
- PRivate files sharing
- Sailing access
- Home Automation services
- GIT and such
- Printer and scanner
- Mobile devices synchronization
- more
Detailed pages
File Server Set-up a full fileserver for remote access
Router Server Set-up your linux router
- Local host setup
- Remote host setup
- Interconnection tunneling
- nginx setup
- certbot (for HTTPS)
podfetch PodFetch
-oHostKeyAlgorithms=+ssh-rsa