Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

Self-host a multi-cloud file list and WebDAV server that unifies many storage backends behind one web interface.

50,428
7,904
Go
AGPL-3.0
5 years old

What AList Does

AList is a self-hosted file list and WebDAV service that presents files from many different storage providers through one web interface. Instead of moving data into a single store, it connects to each provider's official SDK or API and exposes browsing, previewing, uploading, and downloading through a unified layer. Supported backends include local disk, OneDrive/SharePoint, Google Drive, S3, FTP/SFTP, WebDAV, SMB, Dropbox, Azure Blob Storage, ProtonDrive, and numerous Chinese cloud drives such as Aliyun Drive, Baidu Netdisk, 115, Quark, and UC (L44-L101).

It is aimed at people who already have files spread across several cloud accounts or network drives and want a single catalog to browse and share them. The built-in previewer handles PDF, Markdown, code, plain text, images in gallery mode, video and audio with subtitles/lyrics, and Office documents. Password-protected routes, direct download links, batch download, web upload, rename/move/copy, and offline download cover most day-to-day file management tasks.

AList is written in Go with a SolidJS frontend and is distributed under AGPL-3.0 LICENSE. Traffic handling is intentionally thin: the program does 302 redirects or forwards streams rather than intercepting or storing user data.

Quick Start

AList can be deployed with Docker, which is the most direct path from the README:

docker run -d --restart=always \
  -v /etc/alist:/opt/alist/data \
  -p 5244:5244 \
  -e PUID=0 -e PGID=0 -e UMASK=022 \
  --name="alist" xhofe/alist:latest

After the container starts, open http://<your-host>:5244 to reach the web UI. The initial admin password is generated by the program and can be printed with:

docker exec -it alist ./alist admin random

From the admin panel, add a storage backend, provide the provider credentials, and mount it. Once mounted, its files appear in the public file list and are reachable through the generated WebDAV endpoint. A live demo is available at the project demo site demo, and installation notes are in the official guide documentation.

Configuration and Limits

  • The deployment needs persistent storage for /opt/alist/data; without it, the configuration database is lost when the container is recreated.
  • Port 5244 must be reachable, and if you expose the service publicly, configure authentication and protected routes before sharing links.
  • Each storage provider must be connected through its own credentials or token; some providers require API access setup, and WebDAV is the fallback for OneDrive/SharePoint when API access is not practical WebDAV guide.
  • Behavior depends on the provider's official API. Account bans, download speed limits, and provider-side changes are outside the project's control, as the README's disclaimer states.
  • The AGPL-3.0 license applies if you modify and redistribute the software.

HotRepo's Take

AList is a mature project with a large footprint: about 50.4k stars and 7.9k forks as of the recorded snapshot. Its only HotRepo snapshot, from 2026-11-08 on the Go daily list, shows 11 stars gained and a best position of 12 on that day's list. That is a single observation rather than a growth trend, but it places the project near the top of the Go language daily ranking at that moment. The breadth of storage backends is the main reason it remains useful: most alternatives support a handful of providers, while AList treats many cloud drives as first-class mounts behind one interface.

Written by AI from the project's README, updated . The project's own docs are the source of truth.