From 46148eee4f8563380bc64c17943114cdeabc7df7 Mon Sep 17 00:00:00 2001 From: okxlin Date: Fri, 13 Mar 2026 19:53:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0joplin=E5=88=B0=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/joplin/3.5.13/.env.sample | 9 ++ apps/joplin/3.5.13/data.yml | 124 ++++++++++++++++++++++++ apps/joplin/3.5.13/docker-compose.yml | 30 ++++++ apps/joplin/3.5.13/scripts/uninstall.sh | 2 + apps/joplin/README.md | 28 ++++++ apps/joplin/data.yml | 30 ++++++ apps/joplin/latest/.env.sample | 9 ++ apps/joplin/latest/data.yml | 124 ++++++++++++++++++++++++ apps/joplin/latest/docker-compose.yml | 30 ++++++ apps/joplin/latest/scripts/uninstall.sh | 2 + apps/joplin/logo.png | Bin 0 -> 4224 bytes 11 files changed, 388 insertions(+) create mode 100644 apps/joplin/3.5.13/.env.sample create mode 100644 apps/joplin/3.5.13/data.yml create mode 100644 apps/joplin/3.5.13/docker-compose.yml create mode 100644 apps/joplin/3.5.13/scripts/uninstall.sh create mode 100644 apps/joplin/README.md create mode 100644 apps/joplin/data.yml create mode 100644 apps/joplin/latest/.env.sample create mode 100644 apps/joplin/latest/data.yml create mode 100644 apps/joplin/latest/docker-compose.yml create mode 100644 apps/joplin/latest/scripts/uninstall.sh create mode 100644 apps/joplin/logo.png diff --git a/apps/joplin/3.5.13/.env.sample b/apps/joplin/3.5.13/.env.sample new file mode 100644 index 000000000..ef537d8cd --- /dev/null +++ b/apps/joplin/3.5.13/.env.sample @@ -0,0 +1,9 @@ +CONTAINER_NAME="joplin" +PANEL_APP_PORT_HTTP=40339 +PANEL_APP_PORT_HTTPS=40340 +PUID=1000 +PGID=1000 +CUSTOM_USER=admin +PASSWORD= +TZ=Asia/Shanghai +SHM_SIZE=1gb diff --git a/apps/joplin/3.5.13/data.yml b/apps/joplin/3.5.13/data.yml new file mode 100644 index 000000000..cc6a0b463 --- /dev/null +++ b/apps/joplin/3.5.13/data.yml @@ -0,0 +1,124 @@ +additionalProperties: + formFields: + - default: 40339 + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + label: + en: Port + zh: 端口 + zh-hant: 埠 + ja: ポート + ko: 포트 + ru: Порт + ms: Port + pt-br: Porta + required: true + rule: paramPort + type: number + - default: 40340 + envKey: PANEL_APP_PORT_HTTPS + labelEn: HTTPS Port + labelZh: HTTPS 端口 + label: + en: HTTPS Port + zh: HTTPS 端口 + zh-hant: HTTPS 埠 + ja: HTTPS ポート + ko: HTTPS 포트 + ru: HTTPS порт + ms: Port HTTPS + pt-br: Porta HTTPS + required: true + rule: paramPort + type: number + - default: 1000 + envKey: PUID + labelEn: PUID + labelZh: PUID + label: + en: PUID + zh: PUID + zh-hant: PUID + ja: PUID + ko: PUID + ru: PUID + ms: PUID + pt-br: PUID + required: true + type: number + - default: 1000 + envKey: PGID + labelEn: PGID + labelZh: PGID + label: + en: PGID + zh: PGID + zh-hant: PGID + ja: PGID + ko: PGID + ru: PGID + ms: PGID + pt-br: PGID + required: true + type: number + - default: admin + envKey: CUSTOM_USER + labelEn: Basic Auth Username + labelZh: 访问用户名(Basic Auth) + label: + en: Basic Auth Username + zh: 访问用户名(Basic Auth) + zh-hant: 存取使用者名稱(Basic Auth) + ja: ベーシック認証ユーザー名 + ko: 기본 인증 사용자명 + ru: Имя пользователя (Basic Auth) + ms: Nama pengguna (Basic Auth) + pt-br: Usuário (Basic Auth) + required: true + type: text + - default: "" + envKey: PASSWORD + labelEn: Basic Auth Password + labelZh: 访问密码(Basic Auth) + label: + en: Basic Auth Password + zh: 访问密码(Basic Auth) + zh-hant: 存取密碼(Basic Auth) + ja: ベーシック認証パスワード + ko: 기본 인증 비밀번호 + ru: Пароль (Basic Auth) + ms: Kata laluan (Basic Auth) + pt-br: Senha (Basic Auth) + required: true + type: password + - default: Asia/Shanghai + envKey: TZ + labelEn: Timezone + labelZh: 时区 + label: + en: Timezone + zh: 时区 + zh-hant: 時區 + ja: タイムゾーン + ko: 시간대 + ru: Часовой пояс + ms: Zon waktu + pt-br: Fuso horário + required: true + type: text + - default: "1gb" + envKey: SHM_SIZE + labelEn: Shared memory size + labelZh: 共享内存大小(shm) + label: + en: Shared memory size + zh: 共享内存大小(shm) + zh-hant: 共享記憶體大小(shm) + ja: 共有メモリサイズ(shm) + ko: 공유 메모리 크기(shm) + ru: Размер общей памяти (shm) + ms: Saiz memori kongsi (shm) + pt-br: Tamanho da memória compartilhada (shm) + required: true + type: text diff --git a/apps/joplin/3.5.13/docker-compose.yml b/apps/joplin/3.5.13/docker-compose.yml new file mode 100644 index 000000000..01d007ebb --- /dev/null +++ b/apps/joplin/3.5.13/docker-compose.yml @@ -0,0 +1,30 @@ +services: + joplin: + image: "linuxserver/joplin:3.5.13" + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + ports: + - "${PANEL_APP_PORT_HTTP}:3000" + - "${PANEL_APP_PORT_HTTPS}:3001" + environment: + - PUID=${PUID} + - PGID=${PGID} + - TZ=${TZ} + - CUSTOM_USER=${CUSTOM_USER} + - PASSWORD=${PASSWORD} + volumes: + - "joplin-config:/config" + shm_size: ${SHM_SIZE} + restart: always + networks: + - 1panel-network + +networks: + 1panel-network: + external: true + name: 1panel-network + +volumes: + joplin-config: + name: joplin-config diff --git a/apps/joplin/3.5.13/scripts/uninstall.sh b/apps/joplin/3.5.13/scripts/uninstall.sh new file mode 100644 index 000000000..ab8a8d674 --- /dev/null +++ b/apps/joplin/3.5.13/scripts/uninstall.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker-compose down --volumes diff --git a/apps/joplin/README.md b/apps/joplin/README.md new file mode 100644 index 000000000..fc906f905 --- /dev/null +++ b/apps/joplin/README.md @@ -0,0 +1,28 @@ +# Joplin(浏览器版) + +Joplin 是一款开源笔记应用。随时记录想法,并可在任何设备上安全访问。 + +这是一个通过浏览器访问的 Joplin 容器化版本(基于 LinuxServer 镜像)。 + +- 应用 Key:`joplin` +- 上游: + - Joplin: + - LinuxServer 镜像: + +## 访问方式 + +- HTTP:`http://<服务器IP>:`(默认 3000) +- HTTPS(自签名证书):`https://<服务器IP>:`(默认 3001) + +## 密码访问(Basic Auth) + +该镜像支持通过环境变量启用 **Basic HTTP Auth**: + +- `CUSTOM_USER`:用户名 +- `PASSWORD`:密码 + +> 安全提示:该容器 GUI 内含终端且具备高权限能力,不建议直接暴露公网;如需公网访问,建议放在反向代理后并增加更强的认证与访问控制。 + +## 数据存储 + +使用 Docker **named volume**:`joplin-config` 持久化到容器内的 `/config`。 diff --git a/apps/joplin/data.yml b/apps/joplin/data.yml new file mode 100644 index 000000000..8cb38f8d6 --- /dev/null +++ b/apps/joplin/data.yml @@ -0,0 +1,30 @@ +name: Joplin(浏览器版) +tags: + - Tool +title: Joplin(浏览器版) +description: Joplin(浏览器版) +additionalProperties: + key: joplin + name: Joplin(浏览器版) + tags: + - Tool + shortDescZh: Joplin(浏览器版) + shortDescEn: Joplin (browser) + description: + en: Joplin (browser) + zh: Joplin(浏览器版) + zh-hant: Joplin(瀏覽器版) + ja: Joplin(ブラウザ版) + ko: Joplin(브라우저) + ru: Joplin (в браузере) + ms: Joplin (pelayar) + pt-br: Joplin (navegador) + type: tool + crossVersionUpdate: true + limit: 1 + recommend: 0 + website: https://joplinapp.org + github: https://github.com/laurent22/joplin + document: https://github.com/linuxserver/docker-joplin + architectures: + - amd64 diff --git a/apps/joplin/latest/.env.sample b/apps/joplin/latest/.env.sample new file mode 100644 index 000000000..ef537d8cd --- /dev/null +++ b/apps/joplin/latest/.env.sample @@ -0,0 +1,9 @@ +CONTAINER_NAME="joplin" +PANEL_APP_PORT_HTTP=40339 +PANEL_APP_PORT_HTTPS=40340 +PUID=1000 +PGID=1000 +CUSTOM_USER=admin +PASSWORD= +TZ=Asia/Shanghai +SHM_SIZE=1gb diff --git a/apps/joplin/latest/data.yml b/apps/joplin/latest/data.yml new file mode 100644 index 000000000..cc6a0b463 --- /dev/null +++ b/apps/joplin/latest/data.yml @@ -0,0 +1,124 @@ +additionalProperties: + formFields: + - default: 40339 + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + label: + en: Port + zh: 端口 + zh-hant: 埠 + ja: ポート + ko: 포트 + ru: Порт + ms: Port + pt-br: Porta + required: true + rule: paramPort + type: number + - default: 40340 + envKey: PANEL_APP_PORT_HTTPS + labelEn: HTTPS Port + labelZh: HTTPS 端口 + label: + en: HTTPS Port + zh: HTTPS 端口 + zh-hant: HTTPS 埠 + ja: HTTPS ポート + ko: HTTPS 포트 + ru: HTTPS порт + ms: Port HTTPS + pt-br: Porta HTTPS + required: true + rule: paramPort + type: number + - default: 1000 + envKey: PUID + labelEn: PUID + labelZh: PUID + label: + en: PUID + zh: PUID + zh-hant: PUID + ja: PUID + ko: PUID + ru: PUID + ms: PUID + pt-br: PUID + required: true + type: number + - default: 1000 + envKey: PGID + labelEn: PGID + labelZh: PGID + label: + en: PGID + zh: PGID + zh-hant: PGID + ja: PGID + ko: PGID + ru: PGID + ms: PGID + pt-br: PGID + required: true + type: number + - default: admin + envKey: CUSTOM_USER + labelEn: Basic Auth Username + labelZh: 访问用户名(Basic Auth) + label: + en: Basic Auth Username + zh: 访问用户名(Basic Auth) + zh-hant: 存取使用者名稱(Basic Auth) + ja: ベーシック認証ユーザー名 + ko: 기본 인증 사용자명 + ru: Имя пользователя (Basic Auth) + ms: Nama pengguna (Basic Auth) + pt-br: Usuário (Basic Auth) + required: true + type: text + - default: "" + envKey: PASSWORD + labelEn: Basic Auth Password + labelZh: 访问密码(Basic Auth) + label: + en: Basic Auth Password + zh: 访问密码(Basic Auth) + zh-hant: 存取密碼(Basic Auth) + ja: ベーシック認証パスワード + ko: 기본 인증 비밀번호 + ru: Пароль (Basic Auth) + ms: Kata laluan (Basic Auth) + pt-br: Senha (Basic Auth) + required: true + type: password + - default: Asia/Shanghai + envKey: TZ + labelEn: Timezone + labelZh: 时区 + label: + en: Timezone + zh: 时区 + zh-hant: 時區 + ja: タイムゾーン + ko: 시간대 + ru: Часовой пояс + ms: Zon waktu + pt-br: Fuso horário + required: true + type: text + - default: "1gb" + envKey: SHM_SIZE + labelEn: Shared memory size + labelZh: 共享内存大小(shm) + label: + en: Shared memory size + zh: 共享内存大小(shm) + zh-hant: 共享記憶體大小(shm) + ja: 共有メモリサイズ(shm) + ko: 공유 메모리 크기(shm) + ru: Размер общей памяти (shm) + ms: Saiz memori kongsi (shm) + pt-br: Tamanho da memória compartilhada (shm) + required: true + type: text diff --git a/apps/joplin/latest/docker-compose.yml b/apps/joplin/latest/docker-compose.yml new file mode 100644 index 000000000..e8e4ab4a9 --- /dev/null +++ b/apps/joplin/latest/docker-compose.yml @@ -0,0 +1,30 @@ +services: + joplin: + image: "linuxserver/joplin:latest" + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + ports: + - "${PANEL_APP_PORT_HTTP}:3000" + - "${PANEL_APP_PORT_HTTPS}:3001" + environment: + - PUID=${PUID} + - PGID=${PGID} + - TZ=${TZ} + - CUSTOM_USER=${CUSTOM_USER} + - PASSWORD=${PASSWORD} + volumes: + - "joplin-config:/config" + shm_size: ${SHM_SIZE} + restart: always + networks: + - 1panel-network + +networks: + 1panel-network: + external: true + name: 1panel-network + +volumes: + joplin-config: + name: joplin-config diff --git a/apps/joplin/latest/scripts/uninstall.sh b/apps/joplin/latest/scripts/uninstall.sh new file mode 100644 index 000000000..ab8a8d674 --- /dev/null +++ b/apps/joplin/latest/scripts/uninstall.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker-compose down --volumes diff --git a/apps/joplin/logo.png b/apps/joplin/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..99bb2ff13e81fc2b54c900b8371155c4966a13ba GIT binary patch literal 4224 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 W;s;I)#f9+z0000