The Self-Hosted Cloud

For a while I've wanted to do a series on how to set up your own "cloud" services, written from a newbie perspective. The goal is to help the common computer user extricate themselves from commercial and ad-supported services that tend to have your data and content surveilled, monetized by AI, and censored.

Just writing up some rough notes on where I think the direction of this project should be. This is a work in a progress:

  • Buying a home server and/or NAS
  • Setting up VPN'ed IP
    • Setting up a VPS (or two)
    • Setting up a VPN (Wireguard)
    • Setting up your Firewall (Using some NAT voodoo)
      • SD-WAN? https://flexiwan.com/ maybe?
  • Setting up a Hypervisor
    • XCP-NG
    • Xen Orchestra
  • Setting up a VM
    • Install Ubuntu 20.04
    • Convert VM to Template
  • Setting up Docker
    • New VM from Template
  • Installing BIND in Docker
  • Registering your own domain
  • Configuring your domain in BIND
  • Setting up LetsEncrypt certs with automatic DNS (re-)validation
  • Cloudy-type Services (Docker containers unless otherwise specified):
    • Installing and bootstrapping an LDAP server
    • Installing an Nginx proxy
    • Drive: Installing NextCloud
    • Password Manager: NextCloud+ KeePass2
    • Email: Installing a mail server suite (Mailu, Mailcow?)
    • Photos: Installing Piwigo
      • https://github.com/xmanyou/piwigo-docker/blob/master/docker-compose.yml
    • Streaming: Installing Plex
    • Blogging: Installing WordPress
    • Cameras: Shinobi CCTV
    • Home Automation: Installing HomeAssistant
      • Almond?
      • Garage Door Opener
      • Doorbell
  • DR/Contingency/Redundancy Planning
    • Remote backup strategies
    • Integration with VPS-type services