home server
This article is a stub. You can help the IndieWeb wiki by expanding it.
A home server is a machine you keep at home to host some of your services. Most people chose to run a machine dedicated to this, but it's also possible to use your everyday desktop/laptop computer.
Why
This section is a stub. You can help the IndieWebCamp wiki by expanding it.
Some folks like to host and maintain their personal sites or other websites from servers at home for reasons of ownership, control, or because itβs a hobby they enjoy.
How to
This section is a stub. You can help the IndieWebCamp wiki by expanding it.
There is a bunch of generic guidance below which lack any real world examples, thus may be a source of ideas, however you may have to figure out and navigate a precise "how to" setup and maintain a home server on your own, and build your own expertise as you do so.
IndieWeb Examples
Josh Glenn
Josh Glenn manages & runs a miniPC (Intel N95 CPU miniPC with 16gb of RAM & 512gb SSD it's a modern one with low footprint - aka power usage) which runs YunoHost over at https://minipc.space it uses the domains:
https://hardened.computer which is a https://immich.app instance self hosted on his own computer hardwar to save and store all his photos and videos instead of using Google Photos or "the cloud". Josh also has a lifetime supporter license for this instance.
The same server also houses a Nextcloud instance for talking amongst family members and sharing contacts (phone contacts) between family. The domain and URL for this is: https://opensourcehero.me/nextcloud Nextcloud is found at: https://github.com/nextcloud
Xuid0.me (talk) 13:44, 28 February 2025 (PST)
Greg Sarjeant
I run a repurposed Supermicro tower server that provides some services for subcultureofone.org. There's currently only one (so a couple of those plural words up there are aspirational), but I'm hoping to add more now that I've got one working the way I want.
Services:
- https://social.subcultureofone.org (mastodon)
... add yourself
Are you running a server at home and comfortable disclosing that you do so? (Please consider your own personal security requirements before listing yourself here).
- Add yourself here⦠(see this for more details)
Brainstorming
The following are hypothetical thoughts and considerations added by various folks in the community, none of which are actually based in any cited real world experiences, so please take them with many grains of salt.
They may be completely made up or they might be based on some expertise. It's hard to tell, so you need to evaluate for yourself.
Any generic (not specifically indieweb-relevant) information about home servers should probably be moved to the appropriate Wikipedia article.
Privacy
Aiming for more privacy and technical autonomy, many people chose to host their personal data (such as blog and email) on machines they have physical control over.
One of the main reasons is to ensure your private data is not accessed by people without your knowledge. If your data is sitting in your living room, you can be sure it's not going to be sold to third parties without your explicit content.
Also, in many countries throughout the world, law enforcement requires a judicial order to penetrate your home and seize your data, while a machine hosted in a datacenter may be handed over to local authorities without any warning or warrant.
Network
Self-hosting requires a decent network speed (especially, upload speed) and a rather unfiltered (neutral) access to the Internet.
An upload speed of 1 Mbit/s is a good starting point for hosting private services for your whole household, but is definitely not enough to (directly) serve a public blog with many readers.
Many Internet Service Providers typically block ports (such as 53 to block outgoing emails) or filter content (to slow down Bittorrent). Make sure your ISP respects net neutrality.
If you have a professional-grade fiber connection, you probably are safe in terms of both speed and neutrality.
Safety
Home servers, like any server, require a safety check:
- Is the server well ventilated?
- Is the hardware on which the server is running reliable?
- Are there systems in place to monitor the heat of the server?
Homenet
Home servers can offer the benefit of accessing your data through your home network, without impacting your external traffic. This is especially useful to access your data offline in the event of an internet outage.
Webhosting
There are a few considerations unique to home webhosting.
Security
Hosting from home may encourage attempts to exploit your home network, especially if you broadcast the technical details of how you implemented your server live. This has discouraged capjamesg from trying to build a home server.
These can be mitigated by taking steps such as:
- Only opening the correct ports
- Implementing a security login solution
- Using fail2ban
- Using a DMZ
ISP Relations
Your relationship with an ISP may be affected if your site attains a certain level of traffic. On a business connection, this is not too much of a problem. On a home connection, a single network device that receives thousands of inbound connections per day from all across the world may raise some flags.
Energy Usage
A home server consumes energy. For a smaller board such as a Raspberry Pi, the impact on one's power bill will be small. For larger implementations, a home server may inflate the cost of a power bill.
What's more, a home server should have a backup system for power dependence. If there is a power outage and there is no backup power system, the web server will be down.
How
Hardware
Your home server can be any machine you connect to the Internet, such as a phone, a desktop computer or a NAS.
People usually use a dedicated machine out of security concerns. Sharing a machine for different services is not in itself a problem, but having your personal data sitting on a machine where you run unverified and potentially malevolent code (for instance, through a modern browser's Javascript engine) is highly unadvised.
Second-hand hardware
Second-hand hardware (whether desktop or laptop) is ideal for a home server. It doesn't take much CPU or RAM to host web, email and instant messaging services.
For equivalent power, hosting second-hand hardware as a home server will probably cost you just as much (in electricity) as would a VPS in a datacenter.
An old laptop is perfect (built-in backup power and disk space), especially the ThinkPad T400/T500/X200 lines, since they are near silent, even if their fan is on. petermolnar is using his old T400 as a home backup server.
Single-board computers
If electricity where you live is scarce, expensive or unreliable, you may want to acquire in a low-power single-board computer, such as: RaspberryPi, BananaPi, Olimex.
Contrary to second-hand hardware, single-board computers requires an initial investment of between 20$ and 200$. But their low power consumption (1-10W) makes them very cheap to operate in the long run (usually < 1$/month).
The Internet Cube (La Brique Internet in French) is an Olimex free-hardware board pre-installed with YunoHost, and is distributed by hackerspaces and non-profit Internet Service Providers throughout France and Belgium.
If you're purchasing a single-board computer, it may be well worth considering finding second-hand solar panels and batteries to make your home server fully autonomous. There's examples throughout the country-side of non-profit ISPs (such as FFDN and guifi) deploying autonomous relays and access points so that Internet access may still be available when the electricity is cut in your neighborhood .
Software
You can use a personal cloud to make it easier to administrate your server. An example of this is YunoHost which is found at [1]
Routing
Most ISPs block external traffic from entering your home network (for very good security reasons!). You will likely need some kind of configuration to allow the external traffic to reach your home server.
Port Forward
The cheapest option (though may not be supported by all ISPs) is to configure your router with a port forward
Gateway or Load Balancer
An externally hosted gateway or load balancer can receive traffic and redirect it to your home server. This can have additional advantages such as firewall, hiding your residential address, and caching content to reduce load. This may still require you to setup port forwarding so that the gateway or load balancer can reach your home server.
Tunnelling
Another possible approach is to use tunnelling, e.g. Cloudflare Tunnel, to expose a self-hosted server to the public web without exposing your residential IP.
(Note: Cloudflare Tunnel apparently doesn't work for wildcard domains, but could be used for individual services, e.g. if you wished to setup a subdomain for locally hosted dynamic content like webmentions, micropub etc., while keeping the apex domain hosted on static hosting.)
Secondary Server
If you have issues with your ISP or security another option is to have a secondary server hosted outside of your home. The way this works is that the secondary server can broadcast the services that it provides, storing any requests for those services, then the home server can reach out to fulfill the requests.
The main advantage of this is that it does not need any router configuration.
For example, self-hosting QuickBooks Enterprise requires this approach (see their developer API for more information).
VPN
If you are only serving yourself, you can also use a VPN for external access to your home server. This may also work for a gateway or secondary server to securely redirect requests into your network.
The main advantage of this is that it does not need any router configuration. The main disadvantage is that it can expose the rest of your network to anyone who is able to log into the VPN.
Hosting services on a dynamic IP
If your ISP does not provide you with static IP addresses (sometimes a paying option), you will need to use a dynamic DNS provider to update in real-time the IP addresses your personal domain points to.
A reverse proxy serving your services (traversing your NATs, routers and firewalls) might also be an option.
NOTE: It is highly unrecommended to host email services on a dynamic IP, even on top of a dynamic DNS provider, due to missing/problematic reverse DNS. You do need a proper static IP and reverse DNS configured to send emails without issues.
There are many ISPs, hosting companies and hosting cooperatives providing dynamic DNS services, although only Digital Ocean is covered here. Don't hesitate to add links to tutorials/scripts for other providers as well!
Digital Ocean as dynamic DNS provider
Digital Ocean offers this service for free and they have an API you can use to update the domain with your current IP. This may still be an issue due to potential frequent chances, but it can work.
NOTE: This script was written for Digital Ocean API v1. However, API v2 is now in use. This script may be broken.
Example script to be run from cron:
#!/bin/bash domain_id="DIGITAL OCEAN DNS DOMAIN ID" record_id="DIGITAL OCEAN DNS ENTRY ID" client_id="DIGITAL OCEAN CLIENT ID" api_key="DIGITAL OCEAN API KEY" ip=`wget -q -O- http://ipecho.net/plain` api="https://api.digitalocean.com/domains/${domain_id}/records/${record_id}/edit?data=${ip}&client_id=${client_id}&api_key=${api_key}" response=`wget -q -O- ${api}` echo ${response}
See the Digital Ocean Legacy API documentation for all details.
To get the domain & dns entry ID and obtain cliend id & keys:
- generate access key & client ID at [2]
- to read the json entry and get the domain id go to [3]
- to get the entry id, go to https://api.digitalocean.com/v1/domains/(domain_id)/records?client_id=(client_ID)&api_key=(api_key)]
See Also
- https://homebrewserver.club/
- https://homebrewserver.club/choosing-a-homebrew-server.html
- https://pagekite.net/
- https://en.wikipedia.org/wiki/Nettop
- https://en.wikipedia.org/wiki/Small_form_factor_(desktop_and_motherboard)
- wikipedia:Home server
- https://en.wikipedia.org/wiki/Dynamic_DNS
- IndieWeb Examples: several in chat here: https://chat.indieweb.org/dev/2025-01-03#t1735881904784900
- "I run a gitea instance on a home server because it's a lot cheaper to buy a 2tb SSD than it is to rent 2tb from a hosting provider" @aaronpk January 3, 2025