Self-Hosting For Beginners?
July 7, 2018 2:44 AM   Subscribe

I have never done anything like this before but I am interested in some GitHub packages which need a server to be self hosted (Wallabag, RSS Bridge and others). Is there a simple way to get into this stuff? I am pretty tech savvy but in Windows not Linux so it would have to be relatively straightforward What self hosting solutions do any of you use (I am thinking AWS or Linode?) and what do you do with it? Which packages would you recommend?
posted by mrbenn to Computers & Internet (9 answers total) 7 users marked this as a favorite
 
Starting a virtual machine take just a few minutes on any of the hundreds of services, hunting down what works best can be frustrating. Take care about cost, the AWS and Azure can be an insane bargain for a short term project as they bill by the minute, but even a penny a minuet adds up over time. Linux is often chosen over windows for technical reasons but also the licencing adds a few dollars a month. Also do some disk space estimate thinking, something like Wallabag that stores an article with a click and add up to a pretty good size over time. Both AWS and microsoft (AZURE) have basically a free year offer so that's worth using to learn and get comfortable. In use you'll use a web console to initiate a virtual machine (VM) and follow the instructions to open a window to the remote desktop. Then just run installs via the remote desktop.
posted by sammyo at 5:49 AM on July 7, 2018 [1 favorite]


If you're just playing around with this stuff and you mainly need to be able to stick a server on your LAN, and you want it to run for extended periods without needing a VM host machine to run inside and without costing you a fortune in electricity, the Odroid XU4 single-board computer plus a USB3 external drive makes a very tidy little home server. The gigabit Ethernet and USB3 ports are the main things that set it apart from other similar machines, and 2GiB of RAM and an octa-core ARM processor are not too shabby. I run Armbian on mine.

You don't get the nice roll-it-back-when-you-break-it behaviour that a VM so easily gives you, but on the other hand it's really not much work to shut the machine down and back up its μSD card before doing something potentially disastrous to it. And if you stick a second hard drive on it and install borg, it becomes pretty easy to back up more substantial stuff in a quick and forgiving fashion.
posted by flabdablet at 6:51 AM on July 7, 2018 [2 favorites]


Host it yourself! You’ll really learn the nuts and bolts.

You can build your own VM or you can obtain working VMs with the capabilities you desire from various marketplaces - usually free. You can spin up a VMs of your choice on your computer using Parallels, xen, VMWare, etc. Or re-purpose an old computers you have laying around the house as servers. Create your own virtual internet of VMs for testing and development, or run a subnet in your local network. I use compact fanless boxes like Soekris, apu (PC Engines), older Mac Minis, or various older laptops for my devel network as well as the actual internet-facing machines. I standardized on OpenBSD because it runs on most hardware, it’s fairly secure (for production servers), and is easy to configure and debug. If you’re pulling source from a git repository, compiling and running on BSDs is, IMO, easier than windows.

Have fun.
posted by sudogeek at 6:54 AM on July 7, 2018 [1 favorite]


If you already have some spare SATA drives lying around and you don't need USB3 ports, the Odroid HC2 is essentially the same hardware but with a 12V power socket instead of 5V, a SATA port instead of the two USB3 ports, no HDMI port, and a huge chunk of aluminium extrusion instead of the XU4's fan. The HC1 is similar but with a smaller heatsink that will only take a 2.5" SATA drive rather than the 3.5" that will fit in an HC2 (which will also fit a 2.5").
posted by flabdablet at 7:04 AM on July 7, 2018


I’m not familiar with the packages you specifically mentioned but I would get a cheap $5 plan at Digital Ocean or Linode and just start messing around. If you want to start again it’s easy to destroy it and start again, and you’ve spent practically no money. If they’re not powerful enough at the lowest price you can always go higher. AWS is super pricy for low volume stuff and i find the learning curve annoying personally. I use Digital Ocean and have zero complaints, but if you look around you can find $20 credits for Linode as they sponsor podcasts occasionally (atp.fm is the one podcast i know off off hand) and have coupon codes.
posted by cgg at 7:41 AM on July 7, 2018 [3 favorites]


I've used Linode for over a decade and they are reliable, even the $5 VM is well provisioned, and the web interface and online documentation are really helpful. Get a terminal client like Putty, and ssh in once you've fired it up. It can be helpful to have a domain name to point at it, and they provide DNS service to handle that.
posted by nickggully at 10:23 AM on July 7, 2018


To reduce the barrier to entry, consider using virtualbox on your windows machine to set up a local server, just for noodling around with, that will look just the server you put on the web, so on your windows machine, on your browser, you'd enter a URL that looks like

http://localhost
instead of
http://mydomain.com

and you'd get your web page/web service, etc.

At the same time, look into Amazon AWS. If you haven't used it before, they'll give you an entire year of free-tier services, and you can run your server in that service, with a database server, for free. It's a remarkable deal.
posted by the Real Dan at 1:07 PM on July 7, 2018


I like DigitalOcean myself. I believe AWS and Google both also have plans that let you pay for only what you use. If you're looking to host something on your home network and make it available outside your network read the fine print on your ISP's contract. Mine - Comcrap - specifically forbids this.
posted by bendy at 4:26 PM on July 7, 2018


Best answer: Some great suggestions in here with a variety of options. I'll add a few more.

If you're using a recent version of Windows 10, you can install various versions of Linux from the Windows store. You won't get a full GUI without some fiddling around but the terminal interface would be similar to what you would use with a server hosted somewhere. You can get familiar with the terminal interface, install the software you're interested in and try it out locally.

AWS and GCE (Google Cloud) are options as well. They are great options when your needs grow beyond a single server but can be confusing and slightly more expensive than a single VPS. Amazon does have Lightsail as an inexpensive VPS product but they aren't quite competitive with Linode or Digital Ocean. AWS does have a free tier of productsfor 12 months if you'd like to try things out before deciding on an approach to take. Google Cloud also has a free tier of services.

I'd suggest a Linode or Digital Ocean VPS to start for something hosted for access anywhere, from any device. I'd suggest Ubuntu for a widely used and well documented Linux distribution. 18.04 LTS (just came out this year and is supported for the next couple of years by nearly all server software) or 16.04 LTS (a couple of years old but there is plenty of documentation on how to get just about anything running with it). CentOS, a community version of Red Hat, is also widely used. Overall there are few differences between these flavors or distributions of Linux but the fiddly details of installing software and configuring it can vary.

The software packages you mention are in PHP. Perhaps the most common way to run PHP software is the 'LAMP stack' (Linux OS, Apache web server, MySQL database, PHP programming language). This guide appears to be a reasonable set of instructions for installing the LAMP stack on Ubuntu 18.04, you'll find similar guides for other versions.
posted by mutagen at 1:51 PM on July 8, 2018


« Older Spanish-learning apps for a preschooler who can't...   |   Always late to the game: where to find online... Newer »
This thread is closed to new comments.