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
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.shFor 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.shSee 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.shFor a fuller check or repair pass:
sudo /opt/filedepot/filedepot-doctor.sh
sudo /opt/filedepot/filedepot-doctor.sh --repair- 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.
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.shTo force an existing FileDepot server install to HTTPS:
sudo scripts/set-filedepot-server-https.shTrusted HTTPS generally needs a DNS hostname that points to your server. Browsers may warn when using HTTPS directly against a private IP address.
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.
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.shTo 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-hereThe retrieval layer stays provider-neutral so future providers can include OpenAI, Ollama, vLLM, or other on-prem endpoints.
Create a server backup:
sudo /opt/filedepot/filedepot-backup.shRestore from a backup archive:
sudo /opt/filedepot/filedepot-restore.sh /opt/filedepot-backups/filedepot-backup-YYYYmmdd-HHMMSS.tar.gzCreate a release tag after the repo is clean:
scripts/create-filedepot-release.sh VIII.002Build the FileDepot server image scaffold:
docker build -f docker/filedepot-server/Dockerfile -t filedepot-server:local .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.
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
These steps target Ubuntu or Debian-style systems.
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-devFileDepot 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 ldconfigIf pkg-config cannot find libsearpc, export the local pkg-config path:
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"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 ldconfigFor an in-tree development build:
./autogen.sh
./configure --with-python3
make -j"$(nproc)"
make checkOn 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.
Initialize a local client configuration:
seaf-cli init -d ~/filedepot-clientStart the daemon:
seaf-cli startStop the daemon:
seaf-cli stopShow synchronized libraries:
seaf-cli listThe command names currently remain seaf-cli and seaf-daemon for compatibility.
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.
See LICENSE.txt.
Open-source credits and the FileDepot ingredient log live in GUMBO.md.
