Sign inSign up

1195864138/aetherdrop

By 1195864138

Updated 5 months ago

一个基于 Web 的轻量级局域网文件共享管理和即时通讯工具。

Image
Web servers
Content management system
Databases & storage
0

9.6K

1195864138/aetherdrop repository overview

AetherDrop

AetherDrop 是一个基于 Web 的局域网文件传输和即时通讯工具。通过浏览器即可在手机、电脑、平板之间快速传输文件和消息,无需安装任何客户端。

img Docker Pulls Image Size Arch


特性

  • 实时通讯 — 基于 Socket.IO 的即时聊天,支持文本、Emoji、图片预览
  • 文件传输 — 拖拽上传,大文件支持,实时进度条,断点续传
  • 多房间 — 创建多个聊天房间,支持密码保护和过期自动清理
  • 用户管理 — 四级角色体系 (SuperAdmin / Admin / User / Guest),细粒度权限控制
  • WebDAV 同步 — 文件上传后自动备份到第三方 WebDAV/API 服务器
  • 系统设置 — 站点名称、公告、文件大小限制、消息保留策略等均可在后台配置
  • 响应式 UI — Glassmorphism 风格界面,完美适配移动端和桌面端,支持深色模式
  • 安全可靠 — JWT 认证、bcrypt 密码加密、速率限制、Helmet 安全头

快速开始

Docker Run(最快)
docker run -d \
  --name aetherdrop \
  -p 3001:3001 \
  -v aetherdrop_data:/app/data \
  -v aetherdrop_uploads:/app/uploads \
  1195864138/aetherdrop:latest

启动后访问 http://localhost:3001,默认管理员账号:admin / admin

Docker Compose(推荐)

创建 docker-compose.yml

version: '3.8'

services:
  aetherdrop:
    image: 1195864138/aetherdrop:latest
    container_name: aetherdrop
    ports:
      - "3001:3001"
    volumes:
      - aetherdrop_data:/app/data
      - aetherdrop_uploads:/app/uploads
    environment:
      - AUTH_USERNAME=admin
      - AUTH_PASSWORD=your_secure_password
      - JWT_SECRET=your_jwt_secret_here
    restart: unless-stopped

volumes:
  aetherdrop_data:
  aetherdrop_uploads:
docker-compose up -d

环境变量

变量说明默认值
PORT服务监听端口3001
AUTH_USERNAME初始管理员用户名(仅首次启动生效)admin
AUTH_PASSWORD初始管理员密码(仅首次启动生效)admin
JWT_SECRETJWT 签名密钥。生产环境务必设置,否则每次重启后所有用户需重新登录随机生成
ALLOWED_ORIGINS允许的 CORS 来源(逗号分隔)*
MAX_FILE_SIZE_ADMIN管理员最大上传大小 (bytes)10737418240 (10GB)
MAX_FILE_SIZE_USER普通用户最大上传大小 (bytes)1073741824 (1GB)
MAX_FILE_SIZE_GUEST访客最大上传大小 (bytes)524288000 (500MB)

数据持久化

容器内需要挂载以下两个目录以保证数据不丢失:

容器路径说明
/app/dataSQLite 数据库(用户、消息、房间、设置)
/app/uploads用户上传的文件

角色与权限

角色说明
SuperAdmin全部权限:用户管理、系统设置、DAV 配置、房间管理等
Admin房间管理、删除消息、文件上传、查看管理面板
User文件上传、发送消息、创建房间
Guest文件上传、发送消息

反向代理 (Nginx)

如需通过域名 + HTTPS 访问,Nginx 参考配置:

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://localhost:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    client_max_body_size 500M;
}

提示:Socket.IO 需要 WebSocket 支持,务必保留 UpgradeConnection 头。


技术栈

技术
前端React · TypeScript · Vite · Tailwind CSS · Framer Motion
后端Node.js · Express · Socket.IO
数据库SQLite
安全JWT · bcrypt · Helmet · express-rate-limit
容器多阶段构建 · Alpine 基础镜像 · 非 root 运行

架构

  • 多阶段 Docker 构建:builder → deps → runner,最终镜像精简高效
  • 多架构支持linux/amd64 + linux/arm64,兼容 x86 服务器和 ARM 设备(树莓派、Apple Silicon 等)
  • 健康检查:内置 HEALTHCHECK,通过 /api/health 端点监控服务状态
  • 非 root 运行:容器以 node 用户运行,增强安全性

版本

  • latest — 始终指向最新稳定版
  • v2.0.0 — 当前最新版本

👨‍💻 关于开发者

我是 阿弥,一个热爱折腾代码和新技术的非开发者。

如果你对这个项目感兴趣,或者有任何建议,欢迎访问我的个人网站:https://161767.xyz

Tag summary

Content type

Image

Digest

sha256:1423315d2

Size

75.7 MB

Last updated

5 months ago

docker pull 1195864138/aetherdrop