Skip to content

Instantly share code, notes, and snippets.

@garrett
Last active September 22, 2022 01:18
Show Gist options
  • Save garrett/31df7687c0680c2c0756 to your computer and use it in GitHub Desktop.
Save garrett/31df7687c0680c2c0756 to your computer and use it in GitHub Desktop.
Fedora home server

Fedora Home Server

Basic idea

Make it very easy for anyone (even non-techy people) to set up a low-power, inexpensive home server with a Raspberry Pi 2* using Fedora.

* (possibly others later — start small, scale up)

Benefits

People: Anyone who want to keep their data theirs and/or want to set up basic network services (VPN, to protect their traffic when at coffee shops, etc.).

Fedora: It's a project that brings together a lot of the various server projects we're naturally doing, and wraps them up with a friendly bow on top. Having people at home using our server stuff means they'll be "kicking the tires" more, as well.

Attributes

A home server solves common use cases, like:

Services useful for home network:

  • NAS (plug in a USB disk or two, or just live with 16/32/64 gigs on the SD card)
  • Backup server
  • basic web server
  • print server (for printers w/o network configs)
  • HTTP cache
  • ownCloud
  • MediaGoblin

Additional services for access from outside networks:

  • because it's super-important to have SSL: certificate manager that uses Let's Encrypt and also allows other manual custom certs
  • dynamic DNS (friendly name to get back to the server)
  • dynamically open ports in the firewall via UPnP IGD port triggering (if FW allows for this)
  • basic instructions on port mapping (in case FW does not allow port triggering)
  • VPN server (to protect against prying eyes when using an insecure WiFi network at a hotel or coffee shop), and to access home-network-only services while on the road

Internal-only services:

  • network topography/discovery with UPnP/ZeroConf URLs of advertised services (for example: network printers, among other devices)
  • link to configure router(s)

Values

  • Put freedom and usefulness first.
  • Make it as plug and play as possible (use super-cheap, available hardware).
  • Highlight Fedora server and the server management tools we make.

Installation & usage

Should be possible to use with Windows and Mac, but better experience overall using Fedora.

On the Fedora desktop side of things, there should be some hooks for a bit of nativeness on the desktop (like glue to GNOME Online Accounts, an app icon to open the Cockpit UI in a webkit window, etc.).

General (Non-Fedora Linux / Windows / Mac)

  1. Copy files over to a FAT-formatted disk (similar to Raspberry Pi's "NOOBS").
  2. It does a self-setup, including paritioning. (It reboots when done.)
  3. It advertises itself to the local network with a config UI (using a basic name like homeserver.local, so someone can easily go to the URL in their browser).
  4. The admin UI would have a basic config, like setting up SSL & optional custom hostname.

Making it super-easy to set up will attract new people; enable people to use local, open source services instead of proprietary 3rd party cloud services (Google, DropBox, etc.); and raise awareness of the Fedora project.

Fedora

Custom app for Fedora called "Home Server" (or something similar). At first run, it's a wizard. After set up, it is a web-view that points to configure the home server.

Wizard mode:

  1. Start Home Server. The app has a welcome screen stating that a Rasperry Pi 2 and a MicroSD card is needed, and to put the Micro-SD card in the card slot. (Click Next.)
  2. It then downloads the Fedora Home Server image and flashes it on the MicroSD card.
  3. Then, it shows instructions on putting the MicroSD card into the Raspberry Pi. Once that's done, "click 'Next'".
  4. It automatically sets up GNOME-Online-Accounts to point to the server once it has been discovered on the network.

Every run of the home server app afterward has an embedded WebKit webview that points to the home server for configuration.

Name?

Project name could be called "HoSe" (short for "Home Server"), pronounced like José or hose (firehose). Or cash in on "Cloud" with something like "Fedora Home Cloud". Project name and facing name are not necessarily exactly the same (ex: "Project HoSe" produces "Fedora Home Server" with an app called "Home Server" that is installed with default workstation installs).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment