Skip to content

cdburgess75/FileDepot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,471 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FileDepot

FileDepot banner

Bring people, files, and knowledge together.

FileDepot is a self-hosted file synchronization and sharing project maintained at cdburgess75/FileDepot. It provides a server deployment path, synchronization daemon, command-line tools, storage services, and protocol-compatible client components for private file sync workflows.

Current FileDepot version: VIII.001

Quick Server Install

For a fresh Linux server with Docker, set your hostname, admin login, and run the installer:

sudo FILEDEPOT_HOSTNAME=depot.example.com \
  FILEDEPOT_PROTOCOL=https \
  FILEDEPOT_ADMIN_EMAIL=admin@example.com \
  FILEDEPOT_ADMIN_PASSWORD='change-this-password' \
  scripts/install-filedepot-server.sh

For a LAN-only install, use the server IP and HTTP:

sudo FILEDEPOT_HOSTNAME=192.168.1.50 \
  FILEDEPOT_PROTOCOL=http \
  FILEDEPOT_ADMIN_EMAIL=admin@example.com \
  FILEDEPOT_ADMIN_PASSWORD='change-this-password' \
  scripts/install-filedepot-server.sh

See docs/server-install.md for the full server guide.

After install, prove the server is healthy in one command:

sudo /opt/filedepot/smoke-test-filedepot-server.sh

For a fuller check or repair pass:

sudo /opt/filedepot/filedepot-doctor.sh
sudo /opt/filedepot/filedepot-doctor.sh --repair

What It Does

  • Synchronizes selected folders with compatible servers.
  • Handles file conflicts using repository history.
  • Transfers file deltas and supports resumable uploads and downloads.
  • Supports encrypted libraries.
  • Provides command-line management through seaf-cli.
  • Runs background synchronization through seaf-daemon.
  • Includes a Docker-based Linux server deployment path.
  • Includes Linux, macOS, Windows, and Debian packaging assets.

FileDepot Server

The Docker-based server installer creates a working FileDepot server distribution, starts the web services, applies FileDepot branding automatically, and installs a smoke test.

FileDepot server installs default to HTTPS. Open the deployed server with https://your-hostname.

The installer is safe to rerun. On an existing server it repairs compose settings, keeps existing secrets, writes both FileDepot and legacy compatibility environment names, reapplies branding, restarts the web service, and leaves a smoke test in /opt/filedepot.

After a code-only update, reapply the FileDepot UI treatment with:

sudo scripts/apply-filedepot-server-branding.sh

To force an existing FileDepot server install to HTTPS:

sudo scripts/set-filedepot-server-https.sh

Trusted HTTPS generally needs a DNS hostname that points to your server. Browsers may warn when using HTTPS directly against a private IP address.

Server Branding

The installer applies the official FileDepot brand assets, login background, blue UI accents, help-page cleanup, About dialog, AI search wording, File Depots terminology, Wiki hiding, captcha lockout cleanup, and admin info version. The brand system uses exactly three canonical assets: filedepot_app_icon.png, filedepot_wordmark.png, and filedepot_favicon.png. Versioning starts at VIII.001; the next release should be VIII.002.

The smoke test now also verifies the browser branding assets that drive the live UI cleanup. If a server is reachable through a different operational address than the value stored in .env, run it with FILEDEPOT_SMOKE_BASE_URL=https://your-current-host.

Semantic Search

Phase 1 AI search is a local semantic passage search sidecar. It does not send content to an LLM unless an answer provider is configured. It crawls depots using the signed-in user's FileDepot session cookie, extracts text from accessible files, indexes passages in memory, and returns ranked files/passages with source links.

Fresh installs enable it by default. To enable it on an existing install:

cd ~/FileDepot
git pull
sudo scripts/enable-filedepot-ai-search.sh
sudo scripts/apply-filedepot-server-branding.sh

To opt out during install, set FILEDEPOT_ENABLE_AI_SEARCH=0.

To enable Claude answers, set provider secrets in /opt/filedepot/.env:

