self-hosting?
October 22, 2018 10:03 AM   Subscribe

Let's say I want to host my own website for my family photos, blog, backup storage, and also run a personal e-mail server as well. How would I go about this, maybe using AWS free tier?
posted by the man of twists and turns to Computers & Internet (18 answers total) 20 users marked this as a favorite
 
AWS is more DB-focused than the plain-jane use case that you're describing. Here's a plan that's eight bucks a month with kick-ass service.
posted by Cool Papa Bell at 10:23 AM on October 22, 2018 [1 favorite]


I know this isn't a venue for back and forth, so feel free to take it to DMs, but: GOOD LORD why do you want to run your own mail server?

I ask this because I used to do it, too, and finally realized I would never keep up well enough to do it properly, and so I started using Fastmail.
posted by uberchet at 10:32 AM on October 22, 2018 [11 favorites]


People pay me to do this kind of shit for them and my contract literally states that I will not setup, run, or provide support for their email. It's the absolute worst.

As for the rest of it, start with the extremely reliable Site Ground at like $5 per month. You can also register your domain name with them if needed.
posted by DarlingBri at 10:44 AM on October 22, 2018 [7 favorites]


If you truly want to manage your own server (with all the caveats above about email because life is too short) I'd suggest looking at Alex Payne's sovereign which uses Ansible to build and manage an array of fun things on top of a vanilla Debian install provided by Generic Linux VPS Spinner-Upper (EC2, Linode, DigitalOcean, etc.) and reduces the chance of you accidentally fat-fingering your family photos into oblivion.
posted by holgate at 10:51 AM on October 22, 2018 [2 favorites]


I wouldn't say that AWS is "DB-focused." They offer managed database hosting, but you don't need to use it.

If you want to get this going essentially all you have to do is set up an "EC2" instance. This gets you a virtual instance of whatever operating system you choose. If you choose a linux based one, you can connect to it with ssh and treat it more or less like any other hosted linux instance, i.e. install your webserver and set up your web site.

The same is true of many many cloud providers.

It's been a while since I set up an EC2 instance by hand. There are some hoops you have to jump through, like you might need to set up a VPC to give that EC2 instance access to/from the internet.

The free tier is probably fine for a personal blog, I ran a lot of stuff off a free tier level EC2 instance for years. The biggest gotcha aside from limited resources is that the t2.micro or whatever is a "burstable" instance meaning that it has intrinsically poor CPU performance that can temporarily be boosted above normal. When you operate below it's baseline, it builds up credits, when you operate above, you start using up credits. If your credits hit zero then you're in low-performance mode until you go back below baseline.

So I have had cases where an error in a program caused, say, an infinite loop that burned through all my credits and that made the rest of the site perform terribly until I found/killed/fixed the misbehaving program. Just something to remember, for the eventual time when you start thinking "why is my website so much slower today"
posted by RustyBrooks at 11:10 AM on October 22, 2018 [3 favorites]


You can host files of of S3 (AWS's file storage service) as a website. This is super non-DB and would be a lot like the old days of syncying your website up to your host. Search for "Hosting a Static Website on Amazon S3"

You can get dinged for costs if there endup being a lot of downloads. AWS has monitoring and controls for that.
posted by bdc34 at 11:22 AM on October 22, 2018 [2 favorites]


NearlyFreeSpeech comes up here quite often for hosting, but I haven't personally used them. For backup, they may not end up being very cheap though, since's pricing depends on how much you use.
posted by hankscorpio83 at 11:31 AM on October 22, 2018 [1 favorite]


Seconding others - you almost certainly don't want to host your own mail. I've done it for years, it's a PITA and setting up Postfix, Sendmail, Exim, etc. + IMAP + SSL is just a headache you don't need. I'd be willing to tinker with @holgate's suggestion of the Ansible scripts (sovereign) but you have to have faith that those scripts are going to be maintained over the long haul and/or you will be able to take over maintaining them in the future.

Fastmail is a great option for having some control over your email without actually managing it yourself.

The rest - The easiest way to go might be AWS free tier + Lightsail & WordPress. I prefer a VPS + WordPress myself but you can probably get by very cheaply using AWS. That does depend on how much storage you need for photos and whatnot.

I would probably use WordPress for the photo galleries as well - there are a number of plugins you could use for that.

When you say "backup storage" though, I am given pause - I don't think it's a great practice to combine personal server for public content + private content. If you're talking about storing, say, your tax docs or anything you don't want the world to see? Store it elsewhere.

Look into Nextcloud if you want an open source file hosting option. But, if you're a novice? I strongly recommend either not going the DIY route with email and/or file storage, or at least segregating the file hosting & email far away from public blog/photo hosting.
posted by jzb at 11:33 AM on October 22, 2018 [2 favorites]


The simplest way to do blogging on the AWS free tier is S3 (will host your files in the cloud) with Route 53 (will route your website address to those files) but fair warning the AWS interface is quite user-hostile. If I were you I would get a blog on Wordpress.com's free tier, and forward your domain to it with masking. It includes good free themes, a free Contact form, blogging by email, and a bunch of other goodies. For backup, AWS Glacier - not entirely free but IMO free storage is by definition brittle and negates the raison d'etre of backing up. As others have said, do not self flagellate self host an email server - I've done this professionally and I forbid you to do this.
posted by rada at 12:14 PM on October 22, 2018 [1 favorite]


Adding another voice to the chorus of former sysadmins (and former mail admins) counseling against trying to run your own mail server in 2018. 20 years ago, maybe, but time has not been kind to e-mail service operation.
posted by Nerd of the North at 1:25 PM on October 22, 2018 [3 favorites]


The three things you'll probably need to keep it simple are:

1. A domain name.
2. A hosting service, either shared (the host sets up services) or VPS (you do it yourself).
3. Routing for your domain name.

Web Hosting: I use NearlyFreeSpeech for a static weblog (hugo). They will also do wordpress as well. They're really good for small web sites that don't get a lot of traffic, but you'll probably pay more if you have large quantities of data or get high traffic. Depending on your use case, you might be able to use shared hosting rather than a full VPS.

VPS: Probably the easiest way to get started on AWS is Lightsail at the cost of some flexibility. I use Digital Ocean for my VPS running Nextcloud and some other services primarily because of political issues with Amazon. Running a VPS assumes some prior knowledge of linux or freebsd.

Email: Buy a domain and contract with Fastmail or another mail service provider. Securing a personal email server from becoming an open spambot is non-trivial, and getting officially whitelisted so that everyone else doesn't automatically block your domain is about as painful.

File Server: Nextcloud has everything and the kitchen sink in terms of Dropbox Replacement + Notes, Todo, Calendar, Bookmarks, and about a dozen other plug-ins. They're targeting commercial users, so they do a good job on security auditing. You can add users and share links to files and folders. Alternately, there's also SeaFile, SyncThing, Resilio Sync, or SFTP, git, and mercurial with a good clients if that's your thing.
posted by GenderNullPointerException at 1:33 PM on October 22, 2018 [3 favorites]


Some places will offer you raw web hosting where you can install whatever you want -- but they will handle the mail server for you, and also database/PHP/other patches.

Pair.com is a good example of this; they're good people will a long Internet history.

(Am current Unix sysadmin and Pair customer-at-one-remove, and hope never to manage my own mail server on the public Internet.)
posted by wenestvedt at 1:36 PM on October 22, 2018 [2 favorites]


Also, for most things you'll want either Postgres or MySQL over SQlite.
posted by GenderNullPointerException at 1:48 PM on October 22, 2018 [1 favorite]


My cheap solution:
I have a static IP address block at home (but dynamic IPs work ok).
DNS service is provided by Dyn.com for free. (I was previously on EveryDNS which was acquired by Dyn but they have a free tier.)
My domain is hosted at home on my low power PCEngines apu server running OpenBSD (behind a firewall on a Soekris box running pf and relayd also on OpenBSD). This provides website, static blog, and serving image and other files which can be downloaded from links on the website or blog). Hosted files are fairly minimal - some recipes, photos, etc. but I have as much space for this as I want to mount.
I have Google Apps for domain - now called G Suite - which is also free and provides the email service. The MX records point to Google Mail.
My personal files for my access remotely are on Google Drive or iCloud Drive (better encryption).
The only cost is the domain registration at $25 per 3 years, internet service with static IP, and electric power for these low wattage fanless boxes. The hardware was repurposed.

Agree running your own mail server is for the birds. You could do it, just for the experience, but take my word for it.
posted by sudogeek at 4:29 PM on October 22, 2018 [1 favorite]


If you reeeallly want to run your own email server, you might want to check out Helm.
posted by suedehead at 8:51 PM on October 22, 2018


I have a DreamHost Shared account that I've had for ~15 years or so... mainly because I got a good deal at the time and their Location in those days as I could see was right across the street and right in-between two of Los Angeles' GigaPOPs. (So I knew their servers had a high probability of being mere blocks away from the big hidden places where all of the Internet comes together in nondescript building full of cages and wires and blinky lights. Not sure if that matters in these days and ages.

DH has a bunch of one-click-installs, so you can do mydomain.com/blog (wordpress) mydomain.com/gallery (some photo thing), or wiki.mydomain.com (MediaWiki) and they'll either let you use their managed version or will install the code and let you keep it up to date yourself. They also provide an XMPP server, so there's your managed family chat that you don't have to worry about. (They did IPv6 pretty early, not sure if it's truly common yet.) So yeah, it's mostly cost/features/ease and everybody's right and don't do your own email.

I have no knowledge of other providers per-se. DH hasn't given me any reason to move. I did once run a failed attempt at MF chat on an AWS free-tier plan, worked fine, but seems back then free-tier was a time-limited thing (one year or something) and not this seemingly now a thing AWS free-tier that you can keep using as long as you want.... (Note to self: look into that.)
posted by zengargoyle at 9:25 PM on October 22, 2018 [1 favorite]


I use Amazon S3 to host a tiny static site with Cloudflare, which provides a free TLS cert for https - not sure offhand what the S3 service policy is for backups/personal storage. For blog hosting: last time I checked Amazon Lightsail + WordPress, the cost was more per month than warranted for the size of the blog, so I went with a small plan on more traditional shared hosting. But blogging doesn't have to be WordPress so it'll depend on what kind of functionality you need.

I recently signed up for Backblaze B2 to try out their storage. It's different from their backup service plans and more similar to S3. I haven't tried connecting it to the web but a few weeks ago saw that B2 now also works with Cloudflare with free data transfers, although it looks like they don't yet allow mapping a domain name to a storage bucket like you can with S3. Might be something to look into.

Pair support is good, but for their shared hosting specifically, I feel like their control panel is sometimes not easy to navigate, or doesn't include functionality that I normally would expect from a host. For instance I've had to ask the Pair support team to complete things for me that normally I would be able to do on my own at Cpanel shared hosting places.

So if you want a lot of control over your webspace, then definitely make sure to get the right type of hosting with the permissions you need; shared hosting might not be the right thing for you unless you just want to host the blog there. holgate mentioned Linode: they've been very reliable in my experience.

If you go for a webhost and want to use it for personal storage, be sure to check the TOS/AUP to avoid any unexpected headaches later. Some hosts explicitly forbid using their hosting as personal storage or storage for certain things. One example is Webfaction (which I liked as a host when I used it briefly in the past). From their Acceptable Use Policy this is one of the prohibited items: "Storing material on our servers that is not for the primary purpose of hosting a website, and associated email functions. This includes, without limitation, storing backup data unrelated to your websites and emails or storing personal music or video collections."

And... one of the biggest sighs of relief I ever had at work happened after the boss decided *not* to pursue the idea of switching to self-hosted email servers. Agreeing with everyone on Fastmail. They do a good job.
posted by rangefinder 1.4 at 10:28 PM on October 22, 2018 [1 favorite]


Yunohost, pronounced "Why you no host?" is an operating system that automatically hosts for you. It has a collection of plugin applications including a Wordpress blog and Rainloop multi-account email host.
posted by Obscure Reference at 6:12 AM on October 23, 2018 [1 favorite]


« Older Can I eat this not-so-firm tofu?   |   Unusual symbol on barge cranes Newer »
This thread is closed to new comments.