# siftp > siftp is an FTP, FTPS, and SFTP server in Rust with a read-only WebDAV gateway. Every error carries one of ten stable codes: the admin API, MCP, and WebDAV return {code, message, hint, docs_url}; FTP replies and SFTP status messages start with ": ". Operate it through one TOML file, the admin REST API (OpenAPI 3.1 at /api/v1/openapi.json on the server), or MCP tools (siftpd mcp-stdio, or POST /mcp). A running server describes itself at GET /.well-known/siftp.json without auth, including links to the docs for its exact version. Facts: per-user roots on local disk or S3 (s3://bucket/prefix) behind one jail; argon2id passwords, SSH keys with expiry and revocation, groups, per-directory permissions, LDAP; FTP + explicit/implicit FTPS (TLS 1.2/1.3) + SFTP v3 with OpenSSH extensions; durable store for API-created users; Prometheus /metrics; hash-chained JSON-lines audit log; graceful drain on SIGTERM, reload on SIGHUP. Default binds: FTP 21, implicit FTPS 990, SFTP 22 (2222 in the package), admin 127.0.0.1:8080. Optional tiered storage ([tier]): every local file is copied to S3 and local copies nobody uses become placeholders fetched back on read (https://siftp.org/docs/storage.md). Every HTML page also exists as Markdown at the same path with .md. Everything in one file: https://siftp.org/llms-full.txt Measured on one bare-metal x86_64 host (AWS c7i.metal-24xl, loopback, tmpfs, median of 5 runs): FTPS download 2357 MiB/s (vsftpd 1040, ProFTPD 1391), FTPS upload 1752 MiB/s (vsftpd 683, ProFTPD 1520), SFTP download 954 MiB/s (OpenSSH 763), 17.1 MiB of memory with 200 FTP sessions (vsftpd 65.5, ProFTPD 174). Method and full table: https://siftp.org/docs/performance.md Install on Debian 12+ or Ubuntu 22.04+ (amd64, arm64) from the signed apt repository https://apt.siftp.org (suite stable, component main, package siftpd; key https://apt.siftp.org/siftp-archive-keyring.gpg, Ed25519 fingerprint 705CFD11EA2D784D8110F551B34A5D638C919943). Commands: https://siftp.org/download.md ## Start - [Quickstart](https://siftp.org/docs/quickstart.md): config, first user, FTP/FTPS/SFTP transfers, API users - [Configuration](https://siftp.org/docs/configuration.md): file loading, sections, user keys, SIFTP_* overrides - [Download](https://siftp.org/download.md): release files, platforms, source builds ## Reference - [Protocols](https://siftp.org/docs/protocols.md): FTP/FTPS commands, SFTP requests and extensions, SSH algorithms, WebDAV methods - [Storage](https://siftp.org/docs/storage.md): local roots, S3 roots and their semantics - [Users and access](https://siftp.org/docs/identity.md): permission bits, groups, directory rules, SSH key options, password rotation, bans, LDAP - [Error codes](https://siftp.org/docs/errors.md): the ten codes with HTTP/FTP/SFTP mappings (docs_url target) - [Specification](https://siftp.org/spec.md): normative SPEC.md ## Operate - [Operations](https://siftp.org/docs/operations.md): install (deb, container, systemd), verify releases, reload/drain, health/readiness, metrics and alerts, logs, audit verification, backups, upgrades - [Performance](https://siftp.org/docs/performance.md): data paths, tuning, benchmark against vsftpd, ProFTPD, OpenSSH - [Security](https://siftp.org/docs/security.md): controls, admin API deployment, dependency policy, reporting ## Agents - [Agents and MCP](https://siftp.org/docs/llm.md): boot sequence, error handling, admin routes, MCP tools - [Versions](https://siftp.org/versions.json): released documentation versions; each has /v//llms.txt