FILEDEPOT_AI_PROVIDER=anthropic
FILEDEPOT_AI_MODEL=claude-3-5-haiku-20241022
ANTHROPIC_API_KEY=your-key-here

The retrieval layer stays provider-neutral so future providers can include OpenAI, Ollama, vLLM, or other on-prem endpoints.

Operations

Create a server backup:

sudo /opt/filedepot/filedepot-backup.sh

Restore from a backup archive:

sudo /opt/filedepot/filedepot-restore.sh /opt/filedepot-backups/filedepot-backup-YYYYmmdd-HHMMSS.tar.gz

Create a release tag after the repo is clean:

scripts/create-filedepot-release.sh VIII.002

Build the FileDepot server image scaffold:

docker build -f docker/filedepot-server/Dockerfile -t filedepot-server:local .

Project Status

FileDepot is in active rebrand and modernization work. Public-facing documentation and package metadata have started moving to FileDepot, but some internal names are intentionally still unchanged.

You will still see names such as seaf-cli, seaf-daemon, libseafile, python/seafile, and seafile-data. Those names are part of command names, library names, import paths, on-disk data paths, and compatibility surfaces. They should be renamed gradually with migration planning and tests.

Repository Layout

app/                 command-line client entry points
daemon/              sync daemon and background services
common/              shared sync, storage, crypto, and utility code
lib/                 client library and RPC bindings
python/              Python client package
doc/                 man pages and CLI notes
debian/              Debian packaging files
deploy/              server deployment notes
dmg/                 macOS packaging assets
docs/                install and operations docs
msi/                 Windows installer assets
scripts/             build and server helper scripts
tests/               tests and test helpers
integration-tests/   integration setup helpers

Linux Build

These steps target Ubuntu or Debian-style systems.

1. Install Build Dependencies

sudo apt update
sudo apt install -y \
  git build-essential autoconf automake libtool intltool pkg-config \
  python3 python3-dev valac \
  libglib2.0-dev libevent-dev libsqlite3-dev libcurl4-openssl-dev \
  libjansson-dev zlib1g-dev libssl-dev libargon2-dev libwebsockets-dev

2. Build And Install libsearpc

FileDepot depends on libsearpc.

mkdir -p ~/src
cd ~/src
git clone https://github.com/haiwen/libsearpc.git
cd libsearpc

./autogen.sh
./configure --prefix=/usr/local --with-python3
make -j"$(nproc)"
sudo make install
sudo ldconfig

If pkg-config cannot find libsearpc, export the local pkg-config path:

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"

3. Build FileDepot

cd ~/src
git clone https://github.com/cdburgess75/FileDepot.git
cd FileDepot

./autogen.sh
./configure --prefix=/usr/local --with-python3
make -j"$(nproc)"
make check
sudo make install
sudo ldconfig

Local Development

For an in-tree development build:

./autogen.sh
./configure --with-python3
make -j"$(nproc)"
make check

On systems where Vala is difficult to install, this repository includes build-tools/valac, a small local shim used for development builds that rely on the checked-in generated C sources in lib/. A full release build should use a real Vala compiler when regenerating those sources.

Common Commands

Initialize a local client configuration:

seaf-cli init -d ~/filedepot-client

Start the daemon:

seaf-cli start

Stop the daemon:

seaf-cli stop

Show synchronized libraries:

seaf-cli list

The command names currently remain seaf-cli and seaf-daemon for compatibility.

Contributing

FileDepot is being shaped in small, testable steps. Good early contributions include:

  • Updating user-facing text from legacy names to FileDepot.
  • Improving Linux build documentation.
  • Adding tests around command-line behavior.
  • Planning safe migrations for internal package, binary, and data-path names.
  • Cleaning up platform packaging metadata.

Before large renames, prefer opening an issue or discussion so compatibility and migration paths can be considered.

License

See LICENSE.txt.

Open-source credits and the FileDepot ingredient log live in GUMBO.md.

About

Beyond file syncing and sharing, a new way to organize your files with extensible file properties and flexible views

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors