Add infinite-canvas app (#4504)

This commit is contained in:
okxlin
2026-07-03 23:37:02 +08:00
committed by GitHub
parent a23810532a
commit 925f3d10dd
17 changed files with 201 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
PANEL_APP_PORT_HTTP=3000
CONTAINER_NAME=infinite-canvas
+19
View File
@@ -0,0 +1,19 @@
additionalProperties:
formFields:
- default: 3000
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Web Port
labelZh: Web 访问端口
label:
en: Web Port
zh: Web 访问端口
zh-Hant: Web 存取埠
ja: Web ポート
ko: Web 포트
ru: Веб-порт
ms: Port Web
pt-br: Porta Web
required: true
rule: paramPort
type: number
@@ -0,0 +1,24 @@
services:
infinite-canvas:
image: "ghcr.io/basketikun/infinite-canvas:v0.4.0"
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:3000"
healthcheck:
test:
- CMD-SHELL
- >-
node -e "require('http').get('http://127.0.0.1:3000', r => process.exit(r.statusCode < 500 ? 0 : 1)).on('error', () => process.exit(1))"
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
set -euo pipefail
echo "[infinite-canvas:init] server data is stored in browser local storage by default."
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
set -euo pipefail
docker-compose down --volumes
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
set -euo pipefail
echo "[infinite-canvas:upgrade] no server-side data migration is required for this version."
+56
View File
@@ -0,0 +1,56 @@
# Infinite Canvas
## 产品介绍
Infinite Canvas 是一个开源 AI 创作无限画布,支持文生图、图生图、参考图编辑、文本问答、音频和视频生成等创作流程。
## 主要功能
- 无限画布式创作空间
- OpenAI 兼容接口配置
- 文生图、图生图、参考图编辑和文本问答
- 音频、视频生成工作流
- 浏览器本地保存画布、素材、生成记录和 AI API Key
## 访问说明
安装完成后,访问:
```text
http://服务器IP:端口
```
首次打开后进入右上角配置,填入自己的 OpenAI 兼容 `Base URL` 和 `API Key`。
如果使用 New API,可在 New API 的聊天设置中配置跳转地址:
```text
http://服务器IP:端口?apiKey={key}&baseUrl={address}
```
当前主应用镜像只启动 Next.js。画布、素材、生成记录和 AI API Key 默认保存在浏览器本地;第三方提示词由 Next.js 路由拉取后缓存在运行实例内存里,不需要额外挂载数据目录。
## 安全提示
维护侧已对当前 `latest` / `0.4.0` 对应的上游镜像 `ghcr.io/basketikun/infinite-canvas:v0.4.0` 做过 Trivy 扫描,报告为 `Critical=3`、`High=17`、`Total=178`。其中 Critical 主要来自 Debian 基础层 `perl-base`、`zlib1g`,当前没有可直接应用的上游修复版本。
在 `--ignore-unfixed` 视角下,Critical 会消失,但仍有 `High=9`,主要集中在 `next 16.2.3`、`picomatch 4.0.3`、`sigstore 3.1.0`,需要上游更新依赖并重新构建镜像后才能消除。
因此当前版本更适合部署在可信内网或受控环境中,并应尽快跟进上游镜像更新。若对暴露面更敏感,建议在网关或反向代理层额外限制访问来源。
## Introduction
Infinite Canvas is an open-source infinite canvas for AI creation. It supports text-to-image, image-to-image, reference image editing, text chat, audio generation, and video generation workflows.
## Features
- Infinite canvas workspace
- OpenAI-compatible endpoint configuration
- Text-to-image, image-to-image, reference image editing, and text chat
- Audio and video generation workflows
- Browser-local storage for canvases, assets, generation history, and AI API keys
## Security Note
The current upstream image used by `latest` and `0.4.0` was scanned with Trivy and the report contains `Critical=3`, `High=17`, and `Total=178` findings. The Critical items are mainly in the Debian base layer (`perl-base`, `zlib1g`) and currently have no upstream fixed package available.
With `--ignore-unfixed`, the Critical findings drop out, but `High=9` remains, mainly in `next 16.2.3`, `picomatch 4.0.3`, and `sigstore 3.1.0`. Those require an upstream dependency refresh and image rebuild.
Deploy this app in a trusted network or otherwise controlled environment, and update promptly when the upstream image is refreshed.
## 参考资料
- 源码: <https://github.com/basketikun/infinite-canvas>
- Docker 部署文档: <https://github.com/basketikun/infinite-canvas/blob/main/docs/content/docs/overview/docker.mdx>
+31
View File
@@ -0,0 +1,31 @@
name: Infinite Canvas
tags:
- 工具
title: 开源 AI 创作无限画布
description: 开源 AI 创作无限画布
additionalProperties:
key: infinite-canvas
name: Infinite Canvas
tags:
- Tool
shortDescZh: 开源 AI 创作无限画布
shortDescEn: Open-source infinite canvas for AI creation
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://github.com/basketikun/infinite-canvas
github: https://github.com/basketikun/infinite-canvas
document: https://github.com/basketikun/infinite-canvas/blob/main/docs/content/docs/overview/docker.mdx
architectures:
- amd64
- arm64
description:
en: Open-source infinite canvas for AI creation.
zh: 开源 AI 创作无限画布。
zh-Hant: 開源 AI 創作無限畫布。
ja: AI 制作用のオープンソース無限キャンバス。
ko: AI 창작을 위한 오픈소스 무한 캔버스입니다.
ru: Открытая бесконечная доска для AI-творчества.
ms: Kanvas tanpa had sumber terbuka untuk penciptaan AI.
pt-br: Canvas infinito open source para criação com IA.
+2
View File
@@ -0,0 +1,2 @@
PANEL_APP_PORT_HTTP=3000
CONTAINER_NAME=infinite-canvas
+19
View File
@@ -0,0 +1,19 @@
additionalProperties:
formFields:
- default: 3000
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Web Port
labelZh: Web 访问端口
label:
en: Web Port
zh: Web 访问端口
zh-Hant: Web 存取埠
ja: Web ポート
ko: Web 포트
ru: Веб-порт
ms: Port Web
pt-br: Porta Web
required: true
rule: paramPort
type: number
@@ -0,0 +1,24 @@
services:
infinite-canvas:
image: "ghcr.io/basketikun/infinite-canvas:latest"
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:3000"
healthcheck:
test:
- CMD-SHELL
- >-
node -e "require('http').get('http://127.0.0.1:3000', r => process.exit(r.statusCode < 500 ? 0 : 1)).on('error', () => process.exit(1))"
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
set -euo pipefail
echo "[infinite-canvas:init] server data is stored in browser local storage by default."
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
set -euo pipefail
docker-compose down --volumes
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
set -euo pipefail
echo "[infinite-canvas:upgrade] no server-side data migration is required for this version."
Binary file not shown.

After

Width:  |  Height:  |  Size: 715 B