# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: EasyImg
spec:
    description: A one-stop image hosting service for individuals.
    coverImage: https://raw.githubusercontent.com/chaos-zhu/easyimg/2cad0efec42eb459f7fee69b8ca18f51164572cb/md-images/img1.jpg
    icon: https://raw.githubusercontent.com/chaos-zhu/easyimg/fba4bee511e6531c2a83debf87cf54d7bb48ba76/public/favicon.png
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Domain
          description: Which domain do you want to deploy EasyImg on?
    tags:
        - Tool
        - API
        - Website
    readme: "# [EasyImg](https://github.com/chaos-zhu/easyimg) - [chaos-zhu](https://github.com/chaos-zhu)\n_✨ A simple and easy-to-use personal image hosting system built with Nuxt.js ✨_\n\n## Quick Start\n### Default Account\nAfter the first launch, use the following default account to log in:\n\n- **Username**: `easyimg`\n- **Password**: `easyimg`\n\n> ⚠️ Please change the default username and password immediately after logging in!\n\n## Features\n### \U0001F5BC️ Image Management\n- Multiple Upload Methods: Supports click, drag-and-drop, and paste uploads, and supports batch uploading of multiple images\n- URL Upload: Supports downloading images directly from a URL to the local library\n- Waterfall Display: Responsive waterfall layout, adapting to different screen sizes\n- Image Preview: Supports large image preview, displaying detailed image information\n- Batch Operations: Supports batch selection and batch deletion of images\n- Recycle Bin: Soft-delete mechanism, supports emptying the recycle bin to free up space\n\n### \U0001F510 Permission Control\n- Public/Private Upload: Supports two modes: visitor upload and private upload after login\n- API Key Management: Supports creating multiple API Keys for easy calling by third-party tools\n- IP Blacklist: Supports manual or automatic blacklisting of malicious IPs\n\n### \U0001F6E1️ Content Security\n- NSFW Detection: Supports multiple adult content detection services (nsfwdet.com, elysiatools.com, self-hosted [nsfw_detector](https://github.com/chaos-zhu/nsfw_detector))\n- Automatic Processing: Non-compliant images are automatically soft-deleted, with an optional automatic blacklisting of the uploader's IP\n- Violation Management: Supports viewing the list of violating images, and manual cancellation of the violation flag\n\n### \U0001F4CA Data Statistics\n- Storage Statistics: Real-time statistics on the number of active images and storage space usage\n- Classification Statistics: Distinguishes between public and private upload quantities\n- Content Security Statistics: Total number of images scanned, number of violating images, and violation rate\n\n### \U0001F514 Notification Push\n- Multiple Notification Methods: Supports Webhook, Telegram, Email, ServerChan\n- Event Notifications: Login notifications, image upload notifications, and NSFW detection result notifications\n- Custom Templates: Webhook supports custom request body templates\n\n### ⚙️ System Settings\n- Application Configuration: Customize application name, Logo, and global background image\n- Announcement System: Supports two announcement display formats: pop-up and banner\n- Upload Configuration: Configurable allowed formats, file size limits, WebP compression, etc.\n- Rate Limiting: Supports configuring request frequency limits for the same IP\n\n### \U0001F3A8 Interface Features\n- Dark Mode: Supports switching between light/dark themes\n- Responsive Design: Perfectly adapts to desktop and mobile devices\n- Frosted Glass Effect: Supports frosted glass blur effect for background images\n\n## FAQ\n### Q: How to reset the administrator password?\nDelete the `db/admin.db` file and restart the service; the system will recreate the default account.\n\n### Q: How to back up data?\nBack up the `db` and `uploads` directories, which contain all database files and uploaded images.\n\n### Q: Which image formats are supported?\nDefault support: JPEG, JPG, PNG, GIF, WebP, AVIF, SVG, BMP, ICO, APNG, TIFF\n\n## Other Projects by the Author\n- [EasyNode](https://github.com/chaos-zhu/easynode) - Multifunctional Linux & Windows Server Web Terminal Panel\n- [EasyNavTab](https://github.com/chaos-zhu/easynavtab) - Open-source browser extension, custom new tab page\n\n## Communication and Feedback\n- Telegram Channel: [https://t.me/easynode_notify](https://t.me/easynode_notify)\n- GitHub Issues: [Submit an Issue](https://github.com/chaos-zhu/easyimg/issues)\n\n## Open Source License\n[Apache-2.0 License](https://github.com/chaos-zhu/easyimg/blob/b215ebecdfc99149d92fdc9f0ffab94e23e659fc/LICENSE)"
    services:
        - name: EasyImg
          icon: https://raw.githubusercontent.com/chaos-zhu/easyimg/fba4bee511e6531c2a83debf87cf54d7bb48ba76/public/favicon.png
          template: PREBUILT
          spec:
            source:
                image: ghcr.io/chaos-zhu/easyimg:latest
            ports:
                - id: web
                  port: 3000
                  type: HTTP
            volumes:
                - id: db
                  dir: /app/db
                - id: uploads
                  dir: /app/uploads
            env:
                NODE_ENV:
                    default: production
                    expose: true
            configs: []
          domainKey: PUBLIC_DOMAIN
