SnapOtter

自托管文件处理,转换压缩OCR转写,文件不出内网

SnapOtter 是一个开源、可自托管的文件处理工具,旨在解决个人和企业处理图片、视频、音频、PDF 及文档时依赖云端服务导致的数据隐私和合规问题。它集成了格式转换、压缩、OCR 文字识别、语音转写以及本地 AI 推理等能力,所有处理都在你自己的网络内完成,文件无需上传到第三方服务器。用户可以通过图形界面、REST API 或流水线(pipelines)三种方式调用这些功能,适合批量处理或自动化集成。项目使用 TypeScript 编写,支持 Docker 部署,面向注重数据安全、需要离线处理媒体文件的场景,如医疗、法律、金融等对隐私要求高的行业,以及家庭实验室(homelab)用户。

开源 freemium 办公效率
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 2698
维护状态 活跃
是否开源
定价模式 freemium

项目数据

分类办公效率
开发团队snapotter-hq
所属国家
定价模式freemium
价格说明开源可自托管免费使用,官网或提供云服务付费方案,定价信息待确认
访问状态
是否开源
开源协议AGPL-3.0
主要语言TypeScript
技术栈/模型ai,airgap,audio-processing,compliance,docker,file-conversion,file-processing,homelab,image-editor,image-processing,media-processing,on-premise,open-source,pdf,privacy,rest-api,self-hosted,typescript,video,video-processing
GitHub 星标★ 2698
30天Star增速
HF 下载量
上线时间2026-03-29 00:00:00
最近更新2026-09-18 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-19
浏览次数0

使用教程

难度:入门 约 10 分钟 部署方式:Docker 6 步

环境要求

  • 已安装并可运行 Docker 的机器(README 未给出 Docker 安装方式)
  • 默认 Web 端口 1349 未被占用
  • 生产部署建议准备 Postgres 17 与 Redis 8(可用 Compose 一并拉起)
  • 如需 CUDA 加速,需 NVIDIA GPU 并使用官方 GPU Compose 文件

安装与启动步骤

  1. 1准备 Docker 环境

    确认本机 Docker 可正常运行容器。README 未提供 Docker 安装步骤,请先自行安装好 Docker 再继续。

  2. 2一键启动容器

    用官方镜像后台启动 SnapOtter,映射 1349 端口,并把 /data 挂到命名卷做数据持久化。

    docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest
  3. 3访问并登录

    浏览器打开 http://localhost:1349,用默认账号 admin / admin 登录,首次登录会被要求修改密码。

  4. 4编写生产 Compose 文件

    生产环境用 3 容器栈(app + Postgres 17 + Redis 8)。把示例内容保存为 compose.yaml。

    services:
      snapotter:
        image: snapotter/snapotter:latest
        ports: ["1349:1349"]
        environment:
          DATABASE_URL: postgres://snapotter:snapotter@postgres:5432/snapotter
          REDIS_URL: redis://redis:6379
        volumes:
          - SnapOtter-data:/data
        depends_on: [postgres, redis]
        restart: unless-stopped
      postgres:
        image: postgres:17-alpine
        environment:
          POSTGRES_USER: snapotter
          POSTGRES_PASSWORD: snapotter
          POSTGRES_DB: snapotter
        volumes: ["SnapOtter-pgdata:/var/lib/postgresql/data"]
        restart: unless-stopped
      redis:
        image: redis:8-alpine
        volumes: ["SnapOtter-redisdata:/data"]
        restart: unless-stopped
    volumes:
      SnapOtter-data:
      SnapOtter-pgdata:
      SnapOtter-redisdata:
  5. 5启动 Compose 栈

    在 compose.yaml 所在目录执行,后台拉起 snapotter、postgres、redis 三个容器。

    docker compose up -d
  6. 6启用 NVIDIA GPU(可选)

    有 NVIDIA GPU 时可改用官方 GPU Compose 文件获得 CUDA 加速,标签细节见官方文档。

关键配置

