Home
Softono

AsterDrive

Open source MIT Rust
27
Stars
5
Forks
12
Issues
0
Watchers
2 months
Last Commit

 About AsterDrive

Self-hosted file infrastructure in Rust for small teams: reliable uploads, storage policies, S3/remote-node backends, WebDAV/WOPI, and ops tooling.

Platforms

Web Self-hosted Cloud

Languages

Rust

Need Help Installing AsterDrive?

We provide expert installation service for this software. Our team will install, configure, and secure AsterDrive on your server. plans start at just $30.

AsterDrive

View on GitHub

AsterDrive

Self-hosted file infrastructure in Rust for small teams that need storage control, reliable large-file uploads, WebDAV/WOPI, and operations visibility without adopting a full private-cloud suite.
Route files across local, S3-compatible, and remote-node backends with one MIT-licensed Rust + React service built for deployment, auditability, and modification.

Documentation Site 中文 README Quick Start Ops CLI Architecture API Docs Docker

AsterDrive English screenshot

What is AsterDrive?

AsterDrive is an MIT-licensed self-hosted file service for people who want control over where files live and how they move through the system. It is built around the core drive workflow: upload reliably, organize folders, recover mistakes, share access, connect WebDAV clients, open Office files through WOPI-compatible services, and route objects to the right storage backend.

It is not trying to become a full private-cloud suite. AsterDrive focuses on file infrastructure: storage policies, large-file upload paths, team and personal workspaces, sharing, version history, WebDAV, WOPI, auditability, and deployment/operations tooling.

The current v0.2.x line is an early stable release. It is usable for personal and small-team deployments, but still evolving quickly.

Where it fits

AsterDrive is a good fit when you want:

  • a single self-hosted service with embedded frontend assets
  • SQLite out of the box, with optional PostgreSQL / MySQL later
  • local filesystem, S3-compatible object storage, or remote AsterDrive follower-node storage
  • upload strategies for both small files and large objects: direct, resumable chunked, S3 presigned, and S3 multipart
  • personal and team workspaces with quotas, shares, trash, tasks, audit logs, and storage policy groups
  • WebDAV access with independent accounts and scoped root folders
  • Office preview/editing through external WOPI services such as OnlyOffice or Collabora
  • a codebase that is meant to be read, modified, and deployed without a plugin marketplace or enterprise stack

AsterDrive is probably not the right first choice when you need:

  • a complete collaboration suite with calendars, contacts, chat, mail, and an app ecosystem
  • mature native desktop and mobile sync clients today
  • an ultra-minimal web UI over a single server directory
  • multi-primary clustering, automatic failover, or enterprise compliance guarantees
  • a vendor-managed SaaS where someone else owns the deployment and data responsibility

Design focus

  • File safety first - trash, version history, locks, quota checks, and cleanup tasks are part of the core workflow, not decorative extras.
  • Storage control - policies can route uploads to local storage, S3-compatible storage, or remote follower nodes by user, team, and file size.
  • Large-file paths - the backend negotiates direct uploads, chunked uploads, S3 presigned uploads, and S3 multipart uploads based on policy and object size.
  • Interoperability without sprawl - WebDAV and WOPI cover practical client and Office workflows without turning the project into an all-in-one cloud suite.
  • Operations built in - health checks, runtime configuration, audit logs, background tasks, storage tests, doctor, and migration commands are first-class features.
  • Hackable core - Rust backend, React frontend, SeaORM migrations, explicit error codes, API docs, and clear service/repository boundaries.

Quick start

Run with Docker

For a local HTTP trial, prepare a writable data directory and start the official image:

mkdir -p ./data
sudo chown -R 10001:10001 ./data

docker run -d \
  --name asterdrive \
  -p 3000:3000 \
  -e ASTER__SERVER__HOST=0.0.0.0 \
  -e ASTER__AUTH__BOOTSTRAP_INSECURE_COOKIES=true \
  -e "ASTER__DATABASE__URL=sqlite:///data/asterdrive.db?mode=rwc" \
  -v "$(pwd)/data:/data" \
  ghcr.io/apts-1547/asterdrive:latest

Open:

http://127.0.0.1:3000

The first registered user becomes admin.

ASTER__AUTH__BOOTSTRAP_INSECURE_COOKIES=true is only for local or internal HTTP testing. For production, put AsterDrive behind HTTPS and keep secure cookies enabled.

You can also use the included Compose file:

mkdir -p ./data
sudo chown -R 10001:10001 ./data
docker compose up -d

See docs/deployment/docker.md for the full Docker guide.

Run from source

git clone https://github.com/AptS-1547/AsterDrive.git
cd AsterDrive

cd frontend-panel
bun install
bun run build
cd ..

cargo run

