Self-hosted cloud file storage with offline-first web and native clients
  • Go 35.9%
  • JavaScript 33.3%
  • Dart 26.5%
  • C++ 1.4%
  • CMake 1%
  • Other 1.8%
Find a file
2026-03-28 05:56:48 +05:30
client [client] WIP: auth setup 2026-03-28 05:56:48 +05:30
libreoffice-nogui [lo] Fix Dockerfile COPY command 2026-03-01 21:10:37 +05:30
screenshots [meta] Add basic screenshots to repo 2025-07-06 00:05:16 +05:30
server [server] Require json body for validate_db 2026-03-23 21:46:31 +05:30
.dockerignore [meta] Add compose.dev.yml 2026-03-11 20:53:26 +05:30
.gitignore Rename .env => example.env 2025-05-05 14:22:11 +05:30
build.sh [meta] Create build script for prod images 2026-03-06 10:55:49 +05:30
CHANGELOG.md [meta] Update CHANGELOG 2025-09-22 06:03:05 +05:30
compose.dev.yml [meta] Add compose.dev.yml 2026-03-11 20:53:26 +05:30
compose.yml [meta] Add registry to compose.yml 2026-03-06 10:54:34 +05:30
config.defaults.yml [server][config] Separate out config code 2026-03-12 22:31:26 +05:30
Containerfile.dev [meta] Add compose.dev.yml 2026-03-11 20:53:26 +05:30
example.env [server] Allow specifying image tag from env 2025-05-30 18:11:51 +05:30
LICENSE Add AGPL License 2025-04-27 21:46:42 +05:30
README.md [meta] Fix URL in quick-start [#50] 2025-09-10 18:36:52 +05:30
redirect.html [meta] Instance Redirect 2025-05-26 00:49:55 +05:30
RELEASE.md [meta] Add some helpful notes for creating releases 2026-02-18 00:05:43 +05:30

Phylum

License: AGPL v3 Matrix Chat

Phylum is a self-hosted file storage platform with offline-first web and native clients, meant as a replacement for Google Drive, Dropbox, etc. It is licensed under GNU Affero GPL 3.0, and is intended to be forever free and non-commercial.

Phylum may be for you if you want:

  • To own your data
  • A file browser with selective sync
  • A fast file manager with native apps - nothing more, nothing less
  • To support free software without mixed-licensing or paywalls
  • Something like Immich, but for files
  • Something that is fully baked

Warning

This project is under very active development, and no guarantees can be made about stability and backward-compatibility. Don't even think about putting the only copy of any data that you care about.

Features

*: Not yet built/tested on MacOS, iOS, and Windows.

Quick-Start

# download compose.yml
wget https://codeberg.org/shroff/phylum/raw/branch/main/compose.yml 
# create a new DB password and put it into .env
echo "PHYLUM_DB_PASSWORD=$(head -c 32 /dev/urandom | md5sum | cut -d ' ' -f 1)" > .env
# Create data/config.yml
mkdir -p data && touch data/config.yml
# Spin it up and show logs
docker compose up -d && docker compose logs -f

Once the server is up and running (it may take a minute or so the first time), create a user using the CLI

docker exec -it phylum_server phylum admin user create

Finally, go to http://localhost:2448

It is highly recommended to take a look at config.defaults.yml to see a full list of configuration options.

CLI

The CLI is a powerful way to interact with and manage a locally running phylum instance. It also enables many advanced admin use-cases that are not yet possible using the app or API yet. You can run it on docker using

$ docker exec -it phylum_server phylum <cmd>

Use the help command (or leave out the command) to get a list of options

Please note that for fs operations, <path>s can have a <uuid>: prefix to make the path relative to that UUID. This also means that if you know the UUID of the resource, you can simply use <uuid>: as the path. If no <uuid>: prefix is specified then the path is relative to the root directory, or the home directory of the user if one is specified using the --user-email flag.

Help and Contributing

Reach out on Matrix at #phylum_cloud:matrix.org if you need help to get set up, or want to contribute.

Screenshots

Desktop Screnshot

Mobile Screenshot