🎨 Custom icon API server for appicon-cli — a self-hosted app icon library with Web UI management console.
📖 Documentation: https://crazyma99.github.io/appicon-cli-docs/
A reference implementation of the appicon-cli Custom Provider API. Deploy your own private app icon library with:
- REST API — search, upload, download icons (compatible with appicon-cli)
- Web UI — manage icons, API keys, view stats (dark/light theme, EN/ZH)
- Auto-resize — upload one image, get 64/128/256/512px variants automatically
- SQLite — zero-config embedded database, single-file storage
# Clone this template
git clone https://github.com/crazyma99/appicon-server.git
cd appicon-server
# Install & build
npm install
cd web && npm install && npm run build && cp -r dist ../public && cd ..
npm run build:server
# Start
npm startOpen http://localhost:3000 for the Web UI.
Default API Key: default-dev-key
appicon config add-source \
--name my-icons \
--url http://localhost:3000/api/icons \
--key default-dev-key
appicon search "wechat" --store custom
appicon download <icon-id> --store custom| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/icons/search?q=&limit= |
Key | Search icons |
| GET | /api/icons/:id |
Key | Get icon details |
| GET | /api/icons/:id/download?size= |
Key | Download icon binary |
| POST | /api/icons/upload |
Key | Upload icon (multipart) |
| PUT | /api/icons/:id |
Key | Update icon info |
| DELETE | /api/icons/:id |
Key | Delete icon |
| GET | /api/stats |
Key | Get statistics |
| GET | /api/keys |
Key | List API keys |
| POST | /api/keys |
Key | Create API key |
| DELETE | /api/keys/:key |
Key | Delete API key |
| GET | /api/health |
- | Health check |
- Backend: Express + TypeScript + better-sqlite3
- Frontend: React + Vite + Tailwind CSS
- Image Processing: sharp (auto multi-size generation)
Click "Use this template" to create your own icon server. Customize categories, add your icons, deploy anywhere.
appicon-cli 自定义数据源 API 服务器的参考实现。部署你自己的私有图标库:
- REST API — 搜索、上传、下载图标(兼容 appicon-cli)
- Web 管理后台 — 管理图标、API 密钥、查看统计(深浅主题、中英切换)
- 自动缩放 — 上传一张图,自动生成 64/128/256/512px 多尺寸
- SQLite — 零配置嵌入式数据库,单文件存储
git clone https://github.com/crazyma99/appicon-server.git
cd appicon-server
npm install
cd web && npm install && npm run build && cp -r dist ../public && cd ..
npm run build:server
npm start浏览器打开 http://localhost:3000 查看管理后台。
默认 API Key:default-dev-key
appicon config add-source \
--name my-icons \
--url http://localhost:3000/api/icons \
--key default-dev-key
appicon search "微信" --store custom
appicon download <icon-id> --store custom点击 "Use this template" 一键创建你自己的图标服务器,自定义分类、添加图标、随处部署。
MIT