On first startup, AsterDrive will automatically:

  • generate data/config.toml under the current working directory if it does not exist
  • create the default SQLite database when using the default database URL
  • run all database migrations
  • create the default local storage policy and default policy group
  • initialize built-in runtime configuration items in system_config

Production notes

  • Do not expose :3000 directly to the public Internet. Put AsterDrive behind a reverse proxy that handles HTTPS, upload limits, WebDAV/WOPI passthrough, and security headers.
  • Configure public site URLs before relying on share links, WebDAV URLs, mail links, or WOPI callbacks.
  • Run ./aster_drive doctor after deployment and upgrades. The default SQLite search acceleration expects FTS5 + trigram tokenizer support.
  • Plan backups for the database, uploaded blobs, config, and any external object-storage credentials. Start with docs/deployment/backup.md.
  • If you enable WOPI, test real docx, xlsx, and pptx files through the final public URL and confirm that edits save back into AsterDrive.

Core capabilities

File management

  • folders, breadcrumbs, list/grid views, search, multi-select, and batch operations
  • file upload, folder upload, download, rename, move, copy, delete, restore, and purge
  • archive download, online archive compression/extraction, and background task progress
  • thumbnails, browser-native previews, read-only ZIP/7z archive manifest previews, and configurable external preview apps
  • Monaco-based text editing, lock awareness, version history, restore, and version deletion

Workspaces and sharing

  • personal workspace plus team workspaces
  • independent files, shares, trash, tasks, quotas, audit records, and policy groups per workspace
  • public file and folder shares at /s/:token
  • optional share password, expiration time, download limits, open/download counters, and direct links
  • shared-folder browsing with child-file download, preview, and thumbnail access

Access and editing

  • HttpOnly cookie auth plus Bearer JWT for API clients
  • first-user setup, registration controls, activation, password reset, and email-change confirmation
  • WebDAV accounts with independent passwords, scoped root folders, database-backed locks, custom properties, and a small DeltaV subset
  • WOPI launch sessions and file endpoints for Office preview/editing through external WOPI hosts
  • optional Passkey / WebAuthn registration and login endpoints

Storage and delivery

  • local storage, S3-compatible storage, and remote follower-node storage policies
  • policy groups that route uploads by user, team, and file size
  • optional local-only blob deduplication using SHA-256 and reference counting
  • S3 upload/download strategies: relay_stream, presigned, and multipart uploads
  • remote-node upload/download strategies: relay_stream and presigned
  • streaming upload/download paths where the selected strategy allows it

Administration and operations

  • admin overview, users, teams, storage policies, policy groups, remote nodes, shares, tasks, locks, runtime settings, and audit logs
  • schema-driven runtime configuration stored in system_config
  • health endpoints: /health, /health/ready, optional /health/memory, and optional /health/metrics
  • storage policy and remote-node connection tests
  • background task records for archive jobs, thumbnail generation, mail dispatch, cleanup, and runtime tasks
  • periodic cleanup for uploads, trash, locks, audit logs, teams, WOPI sessions, and orphaned blobs
  • Swagger UI in debug builds with the openapi feature, plus static OpenAPI export

Roadmap

v0.2.x: operational maturity

The v0.2.x line focuses on making AsterDrive easier to operate in real deployments: storage migration, scoped access, background workflows, safer error semantics, and remote-node deployment flexibility.

  • storage-policy blob migration tasks
  • team-scoped WebDAV accounts
  • offline HTTP/HTTPS import tasks with SSRF protection
  • broader archive preview and extraction support
  • email verification login
  • error-code taxonomy cleanup
  • deployment and operations documentation
  • reverse-connection support for follower nodes behind NAT

v0.3: organization and extensibility

The v0.3 line focuses on richer workspace organization and the foundation for controlled integrations.

  • tags for files and folders
  • tag-based filtering in file lists and search
  • WASM/Extism plugin design and spike
  • capability-based plugin permissions
  • event subscriptions and webhook-style automation
  • file actions and plugin-provided admin settings

Documentation

Development

Requirements

  • Rust 1.94.0+
  • Bun
  • Node.js 24+ for the current Docker frontend build stage

Common commands

# Backend
cargo run
cargo check
cargo test
cargo test --features openapi --test generate_openapi

# Frontend
cd frontend-panel
bun install
bun run dev
bun run build
bun run check

Notes

  • Type checking uses tsgo, not tsc
  • Linting uses biome, not ESLint
  • TypeScript enum is not allowed; use as const objects
  • Type-only imports must use import type

Project structure

src/                    Rust backend
migration/              SeaORM migrations
frontend-panel/         React admin/file panel
docs/                   Deployment and end-user documentation
developer-docs/         API, architecture, testing, and internal positioning docs
tests/                  Integration tests

License

MIT - Copyright (c) 2026 AptS-1547