README

Build status

All your files in one simple, replicated, encrypted place - with built-in backups and configurable ransomware protection.

Vision

Varasto vision

Video & screenshot introduction

Video:

Varasto introduction thumbnail

See screenshots to get a better picture.

Website & documentation

We have wonderful documentation on our website.

Features

NOTE: Our documentation has more details & links in this table.

Details
Supported OSes Almost everything: PCs, mobile devices (Android, iOS), Raspberry Pis etc.
Data privacy All data is encrypted - each collection with a separate key so compromise of one collection does not compromise other data. Take back ownership of your data.
Data durability Transparently replicates your data to multiple disks / off-site storage.
Data integrity SHA-256 hashes verified on file write/read - detects bit rot immediately. We also have scheduled scrubbing to detect errors in the background before they affect you.
Data sensitivity You can mark different collections with different sensitivity levels and decide on login which sensitivity level content do you want to show.
Backup all your devices' data Varasto's architecture is ideal for backing up all your PCs, mobile devices etc.
Supported storage methods Local disks or cloud services (AWS S3, Google Drive), all in encrypted form so you don't have to trust the cloud ("zero trust" model) or have data leaks if local disks get stolen.
Data access methods 1) Clone collection to your computer 2) Open/stream files from web UI 3) Via network folders 4) Linux FUSE interface
Integrated metadata backups Use optional built-in backup to automatically upload encrypted backup of your metadata DB to AWS S3. If you don't like it, there's interface for external backup tools as well.
Transparent compression Only well-compressible files will be automatically compressed
Metadata support & tagging Can use metadata sources for automatically fetching movie/TV series info, poster images etc. Can also add tags to collections.
All files in one place Never again forget on which disk a particular file was stored - it's all in one place even if you have 100 disks! Varasto is dogfooded with ~50 TB of data without any slowdowns.
Thumbnails for photos Automatic thumbnailing of photos/pictures
Health monitoring Get warnings or alerts if there is anything wrong with your volumes, data or Varasto.
Per-collection durability To save money, we support storing important files with higher redundancy than less important files
Transactional File or group of files are successfully committed or none at all. Practically no other filesystem does this
Ransomware protection Run Varasto on a separate security-hardened device/NAS to protect from ransomware, or configure replication to S3 ransomware-protected bucket
Integrated SMART monitoring Detect disk failures early
Expand ▾ Collapse ▴

Directories

Path Synopsis
bin
cmd/sto
pkg/blobstore Interface for writing blob store adapters to Varasto
pkg/blobstore/googledriveblobstore Writes your blobs to Google Drive
pkg/blobstore/localfsblobstore Stores your blobs on local FS-accessible paths
pkg/blobstore/s3blobstore Writes your blobs to AWS S3
pkg/blorm "Bolt Light ORM", doesn't do much else than persist structs into Bolt..
pkg/childprocesscontroller Represents a child process whose state we want to control (start, stop, keep alive after crashes),
pkg/docreference
pkg/duration
pkg/frontend Definitions (like UI routes) for Varasto's frontend
pkg/fssnapshot Cross-platform filesystem snapshotting library
pkg/igdbapi IGDB (Internet Game Database) API
pkg/logtee Plumbing for teeing/tailing log messages.
pkg/mutexmap
pkg/restartcontroller Wrapper for running a restartable fn.
pkg/scheduler
pkg/seasonepisodedetector Extracts season & episode numbers for TV show filenames
pkg/smart Access SMART data of disks
pkg/sslca Managing a CA and signing server certs.
pkg/stateresolver Computes the state of collection at an exact revision.
pkg/stoclient Client for accessing Varasto server
pkg/stodebug
pkg/stofuse FUSE adapter for interfacing with Varasto from filesystem
pkg/stofuse/stofuseclient Client for FUSE server's API
pkg/stofuse/stofuseentrypoint This entrypoint is in own package, so we don't need to sprinkle conditional compilation all around the base "stofuse" package because it doesn't compile on Windows
pkg/stomediascanner
pkg/stomvu "Move utils" - logic for moving files to hierarchies sensible for TV shows, photo albums etc.
pkg/stoserver The server component main package for Varasto
pkg/stoserver/stodb Encapsulates access to the metadata database
pkg/stoserver/stodbimportexport logic for importing/exporting the metadata database into a file
pkg/stoserver/stodiskaccess diskaccess ties together DB metadata read/write in addition to writing to disk
pkg/stoserver/stohealth Health checks for Varasto server
pkg/stoserver/stointegrityverifier Responsible for integrity of your data by periodically scanning your volumes to detect bit rot and hardware failures.
pkg/stoserver/stokeystore
pkg/stoserver/storeplication Controls replication of data between volumes
pkg/stoserver/stoservertypes
pkg/stotypes
pkg/stoutils
pkg/themoviedbapi themoviedb.org ("TMDb") REST API client
pkg/tui Utils for text-based UIs