[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-DeadWaveWave--demo2apk":3,"tool-DeadWaveWave--demo2apk":64},[4,17,27,35,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",144730,2,"2026-04-07T23:26:32",[13,14,15],"开发框架","Agent","语言模型","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,3,"2026-04-06T11:19:32",[15,26,14,13],"图像",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":10,"last_commit_at":33,"category_tags":34,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85013,"2026-04-06T11:09:19",[26,43,44,45,14,46,15,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":23,"last_commit_at":54,"category_tags":55,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[14,26,13,15,46],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":23,"last_commit_at":62,"category_tags":63,"status":16},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",75097,"2026-04-07T22:51:14",[15,26,13,46],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":79,"owner_twitter":79,"owner_website":79,"owner_url":81,"languages":82,"stars":107,"forks":108,"last_commit_at":109,"license":79,"difficulty_score":23,"env_os":110,"env_gpu":111,"env_ram":111,"env_deps":112,"category_tags":124,"github_topics":125,"view_count":10,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":135,"updated_at":136,"faqs":137,"releases":168},5440,"DeadWaveWave\u002Fdemo2apk","demo2apk","Turn your Vibe Coding ideas into runnable Android Apps instantly","demo2apk 是一款专为\"Vibe Coding\"爱好者打造的一站式打包工具，能瞬间将你的创意原型或 AI 生成的代码（如来自 Gemini、ChatGPT、DeepSeek 的项目）转化为可安装的 Android APK 应用。它彻底解决了传统安卓开发中环境配置复杂、编译流程繁琐的痛点，让用户无需搭建任何开发环境，只需上传文件即可快速获得成品。\n\n无论是普通用户想体验自己的创意落地，还是开发者需要快速验证 AI 生成的 Demo，亦或是设计师希望展示交互式原型，demo2apk 都能提供极大便利。其核心亮点在于高度智能化的处理能力：支持单文件、代码粘贴及完整项目压缩包等多种输入模式；内置可视化界面，允许用户自定义应用名称、版本、图标及权限；更能自动识别 React\u002FVite 等项目类型，智能处理 CDN 资源与 JSX 编译，确保应用在离线环境下流畅运行。此外，它还提供了免费的公共云服务及便捷的 Docker 部署方案，让从创意到可用应用的转化过程变得前所未有的简单高效。","![Demo2APK](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDeadWaveWave_demo2apk_readme_8d1264baf4c3.png)\n\n# Demo2APK 🚀\n\n![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue)\n![Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FDeadWaveWave\u002Fdemo2apk?style=social)\n![Version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-2.3.0-green)\n\n[中文文档](README_CN.md)\n\n**Turn your Vibe Coding ideas into runnable Android Apps instantly.**\n\nDemo2APK is a one-click packaging tool built for Vibe Coding users. Whether you have a brilliant demo or a complete project generated by AI (Gemini, ChatGPT, DeepSeek, etc.), just upload your files, and we'll generate an installable APK for you immediately. No complex Android development environment setup required—keep your creativity at your fingertips.\n\n> Please don't accept APK files from others, as they may contain security risks!\n\n## 🌐 Free Public Service\n\nWe provide a **free public instance** for everyone:\n\n👉 **[https:\u002F\u002Fdemo2apk.lasuo.ai](https:\u002F\u002Fdemo2apk.lasuo.ai)**\n\n- 5 builds per IP per hour\n- No registration required\n- Fully functional, same as self-hosted\n\nHope this helps! If you find it useful, please ⭐ star this repo!\n\n## ✨ Core Features\n\n*   **🎨 Web Interface**: Immersive \"Dark Engineering Blueprint\" style UI for managing builds.\n*   **✏️ Customization**: Support setting custom **App Name**, **App Version** (e.g., 1.0.0), and **App Icon** during upload.\n*   **🔐 Android Permissions**: Customize Android permissions via UI - select exactly which permissions your app needs (defaults to INTERNET only).\n*   **📱 PWA Support**: Optionally generate an installable **Progressive Web App** alongside your APK for web deployment.\n*   **📋 Build History**: Automatically saves recent builds and supports **session restoration** after page refresh.\n*   **🧠 Intelligent Detection**: Automatically detects file types (HTML\u002FReact\u002FZIP) and chooses the optimal build strategy.\n*   **⏳ Smart Queuing**: Handles concurrent builds with a real-time queue system and progress feedback.\n*   **🔗 Easy Sharing**: Generate shareable download links instantly after build completion.\n*   **⚡️ Blazing Fast**: Optimized cloud pipeline delivering APKs in minutes.\n*   **🌐 Flexible Modes**:\n    *   **Single File Mode**: Supports `.html`, `.js`, `.jsx`, `.ts`, `.tsx` (auto-detects React components).\n    *   **Paste Code Mode**: Paste code directly, intelligent recognition of HTML\u002FReact\u002FJS content.\n    *   **ZIP Archive Mode**: Supports standard **React\u002FVite** projects (npm build) and **Multi-file HTML** projects (no build required).\n*   **🧠 Smart Offline**: Automatically handles CDN resources and JSX compilation to ensure your App runs smoothly offline.\n*   **🛡️ Rate Limiting**: Smart resource allocation (configurable for dev mode).\n*   **🧹 Auto Cleanup**: Build artifacts are automatically deleted after 2 hours to protect privacy and save space.\n\n## ⚠️ React Projects: Avoiding Blank Screens\n\n> **Important**: If your React\u002FVite APK shows a **white\u002Fblank screen**, you need to add the legacy plugin for Android WebView compatibility.\n\n```bash\nnpm install -D @vitejs\u002Fplugin-legacy terser\n```\n\n```javascript\n\u002F\u002F vite.config.js\nimport legacy from '@vitejs\u002Fplugin-legacy'\n\nexport default defineConfig({\n  plugins: [\n    react(),\n    legacy({ targets: ['chrome >= 52', 'android >= 5'] })\n  ],\n  base: '.\u002F'  \u002F\u002F Required for APK!\n})\n```\n\n📖 **[Full Guide: React Project Requirements](docs\u002FREACT_PROJECT_REQUIREMENTS.md)** - Detailed troubleshooting for blank screen issues.\n\n## 🚀 Quick Start\n\n### Option 1: Docker Deployment (Linux Server)\n\nDeploy to your Linux server in 3 minutes using pre-built Docker images.\n\n> ⚠️ Docker images only support **linux\u002Famd64**. For macOS, use [Local Development](#option-2-local-development-macos--linux).\n\n```bash\n# 1. Create deployment directory\nmkdir -p ~\u002Fdemo2apk && cd ~\u002Fdemo2apk\n\n# 2. Download deployment config\ncurl -O https:\u002F\u002Fraw.githubusercontent.com\u002FDeadWaveWave\u002Fdemo2apk\u002Fmain\u002Fdocker-compose.deploy.yml\n\n# 3. (Optional) Configure environment variables\ncurl -O https:\u002F\u002Fraw.githubusercontent.com\u002FDeadWaveWave\u002Fdemo2apk\u002Fmain\u002F.env.deploy.example\nmv .env.deploy.example .env\n# Edit .env to customize settings (rate limits, PWA, resource limits, etc.)\n\n# 4. Start services\ndocker compose -f docker-compose.deploy.yml up -d\n```\n\nVisit **http:\u002F\u002F127.0.0.1:5173** to use the Web UI.\n\n**Update to latest version:**\n```bash\ndocker compose -f docker-compose.deploy.yml pull && docker compose -f docker-compose.deploy.yml up -d\n```\n\n### Option 2: Local Development (macOS \u002F Linux)\n\nFor macOS users or local development:\n\n```bash\n# 1. Install dependencies\npnpm install\n\n# 2. Start Redis\ndocker run -d -p 6379:6379 redis:alpine\n\n# 3. Build project\npnpm build\n\n# 4. Start all services (in separate terminals)\npnpm dev        # API Server (port 3000)\npnpm worker     # Build Worker\npnpm frontend   # Web UI (port 5173)\n```\n\nVisit **http:\u002F\u002Flocalhost:5173** to use the Web UI.\n\n### Option 2: API Usage\n\nIf you prefer CLI or script integration, use our REST API.\n\n**Single HTML File:**\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fbuild\u002Fhtml \\\n  -F \"file=@test-demo.html\" \\\n  -F \"appName=TestDemo\"\n```\n\n**React Project:**\n\n```bash\n# Zip your project first\nzip -r test-react-app.zip test-react-app\u002F\n\n# Upload and build (Auto-detects project type)\ncurl -X POST http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fbuild\u002Fzip \\\n  -F \"file=@test-react-app.zip\" \\\n  -F \"appName=TestReactApp\"\n```\n\n**Paste Code:**\n\n```bash\n# Upload raw code (HTML\u002FJS\u002FReact)\ncurl -X POST http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fbuild\u002Fcode \\\n  -F \"code=\u003Cexport default function App() { return \u003Ch1>Hello\u003C\u002Fh1> }\" \\\n  -F \"appName=MyReactApp\"\n```\n\nSee [API Documentation](docs\u002FAPI.md) for details.\n\n## ⚙️ Configuration\n\n### Rate Limiting\n\nTo ensure fair usage, rate limiting is enabled by default:\n\n*   **Limit**: Max **5 requests** per hour per IP.\n*   **Dev Mode**: Can be disabled via environment variables for local development.\n\nSet in `.env`:\n\n```bash\n# Disable rate limiting (dev\u002Ftest only)\nRATE_LIMIT_ENABLED=false\n\n# Custom limit (default 5)\nRATE_LIMIT_MAX=10\n```\n\n### File Retention\n\nTo save storage and protect user data:\n\n*   **Retention**: Generated APKs and temp files are deleted after **2 hours**.\n*   **Cleanup**: Background worker scans for expired files every 30 minutes (configurable).\n\nConfigure via environment variable:\n\n```bash\n# Retention period (hours)\nFILE_RETENTION_HOURS=2\n\n# Whether to delete Cordova\u002FCapacitor work dirs after each build\nCLEANUP_BUILD_ARTIFACTS=true\n\n# Whether to delete uploaded inputs after each job (default true)\nCLEANUP_UPLOADS_ON_COMPLETE=true\n\n# Worker-side cleanup of old APKs\u002Fbuilds\u002Fuploads\nFILE_CLEANUP_ENABLED=true\nFILE_CLEANUP_INTERVAL_MINUTES=30\n```\n\n### Concurrency & Queuing\n\nControl how many builds run simultaneously. Excess builds will be queued automatically.\n\n```bash\n# Number of concurrent builds (default 2)\nWORKER_CONCURRENCY=2\n```\n\n## 📝 Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for release history.\n\n## 📚 Documentation\n\n- **[API Docs](docs\u002FAPI.md)** - Complete REST API reference\n- **[Deployment Guide](DEPLOYMENT.md)** - Production deployment instructions\n- **[React Project Guide](docs\u002FREACT_PROJECT_REQUIREMENTS.md)** - Best practices for React compatibility (avoiding blank screens)\n\n## 🛠️ Tech Stack\n\n*   **Frontend**: React, Vite, Tailwind CSS (Blueprint Style)\n*   **Backend**: Node.js, Fastify, TypeScript\n*   **Queue**: BullMQ, Redis\n*   **Build**: Cordova, Capacitor, Gradle\n*   **Deploy**: Docker, Docker Compose\n\n## 📈 Community\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDeadWaveWave_demo2apk_readme_9981ed2ce1ac.png)](https:\u002F\u002Fstar-history.com\u002F#DeadWaveWave\u002Fdemo2apk&Date)\n\n---\n\n**Made with ❤️ for Vibe Coding**\n","![Demo2APK](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDeadWaveWave_demo2apk_readme_8d1264baf4c3.png)\n\n# Demo2APK 🚀\n\n![许可证](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue)\n![星标](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FDeadWaveWave\u002Fdemo2apk?style=social)\n![版本](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-2.3.0-green)\n\n[中文文档](README_CN.md)\n\n**将你的 Vibe Coding 创意瞬间转化为可运行的 Android 应用。**\n\nDemo2APK 是专为 Vibe Coding 用户打造的一键打包工具。无论你有一个精彩的演示项目，还是由 AI（Gemini、ChatGPT、DeepSeek 等）生成的完整项目，只需上传文件，我们便会立即为你生成一个可安装的 APK。无需复杂的 Android 开发环境配置——让创意触手可及。\n\n> 请勿接受来自他人的 APK 文件，因为它们可能包含安全风险！\n\n## 🌐 免费公共服务\n\n我们为大家提供一个 **免费公共实例**：\n\n👉 **[https:\u002F\u002Fdemo2apk.lasuo.ai](https:\u002F\u002Fdemo2apk.lasuo.ai)**\n\n- 每个 IP 每小时最多可构建 5 次\n- 无需注册\n- 功能齐全，与自托管版本相同\n\n希望这能帮到你！如果你觉得有用，请为本仓库点个 ⭐ 星吧！\n\n## ✨ 核心功能\n\n*   **🎨 Web 界面**: 沉浸式的“暗黑工程蓝图”风格 UI，用于管理构建任务。\n*   **✏️ 自定义**: 支持在上传时设置自定义的 **应用名称**、**应用版本**（如 1.0.0）和 **应用图标**。\n*   **🔐 Android 权限**: 可通过 UI 自定义 Android 权限——仅选择你的应用所需的权限（默认仅启用 INTERNET 权限）。\n*   **📱 PWA 支持**: 可选地在生成 APK 的同时创建一个可安装的 **渐进式 Web 应用**，以便于 Web 部署。\n*   **📋 构建历史**: 自动保存最近的构建记录，并支持页面刷新后的 **会话恢复**。\n*   **🧠 智能检测**: 自动检测文件类型（HTML\u002FReact\u002FZIP），并选择最佳的构建策略。\n*   **⏳ 智能队列**: 通过实时队列系统处理并发构建任务，并提供进度反馈。\n*   **🔗 轻松分享**: 构建完成后，可立即生成可分享的下载链接。\n*   **⚡️ 极速响应**: 经过优化的云流水线，可在数分钟内交付 APK。\n*   **🌐 灵活模式**:\n    *   **单文件模式**: 支持 `.html`、`.js`、`.jsx`、`.ts`、`.tsx` 文件（自动检测 React 组件）。\n    *   **粘贴代码模式**: 直接粘贴代码，智能识别 HTML\u002FReact\u002FJS 内容。\n    *   **ZIP 压缩包模式**: 支持标准的 **React\u002FVite** 项目（需执行 npm build）以及 **多文件 HTML** 项目（无需构建）。\n*   **🧠 智能离线处理**: 自动处理 CDN 资源和 JSX 编译，确保你的应用在离线状态下也能流畅运行。\n*   **🛡️ 速率限制**: 智能资源分配（开发模式下可配置）。\n*   **🧹 自动清理**: 构建产物会在 2 小时后自动删除，以保护隐私并节省空间。\n\n## ⚠️ React 项目：避免白屏问题\n\n> **重要提示**：如果你的 React\u002FVite APK 出现 **白色或空白屏幕**，你需要添加兼容 Android WebView 的 legacy 插件。\n\n```bash\nnpm install -D @vitejs\u002Fplugin-legacy terser\n```\n\n```javascript\n\u002F\u002F vite.config.js\nimport legacy from '@vitejs\u002Fplugin-legacy'\n\nexport default defineConfig({\n  plugins: [\n    react(),\n    legacy({ targets: ['chrome >= 52', 'android >= 5'] })\n  ],\n  base: '.\u002F'  \u002F\u002F 对于 APK 必须设置！\n})\n```\n\n📖 **[完整指南：React 项目要求](docs\u002FREACT_PROJECT_REQUIREMENTS.md)** - 详细解决白屏问题的方法。\n\n## 🚀 快速开始\n\n### 选项 1：Docker 部署（Linux 服务器）\n\n使用预构建的 Docker 镜像，3 分钟即可部署到你的 Linux 服务器上。\n\n> ⚠️ Docker 镜像仅支持 **linux\u002Famd64**。对于 macOS 用户，请使用 [本地开发](#option-2-local-development-macos--linux)。\n\n```bash\n# 1. 创建部署目录\nmkdir -p ~\u002Fdemo2apk && cd ~\u002Fdemo2apk\n\n# 2. 下载部署配置文件\ncurl -O https:\u002F\u002Fraw.githubusercontent.com\u002FDeadWaveWave\u002Fdemo2apk\u002Fmain\u002Fdocker-compose.deploy.yml\n\n# 3. （可选）配置环境变量\ncurl -O https:\u002F\u002Fraw.githubusercontent.com\u002FDeadWaveWave\u002Fdemo2apk\u002Fmain\u002F.env.deploy.example\nmv .env.deploy.example .env\n# 编辑 .env 文件以自定义设置（速率限制、PWA、资源限制等）\n\n# 4. 启动服务\ndocker compose -f docker-compose.deploy.yml up -d\n```\n\n访问 **http:\u002F\u002F127.0.0.1:5173** 即可使用 Web UI。\n\n**更新到最新版本：**\n```bash\ndocker compose -f docker-compose.deploy.yml pull && docker compose -f docker-compose.deploy.yml up -d\n```\n\n### 选项 2：本地开发（macOS \u002F Linux）\n\n适用于 macOS 用户或本地开发：\n\n```bash\n# 1. 安装依赖\npnpm install\n\n# 2. 启动 Redis\ndocker run -d -p 6379:6379 redis:alpine\n\n# 3. 构建项目\npnpm build\n\n# 4. 启动所有服务（分别在不同终端中）\npnpm dev        # API 服务器（端口 3000）\npnpm worker     # 构建工作进程\npnpm frontend   # Web UI（端口 5173）\n```\n\n访问 **http:\u002F\u002Flocalhost:5173** 即可使用 Web UI。\n\n### 选项 2：API 使用\n\n如果你更倾向于命令行或脚本集成，可以使用我们的 REST API。\n\n**单个 HTML 文件：**\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fbuild\u002Fhtml \\\n  -F \"file=@test-demo.html\" \\\n  -F \"appName=TestDemo\"\n```\n\n**React 项目：**\n\n```bash\n# 先将项目打包成 ZIP 文件\nzip -r test-react-app.zip test-react-app\u002F\n\n# 上传并构建（自动检测项目类型）\ncurl -X POST http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fbuild\u002Fzip \\\n  -F \"file=@test-react-app.zip\" \\\n  -F \"appName=TestReactApp\"\n```\n\n**粘贴代码：**\n\n```bash\n# 上传原始代码（HTML\u002FJS\u002FReact）\ncurl -X POST http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fbuild\u002Fcode \\\n  -F \"code=\u003Cexport default function App() { return \u003Ch1>Hello\u003C\u002Fh1> }\" \\\n  -F \"appName=MyReactApp\"\n```\n\n详情请参阅 [API 文档](docs\u002FAPI.md)。\n\n## ⚙️ 配置\n\n### 速率限制\n\n为确保公平使用，默认启用了速率限制：\n\n*   **限制**：每个 IP 每小时最多 **5 次请求**。\n*   **开发模式**：可通过环境变量禁用，用于本地开发。\n\n在 `.env` 中设置：\n\n```bash\n# 禁用速率限制（仅限开发\u002F测试）\nRATE_LIMIT_ENABLED=false\n\n# 自定义限制（默认 5 次）\nRATE_LIMIT_MAX=10\n```\n\n### 文件保留\n\n为节省存储空间并保护用户数据：\n\n*   **保留期限**：生成的 APK 和临时文件将在 **2 小时** 后被删除。\n*   **清理机制**：后台工作进程每 30 分钟扫描一次过期文件（可配置）。\n\n可通过环境变量进行配置：\n\n```bash\n# 保留期限（小时）\nFILE_RETENTION_HOURS=2\n\n# 是否在每次构建后删除 Cordova\u002FCapacitor 工作目录\nCLEANUP_BUILD_ARTIFACTS=true\n\n# 是否在每次任务完成后删除上传的文件（默认 true）\nCLEANUP_UPLOADS_ON_COMPLETE=true\n\n# 工作进程侧清理旧 APK\u002F构建\u002F上传文件\nFILE_CLEANUP_ENABLED=true\nFILE_CLEANUP_INTERVAL_MINUTES=30\n```\n\n### 并发与队列\n\n控制同时运行的构建任务数量。超出数量的任务将自动进入队列。\n\n```bash\n# 并发构建任务数（默认 2 个）\nWORKER_CONCURRENCY=2\n```\n\n## 📝 更改日志\n\n发布历史请参阅 [CHANGELOG.md](CHANGELOG.md)。\n\n## 📚 文档\n\n- **[API 文档](docs\u002FAPI.md)** - 完整的 REST API 参考\n- **[部署指南](DEPLOYMENT.md)** - 生产环境部署说明\n- **[React 项目指南](docs\u002FREACT_PROJECT_REQUIREMENTS.md)** - 保证 React 兼容性的最佳实践（避免出现空白屏幕）\n\n## 🛠️ 技术栈\n\n*   **前端**: React、Vite、Tailwind CSS（Blueprint 风格）\n*   **后端**: Node.js、Fastify、TypeScript\n*   **队列**: BullMQ、Redis\n*   **构建**: Cordova、Capacitor、Gradle\n*   **部署**: Docker、Docker Compose\n\n## 📈 社区\n\n[![Star 历史图表](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDeadWaveWave_demo2apk_readme_9981ed2ce1ac.png)](https:\u002F\u002Fstar-history.com\u002F#DeadWaveWave\u002Fdemo2apk&Date)\n\n---\n\n**为 Vibe Coding 而用心打造**","# Demo2APK 快速上手指南\n\nDemo2APK 是一款专为\"Vibe Coding\"用户打造的一键打包工具。它能将 AI 生成的演示项目（HTML\u002FReact\u002FVite 等）瞬间转换为可安装的 Android APK 文件，无需配置复杂的 Android 开发环境。\n\n## 环境准备\n\n在部署前，请确保您的系统满足以下要求：\n\n*   **操作系统**：\n    *   **Linux (推荐)**：支持 `linux\u002Famd64` 架构，适用于生产环境 Docker 部署。\n    *   **macOS \u002F Linux**：适用于本地开发调试。\n    *   *注意：Docker 镜像暂不支持 macOS 直接运行，Mac 用户请使用“本地开发”模式。*\n*   **前置依赖**：\n    *   **Docker & Docker Compose**：用于快速部署服务（生产环境必需）。\n    *   **Node.js & pnpm**：用于本地源码运行和开发。\n    *   **Redis**：用于任务队列管理（本地开发需单独启动）。\n\n## 安装步骤\n\n您可以根据使用场景选择以下两种安装方式之一：\n\n### 方案一：Docker 部署（推荐 Linux 服务器）\n\n此方案适合快速搭建生产环境，全程约需 3 分钟。\n\n```bash\n# 1. 创建部署目录并进入\nmkdir -p ~\u002Fdemo2apk && cd ~\u002Fdemo2apk\n\n# 2. 下载 Docker Compose 配置文件\ncurl -O https:\u002F\u002Fraw.githubusercontent.com\u002FDeadWaveWave\u002Fdemo2apk\u002Fmain\u002Fdocker-compose.deploy.yml\n\n# 3. (可选) 下载并配置环境变量\n# 如需自定义限流、PWA 设置等，可编辑 .env 文件\ncurl -O https:\u002F\u002Fraw.githubusercontent.com\u002FDeadWaveWave\u002Fdemo2apk\u002Fmain\u002F.env.deploy.example\nmv .env.deploy.example .env\n\n# 4. 启动服务\ndocker compose -f docker-compose.deploy.yml up -d\n```\n\n启动完成后，访问 `http:\u002F\u002F127.0.0.1:5173` 即可使用 Web 界面。\n\n### 方案二：本地开发部署（macOS \u002F Linux）\n\n此方案适合开发者进行源码调试或二次开发。\n\n```bash\n# 1. 安装项目依赖\npnpm install\n\n# 2. 启动 Redis 服务 (需已安装 Docker)\ndocker run -d -p 6379:6379 redis:alpine\n\n# 3. 构建项目\npnpm build\n\n# 4. 分别在不同终端窗口启动以下三个服务\npnpm dev        # 启动 API 服务器 (端口 3000)\npnpm worker     # 启动构建工作器\npnpm frontend   # 启动 Web 前端界面 (端口 5173)\n```\n\n启动完成后，访问 `http:\u002F\u002Flocalhost:5173` 即可使用。\n\n## 基本使用\n\n安装完成后，您可以通过 **Web 界面** 或 **API 命令行** 两种方式生成 APK。\n\n### 方式 A：Web 界面操作（最简单）\n\n1.  浏览器访问部署地址（如 `http:\u002F\u002Flocalhost:5173`）。\n2.  上传您的代码文件：\n    *   **单文件模式**：直接上传 `.html`, `.js`, `.jsx` 等文件。\n    *   **项目模式**：上传包含 `package.json` 的 React\u002FVite 项目 ZIP 包。\n    *   **代码粘贴**：直接将代码粘贴到输入框。\n3.  （可选）自定义应用名称、版本号、图标及权限。\n4.  点击构建，等待完成后下载 APK 或分享链接。\n\n### 方式 B：API 命令行调用\n\n如果您希望通过脚本自动化构建，可使用以下 `curl` 命令示例：\n\n**1. 构建单个 HTML 文件：**\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fbuild\u002Fhtml \\\n  -F \"file=@test-demo.html\" \\\n  -F \"appName=TestDemo\"\n```\n\n**2. 构建 React\u002FVite 项目（需先打包为 ZIP）：**\n```bash\n# 先将项目压缩\nzip -r test-react-app.zip test-react-app\u002F\n\n# 上传并构建（自动识别项目类型）\ncurl -X POST http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fbuild\u002Fzip \\\n  -F \"file=@test-react-app.zip\" \\\n  -F \"appName=TestReactApp\"\n```\n\n**3. 直接粘贴代码构建：**\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fbuild\u002Fcode \\\n  -F \"code=\u003Cexport default function App() { return \u003Ch1>Hello\u003C\u002Fh1> }>\" \\\n  -F \"appName=MyReactApp\"\n```\n\n> **💡 重要提示（React 项目白屏问题）**\n> 如果您的 React\u002FVite 项目生成的 APK 出现白屏，请在项目中安装兼容插件并修改 `vite.config.js`：\n>\n> ```bash\n> npm install -D @vitejs\u002Fplugin-legacy terser\n> ```\n>\n> ```javascript\n> \u002F\u002F vite.config.js\n> import legacy from '@vitejs\u002Fplugin-legacy'\n>\n> export default defineConfig({\n>   plugins: [\n>     react(),\n>     legacy({ targets: ['chrome >= 52', 'android >= 5'] })\n>   ],\n>   base: '.\u002F'  \u002F\u002F 必须设置为相对路径\n> })\n> ```","一位前端开发者利用 AI 快速生成了一个活动宣传页原型，急需在安卓手机上向产品经理演示交互效果。\n\n### 没有 demo2apk 时\n- **环境配置繁琐**：为了打包一个简单的 HTML\u002FReact 页面，必须安装 Android Studio、配置 JDK 和 Gradle，耗时数小时且容易报错。\n- **构建流程复杂**：需要手动修改 `AndroidManifest.xml` 添加网络权限，调整 `base` 路径以防白屏，还要处理 WebView 兼容性插件。\n- **调试效率低下**：每次修改代码后，需重新执行 `npm build` 并重新编译 APK，无法实现“改完即看”的快速迭代。\n- **设备限制严格**：若身边没有数据线或调试桥（ADB）环境，根本无法将网页转化为可安装应用进行真机测试。\n\n### 使用 demo2apk 后\n- **一键即时打包**：直接将 AI 生成的代码文件或 ZIP 包拖入 demo2apk 网页界面，几分钟内即可生成可安装的 APK 文件。\n- **智能自动适配**：demo2apk 自动识别 React\u002FVite 项目结构，智能注入必要的遗留插件和权限配置，彻底解决安卓 WebView 白屏问题。\n- **灵活定制参数**：在上传时可随时通过界面自定义应用名称、版本号及图标，无需修改任何配置文件即可生成专业的演示包。\n- **跨端无缝流转**：生成下载链接后，扫码即可在任意安卓手机安装，甚至可同步生成 PWA 版本，让演示不再受限于开发环境。\n\ndemo2apk 将原本需要半天配置的安卓打包工作压缩至分钟级，让开发者能专注于创意验证而非环境搭建。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDeadWaveWave_demo2apk_8d1264ba.png","DeadWaveWave","DeadWave","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FDeadWaveWave_e6cfe78e.jpg","Code by day, Wave by night.",null,"Beijing","https:\u002F\u002Fgithub.com\u002FDeadWaveWave",[83,87,91,95,99,103],{"name":84,"color":85,"percentage":86},"TypeScript","#3178c6",86.9,{"name":88,"color":89,"percentage":90},"Shell","#89e051",9,{"name":92,"color":93,"percentage":94},"HTML","#e34c26",1.5,{"name":96,"color":97,"percentage":98},"JavaScript","#f1e05a",1.3,{"name":100,"color":101,"percentage":102},"Dockerfile","#384d54",0.9,{"name":104,"color":105,"percentage":106},"CSS","#663399",0.4,569,53,"2026-04-06T21:45:58","Linux, macOS","未说明",{"notes":113,"python":111,"dependencies":114},"1. Docker 镜像仅支持 linux\u002Famd64 架构，macOS 用户需使用本地开发模式部署。2. 本地部署需手动运行 Redis 容器。3. 若打包 React\u002FVite 项目在 Android 出现白屏，需安装 @vitejs\u002Fplugin-legacy 插件并配置 vite.config.js。4. 默认开启速率限制（每 IP 每小时 5 次构建），开发环境可通过环境变量关闭。5. 构建产物和临时文件默认在 2 小时后自动清理。",[115,116,117,118,119,120,121,122,123],"Node.js","pnpm","Redis","Docker","Docker Compose","Cordova","Capacitor","Gradle","@vitejs\u002Fplugin-legacy (React 项目可选)",[15],[126,127,128,129,130,131,132,133,134],"apk","apkdownload","chatgpt","demo","gemini","html","react","vibe-coding","vibecoding","2026-03-27T02:49:30.150509","2026-04-08T17:17:36.850415",[138,143,148,153,158,163],{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},24683,"构建时报错提示 JSX 元素中字符 '>' 无效（The character \">\" is not valid inside a JSX element）怎么办？","这是因为代码中使用了箭头符号 `->`，在严格的构建语法中不被允许。解决方法是将文本中的 `->` 替换为表情符号（如 ➡️）或其他非特殊字符。开发环境下可能正常，但生产构建会失败。","https:\u002F\u002Fgithub.com\u002FDeadWaveWave\u002Fdemo2apk\u002Fissues\u002F22",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},24684,"是否支持将整个静态网站项目（包含 js、css、html 等）打包成 APK，而不仅仅是单个 HTML 文件？","支持。新版本已增加该功能，您可以上传包含完整项目结构的压缩包（html project zip），系统将一键打包生成 APK。","https:\u002F\u002Fgithub.com\u002FDeadWaveWave\u002Fdemo2apk\u002Fissues\u002F1",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},24685,"上传或构建时出现 'UPLOAD FAILED: 500' 错误如何解决？","该错误通常是由于服务器证书过期导致的。维护者已修复此问题，如果您遇到此错误，请稍后重试即可。","https:\u002F\u002Fgithub.com\u002FDeadWaveWave\u002Fdemo2apk\u002Fissues\u002F32",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},24686,"构建过程中出现 'Killed' 或内存溢出错误（Exit code 137）怎么办？","这是由于构建过程内存溢出导致的。维护者已调整项目的内存限制设置以解决此问题。如果遇到此错误，请等待新版本部署更新后再次尝试。","https:\u002F\u002Fgithub.com\u002FDeadWaveWave\u002Fdemo2apk\u002Fissues\u002F3",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},24687,"构建任务失败提示 'Failed to create build job' 如何处理？","这是一个临时性的系统问题，维护者已修复。遇到此错误时，请直接重新尝试构建即可。","https:\u002F\u002Fgithub.com\u002FDeadWaveWave\u002Fdemo2apk\u002Fissues\u002F17",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},24688,"构建时提示 'OPERATION TIMED OUT'（操作超时）该怎么办？","这通常是偶发性的网络或服务器负载问题。建议稍后重新尝试构建，一般即可成功。","https:\u002F\u002Fgithub.com\u002FDeadWaveWave\u002Fdemo2apk\u002Fissues\u002F9",[]]