配置项必填说明示例
DATABASE_URL应用连接 Postgres 的数据库连接串,仅 Compose 生产栈使用postgres://snapotter:snapotter@postgres:5432/snapotter
REDIS_URL应用连接 Redis 的地址,仅 Compose 生产栈使用redis://redis:6379
POSTGRES_USERPostgres 用户名snapotter
POSTGRES_PASSWORDPostgres 密码,非本地部署务必修改snapotter
POSTGRES_DBPostgres 数据库名snapotter
portsWeb 界面端口映射,容器内监听 13491349:1349

如何确认成功

浏览器打开 http://localhost:1349,出现登录页并能用 admin / admin 登录,即部署成功。

常见问题

Q:默认用户名和密码是什么?

A:用户名 admin,密码 admin。登录后会要求你修改密码。

Q:单容器和 Compose 该怎么选?

A:个人试用或家庭环境用一条 docker run 即可;生产环境用 3 容器 Compose 栈(app + Postgres 17 + Redis 8)。

Q:支持 GPU 加速吗?

A:NVIDIA GPU 可用官方 GPU Compose 文件实现 CUDA 加速;Intel/AMD 核显的 VA-API、Quick Sync、OpenCL 目前不支持 AI 推理加速。

Q:数据会随容器删除而丢失吗?

A:不会。Compose 中挂载了 SnapOtter-data、SnapOtter-pgdata、SnapOtter-redisdata 三个持久卷。

Q:非本地部署要注意什么?

A:README 明确指出:任何非本地部署都必须修改 POSTGRES_PASSWORD,不要沿用示例值 snapotter。

注意事项

  • 默认密码 admin/admin 仅适合本地试用,首次登录后请立即修改。
  • 对外部署前必须更换 POSTGRES_PASSWORD 等示例凭据。
  • Intel/AMD 核显不支持 AI 推理加速,这类机器上 AI 工具会跑在 CPU 上。
  • OCR 在纯 CPU 与 NVIDIA 主机上都使用同一套便携 CPU 运行时;更多部署选项与 Docker 标签见 docs.snapotter.com。

核心亮点

  • 支持图片、视频、音频、PDF、文档等多种格式,功能覆盖转换、压缩、OCR、转写和本地AI推理
  • 提供UI、REST API和流水线三种使用方式,方便手动操作和自动化集成
  • 完全自托管,文件不离开本地网络,满足数据隐私和合规要求

不足之处

  • 项目仍在成长中,部分高级功能(如本地AI模型)可能需要额外配置和硬件资源
  • 文档和社区生态相对较新,遇到问题时可参考的案例和解决方案有限

适用场景

  • 医疗或法律机构需要处理敏感文件,要求数据不出内网,使用SnapOtter进行OCR和格式转换
  • 家庭实验室用户搭建个人媒体处理中心,批量压缩视频、转写音频
  • 开发者在应用中集成文件处理能力,通过REST API或流水线自动完成图片压缩和PDF转换

替代项目

Stirling PDF、Pandoc

项目介绍

SnapOtter 是一个办公效率领域的开源项目,官方简介:Open-source, self-hosted file-processing tool. Convert, compress, OCR, transcribe & run local AI across image, video, audio, PDF & documents, via UI, REST API & pipelines. Your files never leave your network.。项目使用 TypeScript 开发,在 GitHub 上获得 2698 星标。

上一篇:crosspaste-desktop

下一篇:uxie

同类项目推荐

sunshine-control-panel 开源

一站式管理游戏库、监控内存,AI 助手加持,让大屏启动更高效。

Sunshine Foundation 大屏桌面管理器 | Tauri + Vue 3,游戏库管理、米塔AI助手、内存监控···

★ 442 2026-08-09
Stirling PDF 开源

本地部署 PDF 工具箱

#1 PDF Application on GitHub that lets you edit PDFs on any device anywhere

★ 92336 2026-08-19
pdf2md 开源

浏览器里直接把 PDF 变成 Markdown,不用上传,隐私安全。

Browser based tool to convert PDFs to Markdown

★ 376 2026-08-09
SuperTextToolBox 开源

一个工具箱搞定 Windows 上的文字识别、朗读和 AI 处理

一个免费的文字处理工具箱

★ 58 2026-08-09