MCPcopy Index your code
hub / github.com/AnYanYi/Linux-app-installer

github.com/AnYanYi/Linux-app-installer @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,439 symbols 4,899 edges 97 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

📢 关于本项目
本项目基于 TuxMate 进行中文化和优化。
原项目作者:@abusoww | 许可证:GPL-3.0

Linux 应用安装器

基于 TuxMate 的完整中文版

Linux 应用安装器

Linux 中文版 Maintained GitHub license

🐧 你安装 Linux 唯一需要的伙伴

Linux 应用安装器 是一个基于 Web 的应用安装工具,可以生成针对特定发行版的 Shell 脚本, 旨在成为在全新 Linux 系统上批量安装应用程序的最简单方式。

也许你刚刚安装了一个全新的 Linux 发行版。也许你正在设置一台新机器,或者记不住你最喜欢的应用程序的所有软件包名称?

📦 支持的发行版

  • Ubuntu / Debian (apt)
  • Arch Linux (pacman + AUR)
  • Fedora (dnf)
  • openSUSE (zypper)
  • Nix (nix-env)
  • Flatpak
  • Snap

✨ 特性 🌟

应用目录

180+ 个应用,涵盖 15 个类别:浏览器、通讯软件、开发工具、终端、媒体、创意软件、游戏、办公、VPN/网络、安全等。

配置管理 🆕

  • 保存配置:将当前选择保存到本地历史记录
  • 导出为文件:下载配置为 JSON 文件,便于备份和分享
  • 导入配置:从 JSON 文件快速恢复之前的选择
  • 分享链接:生成包含配置的 URL,一键分享给朋友
  • 最近配置:快速访问最近保存的 5 个配置

智能脚本生成

  • 检测已安装的软件包
  • 在 Arch 上自动处理 AUR 软件包
  • 在 Fedora 上按需启用 RPM Fusion
  • Flatpak 并行安装
  • 网络重试与指数退避
  • 带预估时间的进度条
  • 彩色输出和总结报告

可用性感知

显示哪些应用在您选择的发行版上可用,并提供不可用软件包的安装说明。

📚 文档

🎯 使用示例

基本使用

  1. 选择你的 Linux 发行版
  2. 浏览并点击想要安装的应用
  3. 查看底部生成的安装脚本
  4. 点击"下载脚本"或复制命令到终端运行

配置管理(新功能)

  1. 保存配置:选择应用后点击右上角"配置"按钮
  2. 导出备份:将配置导出为 JSON 文件
  3. 分享配置:生成链接一键分享给朋友
  4. 快速恢复:导入配置文件或使用最近配置

详细说明请查看 配置管理指南

📸 截图

1 2 3

💻 开发

npm install
npm run dev

打开 http://localhost:3000

构建

npm run build
npm start

🗂️ 项目结构

src/
├── app/                    # Next.js app router
│   ├── page.tsx            # Main page component
│   ├── layout.tsx          # Root layout with meta tags
│   └── globals.css         # Tailwind styles
├── components/
│   ├── app/                # App cards & categories
│   ├── command/            # Command footer & AUR settings
│   ├── common/             # Tooltips, loading states
│   ├── distro/             # Distribution selector
│   ├── header/             # Header links & info
│   ├── search/             # Search overlay
│   └── ui/                 # Theme toggle
├── hooks/                  # React hooks
│   ├── useLinuxInit.ts     # Main app state management
│   ├── useKeyboardNavigation.ts
│   ├── useTheme.tsx
│   └── useDelayedTooltip.ts
├── lib/
│   ├── data.ts             # Apps, distros, icons
│   ├── aur.ts              # AUR package detection
│   ├── analytics.ts        # Umami tracking
│   ├── utils.ts            # Utility functions
│   ├── generateInstallScript.ts
│   └── scripts/            # Per-distro script generators
└── __tests__/              # Vitest unit tests

🐳 Docker 部署

Docker 快速开始

# 构建 Docker 镜像
docker build -t linux-app-installer:latest .

# 运行容器
docker run -p 3000:3000 linux-app-installer:latest

使用预构建镜像

注意:本项目暂未发布 Docker 镜像到容器注册表。
请使用上述构建命令在本地构建镜像,或等待后续发布。

如果你想发布自己的镜像到 GitHub Container Registry:

# 构建并推送(需要先登录 GitHub Container Registry)
docker build -t ghcr.io/你的用户名/linux-app-installer:latest .
docker push ghcr.io/你的用户名/linux-app-installer:latest

使用 Docker Compose(推荐)

# 启动应用
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止应用
docker-compose down

打开 http://localhost:3000

配置

Docker 容器默认暴露 3000 端口。你可以自定义端口映射:

docker run -p 8080:3000 linux-app-installer:latest

环境变量

默认配置了以下环境变量:

  • NODE_ENV=production - 在生产模式下运行
  • PORT=3000 - 应用端口
  • NEXT_TELEMETRY_DISABLED=1 - 禁用 Next.js 匿名遥测

运行容器时可以覆盖这些变量:

docker run -p 3000:3000 \
  -e PORT=3000 \
  -e NEXT_TELEMETRY_DISABLED=1 \
  linux-app-installer:latest

🛠️ 技术栈

🚀 使用方法

  1. 从下拉菜单中选择你的发行版
  2. 浏览分类并选择应用程序
  3. 复制生成的命令或下载完整的安装脚本
  4. 在你的 Linux 机器上运行脚本

⌨️ 键盘快捷键

按键 操作
/ h j k l 导航应用
空格 切换应用选择
Esc 清除焦点
/ 聚焦搜索
y 复制命令
d 下载脚本
t 切换主题
c 清除所有选择
Tab 切换预览抽屉

🤝 贡献

查看 CONTRIBUTING.md 了解贡献指南。

🎯 路线图

已完成

  • [x] Multi-distro support (Ubuntu, Debian, Arch, Fedora, openSUSE)
  • [x] Nix, Flatpak & Snap universal package support
  • [x] 180+ applications across 15 categories
  • [x] Smart script generation with error handling
  • [x] Dark / Light theme toggle with smooth animations
  • [x] Copy command & Download script
  • [x] Custom domain
  • [x] Docker support
  • [x] CI/CD shortcuts & workflow
  • [x] Search & filter applications (Real-time)
  • [x] AUR Helper selection (yay/paru) + Auto-detection
  • [x] Keyboard navigation (Vim keys, Arrows, Space, Esc, Enter)
  • [x] Package availability indicators (including AUR badges)

计划中

  • [ ] Winget 支持(Windows)
  • [ ] Homebrew 支持(macOS)
  • [ ] 保存自定义预设/配置文件
  • [ ] 通过 URL 分享配置
  • [ ] 更多发行版(Gentoo、Void、Alpine)
  • [ ] PWA 支持离线使用
  • [ ] CLI 配套工具
  • [ ] 扩展应用目录(200+)
  • [ ] Dotfiles 集成

🔗 相关项目

  • LinuxToys – User-friendly collection of tools for Linux with an intuitive interface
  • Nixite – Generates bash scripts to install Linux software, inspired by Ninite
  • tuxmate-cli – CLI companion for tuxmate, uses tuxmate's package database

📜 许可证

采用 GPL-3.0 许可证

自由软件 — 你可以在 GNU 通用公共许可证的条款下重新分发和修改它。

<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true" />

Extension points exported contracts — how you extend this code

PresetSelectorProps (Interface)
(no doc)
src/components/preset/PresetSelector.tsx
ScriptOptions (Interface)
(no doc)
src/lib/generateInstallScript.ts
ThemeContextType (Interface)
(no doc)
src/hooks/useTheme.tsx
AurPanelProps (Interface)
(no doc)
src/components/command/AurPanel.tsx
NixConfigOptions (Interface)
(no doc)
src/lib/generateNixConfig.ts
I18nStore (Interface)
(no doc)
src/hooks/useI18n.ts
ShortcutsBarProps (Interface)
(no doc)
src/components/command/ShortcutsBar.tsx
Window (Interface)
(no doc)
src/lib/analytics.ts

Core symbols most depended-on inside this repo

rO
called by 251
out/_next/static/chunks/b0e1b20e3bc0428b.js
Error
called by 202
src/app/error.tsx
si
called by 167
src/lib/data.ts
Ce
called by 155
out/_next/static/chunks/a6dad97d9634a72d.js
b
called by 151
out/_next/static/chunks/b0e1b20e3bc0428b.js
get
called by 146
out/_next/static/chunks/42879de7b8087bc9.js
i
called by 125
out/_next/static/chunks/fde4229059e4d76c.js
set
called by 120
out/_next/static/chunks/98c0502f21e6afd0.js

Shape

Function 1,277
Method 87
Class 40
Interface 35

Languages

TypeScript100%

Modules by API surface

out/_next/static/chunks/fde4229059e4d76c.js545 symbols
out/_next/static/chunks/a6dad97d9634a72d.js212 symbols
out/_next/static/chunks/b0e1b20e3bc0428b.js211 symbols
out/_next/static/chunks/98c0502f21e6afd0.js98 symbols
out/_next/static/chunks/e197b27e02e4dd6e.js91 symbols
out/_next/static/chunks/42879de7b8087bc9.js43 symbols
out/_next/static/chunks/5f465f86e2544907.js30 symbols
out/_next/static/chunks/turbopack-de3f6069c2e495fc.js27 symbols
src/lib/logger.ts15 symbols
src/lib/configManager.ts12 symbols
src/lib/data.ts9 symbols
src/lib/performance.ts8 symbols

For agents

$ claude mcp add Linux-app-installer \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact