explaingit

alistgo/alist

📈 Trending49,494GoAudience · developerComplexity · 3/5ActiveLicenseSetup · moderate

TLDR

Self-hosted file manager that unifies access to dozens of cloud storage services (Google Drive, OneDrive, Dropbox, S3, etc.) into a single browseable web interface with preview, download, and sharing capabilities.

Mindmap

mindmap
  root((AList))
    What it does
      Unify cloud storage
      Browse files online
      Preview documents
      Share via links
    Storage support
      Google Drive
      OneDrive Dropbox
      S3 compatible
      Local folders
    Features
      WebDAV mounting
      Password protection
      File uploads
      Cross-storage copy
    Tech stack
      Go backend
      Gin framework
      SolidJS frontend
      Docker deployment
    Use cases
      Centralized file access
      Self-hosted sharing
      Network drive mounting

Things people build with this

USE CASE 1

Browse and download files from multiple cloud storage accounts through a single web interface instead of switching between apps.

USE CASE 2

Mount your combined cloud storage as a network drive on your computer using WebDAV to access files like a local folder.

USE CASE 3

Share files with others via permanent links and allow visitors to upload files to your server without giving them direct access.

USE CASE 4

Copy files between different cloud storage providers without downloading them to your machine first.

Tech stack

GoGinSolidJSDockerWebDAV

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Docker to run and OAuth credentials from at least one cloud storage provider to see meaningful functionality.

Use and modify freely for any purpose, but any distributed modifications must also be open-source under AGPL-3.0.

In plain English

AList is a self-hosted file listing and access program that lets you connect dozens of different cloud storage services into a single unified web interface. The problem it solves is fragmentation: you might have files spread across Google Drive, OneDrive, Dropbox, an S3-compatible storage bucket, a local folder on your server, and several Chinese cloud storage platforms, and normally managing all of them means switching between different apps and websites. AList connects all of them and presents a single browseable file tree accessible through your browser. Once deployed, the web interface allows you to preview many file types directly in the browser, including PDFs, images, videos, audio files with lyrics and subtitle support, and Office documents. Files can be downloaded directly or shared via permanent links. The server also exposes a WebDAV interface, which is a standard protocol that lets you mount the combined storage as a network drive in your operating system or use it with third-party apps that support WebDAV. You can also configure password protection, allow visitors to upload files, and copy files between two connected storage providers without downloading them to your machine first. You would use AList if you need a centralized way to browse and share files that are scattered across multiple cloud storage accounts, or if you want a simple self-hosted web interface for files on your own server. It is aimed at people comfortable running a small server application. Deployment is straightforward with Docker. The tech stack is Go for the backend using the Gin web framework, and SolidJS for the front-end browser interface, all under the AGPL-3.0 open-source license.

Copy-paste prompts

Prompt 1
How do I deploy AList using Docker and connect my Google Drive and OneDrive accounts to it?
Prompt 2
Show me how to mount AList storage as a WebDAV network drive on Windows and macOS.
Prompt 3
What cloud storage providers does AList support, and how do I add a new storage backend?
Prompt 4
How do I set up password protection and file sharing links in AList for my team?
Prompt 5
Can I use AList to sync files between S3 and Google Drive without downloading them locally?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.