Skip to content

Latest commit

 

History

History
86 lines (73 loc) · 4.74 KB

File metadata and controls

86 lines (73 loc) · 4.74 KB

⛅ Filet Cloud: Deployment on Raspberry Pi 4 with BTRFS HDD and an E-Ink Hat

The original deployment of Filet Cloud. This deployment is now, after many later improvements to Filet Cloud, unneccessarily complex, but still serves as a good example for deeper customisation.

Original Goals

This deployment attempted to make a sophisticated personal cloud storage solution similar to the google-drive ecosystem, using the design philosophies of the filet project series. This project, like others in the series, aggressively pushed for code minimalism and the essence of simplicity. The success of the project led to further features and enhancements, but with all added complexity having to justify itself, ruthlessly.

How is this different to existing services like Google Drive or solutions like NextCloud?

  • Take control of your privacy.
  • Storage sizes are only limitted by your hardware.
  • Solution that favours reliability and simplicity over feature-creep.
  • Fast, featured, and simple web interface that runs over a standard filesystem and never gets out of sync.
  • Supports multiple accounts within an organisation without the complexity of web-admin interfaces. Account management is as simple as using Linux user accounts and SSH authentication.

It targets a build running on a Raspberry Pi 4 with an E-ink display hat that displays status information.

Additional Features

  • Maintains filesystem ownership integrity consistent with local access.
  • SFTP compatibility.
    • Compatibility with many phone syncronisation apps which support SFTP.
    • NAS via SFTP.
  • Automatic OS updates.
  • Supports multiple users.
  • Device e-ink display:
    • Last snapshot time.
    • Last update time.
    • Disk usage and free space.
  • Device controls (buttons):
    • Safe shutdown.
    • Create snaphot.
    • Trigger update and restart.
  • Daily snapshots (with Btrfs).
  • 4 TB of storage.
  • Note there is no hardware resiliant backup redundancy - please set up a strategy for resiliency against hardware failure which suits your needs.
  • COLORTERM environment variable is passed through from filet-cloud terminal connections, setting the value to truecolor.
  • 2FA with google-authenticator.

Hardware

The following hardware was used for this build:

Setup

Basic Host Setup

USB Drive Setup

Filet-Cloud Installation

ssh pi@raspberrypi.local
git clone https://github.com/fuglaro/filet-cloud.git
cd filet-cloud/deployments/raspberry-pi-4-btrfs-hdd-nginx-with-hat
sudo ./install

Create New Login Account:

filet-cloud-new-user

Phone Cloud Syncing

Setup nightly media and photo backups from your mobile device.

  • Android filesyncer - Folder Sync or Folder Sync Pro

Metrics

  • Idle power consumption: ~ 3.2W (this has not been optimised and could be improved by managing an idle state including spinning down the HDD)
  • List folder speed: 11ms (tested with 5 entries over WiFi)
  • Retrieve small file speed: 11ms (tested with 5KB file over WiFi)
  • Retrieve big file wait time: 50ms (tested with 4.4MB JPEG over WiFi)
  • Retrieve big file retrieval time: 550ms (tested with 4.4MB JPEG over WiFi)
  • Retrieve big file thumbnail wait time: 600ms (tested with 4.4MB JPEG over WiFi)
  • Retrieve big file thumbnail time: 0ms (tested with 4.4MB JPEG over WiFi)