explaingit

shivsarthak/holdfast

Analysis updated 2026-05-18

5JavaScriptAudience · ops devopsComplexity · 3/5LicenseSetup · moderate

TLDR

A self hosted, Dropbox-like file storage app that runs as a single Docker image with a fast web dashboard and no cloud dependencies.

Mindmap

mindmap
  root((repo))
    What it does
      Self hosted file storage
      Resumable uploads
      Shareable links
    Tech stack
      Go
      SvelteKit
      SQLite
    Use cases
      Replace Dropbox on a home server
      Share files without an account
      Run on a NAS or VPS
    Audience
      Developers
      Ops devops

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Self host a Dropbox style file dashboard on a home server, NAS, or VPS.

USE CASE 2

Share files with people who have no account using revocable share links.

USE CASE 3

Run resumable uploads for large files that survive interrupted connections.

What is it built with?

GoSvelteKitSQLiteDocker

How does it compare?

shivsarthak/holdfast00kaku/wp-rest-playgroundartefactdesigntn/jebari-imagebatch
Stars555
LanguageJavaScriptJavaScriptJavaScript
Setup difficultymoderatehardeasy
Complexity3/53/52/5
Audienceops devopsdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Docker is the easiest path, building the binary needs Go 1.24+, Node.js 24, and pnpm.

You may self host and modify it, but any networked service built on it must also share its source under the same license.

In plain English

Holdfast is a self hosted file storage service, meaning a person runs it on their own computer or server instead of paying a company like Dropbox to store files in the cloud. It runs as a single Docker container, a packaged way of running software, or can be compiled into one standalone program. Everything happens through a web dashboard in the browser, with no separate desktop app or sync client to install, and it stores all its data using SQLite, a simple embedded database, plus a regular folder on disk, with no external database or cloud service required. The dashboard lets people upload, browse, organize, and share files, with a grid or list view, drag and drop uploading, and both light and dark modes. Uploads can pause and resume from where they left off if interrupted, even for very large files, using something called the tus protocol. Files or folders can be shared through links that need no account to open, and owners can turn those links off at any time. Deleted items go to a trash folder first and are recoverable until a background process permanently removes them after a set amount of time. Thumbnails for images are generated automatically, and video or PDF previews work too if the optional tools ffmpeg and pdftoppm are installed alongside it. It supports multiple user accounts, each with their own private set of files, set up by an administrator, since there is no open self signup. The README is upfront that the project is still under very active early development, warns that it should not be used as someone's only backup, and recommends keeping real backups elsewhere. Getting started with Docker involves downloading two configuration files and running a single command, after which the first visitor to the web dashboard creates the administrator account. Building it manually from source instead requires Go, Node.js, and a tool called pnpm. The project has 5 GitHub stars, is primarily written in JavaScript and Go, and is released under the AGPL 3.0 license.

Copy-paste prompts

Prompt 1
Help me deploy Holdfast with Docker Compose and set up the first admin account.
Prompt 2
Explain how Holdfast's trash retention and reconcile background jobs work.
Prompt 3
Walk me through building Holdfast as a single static binary with Go and pnpm.
Prompt 4
Show me the environment variables I need to configure Holdfast's public URL and data directory.

Frequently asked questions

What is holdfast?

A self hosted, Dropbox-like file storage app that runs as a single Docker image with a fast web dashboard and no cloud dependencies.

What language is holdfast written in?

Mainly JavaScript. The stack also includes Go, SvelteKit, SQLite.

What license does holdfast use?

You may self host and modify it, but any networked service built on it must also share its source under the same license.

How hard is holdfast to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is holdfast for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.