If you don’t already know, Caby is a self-hosted, web-based file manager: It’s an app that helps you store, organize, and share your files on your own hardware.

What you’re probably more interested in is whether Caby is the right app for your stack. To help you answer that, let us share the principles behind Caby’s development.

How Caby is Designed

Caby’s goal is to be a part of making self-hosting accessible to everyone. To this end we’ve taken an opinionated approach to self-hosting that revolves around three themes:

  • Reliability: File management should be the most reliable part of your stack.
  • Performance: The file management app or stack should be fast and efficient.
  • Focus: The file manager should have a defined role and scope.

Examples of Design Decisions

Here are some examples of design decisions from these principles:

Simple, Flat Files
Users’ files are stored as they’re sent. Storing plain files maximizes compatibility with other self-hosted apps or tools and works well with most home server infrastructure.
No Backing Services
Caby’s app state is held in plain files without the need for backing services (e.g. databases, caches, etc.). This reduces the blast-radius of corruption and makes it easy for a human (or their agent) to fix things when system data gets into a bad state.
Built-In Auth -> OIDC
Caby’s built-in simple auth system is good enough for most light use-cases. For setups that require managing many users and roles, we actively steer admins towards delegating these requirements to an OIDC provider.
Built-In Monitoring & Self-Healing (in-progress)
Caby runs background tasks that scan for issues and attempt to fix them automatically. If Caby can’t resolve the problem itself, it surfaces it to the admin or user to step in as early as possible.
Data Safety (in-progress)
Caby will ensure that information is not lost. For example, the file versioning and write queueing system will store two simultaneous changes to a file’s history instead of just the last.

If this sounds like the right fit for your stack, head over to Getting started for deployment options.