Skip to content
View ThirtyFile's full-sized avatar
  • ThirtyFile

Block or report ThirtyFile

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ThirtyFile/README.md

English · 繁體中文 · 简体中文 · 日本語

ThirtyFile logo: a tiger's head

ThirtyFile

Checks License: Apache-2.0 Docker image Docker Hub

A self-hosted file manager that looks and works like Windows File Explorer, in your browser.

Website and guides

The ThirtyFile file list

  • Tabs, folder tree, drag and drop, right-click menus and keyboard shortcuts
  • Map it as a drive on a computer or phone (WebDAV)
  • Preview Word, PowerPoint and Excel in the browser; edit the text of Word documents, Excel workbooks and text files online; earlier versions are kept
  • Share with a link (password, expiry date, download limit), or receive files through one
  • Work with files from other programs: SFTP, a folder published as an S3 bucket, or an FTP folder that scanners upload to
  • Invite people from outside as guests, who see only what is shared with them, until a set date
  • Keep files as ordinary folders on a local disk or NAS, or on S3-compatible storage, SFTP or FTP; show an existing folder as a space
  • Personal, company and team spaces, with roles and size limits
  • Sign in with a password and two-factor sign-in, or with Microsoft, Google, GitHub or any OpenID Connect provider
  • English, Traditional Chinese, Simplified Chinese and Japanese, dark mode, works on phones

Install

You need Docker.

docker run

docker run -d --name thirtyfile --restart unless-stopped \
  -p 8080:8080 \
  -v /srv/thirtyfile/data:/data \
  -v /srv/thirtyfile/storage:/storage \
  -e THIRTYFILE_ADMIN_PASSWORD='choose-a-password' \
  ghcr.io/thirtyfile/thirtyfile:latest

Docker Compose

The same images are available on Docker Hub. Replace ghcr.io/thirtyfile/thirtyfile with thirtyfile/thirtyfile in the command above or the Compose image: line, keeping the same version tag.

curl -fLO https://github.com/ThirtyFile/ThirtyFile/releases/latest/download/compose.yaml
docker compose up -d

Open http://localhost:8080 and sign in as admin. Without THIRTYFILE_ADMIN_PASSWORD, the password is created at random: docker logs thirtyfile 2>&1 | grep password.

/data holds accounts and settings, /storage holds your files, as ordinary folders: company, teams/<space name> and users/<user name>.

Guides

First steps What to set up after installing
Working with files Uploading, organising, shortcuts
Sharing Share links, roles and spaces
Settings Options for the container
Putting it on the internet HTTPS and reverse proxies
Upgrade and backup Keeping it up to date and safe
Troubleshooting Common problems

Development

You need rustup (it installs the Rust version in server/rust-toolchain.toml), Node 22.12+ and pnpm 11.

# Terminal 1: backend
cd server
THIRTYFILE_ADMIN_PASSWORD=changeme123 cargo run

# Terminal 2: frontend, at http://127.0.0.1:5173
cd web
pnpm install
pnpm dev

Checks before committing: the interface, the server, and an end-to-end test that signs in, uploads and previews files in a real browser (the first time, get the browser with cd web && pnpm exec playwright install chromium). Pull requests on GitHub run the quicker quick part; all of them run before a release:

scripts/check.sh            # everything
scripts/check.sh web        # or one part: web, server, e2e, site or quick
Folder Contents
server/ Backend (Rust)
web/ Frontend (React). Translations are in web/src/lib/i18n/, one folder per language
site/ The website and guides, published to GitHub Pages

Changes go through pull requests: see Contributing. Releases are made by hand from main and published as ghcr.io/thirtyfile/thirtyfile:latest, by major version (1, from 1.0.0 on: the safe tag for automatic updates) and by version number; the releases also carry the server as a single program for Linux (amd64, arm64) and compose.yaml.

License

ThirtyFile is licensed under the Apache License 2.0. The licence notices of the libraries it includes are in THIRD-PARTY-NOTICES, next to LICENSE in the image (/usr/share/licenses/thirtyfile/) and on each release. Unless you state otherwise, any contribution you submit for inclusion is licensed under the same terms.

Pinned Loading

  1. ThirtyFile ThirtyFile Public

    A self-hosted file manager that looks and works like Windows File Explorer, in your browser.

    TypeScript 2