Self-hosted Adventures: Volume One

I want to share my thoughts and experiences on self-hosting and encourage others to join me on this exciting adventure.
Self-hosted Adventures: Volume One

The Introduction

It may be hard to believe, but we're already in the second week of January. As we approach Friday the 13th, it's important to maintain a healthy level of skepticism. In this post, I want to share my thoughts and experiences on self-hosting and encourage others to join me on this exciting adventure.

To get started, you don't need much. Any old hardware will do for now. Whether you have a Raspberry Pi, a budget-friendly computer from Amazon, an old laptop, or even a Virtual Private Server (VPS), the possibilities are endless. Personally, I prefer to use DigitalOcean and Vultr as my primary VPS hosts. They offer competitive pricing and low-latency services, which are essential for optimal performance.

If none of the previously mentioned options are available to you, don't worry, you can still create a Virtual Machine on the device you are currently using. There are several virtualization software options to choose from such as Hyper-V for Windows or Oracle's VirtualBox, which is compatible with both Windows and Mac devices.

Basic Self-Hosted Services

Website

Hosting your own website is a relatively simple process, with various options available such as Caddy, http2, NGINX, Apache2, and others to get you started. One great option is to use Docker to containerize your services, which is particularly useful for self-hosters. I personally have a documentation site that is dedicated to teaching others about self-hosted services, which is still in its early stages. All of my services, except for a remote DNS and a few others, are hosted and routed through Cloudflare.

If you don't have programming experience, don't worry. I recommend using content management solutions such as Ghost CMS or Wordpress to build websites. Both programs are user-friendly, easy to use, and have a wide range of themes to choose from. Wordpress is particularly versatile, as you can install extensions and customize the site to your liking. One of the biggest advantages of both programs is that they accept Markdown Language, which is what I exclusively use for writing these days. Themeforest is a fantastic website to find themes that suites your needs.

If you are looking for tools to assist with hosting, you may want to consider programs like MAMP or XAMP. Otherwise, a LAMP stack would be beneficial to you. LAMP stands for (Linux Apache MySQL PHP). Can also be used with NGINX or another proxy service such as Traefik.

Databases

Databases are an essential component of many environments. There are many open-source and self-hosted options available that can suit a variety of needs. Examples include PostgreSQL, MySQL, MSSQL, NoSQL, Redis, SQLite, and MongoDB. SQLite is unique in that it is built and stored locally in a single database file. Other options are lightweight and can be scaled depending on the function and application, and also offer flexibility.

Database Tools

Tools to access databases can also be considered crucial to many environments. Listed below are a few tools that I have come across. I have not fully evaluated these tools, however, they look promising.

  1. Adminer: A lightweight, single-file PHP script for managing databases.
  2. HeidiSQL: A free, open-source, and easy-to-use client for Windows that allows you to manage multiple MySQL and MariaDB servers.
  3. Sequel Pro: A fast, easy-to-use Mac client for MySQL and MariaDB.
  4. MySQL Workbench: A powerful, cross-platform, visual database design and management tool developed by Oracle.
  5. Navicat: A commercial, multi-connection database management tool that supports MySQL, MariaDB, MongoDB, SQL Server, Oracle, and PostgreSQL.
  6. DBeaver: A free, open-source, cross-platform database management tool that supports multiple database engines, including MySQL and MariaDB
  7. phpMyAdmin: A free open-source web tool for managing MySQL and MariaDB database engines.

Docker

Docker is a tool that allows you to run applications in containers, which are lightweight, executable packages that include everything an application needs to run. It enables you to easily move and run applications consistently across different environments, and manage and scale them. It is widely used in DevOps, and it's considered a standard in the industry, and can run on Windows, macOS, and Linux platforms.

Containers You Should Be Using

  • Wallabag is an open-source, self-hosted application for saving and reading web articles. It allows users to save articles from the web, along with annotations and tags and read them later on any device. It can be used as a replacement for services like Pocket or Instapaper, with the added benefit of being self-hosted, giving users more control over their data and privacy.
  • phpMyAdmin is a free open-source web tool for managing MySQL and MariaDB database engines. This can be self-hosted using a docker container and routed through a proxy manager, such as Nginx Proxy Manager or Traefik.
  • NocoDB is a self-hosted alternative to Airtable, a popular cloud-based spreadsheet-database hybrid. It allows for the creation and management of databases on a server that you control, rather than relying on a cloud service. However, it may not have the same level of functionality and user-friendliness as Airtable. NocoDB is a popular option for users who prioritize control over their data and prefer self-hosting.
  • Portainer is a lightweight, open-source management tool for Docker, that makes it easy to manage and visualize your Docker environments. With Portainer, you can easily manage your Docker containers, images, networks, and volumes, all from a simple web-based user interface. It provides a simple and intuitive graphical user interface (GUI) that allows you to see the status of your containers, start and stop them, view logs, and more.
  • Nginx Proxy Manager is a web-based, open-source software tool that allows users to easily manage and configure NGINX and dynamic reverse proxy servers. It provides an easy-to-use web interface that allows users to manage server configurations, SSL/TLS certificates, and user authentication.
  • FreshRSS is a free, open-source, self-hosted RSS feed reader that allows users to subscribe to RSS feeds and read them in a web-based interface. It's similar to other web-based RSS readers such as Feedly, Inoreader, and The Old Reader, but it can be installed and run on your own server or hosting.
  • WatchYourLan is a tool that allows users to scan their network and gather information about devices connected to it, such as IP addresses, MAC addresses, and device names. It is designed to provide visibility and inventory management rather than security or intrusion detection. The tool has a graphical user interface, which makes it easy to use and navigate.
  • PiHole is a free and open-source software project that can be installed on a computer or a Raspberry Pi to act as a network-wide ad blocker. It's a DNS server that runs on your local network, and it blocks unwanted ads, tracking, and phishing domains for all devices connected to your network.
  • AdGuard Home is a free, open-source, and self-hosted software that blocks ads, tracking, and other unwanted content at the network level. It is similar to Pi-hole in that it functions as a DNS server and blocks unwanted domains, but it also offers additional features.

The Conclusion

As we move into the second week of January, I want to share my thoughts on self-hosting and the various options available. I personally find self-hosting to be an exciting and rewarding endeavor, as it allows me to have more control over my data and privacy. Hosting my own website and using Docker containers are two options that I have found to be particularly useful.

In the coming posts, I plan to delve deeper into self-hosting and give a top-level overview of services that I find interesting or currently use in my environment. I hope that by sharing my experiences, it will help others gain insight into the different options available and how they can be used to improve their online experience and protect their data.


Full Disclosure

Most of this article is comprised of facts and opinions. The featured background image was created by andyoneru and is available on Unsplash. I added a blur and a gradient overlay with some text. If you use my DigitalOcean link, you will get a $200 credit over 60 days and I will get a referral if chose to use DigitalOcean.

Subscribe to Hi! I'm Harley newsletter and stay updated.

Don't miss anything. Get all the latest posts delivered straight to your inbox. It's free!
Great! Check your inbox and click the link to confirm your subscription.
Error! Please enter a valid email address!