Convert Figma logo to code with AI

AlistGo logoalist

🗂️A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs. / 一个支持多存储的文件列表/WebDAV程序,使用 Gin 和 Solidjs。

44,948
5,830
44,948
292

Top Related Projects

📂 Web File Browser

27,149

☁️ Nextcloud server, a safe home for all your data

8,364

:cloud: ownCloud web server core (Files, DAV, etc.)

64,580

Open Source Continuous File Synchronization

Quick Overview

AlistGo/alist is an open-source file list program that supports multiple storage providers. It offers a web-based interface for managing and accessing files from various cloud storage services, local storage, and other sources. Alist aims to provide a unified solution for file management across different platforms.

Pros

  • Supports a wide range of storage providers, including local storage, cloud services, and FTP
  • User-friendly web interface with features like file preview, sharing, and search
  • Customizable appearance and layout options
  • Active development and community support

Cons

  • May require some technical knowledge for initial setup and configuration
  • Performance can vary depending on the number and size of files being managed
  • Some advanced features may require additional setup or plugins

Getting Started

To get started with AlistGo/alist:

  1. Download the latest release from the GitHub repository.
  2. Extract the files and run the executable.
  3. Access the web interface at http://localhost:5244.
  4. Log in with the default credentials (username: admin, password: displayed in the console).
  5. Add your storage providers in the admin panel.
  6. Customize settings and appearance as needed.

For more detailed instructions, refer to the official documentation on the project's GitHub page.

Competitor Comparisons

📂 Web File Browser

Pros of filebrowser

  • Lightweight and simple to set up
  • Built-in user management and authentication
  • Supports multiple storage backends (local, S3, etc.)

Cons of filebrowser

  • Limited cloud storage integration compared to Alist
  • Fewer advanced features for media playback and file preview
  • Less active development and community support

Code comparison

filebrowser:

func handleDownload(w http.ResponseWriter, r *http.Request, file *files.FileInfo) {
    fd, err := filesystem.Open(file.Path)
    if err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    }
    defer fd.Close()
    // ... (download handling)
}

Alist:

func (d *Driver) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error) {
    data := base.Json.Get("data")
    downloadUrl := data.Get("download_url").ToString()
    return &model.Link{URL: downloadUrl}, nil
}

Summary

filebrowser is a lightweight, self-hosted file browser with built-in user management, suitable for simple file hosting needs. Alist offers more extensive cloud storage integration and advanced features for media handling. filebrowser's code focuses on direct file operations, while Alist emphasizes cloud storage API interactions. Choose filebrowser for simplicity and local file management, or Alist for broader cloud storage support and media capabilities.

27,149

☁️ Nextcloud server, a safe home for all your data

Pros of Nextcloud

  • More comprehensive feature set, including calendar, contacts, and collaboration tools
  • Larger community and ecosystem with extensive app marketplace
  • Self-hosted solution with greater control over data privacy and security

Cons of Nextcloud

  • Higher resource requirements and potentially more complex setup
  • Steeper learning curve for administrators and end-users
  • May be overkill for users primarily seeking file storage and sharing

Code Comparison

Nextcloud (PHP):

<?php
namespace OCA\Files\Controller;

use OCP\AppFramework\Controller;
use OCP\IRequest;

class ViewController extends Controller {
    public function __construct($appName, IRequest $request) {
        parent::__construct($appName, $request);
    }
}

Alist (Go):

package server

import (
    "github.com/gin-gonic/gin"
)

func NewRouter() *gin.Engine {
    r := gin.Default()
    r.Use(cors.Default())
    return r
}

While both projects serve as file storage and sharing solutions, Nextcloud offers a more comprehensive platform with additional features beyond file management. Alist, on the other hand, focuses primarily on file storage and sharing with a simpler architecture. Nextcloud uses PHP and follows a more traditional MVC structure, while Alist is built with Go and utilizes the Gin web framework for routing.

8,364

:cloud: ownCloud web server core (Files, DAV, etc.)

Pros of ownCloud

  • More mature and established project with a larger community and ecosystem
  • Offers a wider range of features, including file sharing, collaboration tools, and calendar sync
  • Provides enterprise-grade security features and compliance options

