Add tested Inkscape Kasm digest version

This commit is contained in:
okxlin
2026-10-19 09:57:04 +08:00
parent 8508574418
commit ae61414563
6 changed files with 167 additions and 0 deletions
@@ -0,0 +1,5 @@
PANEL_APP_PORT_HTTPS=41009
HTTP_PWD=replace-with-a-random-value
SHM_SIZE=1024m
APP_DATA_DIR=./data
CONTAINER_NAME=
@@ -0,0 +1,69 @@
additionalProperties:
formFields:
- default: 41009
edit: true
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: ""
edit: true
envKey: HTTP_PWD
labelEn: Access Password
labelZh: 访问密码
label:
en: Access Password
zh: 访问密码
zh-Hant: 存取密碼
ja: アクセスパスワード
ko: 접속 비밀번호
ru: Пароль доступа
ms: Kata Laluan Akses
pt-br: Senha de Acesso
random: true
required: true
rule: paramComplexity
type: password
- default: 1024m
edit: true
envKey: SHM_SIZE
labelEn: Shared Memory Size
labelZh: 共享内存大小
label:
en: Shared Memory Size
zh: 共享内存大小
zh-Hant: 共享記憶體大小
ja: 共有メモリサイズ
ko: 공유 메모리 크기
ru: Размер общей памяти
ms: Saiz Memori Dikongsi
pt-br: Tamanho da Memória Compartilhada
required: true
type: text
- default: ./data
edit: true
envKey: APP_DATA_DIR
labelEn: Data Directory
labelZh: 数据目录
label:
en: Data Directory
zh: 数据目录
zh-Hant: 資料目錄
ja: データディレクトリ
ko: 데이터 디렉터리
ru: Каталог данных
ms: Direktori Data
pt-br: Diretório de Dados
required: true
type: text
@@ -0,0 +1,35 @@
services:
inkscape-kasm:
image: "kasmweb/inkscape:1.19.0-rolling-weekly@sha256:c605d17bae7d1f08daf32b68f736d090fcfdb2bcfbeb3f4f63bdccad2075b5b3"
container_name: ${CONTAINER_NAME}
restart: unless-stopped
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTPS}:6901"
environment:
- VNC_PW=${HTTP_PWD}
shm_size: ${SHM_SIZE}
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
healthcheck:
test:
- CMD-SHELL
- >-
curl --insecure --fail --silent --show-error
--user "kasm_user:$$VNC_PW"
https://127.0.0.1:6901/
interval: 30s
timeout: 10s
start_period: 90s
retries: 5
volumes:
- "${APP_DATA_DIR}:/home/kasm-user"
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true
@@ -0,0 +1,50 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"
ENV_FILE="${ENV_FILE:-$ROOT_DIR/.env}"
read_env_value() {
local key="$1"
[[ -f "$ENV_FILE" ]] || return 0
local value
value="$(sed -n "s/^${key}=//p" "$ENV_FILE" | tail -n 1)"
case "$value" in
\"*\") value="${value#\"}"; value="${value%\"}" ;;
\'*\') value="${value#\'}"; value="${value%\'}" ;;
esac
printf '%s\n' "$value"
}
data_raw="${APP_DATA_DIR:-}"
if [[ -z "$data_raw" ]]; then
data_raw="$(read_env_value APP_DATA_DIR)"
fi
data_raw="${data_raw:-./data}"
[[ "$data_raw" != /* ]] || {
printf '%s\n' 'APP_DATA_DIR must be a relative path' >&2
exit 1
}
data_dir="$(realpath -m -- "$ROOT_DIR/${data_raw#./}")"
case "$data_dir" in
"$ROOT_DIR"/*) ;;
*)
printf '%s\n' 'APP_DATA_DIR must remain inside the application version directory' >&2
exit 1
;;
esac
mkdir -p -- "$data_dir"
resolved_data_dir="$(realpath -e -- "$data_dir")"
case "$resolved_data_dir" in
"$ROOT_DIR"/*) ;;
*)
printf '%s\n' 'APP_DATA_DIR resolves outside the application version directory' >&2
exit 1
;;
esac
chown 1000:1000 -- "$resolved_data_dir"
chmod 0700 -- "$resolved_data_dir"
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -euo pipefail
# Preserve APP_DATA_DIR so uninstall does not destroy user files.
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -euo pipefail
"$(dirname "$0")/init.sh"