From b0398a12203eeedbc52566ddcd388e938d850df0 Mon Sep 17 00:00:00 2001 From: wexisliu Date: Thu, 25 Jun 2026 20:14:28 +0800 Subject: [PATCH 01/13] Add blinko app --- apps/blinko/README.md | 35 ++++++++ apps/blinko/data.yml | 13 +++ apps/blinko/latest/data.yml | 112 ++++++++++++++++++++++++++ apps/blinko/latest/docker-compose.yml | 26 ++++++ apps/blinko/logo.png | Bin 0 -> 15155 bytes 5 files changed, 186 insertions(+) create mode 100644 apps/blinko/README.md create mode 100644 apps/blinko/data.yml create mode 100644 apps/blinko/latest/data.yml create mode 100644 apps/blinko/latest/docker-compose.yml create mode 100644 apps/blinko/logo.png diff --git a/apps/blinko/README.md b/apps/blinko/README.md new file mode 100644 index 000000000000..b571e6305f4e --- /dev/null +++ b/apps/blinko/README.md @@ -0,0 +1,35 @@ +![Docker Pulls](https://img.shields.io/docker/pulls/blinkospace/blinko?color=ff4444&labelColor=black&logo=docker&logoColor=white&style=flat-square) +![GitHub issues](https://img.shields.io/github/v/release/blinko-space/blinko?color=369eff&labelColor=black&logo=github&style=flat-square) +![Docker Release](https://img.shields.io/docker/v/blinkospace/blinko?color=369eff&label=docker&labelColor=black&logo=docker&logoColor=white&style=flat-square&sort=semver) +![Release Data](https://img.shields.io/github/release-date/blinko-space/blinko?labelColor=black&style=flat-square) +![Release Data]( https://img.shields.io/github/contributors/blinko-space/blinko?color=c4f042&labelColor=black&style=flat-square) +![Release Data](https://img.shields.io/github/forks/blinko-space/blinko?color=8ae8ff&labelColor=black&style=flat-square) +![Release Data]( https://img.shields.io/github/stars/blinko-space/blinko?color=ffcb47&labelColor=black&style=flat-square) +![Release Data]( https://img.shields.io/github/issues/blinko-space/blinko?color=ff80eb&labelColor=black&style=flat-square) +![GitHub license](https://img.shields.io/github/license/blinko-space/blinko?color=white&labelColor=black&logo=github&style=flat-square) +![GitHub last commit](https://img.shields.io/github/last-commit/blinko-space/blinko?color=369eff&labelColor=black&logo=github&style=flat-square) + +Blinko 是一个AI驱动的卡片笔记项目,专为那些想要快速捕捉和组织灵感的人设计。它允许用户在灵感闪现的瞬间无缝记录想法,确保不错过任何创意火花。 + +## 🚀主要特性 +- 🤖**AI 增强笔记检索**:通过 Blinko 的先进 AI 驱动的 RAG(检索增强生成)技术,你可以使用自然语言查询快速搜索和访问笔记,轻松找到所需内容。支持 OpenAI、Azure OpenAI 和 Ollama。 + +- 🔒**数据所有权**:你的隐私至关重要。所有笔记和数据都安全存储在你的自托管环境中,确保对信息的完全控制。 + +- 🚀**高效快速**:即时捕捉想法并以纯文本形式存储以便于访问,完全支持 Markdown 格式,便于快速排版和分享。 + +- 💡**轻量架构,多端支持**:基于 Tauri 构建的 Blinko 采用简洁轻量的架构,在保持卓越速度和效率的同时,并且支持Macos,Windows,Android,Linux等多平台。 + +- 🔓**开放协作**:作为开源项目,Blinko 欢迎社区贡献。所有代码都在 GitHub 上公开透明,培养协作和持续改进的精神。 + +## 🤖 AI 模型支持 +### OpenAI +- 支持 OpenAI API +- 支持自定义 API 地址 +- 支持 Azure OpenAI + +### Ollama +- 支持本地部署 +- 默认地址:http://127.0.0.1:11434 +- 支持所有 Ollama 模型 +- 完全免费,无需 API Key \ No newline at end of file diff --git a/apps/blinko/data.yml b/apps/blinko/data.yml new file mode 100644 index 000000000000..a0ff0f948bb9 --- /dev/null +++ b/apps/blinko/data.yml @@ -0,0 +1,13 @@ +additionalProperties: + key: blinko + name: Blinko + tags: + - Tool + description: + en: An open-source, self-hosted personal note-taking tool. + zh: 开源自托管的个人轻量笔记/闪念胶囊工具 + type: tool + crossVersionUpdate: true + limit: 0 + website: https://blinko.space/ + github: https://github.com/blinko-space/blinko \ No newline at end of file diff --git a/apps/blinko/latest/data.yml b/apps/blinko/latest/data.yml new file mode 100644 index 000000000000..d1553e32c2b8 --- /dev/null +++ b/apps/blinko/latest/data.yml @@ -0,0 +1,112 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_DB_HOST + required: true + type: service + default: postgresql + envKey: PANEL_DB_TYPE + labelEn: Database Service + labelZh: 数据库服务 + label: + en: Database Service + es-es: Servicio de base de datos + ja: データベース服务 + ms: Perkhidmatan Pangkalan Data + pt-br: Serviço de Banco de Dados + ru: Сервис базы данных + ko: 数据베이스 서비스 + zh: 数据库服务 + zh-Hant: 數據庫 服務 + tr: Veritabanı Hizmeti + required: true + type: apps + values: + - label: PostgreSQL + value: postgresql + - default: blinko + envKey: PANEL_DB_NAME + labelEn: Database + labelZh: 数据库名 + label: + en: Database + es-es: Base de datos + ja: 数据库 + ms: Pangkalan Data + pt-br: Banco de Dados + ru: База данных + ko: 데이터베이스 + zh: 数据库名 + zh-Hant: 數據庫名 + tr: Veritabanı + random: true + required: true + rule: paramCommon + type: text + - default: blinko + envKey: PANEL_DB_USER + labelEn: User + labelZh: 数据库用户 + label: + en: User + es-es: Usuario + ja: ユーザー + ms: Pengguna + pt-br: Usuário + ru: Пользователь + ko: 사용자 + zh: 数据库用户 + zh-Hant: 數據庫用戶 + tr: Kullanıcı + random: true + required: true + rule: paramCommon + type: text + - default: blinko + envKey: PANEL_DB_USER_PASSWORD + labelEn: Password + labelZh: 数据库用户密码 + label: + en: Password + es-es: Contraseña + ja: パスワード + ms: Kata Laluan + pt-br: Senha + ru: 单次密码 + ko: 비밀번호 + zh: 数据库用户密码 + zh-Hant: 數據庫用戶密碼 + tr: Parola + random: true + required: true + type: password + - default: 1111 + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: HTTP 端口 + label: + en: Port + es-es: Puerto + ja: ポート + ms: Port + pt-br: Porta + ru: Порт + ko: 포트 + zh: HTTP 端口 + zh-Hant: HTTP連接埠 + tr: Bağlantı Noktası + required: true + rule: paramPort + type: number + - default: blinko_secret + edit: true + envKey: NEXTAUTH_SECRET + labelEn: NextAuth Secret + labelZh: NextAuth 认证密钥 + label: + en: NextAuth Secret + zh: NextAuth 认证密钥 + random: true + required: true + type: password \ No newline at end of file diff --git a/apps/blinko/latest/docker-compose.yml b/apps/blinko/latest/docker-compose.yml new file mode 100644 index 000000000000..81350dcf93b3 --- /dev/null +++ b/apps/blinko/latest/docker-compose.yml @@ -0,0 +1,26 @@ +services: + blinko: + image: blinkospace/blinko:latest + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:1111 + environment: + NODE_ENV: production + NEXTAUTH_URL: ${NEXTAUTH_URL} + NEXT_PUBLIC_BASE_URL: ${NEXTAUTH_URL} + NEXTAUTH_SECRET: ${NEXTAUTH_SECRET} + DATABASE_URL: postgresql://${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} + labels: + createdBy: "Apps" + healthcheck: + test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:1111/"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 30s +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/blinko/logo.png b/apps/blinko/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d5d03aad34711aa60a68c74366025d4e9828d864 GIT binary patch literal 15155 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 z11y070 Date: Thu, 25 Jun 2026 20:41:46 +0800 Subject: [PATCH 02/13] Update data.yml --- apps/blinko/latest/data.yml | 209 +++++++++++++++++++++--------------- 1 file changed, 124 insertions(+), 85 deletions(-) diff --git a/apps/blinko/latest/data.yml b/apps/blinko/latest/data.yml index d1553e32c2b8..aea5536c796d 100644 --- a/apps/blinko/latest/data.yml +++ b/apps/blinko/latest/data.yml @@ -1,112 +1,151 @@ additionalProperties: formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - default: postgresql - envKey: PANEL_DB_TYPE - labelEn: Database Service - labelZh: 数据库服务 + - default: "1111" + envKey: PANEL_APP_PORT_HTTP + labelEn: HTTP Port + labelZh: HTTP 端口 + label: + en: 'HTTP Port' + zh: 'HTTP 端口' + zh-Hant: 'HTTP 埠' + ja: 'HTTP ポート' + ko: 'HTTP 포트' + ru: 'HTTP-порт' + ms: 'Port HTTP' + pt-br: 'Porta HTTP' + required: true + rule: paramPort + type: number + - default: "http://1.2.3.4:1111" + envKey: NEXTAUTH_URL + labelEn: NextAuth URL + labelZh: 基本 URL + label: + en: 'NextAuth URL' + zh: '基本 URL' + zh-Hant: '基本 URL' + ja: 'NextAuth URL(認証用URL)' + ko: 'NextAuth URL(인증 URL)' + ru: 'URL NextAuth' + ms: 'URL NextAuth' + pt-br: 'URL do NextAuth' + required: true + rule: paramExtUrl + type: text + - default: "http://1.2.3.4:1111" + envKey: NEXT_PUBLIC_BASE_URL + labelEn: Next Public Base URL + labelZh: 公共基本 URL + label: + en: 'Next Public Base URL' + zh: '公共基本 URL' + zh-Hant: '公共基本 URL' + ja: 'Next 公開ベース URL' + ko: 'Next 공개 기본 주소 URL' + ru: 'Публичный базовый URL Next' + ms: 'URL asas awam Next' + pt-br: 'URL base pública do Next' + required: true + rule: paramExtUrl + type: text + - default: "my_ultra_secure_nextauth_secret" + envKey: NEXTAUTH_SECRET + labelEn: NextAuth Secret + labelZh: NextAuth 密钥 + label: + en: 'NextAuth Secret' + zh: 'NextAuth 密钥' + zh-Hant: 'NextAuth 密鑰' + ja: 'NextAuth シークレット' + ko: 'NextAuth 비밀키' + ru: 'Секрет NextAuth' + ms: 'Rahsia NextAuth' + pt-br: 'Segredo do NextAuth' + random: true + required: true + rule: paramComplexity + type: password + - default: "" + envKey: PANEL_DB_HOST + key: postgresql + labelEn: PostgreSQL Database Service + labelZh: PostgreSQL 数据库服务 label: - en: Database Service - es-es: Servicio de base de datos - ja: データベース服务 - ms: Perkhidmatan Pangkalan Data - pt-br: Serviço de Banco de Dados - ru: Сервис базы данных - ko: 数据베이스 서비스 - zh: 数据库服务 - zh-Hant: 數據庫 服務 - tr: Veritabanı Hizmeti + en: 'PostgreSQL Database Service' + zh: 'PostgreSQL 数据库服务' + zh-Hant: 'PostgreSQL 數據庫服務' + ja: 'PostgreSQL データベース服务' + ko: 'PostgreSQL 데이터베이스 서비스' + ru: 'Сервис базы данных PostgreSQL' + ms: 'Perkhidmatan pangkalan data PostgreSQL' + pt-br: 'Serviço de banco de dados PostgreSQL' required: true - type: apps - values: - - label: PostgreSQL - value: postgresql - - default: blinko + type: service + - default: "5432" + edit: true + envKey: PANEL_DB_PORT + labelEn: Database Port Number + labelZh: 数据库端口号 + label: + en: 'Database Port Number' + zh: '数据库端口号' + zh-Hant: '資料庫埠號' + ja: 'データベースポート番号' + ko: '데이터베이스 포트 번호' + ru: 'Номер порта базы данных' + ms: 'Nombor port pangkalan data' + pt-br: 'Número da porta do banco de dados' + required: true + rule: paramPort + type: number + - default: "blinko" envKey: PANEL_DB_NAME labelEn: Database labelZh: 数据库名 label: - en: Database - es-es: Base de datos - ja: 数据库 - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - ko: 데이터베이스 - zh: 数据库名 - zh-Hant: 數據庫名 - tr: Veritabanı + en: 'Database' + zh: '数据库名' + zh-Hant: '數據庫名' + ja: 'データベース' + ko: '데이터베이스' + ru: 'База данных' + ms: 'Pangkalan Data' + pt-br: 'Banco de Dados' random: true required: true rule: paramCommon type: text - - default: blinko + - default: "blinko" envKey: PANEL_DB_USER labelEn: User labelZh: 数据库用户 label: - en: User - es-es: Usuario - ja: ユーザー - ms: Pengguna - pt-br: Usuário - ru: Пользователь - ko: 사용자 - zh: 数据库用户 - zh-Hant: 數據庫用戶 - tr: Kullanıcı + en: 'User' + zh: '数据库用户' + zh-Hant: '數據庫用戶' + ja: 'ユーザー' + ko: '사용자' + ru: 'Пользователь' + ms: 'Pengguna' + pt-br: 'Usuário' random: true required: true rule: paramCommon type: text - - default: blinko + - default: "blinko" envKey: PANEL_DB_USER_PASSWORD labelEn: Password labelZh: 数据库用户密码 label: - en: Password - es-es: Contraseña - ja: パスワード - ms: Kata Laluan - pt-br: Senha - ru: 单次密码 - ko: 비밀번호 - zh: 数据库用户密码 - zh-Hant: 數據庫用戶密碼 - tr: Parola + en: 'Password' + zh: '数据库用户密码' + zh-Hant: '數據庫用戶密碼' + ja: 'パスワード' + ko: '비밀번호' + ru: 'Пароль' + ms: 'Kata laluan' + pt-br: 'Senha' random: true required: true + rule: paramComplexity type: password - - default: 1111 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: HTTP 端口 - label: - en: Port - es-es: Puerto - ja: ポート - ms: Port - pt-br: Porta - ru: Порт - ko: 포트 - zh: HTTP 端口 - zh-Hant: HTTP連接埠 - tr: Bağlantı Noktası - required: true - rule: paramPort - type: number - - default: blinko_secret - edit: true - envKey: NEXTAUTH_SECRET - labelEn: NextAuth Secret - labelZh: NextAuth 认证密钥 - label: - en: NextAuth Secret - zh: NextAuth 认证密钥 - random: true - required: true - type: password \ No newline at end of file From 654649095d28d8c81dfc6cc779acd368ba4edd9c Mon Sep 17 00:00:00 2001 From: Wexis Date: Thu, 25 Jun 2026 20:42:18 +0800 Subject: [PATCH 03/13] Update docker-compose.yml --- apps/blinko/latest/docker-compose.yml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/apps/blinko/latest/docker-compose.yml b/apps/blinko/latest/docker-compose.yml index 81350dcf93b3..68cfe9f4cae2 100644 --- a/apps/blinko/latest/docker-compose.yml +++ b/apps/blinko/latest/docker-compose.yml @@ -1,26 +1,29 @@ services: blinko: - image: blinkospace/blinko:latest + image: "blinkospace/blinko:latest" container_name: ${CONTAINER_NAME} restart: always networks: - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:1111 environment: NODE_ENV: production NEXTAUTH_URL: ${NEXTAUTH_URL} - NEXT_PUBLIC_BASE_URL: ${NEXTAUTH_URL} + NEXT_PUBLIC_BASE_URL: ${NEXT_PUBLIC_BASE_URL} NEXTAUTH_SECRET: ${NEXTAUTH_SECRET} DATABASE_URL: postgresql://${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} - labels: - createdBy: "Apps" + volumes: + - "./data:/app/.blinko" + ports: + - "${PANEL_APP_PORT_HTTP}:1111" healthcheck: - test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:1111/"] + test: ["CMD", "curl", "-f", "http://localhost:1111/"] interval: 30s timeout: 10s retries: 5 start_period: 30s + labels: + createdBy: "Apps" + networks: 1panel-network: - external: true \ No newline at end of file + external: true From de95a382d24e05000b6d02bbc3c8db669b313ba9 Mon Sep 17 00:00:00 2001 From: Wexis Date: Fri, 26 Jun 2026 13:51:44 +0800 Subject: [PATCH 04/13] Update docker-compose.yml --- apps/blinko/latest/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/blinko/latest/docker-compose.yml b/apps/blinko/latest/docker-compose.yml index 68cfe9f4cae2..a1d90f70a819 100644 --- a/apps/blinko/latest/docker-compose.yml +++ b/apps/blinko/latest/docker-compose.yml @@ -1,6 +1,6 @@ services: blinko: - image: "blinkospace/blinko:latest" + image: "blinkospace/blinko:1.8.8" container_name: ${CONTAINER_NAME} restart: always networks: From a9c21b3c92db7a8acbfcd167eb9944f2f24da0a6 Mon Sep 17 00:00:00 2001 From: Wexis Date: Fri, 26 Jun 2026 13:52:31 +0800 Subject: [PATCH 05/13] Update docker-compose.yml --- apps/blinko/latest/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/blinko/latest/docker-compose.yml b/apps/blinko/latest/docker-compose.yml index a1d90f70a819..ca1760c8cdda 100644 --- a/apps/blinko/latest/docker-compose.yml +++ b/apps/blinko/latest/docker-compose.yml @@ -16,7 +16,7 @@ services: ports: - "${PANEL_APP_PORT_HTTP}:1111" healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:1111/"] + test: ["CMD", "wget", "--spider", "-q", "http://localhost:1111/"] interval: 30s timeout: 10s retries: 5 From d2730a8ce042d82af9b2659e1c1298e07be21d87 Mon Sep 17 00:00:00 2001 From: Wexis Date: Fri, 26 Jun 2026 13:53:49 +0800 Subject: [PATCH 06/13] Update README.md --- apps/blinko/README.md | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/apps/blinko/README.md b/apps/blinko/README.md index b571e6305f4e..d4c2ba7e547e 100644 --- a/apps/blinko/README.md +++ b/apps/blinko/README.md @@ -1,14 +1,3 @@ -![Docker Pulls](https://img.shields.io/docker/pulls/blinkospace/blinko?color=ff4444&labelColor=black&logo=docker&logoColor=white&style=flat-square) -![GitHub issues](https://img.shields.io/github/v/release/blinko-space/blinko?color=369eff&labelColor=black&logo=github&style=flat-square) -![Docker Release](https://img.shields.io/docker/v/blinkospace/blinko?color=369eff&label=docker&labelColor=black&logo=docker&logoColor=white&style=flat-square&sort=semver) -![Release Data](https://img.shields.io/github/release-date/blinko-space/blinko?labelColor=black&style=flat-square) -![Release Data]( https://img.shields.io/github/contributors/blinko-space/blinko?color=c4f042&labelColor=black&style=flat-square) -![Release Data](https://img.shields.io/github/forks/blinko-space/blinko?color=8ae8ff&labelColor=black&style=flat-square) -![Release Data]( https://img.shields.io/github/stars/blinko-space/blinko?color=ffcb47&labelColor=black&style=flat-square) -![Release Data]( https://img.shields.io/github/issues/blinko-space/blinko?color=ff80eb&labelColor=black&style=flat-square) -![GitHub license](https://img.shields.io/github/license/blinko-space/blinko?color=white&labelColor=black&logo=github&style=flat-square) -![GitHub last commit](https://img.shields.io/github/last-commit/blinko-space/blinko?color=369eff&labelColor=black&logo=github&style=flat-square) - Blinko 是一个AI驱动的卡片笔记项目,专为那些想要快速捕捉和组织灵感的人设计。它允许用户在灵感闪现的瞬间无缝记录想法,确保不错过任何创意火花。 ## 🚀主要特性 @@ -21,15 +10,3 @@ Blinko 是一个AI驱动的卡片笔记项目,专为那些想要快速捕捉 - 💡**轻量架构,多端支持**:基于 Tauri 构建的 Blinko 采用简洁轻量的架构,在保持卓越速度和效率的同时,并且支持Macos,Windows,Android,Linux等多平台。 - 🔓**开放协作**:作为开源项目,Blinko 欢迎社区贡献。所有代码都在 GitHub 上公开透明,培养协作和持续改进的精神。 - -## 🤖 AI 模型支持 -### OpenAI -- 支持 OpenAI API -- 支持自定义 API 地址 -- 支持 Azure OpenAI - -### Ollama -- 支持本地部署 -- 默认地址:http://127.0.0.1:11434 -- 支持所有 Ollama 模型 -- 完全免费,无需 API Key \ No newline at end of file From 5af76fcb490be201c1448749b5c6b2566215a088 Mon Sep 17 00:00:00 2001 From: Wexis Date: Fri, 26 Jun 2026 13:57:24 +0800 Subject: [PATCH 07/13] Update data.yml --- apps/blinko/data.yml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/apps/blinko/data.yml b/apps/blinko/data.yml index a0ff0f948bb9..ccbcd7ab8963 100644 --- a/apps/blinko/data.yml +++ b/apps/blinko/data.yml @@ -1,13 +1,31 @@ +name: Blinko +tags: + - 工具 +title: Blinko 闪念胶囊 +description: 开源自托管的个人轻量笔记/闪念胶囊工具 additionalProperties: key: blinko name: Blinko tags: - Tool + shortDescZh: 开源自托管的个人轻量笔记工具 + shortDescEn: An open-source, self-hosted personal note-taking tool description: en: An open-source, self-hosted personal note-taking tool. + es-es: Una herramienta de toma de notas personal de código abierto y autoalojada. + ja: オープンソースでセルフホスト可能な個人向け軽量メモツール。 + ms: Alat mengambil nota peribadi sumber terbuka dan dihoskan sendiri. + pt-br: Uma ferramenta de notas pessoais de código aberto e auto-hospedada. + ru: Открытый инструмент для личных заметок с возможностью самохостинга. + ko: 오픈 소스 및 셀프 호스팅이 가능한 개인용 경량 노트 필기 도구. + zh-Hant: 開源自託管的個人輕量筆記工具 zh: 开源自托管的个人轻量笔记/闪念胶囊工具 + tr: Açık kaynaklı ve kendi kendine barındırılabilen kişisel not alma aracı. type: tool crossVersionUpdate: true limit: 0 website: https://blinko.space/ - github: https://github.com/blinko-space/blinko \ No newline at end of file + github: https://github.com/blinko-space/blinko + architectures: + - amd64 + - arm64 From 026389cd8ef46da8105ac0865d3c474e89d41bdf Mon Sep 17 00:00:00 2001 From: Wexis Date: Fri, 26 Jun 2026 13:58:04 +0800 Subject: [PATCH 08/13] Update data.yml From b14ecde746d07747f1ddf192029313d20c684632 Mon Sep 17 00:00:00 2001 From: Wexis Date: Fri, 26 Jun 2026 14:01:06 +0800 Subject: [PATCH 09/13] Rename data.yml to data.yml --- apps/blinko/{latest => 1.8.8}/data.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename apps/blinko/{latest => 1.8.8}/data.yml (100%) diff --git a/apps/blinko/latest/data.yml b/apps/blinko/1.8.8/data.yml similarity index 100% rename from apps/blinko/latest/data.yml rename to apps/blinko/1.8.8/data.yml From 6c9d00d381eb82b914b0bff5f9f7a9183674702f Mon Sep 17 00:00:00 2001 From: Wexis Date: Fri, 26 Jun 2026 14:01:43 +0800 Subject: [PATCH 10/13] Rename docker-compose.yml to docker-compose.yml --- apps/blinko/{latest => 1.8.8}/docker-compose.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename apps/blinko/{latest => 1.8.8}/docker-compose.yml (100%) diff --git a/apps/blinko/latest/docker-compose.yml b/apps/blinko/1.8.8/docker-compose.yml similarity index 100% rename from apps/blinko/latest/docker-compose.yml rename to apps/blinko/1.8.8/docker-compose.yml From c301a8937b02029dc5aef792a6b67c47426009f1 Mon Sep 17 00:00:00 2001 From: Wexis Date: Fri, 26 Jun 2026 14:04:29 +0800 Subject: [PATCH 11/13] Delete apps/blinko/logo.png --- apps/blinko/logo.png | Bin 15155 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/blinko/logo.png diff --git a/apps/blinko/logo.png b/apps/blinko/logo.png deleted file mode 100644 index d5d03aad34711aa60a68c74366025d4e9828d864..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15155 zcmV-3JIut1P)UEec4qb6z=C9aYIE=1Z8H}MD`hAW^UK_>wCMpPo1v5`!e|5^ZV89zSY&$)z$wx z{jXD}s>@J(sRFPcfXM(R02l#a5P*6BbpW~*yMQIpWCwtq0M@zTQvfRfECH|-!0uue zP88vq4uHSrhC=|12T)Oja+DIDr@YM^BDSS1LL@J7k+q9g^Dc6V&!y;KsX3TUST z_$Gjn*_EwpNL^hW&N}NX9D3-X*mvK3A%wvC_3QEBhaY0Wf(3Z>)mMvM#FFUpu?y;L zxyUT?Rk3DNR#wWN{`9AE=gyrnkt|-kSk9O+qv+)=1ueXkE0f;sUEpT24g&`ci~%)O z>FDT?mtTH)(aT*5TDUD+Fwg!fbONVNohr9%*^)AtshofQ`9&{(DR?28&4^+TcSy3> zH<4ASsi~36moLu<%#Li|zFiI(GNkDDQ3_sI>-r6)E%$bT!eB*efne# zW+g`*byU&srxdiX&;(q|5O*qogVR;%T~P)N8kDoVh7B8*v%E@@6FJX0ZJ{rLA;*=>r^5vIb=1j9TH#g@b zpOWNUM!Jg@#e@R---=V7{K{vaeU_7aa;fc0l5@F0?WncwoF309g}VCKv12iL@?_N4 z*Q2wuGp79(FJ2tesJWJ=rY207Fd?fv94)_n`}UlbsU$gE*HTCxw8d+Fo6n049Xd2E zPq(>q=f)a9F0Os!jW=cu=$Br4sn`#z6q1K~Ksa>X22#q)%kj)J&tTfL)JH0>xZ(=j zeDlpYx&FF!>$1*cS?5ubyo-b3D$8AHJTLPEk3RZnTz1)I8J$~JR)+iUzaKR<*)3L?3oFN( zHEXiYqa=A32gCbW`CKsXCqMZ~R_6~MJQ(xl&C4o}rlzK>&PR^4d`Su-lN~^h&PUEu zrcA-%haaAGJ{MkiAx4ZCk@5LEcI?2GEnBiGLur(7uaWUqzGiZtdFGip$tMzt#Aaw` zBiT}hTxj`{6huZkfF6*KoF`41l(W1py6B>;&d(OmCCaha$RNx0SjxFnROGIoIePSH z?7#p18K0jGpto(?hMhZiW_*503M%yupu6WI=jF?n=QO`_&pkKebF%?-$%kXFlDfPB zdclGPInD3XQ#1c8M>e3`uwg^S=a!`4(#F1ZA@ZRaGvkt0Xqzyl9V`@G$|cV|2VUg{L?U6NNoJMzjauVg)ZP364v z&dcb$rAwD)bY5vtW$%)_1KN@6uDdR__Hr)70kjb5e{=u+_utRxdL<3LcS%72?Y#0Y zy6B?VbgOKop`iiC9(!!s=Vc1$5{KTqq#%HHWXX~xxb3#Am-mfHCbT0HKyTW#DQ2xH z$=)RenMjNsbhq|OYGyKv^FHP$jr6qLt%21pOpM3JkSpnLS6HYiGt!q|RR>}`P_#mac z|Ni&C7yH4KLS~_O7r*A3YqA3LgAYEK_BDqN9V%C^UY#)C*I$2K_UO^0*bk-@G7H5m zzyl9FkTIY$v35AY0qgCz-!8Xq-Kyoca^*^S(@i(UGr4%v?!rdvF)YjJGz4zY3 z@Zp&)d|F*y9kXC$BIV`fF_+YC-MYmbm`dw!d^M!#t;*?qMWfNQHT0f6dvdm9SSfrp zLcz^;CVAzRSMcPMPo{m|r=Na`Xf&FaGL>ZSlr8~ixDHG^cI-&&oR?pIIdA1D$=)kP ze@&?H?QefOWxBC_`*t~O*s!9PxfHrwD0%_BAcT+)J@imgFn4rx$g|EmtLWt|g)SM2 zUH~mPoxGcFx=HTbxzh;dHEY($bx6uWpO>7vqQ0bP=kWFlS0%2AS%$_Z2V#u)~|0v%i5h-)3gJtR&T@FwXL!3ijOyA%a*P= zxK$ch>7wFj+A*VhV&cSJIPidaOqtXRlPC3wfmQ>j5bl7l7s0lsxYWTNcFwx>tysEr z6PCXJ1(v+M0dFo@kJX=T%jTAIA|*g~5vi(*;IKpc~L)^BLVyYGF0C2y_AtFJZTpZ{vX?%mlh|CWxF09`~G zHL^QSIcYFXIDQ`-GQA(Fs}%zzz)_$H1Fi<{Fi@J#4aqO-G{P(Q?)E5NeYFWMy!08K zdiqm*{PE^gswFEa0lL6aQxm~=E+2!-zBLLXM|3x8I&DjV>;aqX^KBUDLC#GI&TJck zDigH(Yh1h*KfCpHJpJsa=~P)-QUY`V#NoqVn>_&MoHZ1uoIDskdz7aKCL^fBfXbH| zroavZzaed4n=CDoH%@o!bU2@Teia`1%SU+bg;j_~a|gi^pz|o>$MwKBFB*;u&Krh? z{?+kF;{%78x6-s>9GYsw4EeN#gh?^lU4zCIY|oih}N&gkpL3NuK(V+cO{0FXg=GD(X>S~nSe$dFEircIFEd#i+` zmB1?t*WiEde+Tm){U~Ft-K7B?v4H9-psF(dzoP@#)HZ@IP1(IsH%*F zXtN}mE|C^SNC#0c-m2x#z>^i|Q;j3X0&fvcmkgR)0&Car#6$o00Ur6wGQ9I{dY|O$ zGJtkKd)NWMq5BK$H%?&GP+&k`pe&+4{5|bJ(|U=IJ_X+SNMhj<;N9gC9fh?Hd2+cD5ejbgm`#l;m9ix|KSB9Z<<}b6b>RQw*_HUkFJH$$ zUr+5@H$?@sWdTPV1e|x0zzH)2YHPUWN=@2!0Sn%g_`knPJiSmNn&C&cXk{d;m?LJ^ zW6n(zaO4qvvwO%&B%=}hn2JxTx!JYC;?pi~qDE?p3u~MyG*-HG%fDdZ=a}>Jg?M#g z;!pGy1<*Zffp4E9aPb)e{rhAF;()k!v8q|(_TNeT`57PBf+h3+3;pCkYW)Jj5}18V zKU{z97#umXubwuvqlW}q4hGG|&tvKMH4~ZaLMcXqYor9+u(S!Tk*G7A@E-IA{f}op z!JMDJh9z&AKju_$K%aAhz|XD{=$9)X!+ZzJK9#uoHi^dfsLl-+UJ=5LP;ti|(+~fB z+eA#7*pr=w;KLQn4r@x2NK0~UrX4dqXp+CWrsQ|W(i$~)D&@>3Z3VC_D9!Lp?3EKA@Q zw~oiv-y6w}C;-Wz1~zqmOy?To!{VrUj%Z-820+tr(0hI#A#aL=Wl8krN%KAsV!o6K z@)U+QnUwhD9gXjn7FyeY zB_EJ#5^>N87tH<{!rOOb%H*E-^TShd_BZzNQwd%G1{kdjFr0_P4>b%7Jgp$-Q>`qB z+0V$SX_*pHhD@|cq;MD+~A_!A? z(g9Ec4ay%ZPm?NVPROr$nN0t~(wMd|H_EVUQfmiH6wId{DqUx%jl1T(kzYV}?*{zi zw-%<1%@LTD1WGJIj_dJj)&i$qVWUZbS_A=o#LRm9zw;(z*uFKaBBg=Xs>^V&(7&c* zsc1UrfH7JHcte8@91pMtDg=6dG9dH)Of+>0X-!m$mPxQQ-f>^cIwv21?%fmk`)@5w7@1=*BMG4SD^&Ub zp}qEW-4tAT`7o44ELNc^y?BW~zZX zePdhR+109n-#3)pSYlGSU)nd|`vHv| zkIN~bolf98k6Gy3D^J=vFj&BNvJuQyJPiSMd7nY3Y8V9wSL@RB{NZ!@K>u5k#M5Uj zJ=381d9geZrl}EVsL8crl4D6n6?u8W;*#W-O4-6j5Bbo(@%~`|waD$P@3W5=MF6u7 zY@yKs24-8JqJ9V}9WYDi0ZI6z1)Z-tnm8)R$|lS%t!Wm%l`KQkjneyo*;EME9xE)8 zBvJhfCMTyr-1(E>3ITkN@4({0<(;B z;EKLOQQ2=8iHFOL`T1N60EjY-D^N@Kp<3)b+r_L(V+6H&IMQ%kFhGcqXn{ai-?IWp z*5FBpRWd+Hgtb2Xy82E?c}@4D>cNz!WF2afj~5TWu05rJ!2g^9de(Gc;-~@w+Qgf| zII|OM3!U?BYvo=&?5sizU9y79L;1N3<(77EPlI#TFB zW?;6ed!l;i1Xz*EIB=C#wmG0fG(5Fh2n9}okgk>o&k64F?s{CvLtk872)S`x@Jtz_e0L%{5fnQgYfGnCmQ<5smLFgP2y=G zc4N}l&SgFOqI%F+7r=yK&_F>h!@$B!a?aLvH8NFVmJ49|*&0t-NpmBSCQ!2mEJ$m(q7_~ucr!5F6uTkQjfdsM`81;}Qj!Mg*G*0UeQ-erQOqJZ z2xDOG=Yv@?@J8MJs1?)V+Hr*VI)Km$1#C$=gqpY&Z3(~9ZQ*O{gdHux;s~&`#+yJZ zhk;W)eA*!ujNSy!4Wkn#NrhXR((vO*-bgsFRt;I^s8hIKuAPslaJmuTi0Z$qnd==W&&_WyD_GyNrna8*^!}7Iolz=xHae?i|yL>yIFQ*=0+*$ft zOX9&NKfv6F--#_rtHiPdzBX$JZoK9obn8~;o+Am5R{4qGeJS4xiQwoZA9nXLV)a9} z-d}z{LcceaMoPmFIn9f=4F2DghVPp?o5}K`Zzlx%1YX+_xmobMp-(Py2@w;=R53(* zS=HT8J$RJ=(A6<1%=}q_oNlAS5Df9Qz|#v>}C66)$~B^s7bKOE6H)ggQFnUG`6MhM+sH2EuWqc(A@LLTiDswp0L=P zHt)u=6Ab?dMrq3?`Fxu!?r&a^8rGq*`ZlqRPpsK)vBB}SRr&tr$6yVsLIUVI8l}-1$HQ?$&L}Y2mvwD1hpwYk)j5N z-_WE_KeD!R>`APs@*r+!u)G{KBgR8SB1GeH(2$-weTY=UQJ_ncgA(n<1AlvU1v*n) z$;PrQ|NMaUO6tA|^!d_(9v9FXzi7i}Yj&V}w+f6N-Uktjo9_%AKf!J2WZwb6^iQT>?ckMR%7gw5abf}=J&dQ#8qhmh9Z*YDRusa@;ffHb9ySJ6MTPtD zX^W+xmP}()D~WrG%{!3f)vF$^@ZSn6K2Lpx%pv>K5*sPGkuW9XmBBA>bIVTra_*a0 z*x2M{F=U?}xaHcTFnLVBpml&_+_SC_TexKyqUS&ptOZIW0AwNno6;o$Ig1k{&X`PU zmYSSUj?dTSBA3*qYRE8@b*pv%kyoR!O$nCH1YqHJq$Jby4CuBUrk!-D?_GtlBYTl+ za|;K#o(-MuxLWze1#585rBC72MNL|JSktl{m;dPLIHlnhm`-M)vE4Y^r6V?@URr&q zhDWwADV0RL*mT^;X%gfWk|(vcc-9Wqr!wS{wtT!gwTGOY#0y?t-yapd)iSmG^#r0# zXg!8hyz$#*-0n+H5!i23|CCC5{x`1o;6Ed=T@a4?akO{Vz58UzWF9b=}u zoB;aWj|!uqD+dpUEyy?cL`Ve)##aq_Y3F$yOp?PUZ3J|yF2~tNj}I;7=;3vkck7X; zu8Ob`EnX0&9pUf4_1*@o-H?1C?ABc!*z{$aJ|e1Uheti2+uCh|Ha03tI;%R-;0ny~ z3ARy0p(o_JO4t7lR#J^5XoRfC60xvd7oH#QNmJX-BYHAS~I8^Bx){7D2xr-Q${>zO{tVhlZu{LviDkQ<6<*g}?`5!0QLlx#>&G_I)KhqZbZt;5E(i;w&Fs3nqK^lqV7tQ zfyxn#LI|drV{x|oaP9a6Q}4e;G>ZaANM1r>+QbG-o6-*`v*S+w6v$pLoY5c2tsSHd zxf*&;dupE}*l*MTl#8-By&$G5&(5s5x7s?TvI$N!>Lc~H2we)z2vDSHd*=D1l9no} zkTkAB%GpTa)2{)augx*-up+QVOoXhgi2*uZ@4{0&HoYm0BIv;LXO}p^)-|pQ5%-vK z)K}?+I!4p6Jhgr3*96ljrpdANwQmFUy=qdbo|9*c_d9rebWr2Zh9Pum0JAieO|pHi zA)(j1;Bn-CsF-MpiCUPp$gM92&GU{wWcV$JFxh7~WKFGJ?=m?4p-}_48aMznn*i8m zfdSr%#;Jp46QGl{G#`2m-iQF*CD8OxB?8oA+N1$Vt7g=odYp9dxCF!ZBIuB12j2!d z%@x72aS_3{eLSsUVL8b&;rnRE-?Rd~Mt{o3$w!a^7HF0b|>H^zlTATr#Yir8cHElw+9*`x`k^(0kITHKy z?;ct=ee1g6*H@g32$*A%=Cs6tP2K`9;3?2)HC$Lwjcov=3~RtVE)kFu6~c5bNh@=_ zww-gYpRSQO_r&bliL@-(`%VPPD%{rRFHP=Exe|iB(FJLw!dKgLU(hYoiT+kVcf=3S z5jQRZoq9w_pyvoWnHJuC#LK8%G;VT(?>!e07N$+y2X8OifX&->X>~JkSOeyL_cRQu zuXFRU^w~Dvy$S6S{)AmNc{gyJm6-;x^)rkUX?eva+Je1e!_u&L$?B8zclb*pC-VDS z1x`OEb5KY74~5+@)U9Jl>RbBH!`li^0mu7gt}Rwl_s@tQ7iIC<5U}tojCKm$hrHtR zt$5;<)mYuK9Z_3i#Lyl%VtNCnA6Op;dW@#9hM{pu0$>S$g05Fa;=bA$-@dVQ9p3(E zJtBx;zmWrR;K)I+VqSO_<6Wdf=+P$x8(x|8JF!}01bOq2#uy>_f&fXoC%#X%f|W5P z0P~J$SeoEAFMu9D0$B8?%oc2vkur3QJ2>V=rz;Za_2uIDa`=)6_RHuJ1p%LCGM6xF zu_X5XFhG^)%6cG%k`0)JAl#k4i(mev>2ST~RFXR65svv`R7ET{X$7NDjI z87-;X*>4DB_ud{oi09zjNB!w=ep?iz!YmUg16>87&#R+eXhH@kM_YRb&bj(UY};w} zt5~&W2cBQhf^lQ&u+PBi;Hw+ZM-6%7;qI$yVy^-}=fa#$$q)sozskscfrSu?VWb_< zwX^B|^hA2S8@H((OLW{%lQ#$dIrAi5evg{+Y*+2^_rcy_NSj=Yv*}D#r|YvB{Kib zdlq3Mo8&m{>ub!} z!XHeLl;f!d&29ZvE`Xj^_Yu_wL8bl-j;T2xv8+ zN}s;a#z7slOzBB&1se%H#?v5J9%%w82P3&JZS6UhUclh(7{-7lqZcydx_Q*ljx1dP zJorRvTDr5kJKF0S0tO-Js%P$;2CBVXZJ@oi0|P2jw<||@aJ9Ckt)tl8*@2H&Z%gSO z+FFT2k<|;RIv?o%08sUPp!{GU(iafr{#^)@BNe;Lz%V@<%I5)WkjXPw!aVpy8v}iV zm^8Ph-RU3Z6Qg0xG{C~=C}!J@^UIny4Xxzndn8UfMxw5JVm`gQ|8TeKCtXeKr?(-! zwOyne@5BkW&mu(}*s68valtw`ZrUw7cbna&4bs@Szz|yw zlph%nZpmS91MIEw5d8v=K5{2keEb=!<_2hv(Ky7$`hVPriq=hA0*u7Q z8^63J-0IQMtqvXC`*=nHxBvy{a>nsO`;St@;m<~F{r+JL&hT=Is1Y*TSL2Z|bDjU{ zt4L#3`+M&$#){?dW6an|2~t^c?QQk)Vjg?`7ie6xJdm<1V&NOdj>e4_&p=Ii1+kpC zoQ^MfSqir!=yx0g1_Mt^u~ELjkT#_w{^($@-esummRh@aI;YoN z`%P?E-;#3OtX%mK-h5-B@mOcn#v{)z#}Dp!$?wnxD3lwxuZd;r`+WFc7)CWImC^4^ zrx>PJmbd7O^fe35SIf@?aAU28Y)$zU=+nr~y?*k!#CazL+fREAt<_mjj`{ z(%5H=;S!Xt9N}MU0Yi#9{JOKxc=IU(b~ErVVp78$>|>?Z}#Sz|4aLh78aP(b{h$ zqBY$K{UVU|>QHD~B?7*!+8f!1uVu9M;H3$f)-TAzp(A`k#s*WKe|cld_iEcVR8`C!kEDlO< zFocd2f(_HVPu?QifTy4!tF01$anl#L1gT(ZhgSbXKjQ`#$Kz#4d>Ei}{1vQZa?~{7 zZ*zSv-C16RFGtOQup%*SYq=m4uGf^eFKC<$9(VKepNrI$4C14TmPQu|Dkyh0Xp*+w zQJir4>u74(Rj8^8$PJfF!?(UZS@)u&Wfp#UwV`k7SE7dI`EYk6#Q#Jas->?%0yaJh zD4?$wqAjQxGLq=+n}BXgAD*tDD<{432JrN&z8P=(z;UpxNUZxNUH@jOnd3mXHC@3< zcxm8w`&>S)tR6nE)&^a)2h9gz3~r^Cjhb!(zrA}3`uD3WWOZpWd}t5d%*Y3YXndK? zd^i}-=6wpIxzD|@N1a*c(bL9k&_=QbKz*nK9a!GEGnw*&S~!sud?~OS?v%0lhr4Tf zVOMQm0#4!fH{u1Rpp|YsO{;@kF#ENH6jGb1?||7iXfPL0!MSDd;g1_zi>Dqx7#IE9 z5LD!AQJoO!T~~?2rZzCUx%BPj0bomiw3Bn^h)mEigby^qK*+u8ya&UEytNPfz<-1A zRh~49QlkAZ0$~PvK`Dol8!r>Mc+LUX-J_pR(>$6$sfRx@Xeqlh_r8OkmL3aw>*;hx zuT=K1XdENs%UA5gwg0&c%a$eX%;idcbmf8gk2A*yO*s7Z&9!Q%j|vPkbA<1Z6zF5H z{5jR&`w$w%u+ay$*cY}O1S$GMq7D+>AyEsU!kyacoUj|h335Ax*a0EGgoU*bSc3@G zlT|LmsYg)&J!IcX{NsaJF{h$feG91pngW-DRR}vNV1*!{_MQ;|zl@upV-nC5NW$OZ z(rHUP^l%IAx_cG2ZA)zqU?y_Fq>UA$T7v@e%s$xlpShJk) zj$p81YsWyjbU8Z31lX8}C?-N87Ym5*h9y@bf{##!4b(%4pT?aRQb(#T*ZQ9V=3sKwn*Vt}WG0b4M;sh{S{FFSDG1E1rehnul$S8k`E zjT>Eu`|p^EhWZ-cB~~J2AP5Z9(5*MzJSTXkkAj{x4$xWg!q?W6YDf#6*dI}G0HT-# zAhmgsnTey+Rv;qZMHxPVfbVipa6nrTfv1)pg+W8BnI@J*Tl>JYTyEfjSV-Th#KEfU z&eGICgxer|jc&!dp-j^WHjEq4fM&pN-P(aiA6thfo>-3$b3jGTIB6(ux#>WZM+}n? z0y9)7?O--z7-r5;Fe{$|KEs91OaZlrO8-;LvH#`hz+vdb@sQ}9^?j!=?I@FrQHEDw zVO!w=ec<7JaNjeBXd2jJbVH*P0h66hAuPs=6={ zft+f6tpN!&rAv}gF1MhueJjL%N_PdbyTV6_TeEA|?ZLu@o6xv;3*LW!8=9MUp|ex3 z_U_%waO|uBxbFKC(6>(|p%)fgdye{^2Vm z6E>!2iH6*ZQ$mM;bSu;aAAfHahK#7uI4zh)4QSv1mkt8eVwA-M{;)wAb=|t%EnS{~%v7;$psh8EJ$vFARaZq&Q&q;6_hnky1F)qJWN18=f=?w8=HeMC2H(;K z8sFNY0ef%>B!*>yg8YaCc9a3wS|~t|nbH&c46lv5gSyV*(w!G5T@c4@%+m9ylc3+D zlP*NvUnyc>1aVxl-F}TNr0aqzV-sop{|XOkasc<>GI@Y8;fsOmYCY%`Cj9a%22fiY zL2WGsF!yew-gJ^s4O@R(NYYvJKub6=B-66+ZNyYF3&Z_s<*7uwI3Ast4Itki*2!36 zfZhZkxbk2gWY*~e;W=cvuQ!`eI69Ez9~VS3D**bSjGwPtETo`m)ME9*YZqRFA#FwX zFy%%aCmLVUDPGz%Ck~#lAz2Q7{+9ujiq>8v;qD-yCizO{F{tLBNukx5 z4p@`Mmdu&~));^&2BBSizl(JI5=%>S(>e#xD+_V4!6R$2&&XO2PLe!DI)_kcW>4X` z;Prv$Yi^}w<1< zIfM%EB)x#1FYg9;`>d=Q&*oa)0rN=g5kJVYO*wb6xUq4i1L$RixY(h`_jkKwK@j_z zSv@D69thKUL`OTIx25y|E8UEg7FJG$-nS*`o51BAlyjTu2NHl9DbNx_90j^yX{6BS z5~_}&0=PwJMofrpSitc0DCnA)zhI#E4WbylSAiMvD*M<0^wL6H?4ViwyorVHqd{@9zSvgA0!{w~O!XRbY1H@xRVr;sE;H*lEHR zpN{%^z&OM$w4ri6e}D3Tt-JX`28Yn4G)^{9ekPU%ObQzQ4(C8I#fPOO|2>SG((pjJ zibe9V*fj#Y#Eaj9OA$@OH)HMECVcOTbJ5haT8ppi)dxSG^J~mFbXLlF7SPx3aOsA&zK3(3 zjGt$Faf&Mw-Yf)})5vIuRNr$+#F_aqPEYvO)VU;|LsM@vk8TM6G{Mi~J{K@_Fhy|i z#EtL3A!&g*8tugO*IXO`vm;x#e2E)xxE$-(rM@;vwz9Z!(UT6C!R8b`l#h#zKA^YG zcZDF6T@_deuQhO3zX2$+z`#x$0l|gM(t+eA z>nt+5BFJeTCfyx6Eb3<#M!bo(E=LDWPvIVX`RBqH@yW;G!xy`Dwc=0zcW+90*|v@C z+qR&i!@N{+D)QK)^B+|E6wuG*W7Kfe{=M{0ngK8pCe4iCq*%cw$QmprQl;Y-5Y~_Y ze@#3;PI%{noTnOF_YKV266>y?DZ9WDRh@8{v9_$lLXhau@Q6b`b&!s0{Zc4uB&c=<2zlJ;K zrtjjOxwm5T=1sBx9Ubj>;rSA&^pf(TMqhZqe+RCLuryhpu1-`yTv~)B;J;IiUWxz{HPfXw^ z8kYMi10icHtL&I&me6=~C-#R#za(V}N{=3ONz*u;!!Vh5_boB-nq>XDX58`LKTfF} zQsT3@zq#{&XdDN08-OcQ$}I({t}R2a{?#7nz=0^}oD^bD_R<=t0|6H(;DlflM7J}m z2Q7tx?vS#nJRy9#1Ff+ryNR)i6YQr#HB4qf1V4zWfjGpfBKQ(r?hILJxieBML~)Su zE|SUEag&p#89jP}F@D#sHvIWd4E8RRKbnAz4z=cW}y$I`2 zvY_!?H;yh#Aj2pI^@XO3yRbDpyq86}J3BjlIsAy(C@)X!DRJ~MCmG{cEPo&E?RyfQ z>vRq;=?U?}mw_ztH zWbAy@zyCm7_5GVdkIy>#Bz*1ouN#kT-uy*M*I3)~dH6wz&bxkd=T)XdVGAF>0pNE4 zE=lR?A<{6koA0;m4pJzdtfp86+(%WMa~|o%D~jPc9=X%60$y{TQO1}u8t|Ez6 z^BMsex%18zLi59;raRk>wMfoE`>$jiI-p)jJWD57zOnLg=YOJwsa1n7bD(t)9lEh! zx{p(nv(CO4y?XV*+`De^*2CUs&`_Lv{-rqewDUvH>)pF=O8GYo7#w=6v2oGw=G}GY z64NnL?JDWzIxQvt@N|e=_NxPN{C|uLjPlWC281^9$CoQGjQ$}w+UKv`!P2wIw=hhs zrK5}rm{!PoA>MJQ1#aT;!EY0o1~8Is`LMKLAa~~!YRCDgphbWjA=V8GY`G-tlD9&p zX|6MgLk}E43n6051t$}SZk%@V!Pxv|xTfybtrmZO_8nAL2j3u4qG`&C^h>tlPJhd63f|tq>>5SoPhYZwMZG#XARhQ+8l?i6t@zU<~eK&GZzsmZmHa&mf2muJ&?h?4MTmA~{} z|5BSh<9&V0n}v;gz53wjqff$7N1qte`dpfunqI!}+_P>-mTw{sO{J&XQ5>CWfrTaT=P%BV zeRR{~z0$NwKVNM$$ZM5OwD`ZY$YeUIHY&3dtXB6 zOPVF+%b{^$9&sF)MDt1)yozJXhzo4ao#Wr1*e$;W8waHND2px#()Fb-Ds}52@1$x^L3lTnsu$Fn3ehaa3Ab_ya0H@{ztSBNFXDzj@9#QUNp4 z0JJ0T0k}NXPGW6cMS#Bo`s!Gc%*5uMMhFq`q0rO%oksuOK?X}$M^N$(A@lTeW3_XY zy;<^xMSV)((I>Ng+QgT`fXd^OQ5DjFgk@NflnkhlWyb9MxV`6GoX0bN{`^aSam&r` zrFu>}fOh160bHDlrtaCVnhkdoU@_~3ErafzQu5I}1UiM1b^>`|oj?Bl7CWH%b$@Au zSXQ{TMDoT6eXz&BE0dT2nu=yO09Wk?%zhS$SJb0mOBrS^677He%lu0&y5Ouoq;p!j zfOf>Wz_etprakJb7_guNFyK>Rauni|0MyX94kiQ|0HYj~YDlF)g>Q-rE2Cx!;eH(= zKv9BbMU!an2(~W?sMRr3rx0EzI-HLa%Z8vfY%4aiyDN(XKK|KH=S;ikg0ucN-E%Yj zH1d0{<>Rq1>qk{>xeE-#B8kk3;9DQ4X^cEvsgL3X<_1cCaYvdTowo?~S!Jy(+IcF* zFGFlksFj`kdlVk{$s#psg(ewaFfyWn6bS&TM6v-B#;qww=4)yQqKzf(WLmnmHVg%I z6=`m6dU@92GrpcGXXcWLhF0QSaJFlw4)E&oDt~IJM-k|>slY2;Fsi{Q1GgV*w8J8t zmz^*CPAEbthd#9KT~8Wp)l%qX30za}DB1x4n=~|%7@UM*mvLko=qgJvEXSJ?ttqTH z?SFCOqT7!;e8%id!Hg^cjhJgNa4mr20W{GAH9aeIPc?T1BkkeKpaXr7lM?#ifsTUG z%(Xf2ZB9K5)WZ0kM9Iqq&FaDVI#_;oU{XNXej<=j?M{IV#+ltT?pw}x6=fEW)Qwez zl65y+bM^7FX3n^dI_qa5*#cV0^8h9SxG(l?fB@HZd1lB*=xN7{YB{>bhV8y>HS2;j ztnnfB>uA;rI?5-7k-_R_#UQtam#5CBgAFTa@(Y5NYi*?1F=Wf;dgmzO|RW>?bV0OnmOZJZ#Fh=$yL6Yb_x^85&+Ye|7*jkHpH(jDfg9h zh}l)G+WIHt0s4Sjp)dbvC;b++H0T%;w>E&AF7+j$^Jk%V3N7qFR`2yJL`tlG^|b|8 zo_NerkLDx)Txw`dmj7$R6IV}qbiy;g{pe~bsWPnpc z)1Znf1il$gr~yDn4PkI}B2>fh1_EF6gK&QtAQLA3oQ!USr4j5i#gsQg|5!gV?sH`$ zEARgG9p4=@eDH{Tff-4<);W`21FIv`PaS&n!KV%Vx6xDUPq84o$Eue2MQA?L&`&n2>*{_WFSSn(IKjGzNk(IHRE`*WATj+W-8C+Gh9&W9d-Z2og=o10TG)i)CV_p$9_RU2<~L$I}fS#@4~;9 zWpI)L|AH3G-%@1P)t5R`j!lA;iBb;^ViT}~4n|rK5e9M+WElZ`9PCjH!X9~fJ|1s7 zfMt!1ixxfp==|s2SiI=DHyRsv=i@?QQgA?X88x*}RsF!4$%mXa_#g`yGj>}2i28xm z11y070 Date: Fri, 26 Jun 2026 14:05:27 +0800 Subject: [PATCH 12/13] Add files via upload --- apps/blinko/logo.png | Bin 0 -> 5910 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/blinko/logo.png diff --git a/apps/blinko/logo.png b/apps/blinko/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..86d4907088a8fabf17cd448cdb5f72588fde3a8e GIT binary patch literal 5910 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 literal 0 HcmV?d00001 From 92d20fa30f64bb8d4de45d8bec8467ea71ba3460 Mon Sep 17 00:00:00 2001 From: Wexis Date: Fri, 26 Jun 2026 14:07:18 +0800 Subject: [PATCH 13/13] Update README.md --- apps/blinko/README.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/apps/blinko/README.md b/apps/blinko/README.md index d4c2ba7e547e..ef40c5b65afc 100644 --- a/apps/blinko/README.md +++ b/apps/blinko/README.md @@ -1,12 +1,14 @@ +## 产品介绍 + Blinko 是一个AI驱动的卡片笔记项目,专为那些想要快速捕捉和组织灵感的人设计。它允许用户在灵感闪现的瞬间无缝记录想法,确保不错过任何创意火花。 -## 🚀主要特性 -- 🤖**AI 增强笔记检索**:通过 Blinko 的先进 AI 驱动的 RAG(检索增强生成)技术,你可以使用自然语言查询快速搜索和访问笔记,轻松找到所需内容。支持 OpenAI、Azure OpenAI 和 Ollama。 +## 主要特性 +- **AI 增强笔记检索**:通过 Blinko 的先进 AI 驱动的 RAG(检索增强生成)技术,你可以使用自然语言查询快速搜索和访问笔记,轻松找到所需内容。支持 OpenAI、Azure OpenAI 和 Ollama。 -- 🔒**数据所有权**:你的隐私至关重要。所有笔记和数据都安全存储在你的自托管环境中,确保对信息的完全控制。 +- **数据所有权**:你的隐私至关重要。所有笔记和数据都安全存储在你的自托管环境中,确保对信息的完全控制。 -- 🚀**高效快速**:即时捕捉想法并以纯文本形式存储以便于访问,完全支持 Markdown 格式,便于快速排版和分享。 +- **高效快速**:即时捕捉想法并以纯文本形式存储以便于访问,完全支持 Markdown 格式,便于快速排版和分享。 -- 💡**轻量架构,多端支持**:基于 Tauri 构建的 Blinko 采用简洁轻量的架构,在保持卓越速度和效率的同时,并且支持Macos,Windows,Android,Linux等多平台。 +- **轻量架构,多端支持**:基于 Tauri 构建的 Blinko 采用简洁轻量的架构,在保持卓越速度和效率的同时,并且支持Macos,Windows,Android,Linux等多平台。 -- 🔓**开放协作**:作为开源项目,Blinko 欢迎社区贡献。所有代码都在 GitHub 上公开透明,培养协作和持续改进的精神。 +- **开放协作**:作为开源项目,Blinko 欢迎社区贡献。所有代码都在 GitHub 上公开透明,培养协作和持续改进的精神。