Cons of ownCloud

  • Heavier resource requirements and potentially slower performance
  • More complex setup and configuration process
  • Steeper learning curve for new users and administrators

Code Comparison

ownCloud (PHP):

public function getStorageInfo($dir = '') {
    $storageInfo = $this->storage->getStorageInfo($dir);
    $this->updateStorageStatistics($storageInfo);
    return $storageInfo;
}

AlistGo (Go):

func (d *Driver) GetStorageInfo() (types.StorageInfo, error) {
    return types.StorageInfo{
        TotalSize: 0,
        UsedSize:  0,
    }, nil
}

ownCloud's code snippet shows a more complex storage info retrieval process, while AlistGo's implementation is simpler but may lack some advanced features.

Both projects aim to provide file storage and sharing solutions, but ownCloud offers a more comprehensive suite of features suitable for enterprise environments. AlistGo, on the other hand, focuses on simplicity and lightweight operation, making it more suitable for personal use or smaller deployments.

64,580

Open Source Continuous File Synchronization

Pros of Syncthing

  • Decentralized and peer-to-peer file synchronization, offering enhanced privacy and security
  • Cross-platform support with clients for various operating systems and devices
  • Open-source with a large, active community and regular updates

Cons of Syncthing

  • Steeper learning curve for initial setup and configuration
  • Requires running the Syncthing client on all devices for synchronization
  • Limited web interface functionality compared to Alist

Code Comparison

Syncthing (Go):

func (m *Model) ClusterConfig(deviceID protocol.DeviceID) protocol.ClusterConfig {
    cm := protocol.ClusterConfig{
        Folders:    make([]protocol.Folder, 0, len(m.cfg.Folders())),
        Devices:    make([]protocol.Device, 0, 1),
        Options:    make([]protocol.Option, 0, 1),
    }
    // ... (additional code)
}

Alist (Go):

func (d *Driver) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error) {
    path := getAbsPath(file.GetPath())
    url := fmt.Sprintf("%s/api/v3/fs/get?path=%s", d.conf.Address, url.PathEscape(path))
    res, err := d.request(url, http.MethodGet, nil, nil)
    if err != nil {
        return nil, err
    }
    // ... (additional code)
}

Both projects use Go, but Syncthing focuses on peer-to-peer synchronization, while Alist emphasizes file management and sharing through a web interface.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

logo

🗂️A file list program that supports multiple storages, powered by Gin and Solidjs.


English | 中文| 日本語 | Contributing | CODE_OF_CONDUCT

Features

Document

https://alistgo.com/

Demo

https://al.nn.ci

Discussion

Please go to our discussion forum for general questions, issues are for bug reports and feature requests only.

Sponsor

AList is an open-source software, if you happen to like this project and want me to keep going, please consider sponsoring me or providing a single donation! Thanks for all the love and support: https://alist.nn.ci/guide/sponsor.html

Special sponsors

  • VidHub - An elegant cloud video player within the Apple ecosystem. Support for iPhone, iPad, Mac, and Apple TV.
  • 亚洲云 - 高防服务器|服务器租用|福州高防|广东电信|香港服务器|美国服务器|海外服务器 - 国内靠谱的企业级云计算服务提供商 (sponsored Chinese API server)
  • 找资源 - 阿里云盘资源搜索引擎

Contributors

Thanks goes to these wonderful people:

Contributors

License

The AList is open-source software licensed under the AGPL-3.0 license.

Disclaimer

  • This program is a free and open source project. It is designed to share files on the network disk, which is convenient for downloading and learning Golang. Please abide by relevant laws and regulations when using it, and do not abuse it;
  • This program is implemented by calling the official sdk/interface, without destroying the official interface behavior;
  • This program only does 302 redirect/traffic forwarding, and does not intercept, store, or tamper with any user data;
  • Before using this program, you should understand and bear the corresponding risks, including but not limited to account ban, download speed limit, etc., which is none of this program's business;
  • If there is any infringement, please contact me by email, and it will be dealt with in time.

@GitHub · @TelegramGroup · @Discord