From aa226da67f273ecddf73df847077bb117f41caae Mon Sep 17 00:00:00 2001 From: pooneyy <85266337+pooneyy@users.noreply.github.com> Date: Wed, 25 Jun 2025 11:22:27 +0800 Subject: [PATCH] Update --- apps/amprobe/{latest => v1.3.3}/.env.sample | 0 apps/amprobe/{latest => v1.3.3}/data.yml | 0 .../data/configs/config.dev.toml | 0 .../data/configs/config.toml | 0 .../{latest => v1.3.3}/data/configs/init.yaml | 0 .../{latest => v1.3.3}/data/nginx/nginx.conf | 0 .../data/supervisor/nginx.conf | 0 .../data/supervisor/server.conf | 0 .../{latest => v1.3.3}/docker-compose.yml | 0 .../{latest => 202209060423}/.env.sample | 0 .../{latest => 202209060423}/data.yml | 0 .../docker-compose.yml | 2 +- apps/chatgpt-web/v2.11.1/.env.sample | 43 +++ apps/chatgpt-web/v2.11.1/data.yml | 103 +++++++ apps/chatgpt-web/v2.11.1/docker-compose.yml | 42 +++ .../{latest => 20241204}/.env.sample | 0 .../chuanhuchat/{latest => 20241204}/data.yml | 0 .../{latest => 20241204}/data/config.json | 0 .../data/config_example.json | 0 .../{latest => 20241204}/docker-compose.yml | 2 +- apps/cookie-cloud/README.md | 25 -- apps/cookie-cloud/data.yml | 16 -- apps/cookie-cloud/latest/data.yml | 24 -- apps/cookie-cloud/latest/docker-compose.yml | 20 -- apps/cookie-cloud/latest/envs/default.env | 2 - apps/cookie-cloud/latest/envs/global.env | 2 - apps/cookie-cloud/latest/scripts/init.sh | 17 -- apps/cookie-cloud/latest/scripts/uninstall.sh | 10 - apps/cookie-cloud/latest/scripts/upgrade.sh | 17 -- apps/cookie-cloud/logo.png | Bin 35850 -> 0 bytes apps/cookiecloud/data.yml | 8 +- .../{latest => v2.0.7}/.env.sample | 0 apps/dailyhot-api/{latest => v2.0.7}/data.yml | 0 .../{latest => v2.0.7}/docker-compose.yml | 2 +- .../emulator_10.0_v2.18.0-p0/.env.sample | 6 + .../emulator_10.0_v2.18.0-p0/data.yml | 43 +++ .../docker-compose.yml | 20 ++ .../emulator_11.0_v2.18.0-p0/.env.sample | 6 + .../emulator_11.0_v2.18.0-p0/data.yml | 43 +++ .../docker-compose.yml | 20 ++ .../emulator_12.0_v2.18.0-p0/.env.sample | 6 + .../emulator_12.0_v2.18.0-p0/data.yml | 43 +++ .../docker-compose.yml | 20 ++ .../emulator_13.0_v2.18.0-p0/.env.sample | 6 + .../emulator_13.0_v2.18.0-p0/data.yml | 43 +++ .../docker-compose.yml | 20 ++ .../emulator_14.0_v2.18.0-p0/.env.sample | 6 + .../emulator_14.0_v2.18.0-p0/data.yml | 43 +++ .../docker-compose.yml | 20 ++ .../emulator_9.0_v2.18.0-p0/.env.sample | 6 + .../emulator_9.0_v2.18.0-p0/data.yml | 43 +++ .../docker-compose.yml | 20 ++ .../{latest => 20241103005433}/.env.sample | 0 .../{latest => 20241103005433}/data.yml | 0 .../docker-compose.yml | 2 +- .../{latest => 0.6.22}/.env.sample | 0 apps/fossbilling/{latest => 0.6.22}/data.yml | 0 .../{latest => 0.6.22}/docker-compose.yml | 2 +- .../{latest => 2024-02-19}/.env.sample | 0 apps/gh-proxy/{latest => 2024-02-19}/data.yml | 0 .../{latest => 2024-02-19}/docker-compose.yml | 2 +- .../{latest => v2.10.2}/.env.sample | 0 apps/linkwarden/{latest => v2.10.2}/data.yml | 0 .../{latest => v2.10.2}/docker-compose.yml | 2 +- apps/lobe-chat-data/{1.77.16 => 1.96.9}/.env | 0 .../{1.77.16 => 1.96.9}/data.yml | 272 +++++++++--------- .../{1.77.16 => 1.96.9}/docker-compose.yml | 68 ++--- .../{1.77.16 => 1.96.9}/init_data.json | 0 .../{1.77.16 => 1.96.9}/lobe-entrypoint.sh | 0 .../{1.77.16 => 1.96.9}/minio-entrypoint.sh | 0 .../{1.77.16 => 1.96.9}/searxng-settings.yml | 0 .../{openlist-aio => v4.0.2-aio}/data.yml | 0 .../data/data/.gitkeep | 0 .../data/mnt/.gitkeep | 0 .../docker-compose.yml | 2 +- .../scripts/upgrade.sh | 0 .../{openlist-aria2 => v4.0.2-aria2}/data.yml | 0 .../data/data/.gitkeep | 0 .../data/mnt/.gitkeep | 0 .../docker-compose.yml | 2 +- .../scripts/upgrade.sh | 0 .../data.yml | 0 .../data/data/.gitkeep | 0 .../data/mnt/.gitkeep | 0 .../docker-compose.yml | 2 +- .../scripts/upgrade.sh | 0 apps/openlist/{openlist => v4.0.2}/data.yml | 0 .../{openlist => v4.0.2}/data/data/.gitkeep | 0 .../{openlist => v4.0.2}/data/mnt/.gitkeep | 0 .../docker-compose.yml | 2 +- .../{openlist => v4.0.2}/scripts/upgrade.sh | 0 renovate.json | 30 ++ 92 files changed, 817 insertions(+), 318 deletions(-) rename apps/amprobe/{latest => v1.3.3}/.env.sample (100%) rename apps/amprobe/{latest => v1.3.3}/data.yml (100%) rename apps/amprobe/{latest => v1.3.3}/data/configs/config.dev.toml (100%) rename apps/amprobe/{latest => v1.3.3}/data/configs/config.toml (100%) rename apps/amprobe/{latest => v1.3.3}/data/configs/init.yaml (100%) rename apps/amprobe/{latest => v1.3.3}/data/nginx/nginx.conf (100%) rename apps/amprobe/{latest => v1.3.3}/data/supervisor/nginx.conf (100%) rename apps/amprobe/{latest => v1.3.3}/data/supervisor/server.conf (100%) rename apps/amprobe/{latest => v1.3.3}/docker-compose.yml (100%) rename apps/aria2-pro/{latest => 202209060423}/.env.sample (100%) rename apps/aria2-pro/{latest => 202209060423}/data.yml (100%) rename apps/aria2-pro/{latest => 202209060423}/docker-compose.yml (95%) create mode 100644 apps/chatgpt-web/v2.11.1/.env.sample create mode 100644 apps/chatgpt-web/v2.11.1/data.yml create mode 100644 apps/chatgpt-web/v2.11.1/docker-compose.yml rename apps/chuanhuchat/{latest => 20241204}/.env.sample (100%) rename apps/chuanhuchat/{latest => 20241204}/data.yml (100%) rename apps/chuanhuchat/{latest => 20241204}/data/config.json (100%) rename apps/chuanhuchat/{latest => 20241204}/data/config_example.json (100%) rename apps/chuanhuchat/{latest => 20241204}/docker-compose.yml (87%) delete mode 100644 apps/cookie-cloud/README.md delete mode 100644 apps/cookie-cloud/data.yml delete mode 100644 apps/cookie-cloud/latest/data.yml delete mode 100644 apps/cookie-cloud/latest/docker-compose.yml delete mode 100644 apps/cookie-cloud/latest/envs/default.env delete mode 100644 apps/cookie-cloud/latest/envs/global.env delete mode 100644 apps/cookie-cloud/latest/scripts/init.sh delete mode 100644 apps/cookie-cloud/latest/scripts/uninstall.sh delete mode 100644 apps/cookie-cloud/latest/scripts/upgrade.sh delete mode 100644 apps/cookie-cloud/logo.png rename apps/dailyhot-api/{latest => v2.0.7}/.env.sample (100%) rename apps/dailyhot-api/{latest => v2.0.7}/data.yml (100%) rename apps/dailyhot-api/{latest => v2.0.7}/docker-compose.yml (85%) create mode 100644 apps/docker-android/emulator_10.0_v2.18.0-p0/.env.sample create mode 100644 apps/docker-android/emulator_10.0_v2.18.0-p0/data.yml create mode 100644 apps/docker-android/emulator_10.0_v2.18.0-p0/docker-compose.yml create mode 100644 apps/docker-android/emulator_11.0_v2.18.0-p0/.env.sample create mode 100644 apps/docker-android/emulator_11.0_v2.18.0-p0/data.yml create mode 100644 apps/docker-android/emulator_11.0_v2.18.0-p0/docker-compose.yml create mode 100644 apps/docker-android/emulator_12.0_v2.18.0-p0/.env.sample create mode 100644 apps/docker-android/emulator_12.0_v2.18.0-p0/data.yml create mode 100644 apps/docker-android/emulator_12.0_v2.18.0-p0/docker-compose.yml create mode 100644 apps/docker-android/emulator_13.0_v2.18.0-p0/.env.sample create mode 100644 apps/docker-android/emulator_13.0_v2.18.0-p0/data.yml create mode 100644 apps/docker-android/emulator_13.0_v2.18.0-p0/docker-compose.yml create mode 100644 apps/docker-android/emulator_14.0_v2.18.0-p0/.env.sample create mode 100644 apps/docker-android/emulator_14.0_v2.18.0-p0/data.yml create mode 100644 apps/docker-android/emulator_14.0_v2.18.0-p0/docker-compose.yml create mode 100644 apps/docker-android/emulator_9.0_v2.18.0-p0/.env.sample create mode 100644 apps/docker-android/emulator_9.0_v2.18.0-p0/data.yml create mode 100644 apps/docker-android/emulator_9.0_v2.18.0-p0/docker-compose.yml rename apps/docker-hoster/{latest => 20241103005433}/.env.sample (100%) rename apps/docker-hoster/{latest => 20241103005433}/data.yml (100%) rename apps/docker-hoster/{latest => 20241103005433}/docker-compose.yml (84%) rename apps/fossbilling/{latest => 0.6.22}/.env.sample (100%) rename apps/fossbilling/{latest => 0.6.22}/data.yml (100%) rename apps/fossbilling/{latest => 0.6.22}/docker-compose.yml (88%) rename apps/gh-proxy/{latest => 2024-02-19}/.env.sample (100%) rename apps/gh-proxy/{latest => 2024-02-19}/data.yml (100%) rename apps/gh-proxy/{latest => 2024-02-19}/docker-compose.yml (85%) rename apps/linkwarden/{latest => v2.10.2}/.env.sample (100%) rename apps/linkwarden/{latest => v2.10.2}/data.yml (100%) rename apps/linkwarden/{latest => v2.10.2}/docker-compose.yml (96%) rename apps/lobe-chat-data/{1.77.16 => 1.96.9}/.env (100%) rename apps/lobe-chat-data/{1.77.16 => 1.96.9}/data.yml (95%) rename apps/lobe-chat-data/{1.77.16 => 1.96.9}/docker-compose.yml (100%) rename apps/lobe-chat-data/{1.77.16 => 1.96.9}/init_data.json (100%) rename apps/lobe-chat-data/{1.77.16 => 1.96.9}/lobe-entrypoint.sh (100%) rename apps/lobe-chat-data/{1.77.16 => 1.96.9}/minio-entrypoint.sh (100%) rename apps/lobe-chat-data/{1.77.16 => 1.96.9}/searxng-settings.yml (100%) rename apps/openlist/{openlist-aio => v4.0.2-aio}/data.yml (100%) mode change 100755 => 100644 rename apps/openlist/{openlist-aio => v4.0.2-aio}/data/data/.gitkeep (100%) rename apps/openlist/{openlist-aio => v4.0.2-aio}/data/mnt/.gitkeep (100%) rename apps/openlist/{openlist => v4.0.2-aio}/docker-compose.yml (89%) rename apps/openlist/{openlist-aio => v4.0.2-aio}/scripts/upgrade.sh (100%) rename apps/openlist/{openlist-aria2 => v4.0.2-aria2}/data.yml (100%) mode change 100755 => 100644 rename apps/openlist/{openlist-aria2 => v4.0.2-aria2}/data/data/.gitkeep (100%) rename apps/openlist/{openlist-aria2 => v4.0.2-aria2}/data/mnt/.gitkeep (100%) rename apps/openlist/{openlist-aio => v4.0.2-aria2}/docker-compose.yml (88%) rename apps/openlist/{openlist-aria2 => v4.0.2-aria2}/scripts/upgrade.sh (100%) rename apps/openlist/{openlist-ffmpeg => v4.0.2-ffmpeg}/data.yml (100%) mode change 100755 => 100644 rename apps/openlist/{openlist-ffmpeg => v4.0.2-ffmpeg}/data/data/.gitkeep (100%) rename apps/openlist/{openlist-ffmpeg => v4.0.2-ffmpeg}/data/mnt/.gitkeep (100%) rename apps/openlist/{openlist-aria2 => v4.0.2-ffmpeg}/docker-compose.yml (88%) rename apps/openlist/{openlist-ffmpeg => v4.0.2-ffmpeg}/scripts/upgrade.sh (100%) rename apps/openlist/{openlist => v4.0.2}/data.yml (100%) mode change 100755 => 100644 rename apps/openlist/{openlist => v4.0.2}/data/data/.gitkeep (100%) rename apps/openlist/{openlist => v4.0.2}/data/mnt/.gitkeep (100%) rename apps/openlist/{openlist-ffmpeg => v4.0.2}/docker-compose.yml (88%) rename apps/openlist/{openlist => v4.0.2}/scripts/upgrade.sh (100%) diff --git a/apps/amprobe/latest/.env.sample b/apps/amprobe/v1.3.3/.env.sample similarity index 100% rename from apps/amprobe/latest/.env.sample rename to apps/amprobe/v1.3.3/.env.sample diff --git a/apps/amprobe/latest/data.yml b/apps/amprobe/v1.3.3/data.yml similarity index 100% rename from apps/amprobe/latest/data.yml rename to apps/amprobe/v1.3.3/data.yml diff --git a/apps/amprobe/latest/data/configs/config.dev.toml b/apps/amprobe/v1.3.3/data/configs/config.dev.toml similarity index 100% rename from apps/amprobe/latest/data/configs/config.dev.toml rename to apps/amprobe/v1.3.3/data/configs/config.dev.toml diff --git a/apps/amprobe/latest/data/configs/config.toml b/apps/amprobe/v1.3.3/data/configs/config.toml similarity index 100% rename from apps/amprobe/latest/data/configs/config.toml rename to apps/amprobe/v1.3.3/data/configs/config.toml diff --git a/apps/amprobe/latest/data/configs/init.yaml b/apps/amprobe/v1.3.3/data/configs/init.yaml similarity index 100% rename from apps/amprobe/latest/data/configs/init.yaml rename to apps/amprobe/v1.3.3/data/configs/init.yaml diff --git a/apps/amprobe/latest/data/nginx/nginx.conf b/apps/amprobe/v1.3.3/data/nginx/nginx.conf similarity index 100% rename from apps/amprobe/latest/data/nginx/nginx.conf rename to apps/amprobe/v1.3.3/data/nginx/nginx.conf diff --git a/apps/amprobe/latest/data/supervisor/nginx.conf b/apps/amprobe/v1.3.3/data/supervisor/nginx.conf similarity index 100% rename from apps/amprobe/latest/data/supervisor/nginx.conf rename to apps/amprobe/v1.3.3/data/supervisor/nginx.conf diff --git a/apps/amprobe/latest/data/supervisor/server.conf b/apps/amprobe/v1.3.3/data/supervisor/server.conf similarity index 100% rename from apps/amprobe/latest/data/supervisor/server.conf rename to apps/amprobe/v1.3.3/data/supervisor/server.conf diff --git a/apps/amprobe/latest/docker-compose.yml b/apps/amprobe/v1.3.3/docker-compose.yml similarity index 100% rename from apps/amprobe/latest/docker-compose.yml rename to apps/amprobe/v1.3.3/docker-compose.yml diff --git a/apps/aria2-pro/latest/.env.sample b/apps/aria2-pro/202209060423/.env.sample similarity index 100% rename from apps/aria2-pro/latest/.env.sample rename to apps/aria2-pro/202209060423/.env.sample diff --git a/apps/aria2-pro/latest/data.yml b/apps/aria2-pro/202209060423/data.yml similarity index 100% rename from apps/aria2-pro/latest/data.yml rename to apps/aria2-pro/202209060423/data.yml diff --git a/apps/aria2-pro/latest/docker-compose.yml b/apps/aria2-pro/202209060423/docker-compose.yml similarity index 95% rename from apps/aria2-pro/latest/docker-compose.yml rename to apps/aria2-pro/202209060423/docker-compose.yml index 57602c86d..cc971a889 100644 --- a/apps/aria2-pro/latest/docker-compose.yml +++ b/apps/aria2-pro/202209060423/docker-compose.yml @@ -26,7 +26,7 @@ services: max-size: 1m networks: - 1panel-network - image: p3terx/aria2-pro:latest + image: p3terx/aria2-pro:202209060423 labels: createdBy: "Apps" diff --git a/apps/chatgpt-web/v2.11.1/.env.sample b/apps/chatgpt-web/v2.11.1/.env.sample new file mode 100644 index 000000000..2879a9b5d --- /dev/null +++ b/apps/chatgpt-web/v2.11.1/.env.sample @@ -0,0 +1,43 @@ +CONTAINER_NAME="chatgpt-web" +PANEL_APP_PORT_HTTP="40021" + +# change this to an `accessToken` extracted from the ChatGPT site's `https://chat.openai.com/api/auth/session` response +ACCESS_TOKEN="" + +# Reverse Proxy - Available on accessToken +# Default: https://bypass.churchless.tech/api/conversation +# More: https://github.com/transitive-bullshit/chatgpt-api#reverse-proxy +REVERSE_PROXY="https://bypass.duti.tech/api/conversation" + +# OpenAI API Key - https://platform.openai.com/overview +API_KEY="" + +# OpenAI API Model - https://platform.openai.com/docs/models +API_MODEL="gpt-3.5-turbo" + +# OpenAI API Base URL - https://api.openai.com +API_BASE_URL="https://api.openai.com" + +# Secret key +SECRET_KEY="" + +# Rate Limit +REQUEST_LIMIT="0" + +# timeout +TIMEOUT="60000" + +# Socks Proxy Host +PROXY_HOST="" + +# Socks Proxy Port +PROXY_PORT="" + +# Socks Proxy Username +PROXY_USERNAME="" + +# Socks Proxy Password +PROXY_PASSWORD="" + +# HTTPS PROXY +HTTPS_PROXY="" \ No newline at end of file diff --git a/apps/chatgpt-web/v2.11.1/data.yml b/apps/chatgpt-web/v2.11.1/data.yml new file mode 100644 index 000000000..a459a860a --- /dev/null +++ b/apps/chatgpt-web/v2.11.1/data.yml @@ -0,0 +1,103 @@ +additionalProperties: + formFields: + - default: 40021 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: WebUI Port + labelZh: 网页端口 + required: true + rule: paramPort + type: number + - default: '' + edit: true + envKey: ACCESS_TOKEN + labelEn: OPENAI ACCESS TOKEN (fill in at least one with OPENAI API KEY)(https://chat.openai.com/api/auth/session) + labelZh: OPENAI ACCESS TOKEN(与OPENAI API KEY至少填一个)(https://chat.openai.com/api/auth/session) + required: false + type: text + - default: https://bypass.duti.tech/api/conversation + edit: true + envKey: REVERSE_PROXY + labelEn: API reverse proxy, optional (enabled by default when OPENAI ACCESS TOKEN, need to pay attention to availability) + labelZh: API反向代理,可选(OPENAI ACCESS TOKEN时默认启用,需要注意可用性) + required: false + type: text + - default: '' + edit: true + envKey: API_KEY + labelEn: OPENAI API KEY (fill in at least one with OPENAI ACCESS TOKEN) + labelZh: OPENAI API KEY(与OPENAI ACCESS TOKEN至少填一个) + required: false + type: text + - default: gpt-3.5-turbo + edit: true + envKey: API_MODEL + labelEn: API model, optional, available when setting OPENAI API KEY(https://platform.openai.com/docs/models) + labelZh: API模型,可选,设置OPENAI API KEY时可用(https://platform.openai.com/docs/models) + required: false + type: text + - default: https://api.openai.com + edit: true + envKey: API_BASE_URL + labelEn: API interface address, optional, available when setting OPENAI API KEY + labelZh: API接口地址,可选,设置OPENAI API KEY时可用 + required: false + type: text + - default: chatgptweb + edit: true + envKey: SECRET_KEY + labelEn: Access rights key, optional (recommended) + labelZh: 访问权限密钥,可选(强烈建议填写) + random: true + required: false + rule: paramComplexity + type: password + - default: '0' + edit: true + envKey: REQUEST_LIMIT + labelEn: Maximum number of requests per hour, optional, default unlimited + labelZh: 每小时最大请求次数,可选,默认无限 + required: false + type: text + - default: '60000' + edit: true + envKey: TIMEOUT + labelEn: Timeout, in milliseconds, optional + labelZh: 超时,单位毫秒,可选 + required: false + type: text + - default: '' + edit: true + envKey: PROXY_HOST + labelEn: Socks proxy address, optional, effective when combined with Socks proxy port + labelZh: Socks代理地址,可选,和Socks代理端口一起时生效 + required: false + type: text + - default: '' + edit: true + envKey: PROXY_PORT + labelEn: Socks proxy port, optional, effective when combined with Socks proxy address + labelZh: Socks代理端口,可选,和Socks代理地址一起时生效 + required: false + type: text + - default: '' + edit: true + envKey: PROXY_USERNAME + labelEn: Socks proxy user name, optional, effective when combined with Socks proxy address + labelZh: Socks代理用户名,可选,和Socks代理地址一起时生效 + required: false + type: text + - default: '' + edit: true + envKey: PROXY_PASSWORD + labelEn: Socks proxy password, optional, effective when combined with Socks proxy address + labelZh: Socks代理密码,可选,和Socks代理地址一起时生效 + required: false + type: text + - default: '' + edit: true + envKey: HTTPS_PROXY + labelEn: HTTPS proxy, optional, supports http, https, socks5 + labelZh: HTTPS代理,可选,支持http,https,socks5 + required: false + type: text diff --git a/apps/chatgpt-web/v2.11.1/docker-compose.yml b/apps/chatgpt-web/v2.11.1/docker-compose.yml new file mode 100644 index 000000000..7249ba501 --- /dev/null +++ b/apps/chatgpt-web/v2.11.1/docker-compose.yml @@ -0,0 +1,42 @@ +services: + chatgpt-web: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:3002" + environment: + # 二选一 + OPENAI_API_KEY: "${API_KEY}" + # 二选一 + OPENAI_ACCESS_TOKEN: "${ACCESS_TOKEN}" + # 获取ACCESS_TOKEN:https://chat.openai.com/api/auth/session + # API接口地址,可选,设置 OPENAI_API_KEY 时可用 + OPENAI_API_BASE_URL: "${API_BASE_URL}" + # API模型,可选,设置 OPENAI_API_KEY 时可用 + OPENAI_API_MODEL: "${API_MODEL}" + # 反向代理,可选 + API_REVERSE_PROXY: "${REVERSE_PROXY}" + # 访问权限密钥,可选 + AUTH_SECRET_KEY: "${SECRET_KEY}" + # 每小时最大请求次数,可选,默认无限 + MAX_REQUEST_PER_HOUR: "${REQUEST_LIMIT}" + # 超时,单位毫秒,可选 + TIMEOUT_MS: "${TIMEOUT}" + # Socks代理,可选,和 SOCKS_PROXY_PORT 一起时生效 + SOCKS_PROXY_HOST: "${PROXY_HOST}" + # Socks代理端口,可选,和 SOCKS_PROXY_HOST 一起时生效 + SOCKS_PROXY_PORT: "${PROXY_PORT}" + # Socks代理用户名,可选,和 SOCKS_PROXY_HOST 一起时生效 + SOCKS_PROXY_USERNAME: "${PROXY_USERNAME}" + # Socks代理密码,可选,和 SOCKS_PROXY_HOST 一起时生效 + SOCKS_PROXY_PASSWORD: "${PROXY_PASSWORD}" + # HTTPS 代理,可选,支持 http,https,socks5 + HTTPS_PROXY: "${HTTPS_PROXY}" + image: chenzhaoyu94/chatgpt-web:v2.11.1 + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true diff --git a/apps/chuanhuchat/latest/.env.sample b/apps/chuanhuchat/20241204/.env.sample similarity index 100% rename from apps/chuanhuchat/latest/.env.sample rename to apps/chuanhuchat/20241204/.env.sample diff --git a/apps/chuanhuchat/latest/data.yml b/apps/chuanhuchat/20241204/data.yml similarity index 100% rename from apps/chuanhuchat/latest/data.yml rename to apps/chuanhuchat/20241204/data.yml diff --git a/apps/chuanhuchat/latest/data/config.json b/apps/chuanhuchat/20241204/data/config.json similarity index 100% rename from apps/chuanhuchat/latest/data/config.json rename to apps/chuanhuchat/20241204/data/config.json diff --git a/apps/chuanhuchat/latest/data/config_example.json b/apps/chuanhuchat/20241204/data/config_example.json similarity index 100% rename from apps/chuanhuchat/latest/data/config_example.json rename to apps/chuanhuchat/20241204/data/config_example.json diff --git a/apps/chuanhuchat/latest/docker-compose.yml b/apps/chuanhuchat/20241204/docker-compose.yml similarity index 87% rename from apps/chuanhuchat/latest/docker-compose.yml rename to apps/chuanhuchat/20241204/docker-compose.yml index 37eb8a978..3ce86f36a 100644 --- a/apps/chuanhuchat/latest/docker-compose.yml +++ b/apps/chuanhuchat/20241204/docker-compose.yml @@ -9,7 +9,7 @@ services: volumes: - ./data/history:/app/history - ./data/config.json:/app/config.json - image: tuchuanhuhuhu/chuanhuchatgpt:latest + image: tuchuanhuhuhu/chuanhuchatgpt:20241204 labels: createdBy: "Apps" diff --git a/apps/cookie-cloud/README.md b/apps/cookie-cloud/README.md deleted file mode 100644 index 139720826..000000000 --- a/apps/cookie-cloud/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# CookieCloud - -CookieCloud 是一个用于将 cookie 与您的自托管服务器同步的小工具,允许您将浏览器 cookie -和本地存储同步到您的手机和云端。它具有内置的端到端加密功能,并允许您设置同步间隔。 - -![CookieCloud](https://file.lifebus.top/imgs/cookie_cloud_cover.png) - -![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) - -## 浏览器插件 - -+ [Edge Store](https://microsoftedge.microsoft.com/addons/detail/cookiecloud/bffenpfpjikaeocaihdonmgnjjdpjkeo) - -+ [Chrome Store](https://chrome.google.com/webstore/detail/cookiecloud/ffjiejobkoibkjlhjnlgmcnnigeelbdl) - -## FAQ 常问问题 - -+ 目前,同步只是单向的,这意味着一个浏览器可以上传,而另一个浏览器可以下载。 -+ 该浏览器扩展正式支持 Chrome 和 Edge。其他基于 Chromium 的浏览器可能可以工作,但尚未经过测试。使用源代码 cd extension && - pnpm build --target=firefox-mv2 自行编译Firefox版本。 -+ 请注意,Firefox 的 cookie 格式与 Chrome 的不同,并且它们不能混合。 - ---- - -![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/cookie-cloud/data.yml b/apps/cookie-cloud/data.yml deleted file mode 100644 index af2d38608..000000000 --- a/apps/cookie-cloud/data.yml +++ /dev/null @@ -1,16 +0,0 @@ -additionalProperties: - key: cookie-cloud - name: CookieCloud - tags: - - WebSite - - Tool - - Runtime - - Local - shortDescZh: 自架服务器同步Cookie的小工具 - shortDescEn: A small tool to synchronize cookies on self-built servers - type: website - crossVersionUpdate: true - limit: 0 - website: https://github.com/easychen/CookieCloud/ - github: https://github.com/easychen/CookieCloud/ - document: https://github.com/easychen/CookieCloud/ diff --git a/apps/cookie-cloud/latest/data.yml b/apps/cookie-cloud/latest/data.yml deleted file mode 100644 index 3e1af1d13..000000000 --- a/apps/cookie-cloud/latest/data.yml +++ /dev/null @@ -1,24 +0,0 @@ -additionalProperties: - formFields: - - default: 8088 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: "/home/cookie-cloud" - edit: true - envKey: COOKIECLOUD_ROOT_PATH - labelZh: 数据持久化路径 - labelEn: Data persistence path - required: true - type: text - - default: "/" - edit: true - envKey: API_ROOT - labelZh: 网站路径 - labelEn: Web path - required: true - type: text diff --git a/apps/cookie-cloud/latest/docker-compose.yml b/apps/cookie-cloud/latest/docker-compose.yml deleted file mode 100644 index 18e45935b..000000000 --- a/apps/cookie-cloud/latest/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -networks: - 1panel-network: - external: true - -services: - cookie-cloud: - image: easychen/cookiecloud:latest - container_name: ${CONTAINER_NAME} - labels: - createdBy: "Apps" - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:8088 - env_file: - - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} - - ${ENV_FILE:-/etc/1panel/envs/default.env} - volumes: - - ${COOKIECLOUD_ROOT_PATH}/data:/data/api/data diff --git a/apps/cookie-cloud/latest/envs/default.env b/apps/cookie-cloud/latest/envs/default.env deleted file mode 100644 index cd05f46e6..000000000 --- a/apps/cookie-cloud/latest/envs/default.env +++ /dev/null @@ -1,2 +0,0 @@ -# copyright© 2024 XinJiang Ms Studio -ENV_FILE=.env diff --git a/apps/cookie-cloud/latest/envs/global.env b/apps/cookie-cloud/latest/envs/global.env deleted file mode 100644 index e10989fe4..000000000 --- a/apps/cookie-cloud/latest/envs/global.env +++ /dev/null @@ -1,2 +0,0 @@ -# copyright© 2024 XinJiang Ms Studio -TZ=Asia/Shanghai diff --git a/apps/cookie-cloud/latest/scripts/init.sh b/apps/cookie-cloud/latest/scripts/init.sh deleted file mode 100644 index 07fb8c3fe..000000000 --- a/apps/cookie-cloud/latest/scripts/init.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -if [ -f .env ]; then - source .env - - # setup-1 add default values - CURRENT_DIR=$(pwd) - sed -i '/^ENV_FILE=/d' .env - sed -i '/^GLOBAL_ENV_FILE=/d' .env - echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env - echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env - - echo "Check Finish." - -else - echo "Error: .env file not found." -fi diff --git a/apps/cookie-cloud/latest/scripts/uninstall.sh b/apps/cookie-cloud/latest/scripts/uninstall.sh deleted file mode 100644 index c86c4fbca..000000000 --- a/apps/cookie-cloud/latest/scripts/uninstall.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -if [ -f .env ]; then - source .env - - echo "Check Finish." - -else - echo "Error: .env file not found." -fi diff --git a/apps/cookie-cloud/latest/scripts/upgrade.sh b/apps/cookie-cloud/latest/scripts/upgrade.sh deleted file mode 100644 index 07fb8c3fe..000000000 --- a/apps/cookie-cloud/latest/scripts/upgrade.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -if [ -f .env ]; then - source .env - - # setup-1 add default values - CURRENT_DIR=$(pwd) - sed -i '/^ENV_FILE=/d' .env - sed -i '/^GLOBAL_ENV_FILE=/d' .env - echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env - echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env - - echo "Check Finish." - -else - echo "Error: .env file not found." -fi diff --git a/apps/cookie-cloud/logo.png b/apps/cookie-cloud/logo.png deleted file mode 100644 index 00c7408cb0d6f904ca8c44b3402e33ea0dd8541d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35850 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