[WIP] Cheap, portable and secure NAS based on the Raspberry Pi Zero - with encryption, backups, and more

PortaDisk - Affordable Raspberry Pi Portable & Secure NAS Project

Project Status: Early work in progress. web-unlock is still not ready for production (nor development) use.

Yet another Raspberry Pi project, a concept for now (until I get all the needed parts). This repository mainly focuses on the software side.

My personal feature wishlist

  • Raspberry Pi Zero running Seafile on Docker.
  • Data & backup drive unlocking through a web browser. (working on implementation)
  • Disk and RAM usage reported using Blinkt. (to implement)
  • A separate WiFi network for access outside your home, without proxy services. (RaspAP?)
  • Highest data security with LUKS encryption on the data drive.
  • Weekly backups of both the data drive and root partition to a separate hard drive.
  • All of this in a small package that can be carried in a backpack.

PRs are welcome.

Directory structure (Software)

Root directory

  • /portadisk/config/ - stores configuration files, mainly for web-unlock.

Data drive

  • /portadisk/software/ - stores data and configuration files for Seafile and other software that might store sensitive data or isn't needed during the "encrypted" phase (i.e. when the drives weren't unlocked yet)

Hardware

  • Raspberry Pi Zero with a USB hub HAT.
  • Another USB hub that has support for external power.
  • Pi & the 2 hard drives connected to the second USB hub, which is connected to the HAT, which is connected to the Pi (hopefully this will work)
  • Pi, USB hub, hard drives and a power supply crammed into a camera case

Concept security considerations

  • Modification of the web-unlock binary to intercept the password during unlocking might be possible
  • HTTPS encryption should be a must when dealing with projects like this (caddy?)

Installation guide

This guide assumes you have a fresh Raspbian Lite installation already set up with updates installed.

Zram (compresses RAM)

sudo apt install git
git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.sh --install
sudo apt purge git

Misc SD card lifespan tweaks

sudo apt-get remove dphys-swapfile
echo "tmpfs /var/tmp tmpfs nodev,nosuid,size=35M 0 0" >> /etc/fstab
echo "tmpfs /tmp tmpfs nodev,nosuid,size=35M 0 0" >> /etc/fstab

Docker

curl -sSL https://get.docker.com | sh
sudo apt-get install -y python3 python3-pip libffi-dev libssl-dev python3-dev
sudo pip3 install docker-compose
sudo systemctl enable docker --now

Seafile

  1. Adjust the values in software/seafile/docker-compose.yml to your liking.
  2. Run docker-compose up
Owner
Software developer, webdev is my jam though. Most of my bigger projects are proprietary, sorry.
null
Similar Resources

Go binding for rpi-rgb-led-matrix an excellent C++ library to control RGB LED displays with Raspberry Pi GPIO.

Go binding for rpi-rgb-led-matrix an excellent C++ library to control RGB LED displays with Raspberry Pi GPIO.

go-rpi-rgb-led-matrix Go binding for rpi-rgb-led-matrix an excellent C++ library to control RGB LED displays with Raspberry Pi GPIO. This library incl

Dec 30, 2022

Turn your Go program(s) into an appliance running on the Raspberry Pi 3 or 4 (or on amd64 PCs!)

Overview gokrazy packs your Go application(s) into an SD card image for the Raspberry Pi 3 or 4 which — aside from the Linux kernel and proprietary Ra

Jan 3, 2023

Serves images taken on a FLIR Lepton connected to a Raspberry Pi SPI port to over HTTP.

go-lepton Streams images taken on a FLIR Lepton connected to a Raspberry Pi SPI port to over via WebSockets via embedded HTTP server. It sends the raw

Oct 29, 2022

Capture the stream of Images for a Raspberry Pi Camera in GoLang

piCamera This package is a wrapper for the raspivid command on the Raspberry Pi. To make development easier on a PC, there is are different Start() me

Mar 5, 2022

Secure Edge Networking Based On Kubernetes And KubeEdge.

Secure Edge Networking Based On Kubernetes And KubeEdge.

What is FabEdge FabEdge is an open source edge networking solution based on kubernetes and kubeedge. It solves the problems including complex network

Jan 3, 2023

OCI Image Encryption Package

imgcrypt image encryption library and command line tool Project imgcrypt is a non-core subproject of containerd. The imgcrypt library provides API exe

Jan 5, 2023

Deploy, manage, and secure applications and resources across multiple clusters using CloudFormation and Shipa

CloudFormation provider Deploy, secure, and manage applications across multiple clusters using CloudFormation and Shipa. Development environment setup

Feb 12, 2022

go-zero 从零到 k8s 部署

启动: 注意事项: dockerfile 文件配置了 LOCAL_HOST 环境变量 1、项目目录下执行 ./docker.sh 脚本生成 rpc服务docker镜像 ./docker.sh 2、docker-compose-db 创建 mysql redis etcd 容器 执行命令

Dec 7, 2022

k0s - Zero Friction Kubernetes

k0s - Zero Friction Kubernetes k0s is an all-inclusive Kubernetes distribution with all the required bells and whistles preconfigured to make building

Jan 4, 2023
Raspberry Pi Archlinux Automated Offline Installer with Wi-Fi. Windows, Mac and more features coming.
Raspberry Pi Archlinux Automated Offline Installer with Wi-Fi. Windows, Mac and more features coming.

Raspberry Pi Archlinux Automated Installer with Wi-Fi. Windows, Mac and more features coming. Download Go to releases page and download the zip file f

Nov 22, 2022
ip-masq-agent-v2 aims to solve more specific networking cases, allow for more configuration options, and improve observability compared to the original.

ip-masq-agent-v2 Based on the original ip-masq-agent, v2 aims to solve more specific networking cases, allow for more configuration options, and impro

Aug 31, 2022
(WIP) Extremely simple unixway GitHub webhook listener for push event

(WIP) puffy Puffy is an extremely simple unixway GitHub webhook listener and handler for push events Todo Add payload signature validation (WIP) Depen

Oct 15, 2022
WIP: project fabrication tool

fab fabricate a new project from a template... in a fabulous way :-) setup The first time on a machine, fab can be initialized via # on unix os's this

Jan 25, 2022
WIP Go implementation of CSIRAC as a virtual machine.

CSIRAC A work-in-progress Go implementation of CSIRAC, as described in The Last of the First - CSIRAC: Australia's First Computer. The intention is to

Jan 4, 2022
[WIP] Basic Echo CRUD template (no pagination)

echo-crud-template [WIP] Basic Echo CRUD template (no pagination) Overview Based on https://github.com/xesina/golang-echo-realworld-example-app. Echo

Jan 11, 2022
WIP - Pin - local pipeline project with Docker Golang API.
WIP - Pin - local pipeline project with Docker Golang API.

pin ?? WIP - Local pipeline project with Docker Golang API. ?? Installation Download latest release You can download latest release from here Install

May 28, 2022
Network scanner for Raspberry Pi
Network scanner for Raspberry Pi

╔═╗╦═╗╔═╗╦ ╠═╣╠╦╝╠═╝║ ╩ ╩╩╚═╩ ╩ Basic network scanner for Raspberry Pi Install Note: Prebuilt binaries (32-bit) doesn't require Go. Prereq

Jun 13, 2022
Go bindings for Raspberry Pi PWM library for WS281X LEDs

go-rpi-ws281x golang binding for rpi_ws281x, userspace Raspberry Pi PWM library for WS281X LEDs. Supports any Raspberry and WS2812, SK6812RGB and SK68

Dec 30, 2022