localization:
    zh-CN:
        description: 适用于个人的一站式图床服务。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 域名
              description: 您想将 EasyImg 部署在哪个域名上？
        readme: "# [EasyImg](https://github.com/chaos-zhu/easyimg) - [chaos-zhu](https://github.com/chaos-zhu)\n_✨ 简单易用的个人图床系统，基于 Nuxt.js 构建 ✨_\n\n## 快速开始\n### 默认账户\n首次启动后，使用以下默认账户登录：\n\n- **用户名**：`easyimg`\n- **密码**：`easyimg`\n\n> ⚠️ 请登录后立即修改默认用户名密码！\n\n## 功能特性\n### \U0001F5BC️ 图片管理\n- 多种上传方式：支持点击、拖拽、粘贴上传，支持多图批量上传\n- URL 上传：支持从 URL 直接下载图片到本地图库\n- 瀑布流展示：响应式瀑布流布局，自适应不同屏幕尺寸\n- 图片预览：支持大图预览，显示图片详细信息\n- 批量操作：支持批量选择、批量删除图片\n- 回收站：软删除机制，支持清空回收站释放空间\n\n### \U0001F510 权限控制\n- 公共/私有上传：支持访客上传和登录后私有上传两种模式\n- API Key 管理：支持创建多个 API Key，方便第三方工具调用\n- IP 黑名单：支持手动或自动拉黑恶意 IP\n\n### \U0001F6E1️ 内容安全\n- NSFW 检测：支持多种鉴黄服务（nsfwdet.com、elysiatools.com、自建 [nsfw_detector](https://github.com/chaos-zhu/nsfw_detector)）\n- 自动处理：违规图片自动软删除，可选自动拉黑上传者 IP\n- 违规管理：支持查看违规图片列表，可手动取消违规标记\n\n### \U0001F4CA 数据统计\n- 存储统计：实时统计活跃图片数、存储空间占用\n- 分类统计：区分公共上传和私有上传数量\n- 内容安全统计：检测图片总数、违规图片数、违规率\n\n### \U0001F514 通知推送\n- 多种通知方式：支持 Webhook、Telegram、Email、Server 酱\n- 事件通知：登录通知、图片上传通知、鉴黄检测结果通知\n- 自定义模板：Webhook 支持自定义请求体模板\n\n### ⚙️ 系统设置\n- 应用配置：自定义应用名称、Logo、全局背景图片\n- 公告系统：支持弹窗和横幅两种公告展示形式\n- 上传配置：可配置允许的格式、文件大小限制、WebP 压缩等\n- 频率限制：支持配置同一 IP 的请求频率限制\n\n### \U0001F3A8 界面特性\n- 深色模式：支持亮色/深色主题切换\n- 响应式设计：完美适配桌面端和移动端\n- 毛玻璃效果：支持背景图片毛玻璃模糊效果\n\n## 常见问题\n### Q: 如何重置管理员密码？\n删除 `db/admin.db` 文件后重启服务，系统会重新创建默认账户。\n\n### Q: 如何备份数据？\n备份 `db` 和 `uploads` 目录即可，包含所有数据库文件和上传的图片。\n\n### Q: 支持哪些图片格式？\n默认支持：JPEG、JPG、PNG、GIF、WebP、AVIF、SVG、BMP、ICO、APNG、TIFF\n\n## 作者的其他项目\n- [EasyNode](https://github.com/chaos-zhu/easynode) - 多功能 Linux & Windows 服务器 Web 终端面板\n- [EasyNavTab](https://github.com/chaos-zhu/easynavtab) - 开源浏览器插件，自定义新标签页\n\n## 交流反馈\n- Telegram 频道：[https://t.me/easynode_notify](https://t.me/easynode_notify)\n- GitHub Issues：[提交问题](https://github.com/chaos-zhu/easyimg/issues)\n\n## 开源协议\n[Apache-2.0 License](https://github.com/chaos-zhu/easyimg/blob/b215ebecdfc99149d92fdc9f0ffab94e23e659fc/LICENSE)"
    zh-TW:
        description: 專為個人打造的一站式圖片託管服務。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 網域
              description: 您想將 EasyImg 部署在哪個網域上？
        readme: "# [EasyImg](https://github.com/chaos-zhu/easyimg) - [chaos-zhu](https://github.com/chaos-zhu)\n_✨ 簡單易用的個人圖床系統，基於 Nuxt.js 建構 ✨_\n\n## 快速開始\n### 預設帳號\n首次啟動後，使用以下預設帳號登入：\n\n- **使用者名稱**：`easyimg`\n- **密碼**：`easyimg`\n\n> ⚠️ 請登入後立即修改預設使用者名稱密碼！\n\n## 功能特色\n### \U0001F5BC️ 圖片管理\n- 多種上傳方式：支援點擊、拖曳、貼上上傳，支援多圖批次上傳\n- URL 上傳：支援從 URL 直接下載圖片到本地圖庫\n- 瀑布流展示：響應式瀑布流佈局，自適應不同螢幕尺寸\n- 圖片預覽：支援大圖預覽，顯示圖片詳細資訊\n- 批次操作：支援批次選擇、批次刪除圖片\n- 回收站：軟刪除機制，支援清空回收站釋放空間\n\n### \U0001F510 權限控制\n- 公共/私有上傳：支援訪客上傳和登入後私有上傳兩種模式\n- API Key 管理：支援建立多個 API Key，方便第三方工具呼叫\n- IP 黑名單：支援手動或自動加入惡意 IP 至黑名單\n\n### \U0001F6E1️ 內容安全\n- NSFW 偵測：支援多種鑑黃服務（nsfwdet.com、elysiatools.com、自建 [nsfw_detector](https://github.com/chaos-zhu/nsfw_detector)）\n- 自動處理：違規圖片自動軟刪除，可選自動加入上傳者 IP 至黑名單\n- 違規管理：支援查看違規圖片列表，可手動取消違規標記\n\n### \U0001F4CA 資料統計\n- 儲存統計：即時統計活躍圖片數、儲存空間佔用\n- 分類統計：區分公共上傳和私有上傳數量\n- 內容安全統計：偵測圖片總數、違規圖片數、違規率\n\n### \U0001F514 通知推播\n- 多種通知方式：支援 Webhook、Telegram、Email、Server 醬\n- 事件通知：登入通知、圖片上傳通知、鑑黃偵測結果通知\n- 自訂範本：Webhook 支援自訂請求主體範本\n\n### ⚙️ 系統設定\n- 應用程式配置：自訂應用程式名稱、Logo、全域背景圖片\n- 公告系統：支援彈窗和橫幅兩種公告展示形式\n- 上傳配置：可配置允許的格式、檔案大小限制、WebP 壓縮等\n- 頻率限制：支援配置同一 IP 的請求頻率限制\n\n### \U0001F3A8 介面特色\n- 深色模式：支援亮色/深色主題切換\n- 響應式設計：完美適配桌面端和行動裝置\n- 毛玻璃效果：支援背景圖片毛玻璃模糊效果\n\n## 常見問題\n### Q: 如何重設管理員密碼？\n刪除 `db/admin.db` 檔案後重啟服務，系統會重新建立預設帳號。\n\n### Q: 如何備份資料？\n備份 `db` 和 `uploads` 目錄即可，包含所有資料庫檔案和上傳的圖片。\n\n### Q: 支援哪些圖片格式？\n預設支援：JPEG、JPG、PNG、GIF、WebP、AVIF、SVG、BMP、ICO、APNG、TIFF\n\n## 作者的其他專案\n- [EasyNode](https://github.com/chaos-zhu/easynode) - 多功能 Linux & Windows 伺服器 Web 終端面板\n- [EasyNavTab](https://github.com/chaos-zhu/easynavtab) - 開源瀏覽器插件，自訂新分頁\n\n## 交流回饋\n- Telegram 頻道：[https://t.me/easynode_notify](https://t.me/easynode_notify)\n- GitHub Issues：[提交問題](https://github.com/chaos-zhu/easyimg/issues)\n\n## 開源協定\n[Apache-2.0 License](https://github.com/chaos-zhu/easyimg/blob/b215ebecdfc99149d92fdc9f0ffab94e23e659fc/LICENSE)"
