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?
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]
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]
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
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]
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
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
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
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
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.
posted by sammyo at 5:49 AM on July 7, 2018 [1 favorite]