From e5678a3ec6ccd98548bf84738e3e5bcd90498a0f Mon Sep 17 00:00:00 2001 From: pooneyy <85266337+pooneyy@users.noreply.github.com> Date: Fri, 13 Jun 2025 18:53:10 +0800 Subject: [PATCH] Update Apps --- .../{1.10.29-lts => 1.10.30-lts}/.env.sample | 0 .../{1.10.29-lts => 1.10.30-lts}/data.yml | 0 .../docker-compose.yml | 2 +- .../{0.107.60 => 0.107.62}/.env.sample | 0 .../{0.107.60 => 0.107.62}/data.yml | 0 .../{0.107.60 => 0.107.62}/docker-compose.yml | 62 +- apps/ais-ninja/1.0.8/.env.sample | 22 - apps/ais-ninja/1.0.8/data.yml | 163 -- apps/ais-ninja/1.0.8/docker-compose.yml | 34 - apps/ais-ninja/README.md | 200 -- apps/ais-ninja/data.yml | 19 - apps/ais-ninja/latest/.env.sample | 22 - apps/ais-ninja/latest/data.yml | 163 -- apps/ais-ninja/latest/docker-compose.yml | 34 - apps/ais-ninja/logo.png | Bin 4768 -> 0 bytes apps/alist/{3.44.0 => 3.40.0}/.env.sample | 0 apps/alist/{3.44.0 => 3.40.0}/data.yml | 0 .../{3.44.0 => 3.40.0}/docker-compose.yml | 2 +- apps/alist/3.41.0-aria2/data.yml | 24 + apps/alist/3.41.0-aria2/docker-compose.yml | 23 + apps/alist/3.41.0-aria2/env.sample | 4 + apps/alist/3.45.0/.env.sample | 4 + apps/alist/3.45.0/data.yml | 24 + apps/alist/3.45.0/docker-compose.yml | 23 + apps/anqicms/{3.4.9 => 3.4.11}/.env.sample | 0 apps/anqicms/{3.4.9 => 3.4.11}/data.yml | 0 .../{3.4.9 => 3.4.11}/docker-compose.yml | 2 +- .../{3.4.9 => 3.4.11}/scripts/uninstall.sh | 0 .../{2.20.0 => 2.24.0}/.env.sample | 0 .../{2.20.0 => 2.24.0}/data.yml | 0 .../{2.20.0 => 2.24.0}/docker-compose.yml | 2 +- apps/bark/{2.2.0 => 2.2.1}/.env.sample | 0 apps/bark/{2.2.0 => 2.2.1}/data.yml | 0 apps/bark/{2.2.0 => 2.2.1}/docker-compose.yml | 2 +- .../{0.10.2 => 0.11.1}/.env.sample | 0 apps/beszel-agent/{0.10.2 => 0.11.1}/data.yml | 0 .../{0.10.2 => 0.11.1}/docker-compose.yml | 2 +- apps/beszel/{0.10.2 => 0.11.1}/.env.sample | 0 apps/beszel/{0.10.2 => 0.11.1}/data.yml | 0 .../{0.10.2 => 0.11.1}/docker-compose.yml | 2 +- .../{0.7.34 => 0.7.35}/.env.sample | 0 apps/bililive-go/{0.7.34 => 0.7.35}/data.yml | 0 .../{0.7.34 => 0.7.35}/docker-compose.yml | 2 +- .../{2.16.0 => 2.17.0}/.env.sample | 0 .../{2.16.0 => 2.17.0}/data.yml | 0 .../{2.16.0 => 2.17.0}/data/.gitkeep | 0 .../{2.16.0 => 2.17.0}/docker-compose.yml | 2 +- .../{2.16.0 => 2.17.0}/scripts/init.sh | 0 .../.env.sample | 0 .../{1.33.2-alpine => 1.34.1-alpine}/data.yml | 0 .../docker-compose.yml | 2 +- .../scripts/upgrade.sh | 0 apps/blinko/{0.26.4 => 1.1.0}/.env.sample | 0 apps/blinko/{0.26.4 => 1.1.0}/data.yml | 0 .../{0.26.4 => 1.1.0}/docker-compose.yml | 56 +- apps/bytebase/{3.5.3 => 3.7.0}/.env.sample | 0 apps/bytebase/{3.5.3 => 3.7.0}/data.yml | 0 .../{3.5.3 => 3.7.0}/docker-compose.yml | 2 +- apps/cashbook/{4.1.4 => 4.2.0}/.env.sample | 0 apps/cashbook/{4.1.4 => 4.2.0}/data.yml | 0 .../{4.1.4 => 4.2.0}/docker-compose.yml | 2 +- apps/certd/{1.28.3 => 1.35.4}/.env.sample | 0 apps/certd/{1.28.3 => 1.35.4}/data.yml | 0 .../{1.28.3 => 1.35.4}/docker-compose.yml | 2 +- apps/certimate/{0.3.8 => 0.3.17}/.env.sample | 0 apps/certimate/{0.3.8 => 0.3.17}/data.yml | 0 .../{0.3.8 => 0.3.17}/docker-compose.yml | 2 +- .../{0.49 => 0.50}/.env.sample | 0 .../changedetectionio/{0.49 => 0.50}/data.yml | 0 .../{0.49 => 0.50}/docker-compose.yml | 2 +- .../{1.7.5 => 1.7.6}/.env.sample | 0 .../{1.7.5 => 1.7.6}/data.yml | 0 .../{1.7.5 => 1.7.6}/docker-compose.yml | 2 +- apps/chevereto/{4.2.5 => 4.3.5}/.env.sample | 0 apps/chevereto/{4.2.5 => 4.3.5}/data.yml | 0 .../{4.2.5 => 4.3.5}/data/images/.gitkeep | 0 .../{4.2.5 => 4.3.5}/docker-compose.yml | 2 +- .../{4.2.5 => 4.3.5}/scripts/init.sh | 0 .../{25.0.0 => 25.1.0}/.env.sample | 0 apps/cloudbeaver/{25.0.0 => 25.1.0}/data.yml | 0 .../{25.0.0 => 25.1.0}/docker-compose.yml | 2 +- apps/clouddrive/{0.8.15 => 0.9.0}/.env.sample | 0 apps/clouddrive/{0.8.15 => 0.9.0}/data.yml | 0 .../{0.8.15 => 0.9.0}/docker-compose.yml | 2 +- .../{2025.4.0 => 2025.6.0}/.env.sample | 0 .../{2025.4.0 => 2025.6.0}/data.yml | 0 .../{2025.4.0 => 2025.6.0}/docker-compose.yml | 2 +- .../{4.99.2 => 4.100.3}/.env.sample | 0 apps/code-server/{4.99.2 => 4.100.3}/data.yml | 0 .../{4.99.2 => 4.100.3}/docker-compose.yml | 2 +- apps/dbgate/{6.3.3 => 6.4.2}/.env.sample | 0 apps/dbgate/{6.3.3 => 6.4.2}/data.yml | 0 .../{6.3.3 => 6.4.2}/docker-compose.yml | 32 +- apps/ddns-go/{6.9.1 => 6.10.0}/.env.sample | 0 apps/ddns-go/{6.9.1 => 6.10.0}/data.yml | 0 .../{6.9.1 => 6.10.0}/docker-compose.yml | 2 +- apps/deluge/{2.1.1 => 18.04.1}/.env.sample | 0 apps/deluge/{2.1.1 => 18.04.1}/data.yml | 0 .../{2.1.1 => 18.04.1}/docker-compose.yml | 2 +- apps/discourse/{3.4.2 => 9.0.4}/.env.sample | 0 apps/discourse/{3.4.2 => 9.0.4}/data.yml | 0 .../{3.4.2 => 9.0.4}/docker-compose.yml | 4 +- .../{1.6.66 => 1.6.68}/.env.sample | 0 apps/domain-admin/{1.6.66 => 1.6.68}/data.yml | 0 .../{1.6.66 => 1.6.68}/docker-compose.yml | 2 +- .../{1.6.3-lite => 1.7.2-lite}/.env.sample | 0 .../{1.6.3-lite => 1.7.2-lite}/data.yml | 0 .../docker-compose.yml | 2 +- .../{2.1.0.115 => 2.1.0.119}/.env.sample | 0 .../{2.1.0.115 => 2.1.0.119}/data.yml | 0 .../docker-compose.yml | 2 +- apps/easynode/{3.0.5 => 3.0.7}/.env.sample | 0 apps/easynode/{3.0.5 => 3.0.7}/data.yml | 0 .../{3.0.5 => 3.0.7}/docker-compose.yml | 2 +- apps/easytier/{2.2.4 => 2.3.1}/.env.sample | 0 .../{2.2.4 => 2.3.1}/2.0.2/.env.sample | 0 apps/easytier/{2.2.4 => 2.3.1}/2.0.2/data.yml | 0 .../{2.2.4 => 2.3.1}/2.0.2/docker-compose.yml | 2 +- apps/easytier/{2.2.4 => 2.3.1}/data.yml | 0 .../{2.2.4 => 2.3.1}/data/config-example.toml | 0 .../{2.2.4 => 2.3.1}/data/config.toml | 0 .../{2.2.4 => 2.3.1}/docker-compose.yml | 2 +- .../{1.11.97 => 1.11.103}/.env.sample | 0 .../{1.11.97 => 1.11.103}/data.yml | 0 .../{1.11.97 => 1.11.103}/docker-compose.yml | 2 +- .../{4.9.0.43 => 4.9.0.57}/.env.sample | 0 .../{4.9.0.43 => 4.9.0.57}/data.yml | 0 .../{4.9.0.43 => 4.9.0.57}/docker-compose.yml | 2 +- .../{136.0.4 => 139.0.4}/.env.sample | 0 .../{136.0.4 => 139.0.4}/data.yml | 0 .../{136.0.4 => 139.0.4}/docker-compose.yml | 2 +- .../{3.3.21 => 3.3.24}/.env.sample | 0 apps/flaresolverr/{3.3.21 => 3.3.24}/data.yml | 0 .../{3.3.21 => 3.3.24}/docker-compose.yml | 2 +- apps/flexget/{3.15.31 => 3.16.3}/.env.sample | 0 apps/flexget/{3.15.31 => 3.16.3}/data.yml | 0 .../{3.15.31 => 3.16.3}/docker-compose.yml | 2 +- apps/freshrss/{1.26.1 => 1.26.3}/.env.sample | 0 apps/freshrss/{1.26.1 => 1.26.3}/data.yml | 0 .../{1.26.1 => 1.26.3}/docker-compose.yml | 2 +- .../{0.1.6 => 0.1.21}/.env.sample | 0 .../{0.1.6 => 0.1.21}/data.yml | 0 .../{0.1.6 => 0.1.21}/docker-compose.yml | 2 +- apps/frp-panel/{0.1.6 => 0.1.21}/.env.sample | 0 apps/frp-panel/{0.1.6 => 0.1.21}/data.yml | 0 .../{0.1.6 => 0.1.21}/docker-compose.yml | 2 +- apps/frpc/{0.61.2 => 0.62.1}/.env.sample | 0 apps/frpc/{0.61.2 => 0.62.1}/data.yml | 0 apps/frpc/{0.61.2 => 0.62.1}/data/frpc.ini | 0 apps/frpc/{0.61.2 => 0.62.1}/data/frpc.toml | 0 .../{0.61.2 => 0.62.1}/data/frpc_full.ini | 0 .../{0.61.2 => 0.62.1}/data/frpc_full.toml | 0 apps/frpc/{0.61.2 => 0.62.1}/data/frps.ini | 0 apps/frpc/{0.61.2 => 0.62.1}/data/frps.toml | 0 .../{0.61.2 => 0.62.1}/data/frps_full.ini | 0 .../{0.61.2 => 0.62.1}/data/frps_full.toml | 0 .../{0.61.2 => 0.62.1}/docker-compose.yml | 2 +- apps/frps/{0.61.2 => 0.62.1}/.env.sample | 0 apps/frps/{0.61.2 => 0.62.1}/data.yml | 0 apps/frps/{0.61.2 => 0.62.1}/data/frpc.ini | 0 apps/frps/{0.61.2 => 0.62.1}/data/frpc.toml | 0 .../{0.61.2 => 0.62.1}/data/frpc_full.ini | 0 .../{0.61.2 => 0.62.1}/data/frpc_full.toml | 0 apps/frps/{0.61.2 => 0.62.1}/data/frps.ini | 0 apps/frps/{0.61.2 => 0.62.1}/data/frps.toml | 0 .../{0.61.2 => 0.62.1}/data/frps_full.ini | 0 .../{0.61.2 => 0.62.1}/data/frps_full.toml | 0 .../{0.61.2 => 0.62.1}/docker-compose.yml | 2 +- apps/geekbench/{ => 6}/4/.env.sample | 0 apps/geekbench/{ => 6}/4/data.yml | 0 apps/geekbench/{5 => 6/4}/docker-compose.yml | 2 +- apps/geekbench/{ => 6}/5/.env.sample | 0 apps/geekbench/{ => 6}/5/data.yml | 0 apps/geekbench/{4 => 6/5}/docker-compose.yml | 2 +- apps/gitlab-jh/18.0.2-jh.0/data.yml | 18 + apps/gitlab-jh/18.0.2-jh.0/docker-compose.yml | 25 + apps/gitlab-jh/README.md | 23 + apps/gitlab-jh/data.yml | 13 + apps/gitlab-jh/latest/data.yml | 18 + apps/gitlab-jh/latest/docker-compose.yml | 25 + apps/gitlab-jh/logo.png | Bin 0 -> 8642 bytes apps/gitlab/18.0.2-ee.0/data.yml | 18 + apps/gitlab/18.0.2-ee.0/docker-compose.yml | 25 + apps/gitlab/README.md | 17 + apps/gitlab/data.yml | 13 + apps/gitlab/logo.png | Bin 0 -> 8642 bytes apps/glance/{0.7.12 => 0.8.4}/.env.sample | 0 apps/glance/{0.7.12 => 0.8.4}/data.yml | 0 apps/glance/{0.7.12 => 0.8.4}/data/glance.yml | 0 .../{0.7.12 => 0.8.4}/docker-compose.yml | 2 +- apps/gotify/{2.6.1 => 2.6.3}/.env.sample | 0 apps/gotify/{2.6.1 => 2.6.3}/data.yml | 0 .../{2.6.1 => 2.6.3}/docker-compose.yml | 2 +- apps/grafana/{11.6.0 => 12.0.1}/.env.sample | 0 .../{11.6.0 => 12.0.1}/10.4.3/.env.sample | 0 .../{11.6.0 => 12.0.1}/10.4.3/data.yml | 0 .../10.4.3}/docker-compose.yml | 2 +- apps/grafana/{11.6.0 => 12.0.1}/data.yml | 0 .../10.4.3 => 12.0.1}/docker-compose.yml | 2 +- apps/headscale/{0.25.1 => 0.26.1}/.env.sample | 0 apps/headscale/{0.25.1 => 0.26.1}/data.yml | 0 .../data/config/config.yaml | 0 .../{0.25.1 => 0.26.1}/data/config/derp.yaml | 0 .../{0.25.1 => 0.26.1}/data/data/db.sqlite | 0 .../{0.25.1 => 0.26.1}/docker-compose.yml | 2 +- apps/homepage/{1.1.1 => 1.3.2}/.env.sample | 0 apps/homepage/{1.1.1 => 1.3.2}/data.yml | 0 .../{1.1.1 => 1.3.2}/docker-compose.yml | 2 +- .../homepage/{1.1.1 => 1.3.2}/scripts/init.sh | 0 apps/immich/{1.122.3 => 1.134.0}/.env.sample | 0 apps/immich/{1.122.3 => 1.134.0}/data.yml | 0 .../{1.122.3 => 1.134.0}/docker-compose.yml | 4 +- .../3.0.1 => joplin/3.3.13}/.env.sample | 0 .../3.0.1 => joplin/3.3.13}/data.yml | 0 .../3.3.13}/docker-compose.yml | 2 +- apps/{joplin-server => joplin}/README.md | 0 apps/{joplin-server => joplin}/data.yml | 0 .../latest/.env.sample | 0 .../{joplin-server => joplin}/latest/data.yml | 0 .../latest/docker-compose.yml | 2 +- apps/{joplin-server => joplin}/logo.png | Bin apps/libretv/202506082214/data | 1 - apps/linkding/{1.39.1 => 1.40.0}/.env.sample | 0 apps/linkding/{1.39.1 => 1.40.0}/data.yml | 0 .../{1.39.1 => 1.40.0}/docker-compose.yml | 2 +- .../lobe-chat/{1.36.30 => 1.94.7}/.env.sample | 0 apps/lobe-chat/{1.36.30 => 1.94.7}/data.yml | 0 .../{1.36.30 => 1.94.7}/docker-compose.yml | 2 +- apps/lucky/{2.15.7 => 2.17.8}/.env.sample | 0 apps/lucky/{2.15.7 => 2.17.8}/data.yml | 0 .../{2.15.7 => 2.17.8}/docker-compose.yml | 2 +- .../.env.sample | 0 .../data.yml | 0 .../data/matomo.conf | 0 .../docker-compose.yml | 2 +- .../mattermost/{10.7.0 => 10.9.0}/.env.sample | 0 apps/mattermost/{10.7.0 => 10.9.0}/data.yml | 0 .../{10.7.0 => 10.9.0}/data/bleve/.gitkeep | 0 .../data/client/plugins/.gitkeep | 0 .../{10.7.0 => 10.9.0}/data/config/.gitkeep | 0 .../{10.7.0 => 10.9.0}/data/data/.gitkeep | 0 .../{10.7.0 => 10.9.0}/data/logs/.gitkeep | 0 .../{10.7.0 => 10.9.0}/data/plugins/.gitkeep | 0 .../{10.7.0 => 10.9.0}/docker-compose.yml | 2 +- .../{10.7.0 => 10.9.0}/scripts/init.sh | 0 .../{1.2.8 => 1.3.1}/.env.sample | 0 .../metatube-sdk-go/{1.2.8 => 1.3.1}/data.yml | 0 .../{1.2.8 => 1.3.1}/docker-compose.yml | 2 +- .../metatube-sdk-go/latest/docker-compose.yml | 2 +- .../moviepilot/{1.9.18 => 1.9.19}/.env.sample | 0 apps/moviepilot/{1.9.18 => 1.9.19}/data.yml | 0 .../{1.9.18 => 1.9.19}/docker-compose.yml | 2 +- apps/mt-photos/{1.36.2 => 1.37.2}/.env.sample | 0 apps/mt-photos/{1.36.2 => 1.37.2}/data.yml | 0 .../{1.36.2 => 1.37.2}/docker-compose.yml | 2 +- .../{2.3.8 => 2.4.3}/.env.sample | 0 apps/music-tag-web/{2.3.8 => 2.4.3}/data.yml | 0 .../{2.3.8 => 2.4.3}/docker-compose.yml | 2 +- apps/netdata/{2.4 => 2.5}/.env.sample | 0 apps/netdata/{2.4 => 2.5}/data.yml | 0 apps/netdata/{2.4 => 2.5}/docker-compose.yml | 2 +- .../{2.4.10 => 2.5.4}/.env.sample | 0 apps/next-terminal/{2.4.10 => 2.5.4}/data.yml | 0 .../{2.4.10 => 2.5.4}/docker-compose.yml | 2 +- .../{2.4.10 => 2.5.4}/ssh/id_rsa | 0 apps/nextcloud/{31.0.2 => 31.0.6}/.env.sample | 0 apps/nextcloud/{31.0.2 => 31.0.6}/data.yml | 0 .../{31.0.2 => 31.0.6}/docker-compose.yml | 2 +- apps/nezha-dash/{2.9.3 => 2.9.6}/.env.sample | 0 apps/nezha-dash/{2.9.3 => 2.9.6}/data.yml | 0 .../{2.9.3 => 2.9.6}/docker-compose.yml | 2 +- apps/ntfy/{2.11.0 => 2.12.0}/.env.sample | 0 apps/ntfy/{2.11.0 => 2.12.0}/data.yml | 0 .../data/ntfy/server.yml.sample | 0 .../{2.11.0 => 2.12.0}/docker-compose.yml | 2 +- apps/nvpress/{5.3.0 => 5.4.0}/.env.sample | 0 apps/nvpress/{5.3.0 => 5.4.0}/data.yml | 0 .../{5.3.0 => 5.4.0}/docker-compose.yml | 2 +- apps/onedev/{11.6.16 => 11.10.4}/.env.sample | 0 apps/onedev/{11.6.16 => 11.10.4}/data.yml | 0 .../{11.6.16 => 11.10.4}/docker-compose.yml | 2 +- apps/onenav/{1.1.2 => 1.1.3}/.env.sample | 0 apps/onenav/{1.1.2 => 1.1.3}/data.yml | 0 .../{1.1.2 => 1.1.3}/docker-compose.yml | 2 +- apps/oryx/5.15.20/.env.sample | 7 + apps/oryx/5.15.20/data.yml | 39 + apps/oryx/5.15.20/docker-compose.yml | 24 + apps/oryx/README.md | 170 ++ apps/oryx/data.yml | 13 + apps/oryx/logo.png | Bin 0 -> 18968 bytes apps/pagespy/{2.2.3 => 2.3.1}/.env.sample | 0 apps/pagespy/{2.2.3 => 2.3.1}/data.yml | 0 .../{2.2.3 => 2.3.1}/docker-compose.yml | 2 +- .../{1.3.0 => 1.4.0}/.env.sample | 0 .../palworld-server/{1.3.0 => 1.4.0}/data.yml | 0 .../{1.3.0 => 1.4.0}/docker-compose.yml | 2 +- .../{1.53.6 => 1.57.0}/.env.sample | 0 .../{1.53.6 => 1.57.0}/data.yml | 0 .../{1.53.6 => 1.57.0}/docker-compose.yml | 2 +- .../{7.4.12 => 7.4.15}/.env.sample | 0 .../peerbanhelper/{7.4.12 => 7.4.15}/data.yml | 0 .../{7.4.12 => 7.4.15}/docker-compose.yml | 2 +- apps/pgadmin4/{9.2 => 9.4}/.env.sample | 0 apps/pgadmin4/{9.2 => 9.4}/data.yml | 0 apps/pgadmin4/{9.2 => 9.4}/docker-compose.yml | 2 +- .../{230719 => 20220121}/.env.sample | 0 apps/photoprism/{230719 => 20220121}/data.yml | 0 .../{230719 => 20220121}/docker-compose.yml | 2 +- .../{8.1.17 => 8.1.32}/.env.sample | 0 .../{8.1.17 => 8.1.32}/Dockerfile | 190 +- .../{8.1.17 => 8.1.32}/data.yml | 0 .../{8.1.17 => 8.1.32}/data/php-fpm.conf | 0 .../{8.1.17 => 8.1.32}/data/php.ini | 0 .../{8.1.17 => 8.1.32}/docker-compose.yml | 46 +- apps/php-unofficial/8.4.8/.env.sample | 3 + apps/php-unofficial/8.4.8/Dockerfile | 95 + apps/php-unofficial/8.4.8/data.yml | 17 + apps/php-unofficial/8.4.8/data/php-fpm.conf | 469 ++++ apps/php-unofficial/8.4.8/data/php.ini | 1965 +++++++++++++++++ apps/php-unofficial/8.4.8/docker-compose.yml | 23 + apps/picimpact/{2.4.1 => 2.5.6}/.env.sample | 0 apps/picimpact/{2.4.1 => 2.5.6}/data.yml | 0 .../{2.4.1 => 2.5.6}/docker-compose.yml | 2 +- apps/piclist/{1.9.11 => 1.9.14}/.env.sample | 0 apps/piclist/{1.9.11 => 1.9.14}/data.yml | 0 .../{1.9.11 => 1.9.14}/docker-compose.yml | 2 +- .../{1.11.1 => 1.13.0}/.env.sample | 0 .../pingvin-share/{1.11.1 => 1.13.0}/data.yml | 0 .../{1.11.1 => 1.13.0}/docker-compose.yml | 2 +- apps/plex/{1.41.6 => 1.41.8}/.env.sample | 0 apps/plex/{1.41.6 => 1.41.8}/data.yml | 0 .../{1.41.6 => 1.41.8}/docker-compose.yml | 2 +- apps/prometheus/{3.3.0 => 3.4.1}/.env.sample | 0 apps/prometheus/{3.3.0 => 3.4.1}/data.yml | 0 .../{3.3.0 => 3.4.1}/data/prometheus.yml | 0 .../{3.3.0 => 3.4.1}/docker-compose.yml | 2 +- apps/radarr/{5.21.1 => 5.25.0}/.env.sample | 0 apps/radarr/{5.21.1 => 5.25.0}/data.yml | 0 .../{5.21.1 => 5.25.0}/docker-compose.yml | 2 +- apps/reader/{3.2.13 => 3.2.14}/.env.sample | 0 apps/reader/{3.2.13 => 3.2.14}/data.yml | 0 .../{3.2.13 => 3.2.14}/docker-compose.yml | 2 +- .../{2.68.0 => 2.70.0}/.env.sample | 0 apps/redisinsight/{2.68.0 => 2.70.0}/data.yml | 0 .../{2.68.0 => 2.70.0}/data/.gitkeep | 0 .../{2.68.0 => 2.70.0}/docker-compose.yml | 2 +- .../{2.68.0 => 2.70.0}/scripts/init.sh | 0 apps/rembg/{2.0.65 => 2.0.66}/.env.sample | 0 apps/rembg/{2.0.65 => 2.0.66}/data.yml | 0 .../{2.0.65 => 2.0.66}/docker-compose.yml | 2 +- .../{newnet-7.3.1 => 8.8.0-lts}/.env.sample | 0 .../{newnet-7.3.1 => 8.8.0-lts}/data.yml | 0 .../docker-compose.yml | 14 +- apps/safeline/{7.3.1 => 8.9.1}/.env.sample | 0 apps/safeline/{7.3.1 => 8.9.1}/data.yml | 0 .../{7.3.1 => 8.9.1}/docker-compose.yml | 14 +- apps/safeline/latest/docker-compose.yml | 2 +- apps/safeline/newnet-latest/.env.sample | 5 - apps/safeline/newnet-latest/data.yml | 32 - .../safeline/newnet-latest/docker-compose.yml | 161 -- apps/sd-comfyui/latest/comfy/Dockerfile | 2 +- apps/seafile/{12.0.11 => 12.0.14}/.env.sample | 0 apps/seafile/{12.0.11 => 12.0.14}/data.yml | 0 .../{12.0.11 => 12.0.14}/docker-compose.yml | 2 +- apps/siyuan/{3.1.27 => 3.1.32}/.env.sample | 0 apps/siyuan/{3.1.27 => 3.1.32}/data.yml | 0 .../{3.1.27 => 3.1.32}/docker-compose.yml | 2 +- apps/slink/{1.4.8 => 1.4.9}/.env.sample | 0 apps/slink/{1.4.8 => 1.4.9}/data.yml | 0 .../slink/{1.4.8 => 1.4.9}/docker-compose.yml | 2 +- apps/smokeping/{2.8.2 => 2.9.0}/.env.sample | 0 apps/smokeping/{2.8.2 => 2.9.0}/data.yml | 0 .../{2.8.2 => 2.9.0}/docker-compose.yml | 2 +- .../{0.10.3 => 0.11.1}/.env.sample | 0 .../synapse-admin/{0.10.3 => 0.11.1}/data.yml | 0 .../{0.10.3 => 0.11.1}/docker-compose.yml | 2 +- apps/synapse/{1.128.0 => 1.131.0}/.env.sample | 0 apps/synapse/{1.128.0 => 1.131.0}/data.yml | 0 .../{1.128.0 => 1.131.0}/docker-compose.yml | 2 +- .../{2.9.0 => 3.0.1}/.env.sample | 0 .../{2.9.0 => 3.0.1}/data.yml | 0 .../{2.9.0 => 3.0.1}/data/appsettings.json | 0 .../{2.9.0 => 3.0.1}/docker-compose.yml | 2 +- apps/syncthing/{1.29.5 => 1.29.7}/.env.sample | 0 apps/syncthing/{1.29.5 => 1.29.7}/data.yml | 0 .../{1.29.5 => 1.29.7}/docker-compose.yml | 2 +- apps/tailscale/{1.82 => 1.84}/.env.sample | 0 apps/tailscale/{1.82 => 1.84}/data.yml | 36 +- .../{1.82 => 1.84}/docker-compose.yml | 2 +- apps/tailscale/latest/data.yml | 36 +- apps/tianji/{1.19.0 => 1.21.13}/.env.sample | 0 apps/tianji/{1.19.0 => 1.21.13}/data.yml | 0 .../{1.19.0 => 1.21.13}/docker-compose.yml | 2 +- .../{4.0.6 => 2021.11.18}/.env.sample | 0 .../{4.0.6 => 2021.11.18}/data.yml | 0 .../{4.0.6 => 2021.11.18}/docker-compose.yml | 2 +- .../{0.27.8 => 0.27.10}/.env.sample | 0 .../{0.27.8 => 0.27.10}/data.yml | 0 .../{0.27.8 => 0.27.10}/data/server.crt | 0 .../{0.27.8 => 0.27.10}/data/server.key | 0 .../{0.27.8 => 0.27.10}/docker-compose.yml | 2 +- apps/upsnap/{5.0 => 5.1}/.env.sample | 0 apps/upsnap/{5.0 => 5.1}/data.yml | 0 apps/upsnap/{5.0 => 5.1}/docker-compose.yml | 2 +- apps/uuwaf/{6.2.0 => 6.8.0}/.env.sample | 0 apps/uuwaf/{6.2.0 => 6.8.0}/data.yml | 0 .../uuwaf/{6.2.0 => 6.8.0}/docker-compose.yml | 4 +- apps/uuwaf/{6.2.0 => 6.8.0}/low-memory-my.cnf | 0 .../{6.2.0 => 6.8.0}/scripts/uninstall.sh | 0 apps/vertex/2025.06.06/.env.sample | 3 + apps/vertex/2025.06.06/data.yml | 17 + apps/vertex/2025.06.06/docker-compose.yml | 20 + apps/wallos/{2.50.1 => 3.3.0}/.env.sample | 0 apps/wallos/{2.50.1 => 3.3.0}/data.yml | 0 .../{2.50.1 => 3.3.0}/docker-compose.yml | 2 +- apps/webos/{1.4.3 => 1.4.4}/.env.sample | 0 apps/webos/{1.4.3 => 1.4.4}/data.yml | 0 .../webos/{1.4.3 => 1.4.4}/docker-compose.yml | 2 +- apps/windows/{4.27 => 4.35}/.env.sample | 0 apps/windows/{4.27 => 4.35}/data.yml | 0 .../windows/{4.27 => 4.35}/docker-compose.yml | 2 +- apps/wireguard-easy/{14 => 15}/.env.sample | 0 apps/wireguard-easy/{14 => 15}/data.yml | 0 .../{14 => 15}/docker-compose.yml | 2 +- .../{14 => 15}/scripts/upgrade.sh | 0 apps/woodpecker/{3.5.2 => 3.7.0}/.env.sample | 0 apps/woodpecker/{3.5.2 => 3.7.0}/data.yml | 0 .../{3.5.2 => 3.7.0}/docker-compose.yml | 4 +- apps/yourls/{1.10.0 => 1.10.1}/.env.sample | 0 apps/yourls/{1.10.0 => 1.10.1}/data.yml | 0 .../{1.10.0 => 1.10.1}/docker-compose.yml | 2 +- apps/zdir/{4.3.0 => 4.5.0}/.env.sample | 0 apps/zdir/{4.3.0 => 4.5.0}/data.yml | 0 apps/zdir/{4.3.0 => 4.5.0}/docker-compose.yml | 2 +- apps/zfile/{4.1.5 => 4.3.1}/.env.sample | 0 apps/zfile/{4.1.5 => 4.3.1}/data.yml | 0 .../zfile/{4.1.5 => 4.3.1}/docker-compose.yml | 2 +- 437 files changed, 3533 insertions(+), 1195 deletions(-) rename apps/1panel/{1.10.29-lts => 1.10.30-lts}/.env.sample (100%) rename apps/1panel/{1.10.29-lts => 1.10.30-lts}/data.yml (100%) rename apps/1panel/{1.10.29-lts => 1.10.30-lts}/docker-compose.yml (90%) rename apps/adguardhome/{0.107.60 => 0.107.62}/.env.sample (100%) rename apps/adguardhome/{0.107.60 => 0.107.62}/data.yml (100%) rename apps/adguardhome/{0.107.60 => 0.107.62}/docker-compose.yml (91%) delete mode 100644 apps/ais-ninja/1.0.8/.env.sample delete mode 100644 apps/ais-ninja/1.0.8/data.yml delete mode 100644 apps/ais-ninja/1.0.8/docker-compose.yml delete mode 100644 apps/ais-ninja/README.md delete mode 100644 apps/ais-ninja/data.yml delete mode 100644 apps/ais-ninja/latest/.env.sample delete mode 100644 apps/ais-ninja/latest/data.yml delete mode 100644 apps/ais-ninja/latest/docker-compose.yml delete mode 100644 apps/ais-ninja/logo.png rename apps/alist/{3.44.0 => 3.40.0}/.env.sample (100%) rename apps/alist/{3.44.0 => 3.40.0}/data.yml (100%) rename apps/alist/{3.44.0 => 3.40.0}/docker-compose.yml (92%) create mode 100644 apps/alist/3.41.0-aria2/data.yml create mode 100644 apps/alist/3.41.0-aria2/docker-compose.yml create mode 100644 apps/alist/3.41.0-aria2/env.sample create mode 100644 apps/alist/3.45.0/.env.sample create mode 100644 apps/alist/3.45.0/data.yml create mode 100644 apps/alist/3.45.0/docker-compose.yml rename apps/anqicms/{3.4.9 => 3.4.11}/.env.sample (100%) rename apps/anqicms/{3.4.9 => 3.4.11}/data.yml (100%) rename apps/anqicms/{3.4.9 => 3.4.11}/docker-compose.yml (90%) rename apps/anqicms/{3.4.9 => 3.4.11}/scripts/uninstall.sh (100%) rename apps/audiobookshelf/{2.20.0 => 2.24.0}/.env.sample (100%) rename apps/audiobookshelf/{2.20.0 => 2.24.0}/data.yml (100%) rename apps/audiobookshelf/{2.20.0 => 2.24.0}/docker-compose.yml (90%) rename apps/bark/{2.2.0 => 2.2.1}/.env.sample (100%) rename apps/bark/{2.2.0 => 2.2.1}/data.yml (100%) rename apps/bark/{2.2.0 => 2.2.1}/docker-compose.yml (97%) rename apps/beszel-agent/{0.10.2 => 0.11.1}/.env.sample (100%) rename apps/beszel-agent/{0.10.2 => 0.11.1}/data.yml (100%) rename apps/beszel-agent/{0.10.2 => 0.11.1}/docker-compose.yml (79%) rename apps/beszel/{0.10.2 => 0.11.1}/.env.sample (100%) rename apps/beszel/{0.10.2 => 0.11.1}/data.yml (100%) rename apps/beszel/{0.10.2 => 0.11.1}/docker-compose.yml (89%) rename apps/bililive-go/{0.7.34 => 0.7.35}/.env.sample (100%) rename apps/bililive-go/{0.7.34 => 0.7.35}/data.yml (100%) rename apps/bililive-go/{0.7.34 => 0.7.35}/docker-compose.yml (88%) rename apps/bililive-recorder/{2.16.0 => 2.17.0}/.env.sample (100%) rename apps/bililive-recorder/{2.16.0 => 2.17.0}/data.yml (100%) rename apps/bililive-recorder/{2.16.0 => 2.17.0}/data/.gitkeep (100%) rename apps/bililive-recorder/{2.16.0 => 2.17.0}/docker-compose.yml (92%) rename apps/bililive-recorder/{2.16.0 => 2.17.0}/scripts/init.sh (100%) rename apps/bitwarden/{1.33.2-alpine => 1.34.1-alpine}/.env.sample (100%) rename apps/bitwarden/{1.33.2-alpine => 1.34.1-alpine}/data.yml (100%) rename apps/bitwarden/{1.33.2-alpine => 1.34.1-alpine}/docker-compose.yml (91%) rename apps/bitwarden/{1.33.2-alpine => 1.34.1-alpine}/scripts/upgrade.sh (100%) rename apps/blinko/{0.26.4 => 1.1.0}/.env.sample (100%) rename apps/blinko/{0.26.4 => 1.1.0}/data.yml (100%) rename apps/blinko/{0.26.4 => 1.1.0}/docker-compose.yml (89%) rename apps/bytebase/{3.5.3 => 3.7.0}/.env.sample (100%) rename apps/bytebase/{3.5.3 => 3.7.0}/data.yml (100%) rename apps/bytebase/{3.5.3 => 3.7.0}/docker-compose.yml (95%) rename apps/cashbook/{4.1.4 => 4.2.0}/.env.sample (100%) rename apps/cashbook/{4.1.4 => 4.2.0}/data.yml (100%) rename apps/cashbook/{4.1.4 => 4.2.0}/docker-compose.yml (92%) rename apps/certd/{1.28.3 => 1.35.4}/.env.sample (100%) rename apps/certd/{1.28.3 => 1.35.4}/data.yml (100%) rename apps/certd/{1.28.3 => 1.35.4}/docker-compose.yml (94%) rename apps/certimate/{0.3.8 => 0.3.17}/.env.sample (100%) rename apps/certimate/{0.3.8 => 0.3.17}/data.yml (100%) rename apps/certimate/{0.3.8 => 0.3.17}/docker-compose.yml (87%) rename apps/changedetectionio/{0.49 => 0.50}/.env.sample (100%) rename apps/changedetectionio/{0.49 => 0.50}/data.yml (100%) rename apps/changedetectionio/{0.49 => 0.50}/docker-compose.yml (87%) rename apps/chatgpt-on-wechat/{1.7.5 => 1.7.6}/.env.sample (100%) rename apps/chatgpt-on-wechat/{1.7.5 => 1.7.6}/data.yml (100%) rename apps/chatgpt-on-wechat/{1.7.5 => 1.7.6}/docker-compose.yml (99%) rename apps/chevereto/{4.2.5 => 4.3.5}/.env.sample (100%) rename apps/chevereto/{4.2.5 => 4.3.5}/data.yml (100%) rename apps/chevereto/{4.2.5 => 4.3.5}/data/images/.gitkeep (100%) rename apps/chevereto/{4.2.5 => 4.3.5}/docker-compose.yml (96%) rename apps/chevereto/{4.2.5 => 4.3.5}/scripts/init.sh (100%) rename apps/cloudbeaver/{25.0.0 => 25.1.0}/.env.sample (100%) rename apps/cloudbeaver/{25.0.0 => 25.1.0}/data.yml (100%) rename apps/cloudbeaver/{25.0.0 => 25.1.0}/docker-compose.yml (89%) rename apps/clouddrive/{0.8.15 => 0.9.0}/.env.sample (100%) rename apps/clouddrive/{0.8.15 => 0.9.0}/data.yml (100%) rename apps/clouddrive/{0.8.15 => 0.9.0}/docker-compose.yml (93%) rename apps/cloudflared/{2025.4.0 => 2025.6.0}/.env.sample (100%) rename apps/cloudflared/{2025.4.0 => 2025.6.0}/data.yml (100%) rename apps/cloudflared/{2025.4.0 => 2025.6.0}/docker-compose.yml (86%) rename apps/code-server/{4.99.2 => 4.100.3}/.env.sample (100%) rename apps/code-server/{4.99.2 => 4.100.3}/data.yml (100%) rename apps/code-server/{4.99.2 => 4.100.3}/docker-compose.yml (91%) rename apps/dbgate/{6.3.3 => 6.4.2}/.env.sample (100%) rename apps/dbgate/{6.3.3 => 6.4.2}/data.yml (100%) rename apps/dbgate/{6.3.3 => 6.4.2}/docker-compose.yml (81%) rename apps/ddns-go/{6.9.1 => 6.10.0}/.env.sample (100%) rename apps/ddns-go/{6.9.1 => 6.10.0}/data.yml (100%) rename apps/ddns-go/{6.9.1 => 6.10.0}/docker-compose.yml (84%) rename apps/deluge/{2.1.1 => 18.04.1}/.env.sample (100%) rename apps/deluge/{2.1.1 => 18.04.1}/data.yml (100%) rename apps/deluge/{2.1.1 => 18.04.1}/docker-compose.yml (93%) rename apps/discourse/{3.4.2 => 9.0.4}/.env.sample (100%) rename apps/discourse/{3.4.2 => 9.0.4}/data.yml (100%) rename apps/discourse/{3.4.2 => 9.0.4}/docker-compose.yml (98%) rename apps/domain-admin/{1.6.66 => 1.6.68}/.env.sample (100%) rename apps/domain-admin/{1.6.66 => 1.6.68}/data.yml (100%) rename apps/domain-admin/{1.6.66 => 1.6.68}/docker-compose.yml (90%) rename apps/dpanel/{1.6.3-lite => 1.7.2-lite}/.env.sample (100%) rename apps/dpanel/{1.6.3-lite => 1.7.2-lite}/data.yml (100%) rename apps/dpanel/{1.6.3-lite => 1.7.2-lite}/docker-compose.yml (91%) rename apps/duplicati/{2.1.0.115 => 2.1.0.119}/.env.sample (100%) rename apps/duplicati/{2.1.0.115 => 2.1.0.119}/data.yml (100%) rename apps/duplicati/{2.1.0.115 => 2.1.0.119}/docker-compose.yml (88%) rename apps/easynode/{3.0.5 => 3.0.7}/.env.sample (100%) rename apps/easynode/{3.0.5 => 3.0.7}/data.yml (100%) rename apps/easynode/{3.0.5 => 3.0.7}/docker-compose.yml (88%) rename apps/easytier/{2.2.4 => 2.3.1}/.env.sample (100%) rename apps/easytier/{2.2.4 => 2.3.1}/2.0.2/.env.sample (100%) rename apps/easytier/{2.2.4 => 2.3.1}/2.0.2/data.yml (100%) rename apps/easytier/{2.2.4 => 2.3.1}/2.0.2/docker-compose.yml (88%) rename apps/easytier/{2.2.4 => 2.3.1}/data.yml (100%) rename apps/easytier/{2.2.4 => 2.3.1}/data/config-example.toml (100%) rename apps/easytier/{2.2.4 => 2.3.1}/data/config.toml (100%) rename apps/easytier/{2.2.4 => 2.3.1}/docker-compose.yml (91%) rename apps/element-web/{1.11.97 => 1.11.103}/.env.sample (100%) rename apps/element-web/{1.11.97 => 1.11.103}/data.yml (100%) rename apps/element-web/{1.11.97 => 1.11.103}/docker-compose.yml (85%) rename apps/emby-amilys/{4.9.0.43 => 4.9.0.57}/.env.sample (100%) rename apps/emby-amilys/{4.9.0.43 => 4.9.0.57}/data.yml (100%) rename apps/emby-amilys/{4.9.0.43 => 4.9.0.57}/docker-compose.yml (95%) rename apps/firefox-browser/{136.0.4 => 139.0.4}/.env.sample (100%) rename apps/firefox-browser/{136.0.4 => 139.0.4}/data.yml (100%) rename apps/firefox-browser/{136.0.4 => 139.0.4}/docker-compose.yml (89%) rename apps/flaresolverr/{3.3.21 => 3.3.24}/.env.sample (100%) rename apps/flaresolverr/{3.3.21 => 3.3.24}/data.yml (100%) rename apps/flaresolverr/{3.3.21 => 3.3.24}/docker-compose.yml (94%) rename apps/flexget/{3.15.31 => 3.16.3}/.env.sample (100%) rename apps/flexget/{3.15.31 => 3.16.3}/data.yml (100%) rename apps/flexget/{3.15.31 => 3.16.3}/docker-compose.yml (92%) rename apps/freshrss/{1.26.1 => 1.26.3}/.env.sample (100%) rename apps/freshrss/{1.26.1 => 1.26.3}/data.yml (100%) rename apps/freshrss/{1.26.1 => 1.26.3}/docker-compose.yml (93%) rename apps/frp-panel-master/{0.1.6 => 0.1.21}/.env.sample (100%) rename apps/frp-panel-master/{0.1.6 => 0.1.21}/data.yml (100%) rename apps/frp-panel-master/{0.1.6 => 0.1.21}/docker-compose.yml (92%) rename apps/frp-panel/{0.1.6 => 0.1.21}/.env.sample (100%) rename apps/frp-panel/{0.1.6 => 0.1.21}/data.yml (100%) rename apps/frp-panel/{0.1.6 => 0.1.21}/docker-compose.yml (81%) rename apps/frpc/{0.61.2 => 0.62.1}/.env.sample (100%) rename apps/frpc/{0.61.2 => 0.62.1}/data.yml (100%) rename apps/frpc/{0.61.2 => 0.62.1}/data/frpc.ini (100%) rename apps/frpc/{0.61.2 => 0.62.1}/data/frpc.toml (100%) rename apps/frpc/{0.61.2 => 0.62.1}/data/frpc_full.ini (100%) rename apps/frpc/{0.61.2 => 0.62.1}/data/frpc_full.toml (100%) rename apps/frpc/{0.61.2 => 0.62.1}/data/frps.ini (100%) rename apps/frpc/{0.61.2 => 0.62.1}/data/frps.toml (100%) rename apps/frpc/{0.61.2 => 0.62.1}/data/frps_full.ini (100%) rename apps/frpc/{0.61.2 => 0.62.1}/data/frps_full.toml (100%) rename apps/frpc/{0.61.2 => 0.62.1}/docker-compose.yml (89%) rename apps/frps/{0.61.2 => 0.62.1}/.env.sample (100%) rename apps/frps/{0.61.2 => 0.62.1}/data.yml (100%) rename apps/frps/{0.61.2 => 0.62.1}/data/frpc.ini (100%) rename apps/frps/{0.61.2 => 0.62.1}/data/frpc.toml (100%) rename apps/frps/{0.61.2 => 0.62.1}/data/frpc_full.ini (100%) rename apps/frps/{0.61.2 => 0.62.1}/data/frpc_full.toml (100%) rename apps/frps/{0.61.2 => 0.62.1}/data/frps.ini (100%) rename apps/frps/{0.61.2 => 0.62.1}/data/frps.toml (100%) rename apps/frps/{0.61.2 => 0.62.1}/data/frps_full.ini (100%) rename apps/frps/{0.61.2 => 0.62.1}/data/frps_full.toml (100%) rename apps/frps/{0.61.2 => 0.62.1}/docker-compose.yml (89%) rename apps/geekbench/{ => 6}/4/.env.sample (100%) rename apps/geekbench/{ => 6}/4/data.yml (100%) rename apps/geekbench/{5 => 6/4}/docker-compose.yml (86%) rename apps/geekbench/{ => 6}/5/.env.sample (100%) rename apps/geekbench/{ => 6}/5/data.yml (100%) rename apps/geekbench/{4 => 6/5}/docker-compose.yml (86%) create mode 100644 apps/gitlab-jh/18.0.2-jh.0/data.yml create mode 100644 apps/gitlab-jh/18.0.2-jh.0/docker-compose.yml create mode 100644 apps/gitlab-jh/README.md create mode 100644 apps/gitlab-jh/data.yml create mode 100644 apps/gitlab-jh/latest/data.yml create mode 100644 apps/gitlab-jh/latest/docker-compose.yml create mode 100644 apps/gitlab-jh/logo.png create mode 100644 apps/gitlab/18.0.2-ee.0/data.yml create mode 100644 apps/gitlab/18.0.2-ee.0/docker-compose.yml create mode 100644 apps/gitlab/README.md create mode 100644 apps/gitlab/data.yml create mode 100644 apps/gitlab/logo.png rename apps/glance/{0.7.12 => 0.8.4}/.env.sample (100%) rename apps/glance/{0.7.12 => 0.8.4}/data.yml (100%) rename apps/glance/{0.7.12 => 0.8.4}/data/glance.yml (100%) rename apps/glance/{0.7.12 => 0.8.4}/docker-compose.yml (91%) rename apps/gotify/{2.6.1 => 2.6.3}/.env.sample (100%) rename apps/gotify/{2.6.1 => 2.6.3}/data.yml (100%) rename apps/gotify/{2.6.1 => 2.6.3}/docker-compose.yml (98%) rename apps/grafana/{11.6.0 => 12.0.1}/.env.sample (100%) rename apps/grafana/{11.6.0 => 12.0.1}/10.4.3/.env.sample (100%) rename apps/grafana/{11.6.0 => 12.0.1}/10.4.3/data.yml (100%) rename apps/grafana/{11.6.0 => 12.0.1/10.4.3}/docker-compose.yml (90%) rename apps/grafana/{11.6.0 => 12.0.1}/data.yml (100%) rename apps/grafana/{11.6.0/10.4.3 => 12.0.1}/docker-compose.yml (90%) rename apps/headscale/{0.25.1 => 0.26.1}/.env.sample (100%) rename apps/headscale/{0.25.1 => 0.26.1}/data.yml (100%) rename apps/headscale/{0.25.1 => 0.26.1}/data/config/config.yaml (100%) rename apps/headscale/{0.25.1 => 0.26.1}/data/config/derp.yaml (100%) rename apps/headscale/{0.25.1 => 0.26.1}/data/data/db.sqlite (100%) rename apps/headscale/{0.25.1 => 0.26.1}/docker-compose.yml (93%) rename apps/homepage/{1.1.1 => 1.3.2}/.env.sample (100%) rename apps/homepage/{1.1.1 => 1.3.2}/data.yml (100%) rename apps/homepage/{1.1.1 => 1.3.2}/docker-compose.yml (89%) rename apps/homepage/{1.1.1 => 1.3.2}/scripts/init.sh (100%) rename apps/immich/{1.122.3 => 1.134.0}/.env.sample (100%) rename apps/immich/{1.122.3 => 1.134.0}/data.yml (100%) rename apps/immich/{1.122.3 => 1.134.0}/docker-compose.yml (95%) rename apps/{joplin-server/3.0.1 => joplin/3.3.13}/.env.sample (100%) rename apps/{joplin-server/3.0.1 => joplin/3.3.13}/data.yml (100%) rename apps/{joplin-server/3.0.1 => joplin/3.3.13}/docker-compose.yml (93%) rename apps/{joplin-server => joplin}/README.md (100%) rename apps/{joplin-server => joplin}/data.yml (100%) rename apps/{joplin-server => joplin}/latest/.env.sample (100%) rename apps/{joplin-server => joplin}/latest/data.yml (100%) rename apps/{joplin-server => joplin}/latest/docker-compose.yml (92%) rename apps/{joplin-server => joplin}/logo.png (100%) delete mode 160000 apps/libretv/202506082214/data rename apps/linkding/{1.39.1 => 1.40.0}/.env.sample (100%) rename apps/linkding/{1.39.1 => 1.40.0}/data.yml (100%) rename apps/linkding/{1.39.1 => 1.40.0}/docker-compose.yml (88%) rename apps/lobe-chat/{1.36.30 => 1.94.7}/.env.sample (100%) rename apps/lobe-chat/{1.36.30 => 1.94.7}/data.yml (100%) rename apps/lobe-chat/{1.36.30 => 1.94.7}/docker-compose.yml (92%) rename apps/lucky/{2.15.7 => 2.17.8}/.env.sample (100%) rename apps/lucky/{2.15.7 => 2.17.8}/data.yml (100%) rename apps/lucky/{2.15.7 => 2.17.8}/docker-compose.yml (85%) rename apps/matomo/{5.3.1-fpm-alpine => 5.3.2-fpm-alpine}/.env.sample (100%) rename apps/matomo/{5.3.1-fpm-alpine => 5.3.2-fpm-alpine}/data.yml (100%) rename apps/matomo/{5.3.1-fpm-alpine => 5.3.2-fpm-alpine}/data/matomo.conf (100%) rename apps/matomo/{5.3.1-fpm-alpine => 5.3.2-fpm-alpine}/docker-compose.yml (96%) rename apps/mattermost/{10.7.0 => 10.9.0}/.env.sample (100%) rename apps/mattermost/{10.7.0 => 10.9.0}/data.yml (100%) rename apps/mattermost/{10.7.0 => 10.9.0}/data/bleve/.gitkeep (100%) rename apps/mattermost/{10.7.0 => 10.9.0}/data/client/plugins/.gitkeep (100%) rename apps/mattermost/{10.7.0 => 10.9.0}/data/config/.gitkeep (100%) rename apps/mattermost/{10.7.0 => 10.9.0}/data/data/.gitkeep (100%) rename apps/mattermost/{10.7.0 => 10.9.0}/data/logs/.gitkeep (100%) rename apps/mattermost/{10.7.0 => 10.9.0}/data/plugins/.gitkeep (100%) rename apps/mattermost/{10.7.0 => 10.9.0}/docker-compose.yml (96%) rename apps/mattermost/{10.7.0 => 10.9.0}/scripts/init.sh (100%) rename apps/metatube-sdk-go/{1.2.8 => 1.3.1}/.env.sample (100%) rename apps/metatube-sdk-go/{1.2.8 => 1.3.1}/data.yml (100%) rename apps/metatube-sdk-go/{1.2.8 => 1.3.1}/docker-compose.yml (90%) rename apps/moviepilot/{1.9.18 => 1.9.19}/.env.sample (100%) rename apps/moviepilot/{1.9.18 => 1.9.19}/data.yml (100%) rename apps/moviepilot/{1.9.18 => 1.9.19}/docker-compose.yml (99%) rename apps/mt-photos/{1.36.2 => 1.37.2}/.env.sample (100%) rename apps/mt-photos/{1.36.2 => 1.37.2}/data.yml (100%) rename apps/mt-photos/{1.36.2 => 1.37.2}/docker-compose.yml (92%) rename apps/music-tag-web/{2.3.8 => 2.4.3}/.env.sample (100%) rename apps/music-tag-web/{2.3.8 => 2.4.3}/data.yml (100%) rename apps/music-tag-web/{2.3.8 => 2.4.3}/docker-compose.yml (90%) rename apps/netdata/{2.4 => 2.5}/.env.sample (100%) rename apps/netdata/{2.4 => 2.5}/data.yml (100%) rename apps/netdata/{2.4 => 2.5}/docker-compose.yml (96%) rename apps/next-terminal/{2.4.10 => 2.5.4}/.env.sample (100%) rename apps/next-terminal/{2.4.10 => 2.5.4}/data.yml (100%) rename apps/next-terminal/{2.4.10 => 2.5.4}/docker-compose.yml (92%) rename apps/next-terminal/{2.4.10 => 2.5.4}/ssh/id_rsa (100%) rename apps/nextcloud/{31.0.2 => 31.0.6}/.env.sample (100%) rename apps/nextcloud/{31.0.2 => 31.0.6}/data.yml (100%) rename apps/nextcloud/{31.0.2 => 31.0.6}/docker-compose.yml (91%) rename apps/nezha-dash/{2.9.3 => 2.9.6}/.env.sample (100%) rename apps/nezha-dash/{2.9.3 => 2.9.6}/data.yml (100%) rename apps/nezha-dash/{2.9.3 => 2.9.6}/docker-compose.yml (95%) rename apps/ntfy/{2.11.0 => 2.12.0}/.env.sample (100%) rename apps/ntfy/{2.11.0 => 2.12.0}/data.yml (100%) rename apps/ntfy/{2.11.0 => 2.12.0}/data/ntfy/server.yml.sample (100%) rename apps/ntfy/{2.11.0 => 2.12.0}/docker-compose.yml (94%) rename apps/nvpress/{5.3.0 => 5.4.0}/.env.sample (100%) rename apps/nvpress/{5.3.0 => 5.4.0}/data.yml (100%) rename apps/nvpress/{5.3.0 => 5.4.0}/docker-compose.yml (92%) rename apps/onedev/{11.6.16 => 11.10.4}/.env.sample (100%) rename apps/onedev/{11.6.16 => 11.10.4}/data.yml (100%) rename apps/onedev/{11.6.16 => 11.10.4}/docker-compose.yml (92%) rename apps/onenav/{1.1.2 => 1.1.3}/.env.sample (100%) rename apps/onenav/{1.1.2 => 1.1.3}/data.yml (100%) rename apps/onenav/{1.1.2 => 1.1.3}/docker-compose.yml (91%) create mode 100644 apps/oryx/5.15.20/.env.sample create mode 100644 apps/oryx/5.15.20/data.yml create mode 100644 apps/oryx/5.15.20/docker-compose.yml create mode 100644 apps/oryx/README.md create mode 100644 apps/oryx/data.yml create mode 100644 apps/oryx/logo.png rename apps/pagespy/{2.2.3 => 2.3.1}/.env.sample (100%) rename apps/pagespy/{2.2.3 => 2.3.1}/data.yml (100%) rename apps/pagespy/{2.2.3 => 2.3.1}/docker-compose.yml (85%) rename apps/palworld-server/{1.3.0 => 1.4.0}/.env.sample (100%) rename apps/palworld-server/{1.3.0 => 1.4.0}/data.yml (100%) rename apps/palworld-server/{1.3.0 => 1.4.0}/docker-compose.yml (94%) rename apps/passwordpusher/{1.53.6 => 1.57.0}/.env.sample (100%) rename apps/passwordpusher/{1.53.6 => 1.57.0}/data.yml (100%) rename apps/passwordpusher/{1.53.6 => 1.57.0}/docker-compose.yml (91%) rename apps/peerbanhelper/{7.4.12 => 7.4.15}/.env.sample (100%) rename apps/peerbanhelper/{7.4.12 => 7.4.15}/data.yml (100%) rename apps/peerbanhelper/{7.4.12 => 7.4.15}/docker-compose.yml (90%) rename apps/pgadmin4/{9.2 => 9.4}/.env.sample (100%) rename apps/pgadmin4/{9.2 => 9.4}/data.yml (100%) rename apps/pgadmin4/{9.2 => 9.4}/docker-compose.yml (94%) rename apps/photoprism/{230719 => 20220121}/.env.sample (100%) rename apps/photoprism/{230719 => 20220121}/data.yml (100%) rename apps/photoprism/{230719 => 20220121}/docker-compose.yml (99%) rename apps/php-unofficial/{8.1.17 => 8.1.32}/.env.sample (100%) rename apps/php-unofficial/{8.1.17 => 8.1.32}/Dockerfile (94%) rename apps/php-unofficial/{8.1.17 => 8.1.32}/data.yml (100%) rename apps/php-unofficial/{8.1.17 => 8.1.32}/data/php-fpm.conf (100%) rename apps/php-unofficial/{8.1.17 => 8.1.32}/data/php.ini (100%) rename apps/php-unofficial/{8.1.17 => 8.1.32}/docker-compose.yml (95%) create mode 100644 apps/php-unofficial/8.4.8/.env.sample create mode 100644 apps/php-unofficial/8.4.8/Dockerfile create mode 100644 apps/php-unofficial/8.4.8/data.yml create mode 100644 apps/php-unofficial/8.4.8/data/php-fpm.conf create mode 100644 apps/php-unofficial/8.4.8/data/php.ini create mode 100644 apps/php-unofficial/8.4.8/docker-compose.yml rename apps/picimpact/{2.4.1 => 2.5.6}/.env.sample (100%) rename apps/picimpact/{2.4.1 => 2.5.6}/data.yml (100%) rename apps/picimpact/{2.4.1 => 2.5.6}/docker-compose.yml (91%) rename apps/piclist/{1.9.11 => 1.9.14}/.env.sample (100%) rename apps/piclist/{1.9.11 => 1.9.14}/data.yml (100%) rename apps/piclist/{1.9.11 => 1.9.14}/docker-compose.yml (90%) rename apps/pingvin-share/{1.11.1 => 1.13.0}/.env.sample (100%) rename apps/pingvin-share/{1.11.1 => 1.13.0}/data.yml (100%) rename apps/pingvin-share/{1.11.1 => 1.13.0}/docker-compose.yml (89%) rename apps/plex/{1.41.6 => 1.41.8}/.env.sample (100%) rename apps/plex/{1.41.6 => 1.41.8}/data.yml (100%) rename apps/plex/{1.41.6 => 1.41.8}/docker-compose.yml (95%) rename apps/prometheus/{3.3.0 => 3.4.1}/.env.sample (100%) rename apps/prometheus/{3.3.0 => 3.4.1}/data.yml (100%) rename apps/prometheus/{3.3.0 => 3.4.1}/data/prometheus.yml (100%) rename apps/prometheus/{3.3.0 => 3.4.1}/docker-compose.yml (89%) rename apps/radarr/{5.21.1 => 5.25.0}/.env.sample (100%) rename apps/radarr/{5.21.1 => 5.25.0}/data.yml (100%) rename apps/radarr/{5.21.1 => 5.25.0}/docker-compose.yml (92%) rename apps/reader/{3.2.13 => 3.2.14}/.env.sample (100%) rename apps/reader/{3.2.13 => 3.2.14}/data.yml (100%) rename apps/reader/{3.2.13 => 3.2.14}/docker-compose.yml (95%) rename apps/redisinsight/{2.68.0 => 2.70.0}/.env.sample (100%) rename apps/redisinsight/{2.68.0 => 2.70.0}/data.yml (100%) rename apps/redisinsight/{2.68.0 => 2.70.0}/data/.gitkeep (100%) rename apps/redisinsight/{2.68.0 => 2.70.0}/docker-compose.yml (94%) rename apps/redisinsight/{2.68.0 => 2.70.0}/scripts/init.sh (100%) rename apps/rembg/{2.0.65 => 2.0.66}/.env.sample (100%) rename apps/rembg/{2.0.65 => 2.0.66}/data.yml (100%) rename apps/rembg/{2.0.65 => 2.0.66}/docker-compose.yml (87%) rename apps/safeline/{newnet-7.3.1 => 8.8.0-lts}/.env.sample (100%) rename apps/safeline/{newnet-7.3.1 => 8.8.0-lts}/data.yml (100%) rename apps/safeline/{newnet-7.3.1 => 8.8.0-lts}/docker-compose.yml (91%) rename apps/safeline/{7.3.1 => 8.9.1}/.env.sample (100%) rename apps/safeline/{7.3.1 => 8.9.1}/data.yml (100%) rename apps/safeline/{7.3.1 => 8.9.1}/docker-compose.yml (92%) delete mode 100644 apps/safeline/newnet-latest/.env.sample delete mode 100644 apps/safeline/newnet-latest/data.yml delete mode 100644 apps/safeline/newnet-latest/docker-compose.yml rename apps/seafile/{12.0.11 => 12.0.14}/.env.sample (100%) rename apps/seafile/{12.0.11 => 12.0.14}/data.yml (100%) rename apps/seafile/{12.0.11 => 12.0.14}/docker-compose.yml (94%) rename apps/siyuan/{3.1.27 => 3.1.32}/.env.sample (100%) rename apps/siyuan/{3.1.27 => 3.1.32}/data.yml (100%) rename apps/siyuan/{3.1.27 => 3.1.32}/docker-compose.yml (92%) rename apps/slink/{1.4.8 => 1.4.9}/.env.sample (100%) rename apps/slink/{1.4.8 => 1.4.9}/data.yml (100%) rename apps/slink/{1.4.8 => 1.4.9}/docker-compose.yml (96%) rename apps/smokeping/{2.8.2 => 2.9.0}/.env.sample (100%) rename apps/smokeping/{2.8.2 => 2.9.0}/data.yml (100%) rename apps/smokeping/{2.8.2 => 2.9.0}/docker-compose.yml (92%) rename apps/synapse-admin/{0.10.3 => 0.11.1}/.env.sample (100%) rename apps/synapse-admin/{0.10.3 => 0.11.1}/data.yml (100%) rename apps/synapse-admin/{0.10.3 => 0.11.1}/docker-compose.yml (83%) rename apps/synapse/{1.128.0 => 1.131.0}/.env.sample (100%) rename apps/synapse/{1.128.0 => 1.131.0}/data.yml (100%) rename apps/synapse/{1.128.0 => 1.131.0}/docker-compose.yml (93%) rename apps/syncclipboard-server/{2.9.0 => 3.0.1}/.env.sample (100%) rename apps/syncclipboard-server/{2.9.0 => 3.0.1}/data.yml (100%) rename apps/syncclipboard-server/{2.9.0 => 3.0.1}/data/appsettings.json (100%) rename apps/syncclipboard-server/{2.9.0 => 3.0.1}/docker-compose.yml (87%) rename apps/syncthing/{1.29.5 => 1.29.7}/.env.sample (100%) rename apps/syncthing/{1.29.5 => 1.29.7}/data.yml (100%) rename apps/syncthing/{1.29.5 => 1.29.7}/docker-compose.yml (93%) rename apps/tailscale/{1.82 => 1.84}/.env.sample (100%) rename apps/tailscale/{1.82 => 1.84}/data.yml (75%) rename apps/tailscale/{1.82 => 1.84}/docker-compose.yml (95%) rename apps/tianji/{1.19.0 => 1.21.13}/.env.sample (100%) rename apps/tianji/{1.19.0 => 1.21.13}/data.yml (100%) rename apps/tianji/{1.19.0 => 1.21.13}/docker-compose.yml (92%) rename apps/transmission/{4.0.6 => 2021.11.18}/.env.sample (100%) rename apps/transmission/{4.0.6 => 2021.11.18}/data.yml (100%) rename apps/transmission/{4.0.6 => 2021.11.18}/docker-compose.yml (94%) rename apps/unblockneteasemusic/{0.27.8 => 0.27.10}/.env.sample (100%) rename apps/unblockneteasemusic/{0.27.8 => 0.27.10}/data.yml (100%) rename apps/unblockneteasemusic/{0.27.8 => 0.27.10}/data/server.crt (100%) rename apps/unblockneteasemusic/{0.27.8 => 0.27.10}/data/server.key (100%) rename apps/unblockneteasemusic/{0.27.8 => 0.27.10}/docker-compose.yml (97%) rename apps/upsnap/{5.0 => 5.1}/.env.sample (100%) rename apps/upsnap/{5.0 => 5.1}/data.yml (100%) rename apps/upsnap/{5.0 => 5.1}/docker-compose.yml (95%) rename apps/uuwaf/{6.2.0 => 6.8.0}/.env.sample (100%) rename apps/uuwaf/{6.2.0 => 6.8.0}/data.yml (100%) rename apps/uuwaf/{6.2.0 => 6.8.0}/docker-compose.yml (94%) rename apps/uuwaf/{6.2.0 => 6.8.0}/low-memory-my.cnf (100%) rename apps/uuwaf/{6.2.0 => 6.8.0}/scripts/uninstall.sh (100%) create mode 100644 apps/vertex/2025.06.06/.env.sample create mode 100644 apps/vertex/2025.06.06/data.yml create mode 100644 apps/vertex/2025.06.06/docker-compose.yml rename apps/wallos/{2.50.1 => 3.3.0}/.env.sample (100%) rename apps/wallos/{2.50.1 => 3.3.0}/data.yml (100%) rename apps/wallos/{2.50.1 => 3.3.0}/docker-compose.yml (92%) rename apps/webos/{1.4.3 => 1.4.4}/.env.sample (100%) rename apps/webos/{1.4.3 => 1.4.4}/data.yml (100%) rename apps/webos/{1.4.3 => 1.4.4}/docker-compose.yml (91%) rename apps/windows/{4.27 => 4.35}/.env.sample (100%) rename apps/windows/{4.27 => 4.35}/data.yml (100%) rename apps/windows/{4.27 => 4.35}/docker-compose.yml (95%) rename apps/wireguard-easy/{14 => 15}/.env.sample (100%) rename apps/wireguard-easy/{14 => 15}/data.yml (100%) rename apps/wireguard-easy/{14 => 15}/docker-compose.yml (95%) rename apps/wireguard-easy/{14 => 15}/scripts/upgrade.sh (100%) rename apps/woodpecker/{3.5.2 => 3.7.0}/.env.sample (100%) rename apps/woodpecker/{3.5.2 => 3.7.0}/data.yml (100%) rename apps/woodpecker/{3.5.2 => 3.7.0}/docker-compose.yml (96%) rename apps/yourls/{1.10.0 => 1.10.1}/.env.sample (100%) rename apps/yourls/{1.10.0 => 1.10.1}/data.yml (100%) rename apps/yourls/{1.10.0 => 1.10.1}/docker-compose.yml (96%) rename apps/zdir/{4.3.0 => 4.5.0}/.env.sample (100%) rename apps/zdir/{4.3.0 => 4.5.0}/data.yml (100%) rename apps/zdir/{4.3.0 => 4.5.0}/docker-compose.yml (92%) rename apps/zfile/{4.1.5 => 4.3.1}/.env.sample (100%) rename apps/zfile/{4.1.5 => 4.3.1}/data.yml (100%) rename apps/zfile/{4.1.5 => 4.3.1}/docker-compose.yml (91%) diff --git a/apps/1panel/1.10.29-lts/.env.sample b/apps/1panel/1.10.30-lts/.env.sample similarity index 100% rename from apps/1panel/1.10.29-lts/.env.sample rename to apps/1panel/1.10.30-lts/.env.sample diff --git a/apps/1panel/1.10.29-lts/data.yml b/apps/1panel/1.10.30-lts/data.yml similarity index 100% rename from apps/1panel/1.10.29-lts/data.yml rename to apps/1panel/1.10.30-lts/data.yml diff --git a/apps/1panel/1.10.29-lts/docker-compose.yml b/apps/1panel/1.10.30-lts/docker-compose.yml similarity index 90% rename from apps/1panel/1.10.29-lts/docker-compose.yml rename to apps/1panel/1.10.30-lts/docker-compose.yml index 12249793c..3517663fe 100644 --- a/apps/1panel/1.10.29-lts/docker-compose.yml +++ b/apps/1panel/1.10.30-lts/docker-compose.yml @@ -10,6 +10,6 @@ services: - /root:/root environment: - TZ=${TIME_ZONE} - image: moelin/1panel:v1.10.29-lts + image: moelin/1panel:v1.10.30-lts labels: createdBy: "Apps" diff --git a/apps/adguardhome/0.107.60/.env.sample b/apps/adguardhome/0.107.62/.env.sample similarity index 100% rename from apps/adguardhome/0.107.60/.env.sample rename to apps/adguardhome/0.107.62/.env.sample diff --git a/apps/adguardhome/0.107.60/data.yml b/apps/adguardhome/0.107.62/data.yml similarity index 100% rename from apps/adguardhome/0.107.60/data.yml rename to apps/adguardhome/0.107.62/data.yml diff --git a/apps/adguardhome/0.107.60/docker-compose.yml b/apps/adguardhome/0.107.62/docker-compose.yml similarity index 91% rename from apps/adguardhome/0.107.60/docker-compose.yml rename to apps/adguardhome/0.107.62/docker-compose.yml index 548cd5822..580225525 100644 --- a/apps/adguardhome/0.107.60/docker-compose.yml +++ b/apps/adguardhome/0.107.62/docker-compose.yml @@ -1,31 +1,31 @@ -services: - adguardhome: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PLAIN_DNS_PORT}:53/tcp - - ${PLAIN_DNS_PORT}:53/udp - - ${DHCP_PORT1}:67/udp - - ${DHCP_PORT2}:68/udp - - ${HTTP_PORT}:80/tcp - - ${DOH_PORT}:443/tcp - - ${DOH_PORT}:443/udp - - ${PANEL_APP_PORT_HTTP}:3000/tcp - - ${DOT_PORT}:853/tcp - - ${QUIC_PORT1}:784/udp - - ${DOT_PORT}:853/udp - - ${QUIC_PORT2}:8853/udp - - ${DNS_CRYPT_PORT}:5443/tcp - - ${DNS_CRYPT_PORT}:5443/udp - volumes: - - ${WORK_PATH}:/opt/adguardhome/work - - ${CONFIG_PATH}:/opt/adguardhome/conf - image: adguard/adguardhome:v0.107.60 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true +services: + adguardhome: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - ${PLAIN_DNS_PORT}:53/tcp + - ${PLAIN_DNS_PORT}:53/udp + - ${DHCP_PORT1}:67/udp + - ${DHCP_PORT2}:68/udp + - ${HTTP_PORT}:80/tcp + - ${DOH_PORT}:443/tcp + - ${DOH_PORT}:443/udp + - ${PANEL_APP_PORT_HTTP}:3000/tcp + - ${DOT_PORT}:853/tcp + - ${QUIC_PORT1}:784/udp + - ${DOT_PORT}:853/udp + - ${QUIC_PORT2}:8853/udp + - ${DNS_CRYPT_PORT}:5443/tcp + - ${DNS_CRYPT_PORT}:5443/udp + volumes: + - ${WORK_PATH}:/opt/adguardhome/work + - ${CONFIG_PATH}:/opt/adguardhome/conf + image: adguard/adguardhome:v0.107.62 + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/ais-ninja/1.0.8/.env.sample b/apps/ais-ninja/1.0.8/.env.sample deleted file mode 100644 index 782ea9618..000000000 --- a/apps/ais-ninja/1.0.8/.env.sample +++ /dev/null @@ -1,22 +0,0 @@ -AIS_DB_PORT="3306" -AIS_PLATFORM="mysql" -ALI_ACCESS_ID="" -ALI_ACCESS_SECRET="" -ALI_SMS_PERMIT="" -ALI_SMS_SIGN="" -ALI_SMS_TEMPLATE="" -CONTAINER_NAME="ais-ninja" -EMAIL_SENDER="" -GOOGLE_CLIENT_ID="" -PANEL_APP_PORT_HTTP="40043" -PANEL_DB_HOST="mysql" -PANEL_DB_NAME="ais-ninja_Nk3BFS" -PANEL_DB_USER="ais-ninja_XpfeJ6" -PANEL_DB_USER_PASSWORD="ais-ninja_ZECQzW" -REDIS_HOST="redis" -REDIS_PASS="REDIS_PASSWORD" -REDIS_PORT=6379 -SMTP_HOST="" -SMTP_PASSWORD="" -SMTP_PORT="587" -SMTP_USER="" diff --git a/apps/ais-ninja/1.0.8/data.yml b/apps/ais-ninja/1.0.8/data.yml deleted file mode 100644 index 592bc18fa..000000000 --- a/apps/ais-ninja/1.0.8/data.yml +++ /dev/null @@ -1,163 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: service - default: mysql - envKey: AIS_PLATFORM - labelEn: Database Service - labelZh: 数据库服务 - params: - - envKey: AIS_DB_PORT - key: mysql - type: param - value: "3306" - - envKey: AIS_DB_PORT - key: postgresql - type: param - value: "5432" - required: true - type: apps - values: - - label: MySQL - value: mysql - - default: ais-ninja - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: ais-ninja - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: ais-ninja - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: "" - edit: true - envKey: REDIS_HOST - key: redis - labelEn: Redis Service - labelZh: Redis服务 - required: true - type: service - - default: "6379" - edit: true - envKey: REDIS_PORT - labelEn: Redis Service Port - labelZh: Redis服务端口 - required: true - rule: paramPort - type: number - - default: "" - edit: true - envKey: REDIS_PASS - labelEn: Redis Service Password - labelZh: Redis服务密码 - required: true - rule: paramCommon - type: password - - default: 40043 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: "" - edit: true - envKey: SMTP_HOST - labelEn: SMTP HOST - labelZh: SMTP 主机 - required: false - rule: paramExtUrl - type: text - - default: "587" - edit: true - envKey: SMTP_PORT - labelEn: SMTP Port - labelZh: SMTP 端口 - required: false - rule: paramPort - type: number - - default: "" - edit: true - envKey: EMAIL_SENDER - labelEn: Email service sender email address - labelZh: 邮箱服务发送方邮箱地址 - required: false - type: text - - default: "" - edit: true - envKey: SMTP_USER - labelEn: Email service user name - labelZh: 邮箱服务用户名 - required: false - type: text - - default: "" - edit: true - envKey: SMTP_PASSWORD - labelEn: Email service password - labelZh: 邮箱服务密码 - required: false - rule: paramCommon - type: password - - default: "" - edit: true - envKey: GOOGLE_CLIENT_ID - labelEn: Google login client_id - labelZh: 谷歌登录的client_id - required: false - type: text - - default: "" - edit: true - envKey: ALI_ACCESS_ID - labelEn: Alibaba Cloud accessKey ID - labelZh: 阿里云accessKey ID - required: false - type: text - - default: "" - edit: true - envKey: ALI_ACCESS_SECRET - labelEn: Alibaba Cloud accessKeySecret - labelZh: 阿里云 accessKeySecret - required: false - type: text - - default: "" - edit: true - envKey: ALI_SMS_PERMIT - labelEn: Enable mobile sign-in registration (true or false) - labelZh: 启用手机登录注册(true or false) - required: false - type: text - - default: "" - edit: true - envKey: ALI_SMS_SIGN - labelEn: Alibaba Cloud SMS verification code service signature - labelZh: 阿里云短信验证码服务签名 - required: false - type: text - - default: "" - edit: true - envKey: ALI_SMS_TEMPLATE - labelEn: Alibaba Cloud verification code SMS template, which must include {code} - labelZh: 阿里云验证码短信模板,需要包含 {code} - required: false - type: text diff --git a/apps/ais-ninja/1.0.8/docker-compose.yml b/apps/ais-ninja/1.0.8/docker-compose.yml deleted file mode 100644 index b00575e94..000000000 --- a/apps/ais-ninja/1.0.8/docker-compose.yml +++ /dev/null @@ -1,34 +0,0 @@ -services: - ais-ninja: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - environment: - DATABASE_NAME: ${PANEL_DB_NAME} - DATABASE_PORT: ${AIS_DB_PORT} - DATABASE_HOST: ${PANEL_DB_HOST} - DATABASE_USER: ${PANEL_DB_USER} - DATABASE_PASSWORD: ${PANEL_DB_USER_PASSWORD} - DATABASE_SYNC: 'true' - REDIS_URL: redis://:${REDIS_PASS}@${REDIS_HOST}:${REDIS_PORT}/0 - EMAIL_HOST: ${SMTP_HOST} - EMAIL_PORT: ${SMTP_PORT} - EMAIL_FROM: ${EMAIL_SENDER} - EMAIL_AUTH_USER: ${SMTP_USER} - EMAIL_AUTH_PASS: ${SMTP_PASSWORD} - SOCIAL_GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID} - ALI_ACCESS_KEY_ID: ${ALI_ACCESS_ID} - ALI_ACCESS_KEY_SECRET: ${ALI_ACCESS_SECRET} - ALI_SMS_ENABLE: ${ALI_SMS_PERMIT} - ALI_SMS_SIGN_NAME: ${ALI_SMS_SIGN} - ALI_SMS_TEMPLATE_CODE: ${ALI_SMS_TEMPLATE} - image: jarvis2f/ais-ninja:v1.0.8 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/ais-ninja/README.md b/apps/ais-ninja/README.md deleted file mode 100644 index 103acef48..000000000 --- a/apps/ais-ninja/README.md +++ /dev/null @@ -1,200 +0,0 @@ -# 使用说明 -- 管理员账户密码请通过查看容器日志获取; -- 访问地址加`/admin`即是管理员面板。 - -# 原始相关 - -# ais-ninja - -[English README]([README_en.md](https://github.com/jarvis2f/ais-ninja/blob/main/README_en.md)) - -## 介绍 - -![intro.gif](https://github.com/jarvis2f/ais-ninja/raw/main/doc%2Fintro.gif) - -ais-ninja 是一个基于 chatgpt 的 Web 应用程序。它基于 [ChatGpt-Web](https://github.com/79E/ChatGpt-Web). - -* 重构了后端代码。 -* 多语言支持。 -* 支持插件系统。 - -## 插件列表 - -> 欢迎贡献你开发的插件,如何开发可以查看 [插件开发文档](#插件开发)。 - -| 插件名称 | 插件介绍 | -|----------------------------------------|-------------------| -| [Baidu Search](plugins%2Fbaidu-search) | 百度搜索 | -| [DuckDuckGo](plugins%2FDuckDuckGo) | DuckDuckGo 搜索 | -| [Google Search](plugins%2Fgoogle) | 谷歌搜索 | -| [imdb](plugins%2Fimdb) | IMDB电影搜索(API需要付费) | -| [internet](plugins%2Finternet) | 联网插件 | -| [ipinfo.io](plugins%2Fipinfo.io) | ip 信息查询 | -| [newsdata.io](plugins%2Fnewsdata.io) | 新闻查询 | -| [seniverse](plugins%2Fseniverse) | 天气查询 | -| [themoviedb](plugins%2Fthemoviedb) | 电影信息查询 | - -## 部署 - -### docker - -```shell -docker run -d \ - --name ais-ninja \ - --hostname ais-ninja \ - -p 6789:80 \ - -e PUID=0 \ - -e DATABASE_NAME=ais_ninja \ - -e DATABASE_PORT=3306 \ - -e DATABASE_HOST=host \ - -e DATABASE_USER=root \ - -e DATABASE_PASSWORD=123456 \ - -e DATABASE_SYNC='true' \ - -e REDIS_URL=redis://${url}:6379/0 \ - jarvis2f/ais-ninja:v1.0.2 -``` - -### docker-compose - -1. 创建文件夹 `ais_ninja` 创建 `docker-compose.yml` 文件. - - ```shell - mkdir ais.ninja && cd ais.ninja - touch docker-compose.yml - ``` - -2. 复制 [docker-compose.yml](https://github.com/jarvis2f/ais-ninja/blob/main/deploy/docker-compose.yml) 到 `docker-compose.yml` 文件中 -3. 修改 `docker-compose.yml` 中的环境变量 -4. 运行 `docker-compose up -d` 启动服务 - -运行 `docker logs ais-ninja-app` 查看日志。如果看到如下日志,则说明服务启动成功。首次启动会生成默认管理员帐户和密码。 - -```shell -[12:47:52.887] INFO (43): Logger initialized: info -[12:47:57.798] INFO (config/43): Config file path: /app/server/config.json -[12:47:58.308] INFO (db/43): Database connected -[12:47:58.822] INFO (db/43): Database synced -[12:47:58.832] INFO (redis/43): Redis connected -[12:47:58.851] WARN (openai/43): No OpenAI tokens provided -[12:47:58.851] INFO (app/43): OpenAI clients initialized -[12:47:58.860] INFO (app/43): Server running on port 5174 -[12:47:58.861] INFO (db/43): Administrator initialized: ${administrator account} ${administrator password} -``` - -后台地址:`http://localhost:6789/admin` - -### 环境变量 - -> 本项目中的大部分配置项都是通过环境变量来设置的。 -> -> 你也可以修改 `config.json` 文件去设置环境变量。 -> 然后运行 `docker run -d --name ais-ninja -v /path/to/config.json:/app/server/config.json jarvis2f/ais-ninja:1.0.0` -> 启动服务. - -| Environment Variable | Description | -|---------------------------|---------------------------------------------------------------------------| -| `DATABASE_NAME` | 数据库名称 | -| `DATABASE_PORT` | 数据库端口 | -| `DATABASE_HOST` | 数据库地址 | -| `DATABASE_USER` | 数据库用户名 | -| `DATABASE_PASSWORD` | 数据库密码 | -| `DATABASE_SYNC` | 项目启动是否自动同步数据库表结构。 true or false | -| `REDIS_URL` | Redis 地址,格式: redis[s]://[[username][:password]@][host][:port][/db-number] | -| `EMAIL_ENABLE` | 启用邮箱登录注册 true or false | -| `EMAIL_HOST` | 邮箱服务地址 | -| `EMAIL_PORT` | 邮箱服务端口 | -| `EMAIL_FROM` | 邮箱服务发送方邮箱地址 | -| `EMAIL_AUTH_USER` | 邮箱服务用户名 | -| `EMAIL_AUTH_PASS` | 邮箱服务密码 | -| `SOCIAL_GOOGLE_CLIENT_ID` | 谷歌登录的client_id | -| `ALI_ACCESS_KEY_ID` | 阿里云 accessKeyId | -| `ALI_ACCESS_KEY_SECRET` | 阿里云 accessKeySecret | -| `ALI_SMS_ENABLE` | 启用手机登录注册 true or false | -| `ALI_SMS_SIGN_NAME` | 阿里云短信验证码服务签名 | -| `ALI_SMS_TEMPLATE_CODE` | 阿里云验证码短信模板,需要包含 {code} | - -## 插件开发 - -项目启动之后可以到后台 -> 系统配置中填写仓库地址:`https://github.com/jarvis2f/ais-ninja.git` -导入本仓库 [plugins](https://github.com/jarvis2f/ais-ninja/blob/main/plugins) 下的插件。 - -### 创建对话插件 - -可以先看下[ OpenAI 的文档](https://platform.openai.com/docs/guides/gpt/function-calling)。 -对话中会将插件中的方法以下方这种格式传递给 ChatGPT 的接口,ChatGPT 会返回需要调用的插件方法名称和参数。 - -```json -{ - "functions": [ - { - "name": "search_weather", - "description": "Query china real time weather information from seniverse.com", - "parameters": { - "type": "object", - "properties": { - "location": { - "type": "string", - "description": "China Pinyin Location name, e.g. beijing" - } - }, - "required": [ - "location" - ] - } - } - ] -} -``` - -系统中一个插件可以有多个 function, 用户安装一个插件之后会把插件中的所有 function 传递给 ChatGPT。 -插件使用 JavaScript 编写,可以参考 [plugins](https://github.com/jarvis2f/ais-ninja/blob/main/plugins)中的代码。 -可以使用的库: - -* [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch) 发起网络请求 -* [dayjs](https://day.js.org/) 时间处理 -* [lodash](https://lodash.com/) 工具库 -* [jsdom](https://github.com/jsdom/jsdom) 操作 DOM -* [puppeteer-core](https://www.npmjs.com/package/puppeteer-core) 模拟浏览器 -* ais ais_ninja 提供的一些函数 - * ais.createCompletion 调用 OpenAI 的 Completion API - * ais.createChatCompletion 调用 OpenAI 的 Chat Completion API - * ais_progress(content:string) 不需要 require,返回给用户当前方法的调用进度 - -[plugins](./plugins) 目录格式: - -* `plugins/${plugin_name}/index.js` 插件代码 -* `plugins/${plugin_name}/desc.md` 插件介绍 -* `plugins/${plugin_name}/plugin.json` 插件信息 - -### 插件变量 - -可以将一些私有的 key 设为插件变量,这样就不会暴露在代码中。在 plugin.json 中的 variables 字段中定义变量。 - -```json -{ - "name": "weather", - "description": "Query china real time weather information from seniverse.com", - "variables": { - "SENIVERSE_KEY": "Your API Key" - } -} -``` - -在前台插件编辑中编写变量保存,然后就可以在代码中使用 `process.env.SENIVERSE_KEY` 获取变量。 - -### 查看插件日志 - -可以使用 `console.log` 打印日志。在插件页面中打开调试按钮,会将日志输出到浏览器的 console 中。 - -``` -📣📣📣function_call - [心知天气](search_weather)(ae9bc196-4bfe-43a9-8060-2d2e2ec601c5) -{ - "name": "10000__search_weather", - "arguments": "{\n\"location\": \"shanghai\"\n}" -} -📣📣📣function_response - []()(ae9bc196-4bfe-43a9-8060-2d2e2ec601c5) -{ - "status": "The API key is invalid.", - "status_code": "AP010003" -} -``` diff --git a/apps/ais-ninja/data.yml b/apps/ais-ninja/data.yml deleted file mode 100644 index 247e62743..000000000 --- a/apps/ais-ninja/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: ais-ninja -tags: - - AI / 大模型 -title: 基于 ChatGPT 的 Web 应用程序 -description: 基于 ChatGPT 的 Web 应用程序 -additionalProperties: - key: ais-ninja - name: ais-ninja - tags: - - AI - shortDescZh: 基于 ChatGPT 的 Web 应用程序 - shortDescEn: ChatGPT-based web applications - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/jarvis2f/ais-ninja - github: https://github.com/jarvis2f/ais-ninja - document: https://github.com/jarvis2f/ais-ninja diff --git a/apps/ais-ninja/latest/.env.sample b/apps/ais-ninja/latest/.env.sample deleted file mode 100644 index 782ea9618..000000000 --- a/apps/ais-ninja/latest/.env.sample +++ /dev/null @@ -1,22 +0,0 @@ -AIS_DB_PORT="3306" -AIS_PLATFORM="mysql" -ALI_ACCESS_ID="" -ALI_ACCESS_SECRET="" -ALI_SMS_PERMIT="" -ALI_SMS_SIGN="" -ALI_SMS_TEMPLATE="" -CONTAINER_NAME="ais-ninja" -EMAIL_SENDER="" -GOOGLE_CLIENT_ID="" -PANEL_APP_PORT_HTTP="40043" -PANEL_DB_HOST="mysql" -PANEL_DB_NAME="ais-ninja_Nk3BFS" -PANEL_DB_USER="ais-ninja_XpfeJ6" -PANEL_DB_USER_PASSWORD="ais-ninja_ZECQzW" -REDIS_HOST="redis" -REDIS_PASS="REDIS_PASSWORD" -REDIS_PORT=6379 -SMTP_HOST="" -SMTP_PASSWORD="" -SMTP_PORT="587" -SMTP_USER="" diff --git a/apps/ais-ninja/latest/data.yml b/apps/ais-ninja/latest/data.yml deleted file mode 100644 index 592bc18fa..000000000 --- a/apps/ais-ninja/latest/data.yml +++ /dev/null @@ -1,163 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_DB_HOST - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: service - default: mysql - envKey: AIS_PLATFORM - labelEn: Database Service - labelZh: 数据库服务 - params: - - envKey: AIS_DB_PORT - key: mysql - type: param - value: "3306" - - envKey: AIS_DB_PORT - key: postgresql - type: param - value: "5432" - required: true - type: apps - values: - - label: MySQL - value: mysql - - default: ais-ninja - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: ais-ninja - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: ais-ninja - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: "" - edit: true - envKey: REDIS_HOST - key: redis - labelEn: Redis Service - labelZh: Redis服务 - required: true - type: service - - default: "6379" - edit: true - envKey: REDIS_PORT - labelEn: Redis Service Port - labelZh: Redis服务端口 - required: true - rule: paramPort - type: number - - default: "" - edit: true - envKey: REDIS_PASS - labelEn: Redis Service Password - labelZh: Redis服务密码 - required: true - rule: paramCommon - type: password - - default: 40043 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: "" - edit: true - envKey: SMTP_HOST - labelEn: SMTP HOST - labelZh: SMTP 主机 - required: false - rule: paramExtUrl - type: text - - default: "587" - edit: true - envKey: SMTP_PORT - labelEn: SMTP Port - labelZh: SMTP 端口 - required: false - rule: paramPort - type: number - - default: "" - edit: true - envKey: EMAIL_SENDER - labelEn: Email service sender email address - labelZh: 邮箱服务发送方邮箱地址 - required: false - type: text - - default: "" - edit: true - envKey: SMTP_USER - labelEn: Email service user name - labelZh: 邮箱服务用户名 - required: false - type: text - - default: "" - edit: true - envKey: SMTP_PASSWORD - labelEn: Email service password - labelZh: 邮箱服务密码 - required: false - rule: paramCommon - type: password - - default: "" - edit: true - envKey: GOOGLE_CLIENT_ID - labelEn: Google login client_id - labelZh: 谷歌登录的client_id - required: false - type: text - - default: "" - edit: true - envKey: ALI_ACCESS_ID - labelEn: Alibaba Cloud accessKey ID - labelZh: 阿里云accessKey ID - required: false - type: text - - default: "" - edit: true - envKey: ALI_ACCESS_SECRET - labelEn: Alibaba Cloud accessKeySecret - labelZh: 阿里云 accessKeySecret - required: false - type: text - - default: "" - edit: true - envKey: ALI_SMS_PERMIT - labelEn: Enable mobile sign-in registration (true or false) - labelZh: 启用手机登录注册(true or false) - required: false - type: text - - default: "" - edit: true - envKey: ALI_SMS_SIGN - labelEn: Alibaba Cloud SMS verification code service signature - labelZh: 阿里云短信验证码服务签名 - required: false - type: text - - default: "" - edit: true - envKey: ALI_SMS_TEMPLATE - labelEn: Alibaba Cloud verification code SMS template, which must include {code} - labelZh: 阿里云验证码短信模板,需要包含 {code} - required: false - type: text diff --git a/apps/ais-ninja/latest/docker-compose.yml b/apps/ais-ninja/latest/docker-compose.yml deleted file mode 100644 index 56d8d3d91..000000000 --- a/apps/ais-ninja/latest/docker-compose.yml +++ /dev/null @@ -1,34 +0,0 @@ -services: - ais-ninja: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - environment: - DATABASE_NAME: ${PANEL_DB_NAME} - DATABASE_PORT: ${AIS_DB_PORT} - DATABASE_HOST: ${PANEL_DB_HOST} - DATABASE_USER: ${PANEL_DB_USER} - DATABASE_PASSWORD: ${PANEL_DB_USER_PASSWORD} - DATABASE_SYNC: 'true' - REDIS_URL: redis://:${REDIS_PASS}@${REDIS_HOST}:${REDIS_PORT}/0 - EMAIL_HOST: ${SMTP_HOST} - EMAIL_PORT: ${SMTP_PORT} - EMAIL_FROM: ${EMAIL_SENDER} - EMAIL_AUTH_USER: ${SMTP_USER} - EMAIL_AUTH_PASS: ${SMTP_PASSWORD} - SOCIAL_GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID} - ALI_ACCESS_KEY_ID: ${ALI_ACCESS_ID} - ALI_ACCESS_KEY_SECRET: ${ALI_ACCESS_SECRET} - ALI_SMS_ENABLE: ${ALI_SMS_PERMIT} - ALI_SMS_SIGN_NAME: ${ALI_SMS_SIGN} - ALI_SMS_TEMPLATE_CODE: ${ALI_SMS_TEMPLATE} - image: jarvis2f/ais-ninja:latest - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/ais-ninja/logo.png b/apps/ais-ninja/logo.png deleted file mode 100644 index 9cec3e62d1817bf3fe702d0d21ccdd15beb049a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4768 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

!}0k@$uIak@e=yjlY=N3BnWaKW~gk*dW)%cD3KH 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 注意:我们将项目从 SRS Stack 重命名为 Oryx,因为 AI 助手仅需一个新的名称来识别SRS 和 SRS Stack。AI 助手对 SRS 和 SRS Stack 混淆不清。 + +Oryx 让您轻松创建在线视频服务。它使用 Go、Reactjs、SRS、FFmpeg 和 WebRTC 构建。支持 RTMP、WebRTC、HLS、HTTP-FLV 和 SRT 等协议。提供认证、多平台直播、录制、转码、虚拟直播活动、自动 HTTPS 以及易于使用的 HTTP Open API 等功能。 + +[![](https://ossrs.io/lts/en-us/img/Oryx-5-sd.png?v=1)](https://ossrs.io/lts/en-us/img/Oryx-5-hd.png) + +> 注意:有关 Oryx 的更多详情,请访问 [link](https://www.figma.com/file/Ju5h2DZeJMzUtx5k7D0Oak/Oryx). + +## Usage + +在一个 docker 中运行 Oryx,然后在浏览器中打开 http://localhost : + +```bash +docker run --restart always -d -it --name oryx -v $HOME/data:/data \ + -p 80:2022 -p 443:2443 -p 1935:1935 -p 8000:8000/udp -p 10080:10080/udp \ + ossrs/oryx:5 +``` + +> 重要提示:重启容器时为避免数据丢失,请挂载 `/data` 卷。例如,如果你将 `/data` 挂载到 `$HOME/data`,所有数据都将存储在 `$HOME/data` 文件夹中。请确保根据你希望的目录进行修改 + +> 重要:在浏览器中使用 WebRTC WHIP 时,请避免使用 localhost 或 127.0.0.1,而是使用私有 IP(例如,https://192.168.3.85), +> 公共 IP(例如,https://136.12.117.13),或域名(例如,https://your-domain.com)。要设置 HTTPS, +> 请参阅[这篇帖子](https://blog.ossrs.io/how-to-secure-srs-with-lets-encrypt-by-1-click-cb618777639f)。 + +> 注意:在中国,使用 `registry.cn-hangzhou.aliyuncs.com/ossrs/oryx:5` 来加速 Docker 拉取过程 +> 并确保设置了正确的语言。 + +Oryx 使用的端口: + +* `80/tcp`: HTTP 端口,您也可以使用`2022`代替,例如`-p 2022:2022`等。 +* `443/tcp`: HTTPS 端口,您也可以使用`2443`代替,例如`-p 2443:2443`等。 +* `1935/tcp`: RTMP 端口,用于支持通过 RTMP 将流发布到 Oryx。 +* `8000/udp`: WebRTC UDP 端口,用于传输 WebRTC 媒体数据,如 RTP 数据包。 +* `10080/udp`: SRT UDP 端口,用于通过 SRT 协议支持发布流。 + +您可以修改 Oryx 的卷并将其导向不同的目录。 + +* `/data` 全局数据目录。 + * `.well-known` Let's Encrypt ACME 挑战的目录 + * `config` 用于存储密码、srs/redis/nginx/prometheus 配置以及 SSL 文件的.env 文件。 + * `dvr` dvr 存储目录,保存 dvr 文件。 + * `lego` LEGO Let's Encrypt ACME 挑战目录。 + * `record` 记录存储目录,保存记录文件。 + * `redis` Redis 数据目录,发布密钥和记录配置。 + * `signals` 信号存储目录,保存信号文件。 + * `upload` 上传存储目录,保存上传文件。 + * `vlive` 虚拟直播存储目录,保存视频文件。 + * `transcript` 同步字幕存储目录,保存字幕文件。 + * `nginx-cache` Nginx 缓存存储目录,保存缓存文件。 + * `srs-s3-bucket` AWS S3 兼容存储的挂载目录。 + +You can use environment variables to modify the settings. + +* `MGMT_PASSWORD`: 管理员密码。 +* `REACT_APP_LOCALE`: 国际化配置,`en` 或 `zh`,默认为 `en`。 + +> 注意:`MGMT_PASSWORD` 也保存在 `/data/config/.env` 中,您可以自行修改。 + +> 要访问更多环境变量,请参阅[环境](DEVELOPER.md#environments)部分。 + +## 赞助 + +您需要我们提供更多帮助吗?通过成为 SRS 的赞助商或支持者,我们可以为您提供所需的: + +* 赞助者:每月 5 美元,通过 Discord 进行在线文本聊天支持。 +* 赞助:每月 100 元,提供在线会议支持,每月一次 1 小时会议。 + +请访问 [OpenCollective](https://opencollective.com/srs-server) 成为赞助者或支持者,并发送 +在 [Discord](https://discord.gg/bQUPDRqy79)上直接给我发消息。我们目前正为用户提供支持。 + +[![](https://opencollective.com/srs-server/backers.svg?width=800&button=false)](https://opencollective.com/srs-server) + +我们致力于建立一个非营利的开源社区,旨在帮助全球开发者创建您自己的高质量流媒体和 RTC 平台,以支持您的业务。 + +## FAQ + +1. [English FAQ](https://ossrs.io/lts/en-us/faq-oryx) +1. [中文 FAQ](https://ossrs.net/lts/zh-cn/faq-oryx) + +## Tutorials + +- [x] Getting Started: [Blog](https://blog.ossrs.io/how-to-setup-a-video-streaming-service-by-1-click-e9fe6f314ac6), [EN](https://ossrs.io/lts/en-us/docs/v6/doc/getting-started-stack), [CN](https://ossrs.net/lts/zh-cn/docs/v5/doc/getting-started-stack). +- [x] Support WordPress Plugin: [Blog](https://blog.ossrs.io/publish-your-srs-livestream-through-wordpress-ec18dfae7d6f), [EN](https://ossrs.io/lts/en-us/blog/WordPress-Plugin), [CN](https://ossrs.net/lts/zh-cn/blog/WordPress-Plugin) or [WordPress Plugin](https://wordpress.org/plugins/srs-player). +- [x] Support Automatic HTTPS: [Blog](https://blog.ossrs.io/how-to-secure-srs-with-lets-encrypt-by-1-click-cb618777639f), [EN](https://ossrs.io/lts/en-us/blog/Oryx-Tutorial), [CN](https://ossrs.net/lts/zh-cn/blog/Oryx-HTTPS). +- [x] Support aaPanel to install on any linux: [Blog](https://blog.ossrs.io/how-to-setup-a-video-streaming-service-by-aapanel-9748ae754c8c), [EN](https://ossrs.io/lts/en-us/blog/BT-aaPanel), [CN](https://ossrs.net/lts/zh-cn/blog/BT-aaPanel). +- [x] Support DVR to local disk: [Blog](https://blog.ossrs.io/how-to-record-live-streaming-to-mp4-file-2aa792c35b25), [EN](https://ossrs.io/lts/en-us/blog/Record-Live-Streaming), [CN](https://mp.weixin.qq.com/s/axN_TPo-Gk_H7CbdqUud6g). +- [x] Support Virtual Live Streaming: [CN](https://mp.weixin.qq.com/s/I0Kmxtc24txpngO-PiR_tQ). +- [x] Support Stream IP Camera: [Blog](https://blog.ossrs.io/easily-stream-your-rtsp-ip-camera-to-youtube-twitch-or-facebook-c078db917149), [EN](http://ossrs.io/lts/en-us/blog/Stream-IP-Camera-Events), [CN](https://ossrs.net/lts/zh-cn/blog/Stream-IP-Camera-Events). +- [x] Support build small [HLS deliver CDN](https://github.com/ossrs/oryx/tree/main/scripts/nginx-hls-cdn) by Nginx. +- [x] Support Live Streaming: [CN](https://mp.weixin.qq.com/s/AKqVWIdk3SBD-6uiTMliyA). +- [x] Support Realtime SRT Streaming: [CN](https://mp.weixin.qq.com/s/HQb3gLRyJHHu56pnyHerxA). +- [x] Support DVR to Tencent Cloud Storage or VoD: [CN](https://mp.weixin.qq.com/s/UXR5EBKZ-LnthwKN_rlIjg). +- [x] Support Typecho Plugin: [CN](https://github.com/ossrs/Typecho-Plugin-SrsPlayer). +- [x] Support live stream transcoding: [Blog](https://blog.ossrs.io/efficient-live-streaming-transcoding-for-reducing-bandwidth-and-saving-costs-39bd001af02d), [EN](https://ossrs.io/lts/en-us/blog/Live-Transcoding), [CN](https://ossrs.net/lts/zh-cn/blog/Live-Transcoding). +- [x] Support transcription for converting speech to text: [Blog](https://blog.ossrs.io/revolutionizing-live-streams-with-ai-transcription-creating-accessible-multilingual-subtitles-1e902ab856bd), [EN](https://ossrs.io/lts/en-us/blog/live-streams-transcription), [CN](https://ossrs.net/lts/zh-cn/blog/live-streams-transcription). +- [x] Support AI assistant for live room: [Blog](https://blog.ossrs.io/transform-your-browser-into-a-personal-voice-driven-gpt-ai-assistant-with-srs-stack-13e28adf1e18), [EN](https://ossrs.io/lts/en-us/blog/browser-voice-driven-gpt), [CN](https://ossrs.net/lts/zh-cn/blog/live-streams-transcription) +- [x] Support video dubbing for multiple languages: [Blog](https://blog.ossrs.io/expand-your-global-reach-with-srs-stack-effortless-video-translation-and-dubbing-solutions-544e1db671c2), [EN](https://ossrs.io/lts/en-us/blog/browser-voice-driven-gpt), [CN](https://ossrs.net/lts/zh-cn/blog/live-streams-transcription) +- [x] Support OCR for video stream: [Blog](https://blog.ossrs.io/leveraging-openai-for-ocr-and-object-recognition-in-video-streams-using-oryx-e4d575d0ca1f), [EN](https://ossrs.io/lts/en-us/blog/ocr-video-streams), [CN](https://ossrs.net/lts/zh-cn/blog/ocr-video-streams) + +Other more use scenarios is on the way, please read [this post](https://github.com/ossrs/srs/issues/2856#lighthouse). + +## Features + +The features that we're developing: + +- [x] A mgmt support authentication and automatic updates. +- [x] Run SRS in docker, query status by docker and SRS API. +- [x] Support publish by RTMP/WebRTC, play by RTMP/HTTP-FLV/HLS/WebRTC. +- [x] SRS container use docker logs `json-file` and rotate for logging. +- [x] Support high-resolution and realtime(200~500ms) live streaming by SRT. +- [x] Run SRS hooks in docker, to callback by SRS server. +- [x] Support publish by SRT, play by RTMP/HTTP-FLV/HLS/WebRTC/SRT. +- [x] Change redis port and use randomly password. +- [x] Support integrity with tencent cloud VoD. +- [x] Support restreaming to multiple platforms. +- [x] Support WordPress Plugin: SrsPlayer. +- [x] Support aaPanel to install on any linux. +- [x] Support DVR to local disk. +- [x] Support upgrade to latest version manually. +- [x] Support HTTPS by let's encrypt with LEGO. +- [x] Support virtual live streaming, covert file or other resource to live. +- [x] Support self-host HLS CDN, to serve 10k+ viewers. +- [x] Support Typecho Plugin: Typecho-Plugin-SrsPlayer. +- [x] Support DVR to TencentCloud storage. +- [x] Support pull RTSP from IP Camera and stream to YouTube/Twitch/Facebook. +- [x] Support live streaming transcoding by FFmpeg, see [#2869](https://github.com/ossrs/srs/issues/2869). +- [x] Support transcription for converting speech to text. +- [x] Support AI assistant for live room. +- [x] Support video dubbing for multiple languages. +- [ ] Support limit the streaming duration to limit the fee. +- [ ] Support GB28181 by SRS 5.0 container. +- [ ] Support WebRTC face to face chat, see [#2857](https://github.com/ossrs/srs/issues/2857). +- [ ] Support WebRTC video chat room, see [#2924](https://github.com/ossrs/srs/issues/2924). +- [ ] Support a set of tools for developer, see [#2891](https://github.com/ossrs/srs/issues/2891). +- [ ] Collect logs of mgmt and containers together. +- [ ] Stop, restart and upgrade containers. +- [ ] Support logrotate to manage the logs. +- [ ] Enhance prometheus API with authentication. +- [ ] Integrate with prometheus and node-exporter. + +## License + +Oryx is an open-source project, licensed under the [MIT](https://spdx.org/licenses/MIT.html) license. + +We also used the following open-source projects: + +* [FFmpeg](https://ffmpeg.org/): A complete, cross-platform solution to record, convert and stream audio and video. +* [Redis](https://redis.io/): Redis is an in-memory data store used by millions of developers as a cache, vector database, document database, streaming engine, and message broker. +* [youtube-dl](https://github.com/ytdl-org/youtube-dl): Command-line program to download videos from YouTube.com and other video sites. + +Other frameworks we used: + +* [Reactjs](https://react.dev/): The library for web and native user interfaces. +* [Go](https://golang.org/): Build simple, secure, scalable systems with Go. + +## Developer + +For development, please refer to the [Environments](DEVELOPER.md) about the API and architecture. + +2022.11 diff --git a/apps/oryx/data.yml b/apps/oryx/data.yml new file mode 100644 index 000000000..d9c9384aa --- /dev/null +++ b/apps/oryx/data.yml @@ -0,0 +1,13 @@ +additionalProperties: + key: oryx + name: oryx + tags: + - Local + shortDescZh: 开源音视频服务器 + shortDescEn: Open-source audio and video server + type: tool + crossVersionUpdate: true + limit: 1 + website: https://ossrs.net/oryx + github: https://github.com/ossrs/oryx + document: https://ossrs.net/lts/zh-cn/docs/v6/doc/getting-started-oryx \ No newline at end of file diff --git a/apps/oryx/logo.png b/apps/oryx/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4a53371dac41d78bb95ab9f0acbe0870da175660 GIT binary patch literal 18968 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 /etc/timezone -RUN dpkg-reconfigure -f noninteractive tzdata -RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local - -# install dependencies -RUN apt-get update && apt-get install -y --no-install-recommends \ - curl \ - unzip \ - build-essential \ - libxml2-dev \ - libssl-dev \ - libbz2-dev \ - libcurl4-openssl-dev \ - libjpeg-dev \ - libpng-dev \ - libwebp-dev \ - libfreetype6-dev \ - libxpm-dev \ - libgmp-dev \ - libmcrypt-dev \ - libreadline-dev \ - libxslt1-dev \ - libonig-dev \ - libzip-dev \ - libc-client-dev \ - libkrb5-dev \ - libmemcached-dev \ - libmagickwand-dev --no-install-recommends \ - libicu-dev && \ - rm -rf /var/lib/apt/lists/* - - - -# memcached -RUN pecl install memcached -RUN docker-php-ext-enable memcached - -# mcrypt -RUN pecl install mcrypt -RUN docker-php-ext-enable mcrypt - -# redis -RUN pecl install redis -RUN docker-php-ext-enable redis - -#pecl temporarily does not support PHP8.1 api installation rar -#Reference Links :https://stackoverflow.com/questions/73564424/error-while-installing-php-rar-extension-on-ubuntu-server -# rar -#RUN pecl install rar -#RUN docker-php-ext-enable rar - -# configure -RUN docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg --with-webp \ -&& docker-php-ext-configure intl \ -&& docker-php-ext-configure mysqli --with-mysqli=mysqlnd \ -&& docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd \ -&& docker-php-ext-configure zip \ -&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ -&& docker-php-ext-install -j "$(nproc)" \ - gd \ - intl \ - mysqli \ - pdo_mysql \ - zip \ - imap \ - fileinfo \ - xsl \ - bcmath \ - gettext \ - exif \ - curl \ - mbstring - -# install imagick -RUN pecl install imagick -RUN docker-php-ext-enable imagick - -RUN echo "extension=redis.so" >> /usr/local/etc/php/php.ini - -WORKDIR /www - - +#Reference Links :https://github.com/docker-library/php/issues/926#issuecomment-567230723 + +FROM php:8.1.32-fpm + +ARG UNAME=www-data +ARG UGROUP=www-data +ARG UID=1000 +ARG GID=1000 + +RUN usermod --uid $UID $UNAME +RUN groupmod --gid $GID $UGROUP + +# define timezone +RUN echo "Asia/Shanghai" > /etc/timezone +RUN dpkg-reconfigure -f noninteractive tzdata +RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local + +# install dependencies +RUN apt-get update && apt-get install -y --no-install-recommends \ + curl \ + unzip \ + build-essential \ + libxml2-dev \ + libssl-dev \ + libbz2-dev \ + libcurl4-openssl-dev \ + libjpeg-dev \ + libpng-dev \ + libwebp-dev \ + libfreetype6-dev \ + libxpm-dev \ + libgmp-dev \ + libmcrypt-dev \ + libreadline-dev \ + libxslt1-dev \ + libonig-dev \ + libzip-dev \ + libc-client-dev \ + libkrb5-dev \ + libmemcached-dev \ + libmagickwand-dev --no-install-recommends \ + libicu-dev && \ + rm -rf /var/lib/apt/lists/* + + + +# memcached +RUN pecl install memcached +RUN docker-php-ext-enable memcached + +# mcrypt +RUN pecl install mcrypt +RUN docker-php-ext-enable mcrypt + +# redis +RUN pecl install redis +RUN docker-php-ext-enable redis + +#pecl temporarily does not support PHP8.1 api installation rar +#Reference Links :https://stackoverflow.com/questions/73564424/error-while-installing-php-rar-extension-on-ubuntu-server +# rar +#RUN pecl install rar +#RUN docker-php-ext-enable rar + +# configure +RUN docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg --with-webp \ +&& docker-php-ext-configure intl \ +&& docker-php-ext-configure mysqli --with-mysqli=mysqlnd \ +&& docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd \ +&& docker-php-ext-configure zip \ +&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ +&& docker-php-ext-install -j "$(nproc)" \ + gd \ + intl \ + mysqli \ + pdo_mysql \ + zip \ + imap \ + fileinfo \ + xsl \ + bcmath \ + gettext \ + exif \ + curl \ + mbstring + +# install imagick +RUN pecl install imagick +RUN docker-php-ext-enable imagick + +RUN echo "extension=redis.so" >> /usr/local/etc/php/php.ini + +WORKDIR /www + + diff --git a/apps/php-unofficial/8.1.17/data.yml b/apps/php-unofficial/8.1.32/data.yml similarity index 100% rename from apps/php-unofficial/8.1.17/data.yml rename to apps/php-unofficial/8.1.32/data.yml diff --git a/apps/php-unofficial/8.1.17/data/php-fpm.conf b/apps/php-unofficial/8.1.32/data/php-fpm.conf similarity index 100% rename from apps/php-unofficial/8.1.17/data/php-fpm.conf rename to apps/php-unofficial/8.1.32/data/php-fpm.conf diff --git a/apps/php-unofficial/8.1.17/data/php.ini b/apps/php-unofficial/8.1.32/data/php.ini similarity index 100% rename from apps/php-unofficial/8.1.17/data/php.ini rename to apps/php-unofficial/8.1.32/data/php.ini diff --git a/apps/php-unofficial/8.1.17/docker-compose.yml b/apps/php-unofficial/8.1.32/docker-compose.yml similarity index 95% rename from apps/php-unofficial/8.1.17/docker-compose.yml rename to apps/php-unofficial/8.1.32/docker-compose.yml index cc47dbd4b..33bb0afc4 100644 --- a/apps/php-unofficial/8.1.17/docker-compose.yml +++ b/apps/php-unofficial/8.1.32/docker-compose.yml @@ -1,23 +1,23 @@ -services: - php81: - build: - context: . - dockerfile: Dockerfile - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:9000" - volumes: - - "./data/php.ini:/usr/local/etc/php/php.ini" - - "./data/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf" - - "${SITE_PATH}:/www" - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true - - +services: + php81: + build: + context: . + dockerfile: Dockerfile + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:9000" + volumes: + - "./data/php.ini:/usr/local/etc/php/php.ini" + - "./data/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf" + - "${SITE_PATH}:/www" + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true + + diff --git a/apps/php-unofficial/8.4.8/.env.sample b/apps/php-unofficial/8.4.8/.env.sample new file mode 100644 index 000000000..a63bae7ce --- /dev/null +++ b/apps/php-unofficial/8.4.8/.env.sample @@ -0,0 +1,3 @@ +CONTAINER_NAME="php8.1.17" +PANEL_APP_PORT_HTTP="9002" +SITE_PATH="/opt/1panel/apps/openresty/OpenResty/www" \ No newline at end of file diff --git a/apps/php-unofficial/8.4.8/Dockerfile b/apps/php-unofficial/8.4.8/Dockerfile new file mode 100644 index 000000000..bb1dd8cca --- /dev/null +++ b/apps/php-unofficial/8.4.8/Dockerfile @@ -0,0 +1,95 @@ +#Reference Links :https://github.com/docker-library/php/issues/926#issuecomment-567230723 + +FROM php:8.4.8-fpm + +ARG UNAME=www-data +ARG UGROUP=www-data +ARG UID=1000 +ARG GID=1000 + +RUN usermod --uid $UID $UNAME +RUN groupmod --gid $GID $UGROUP + +# define timezone +RUN echo "Asia/Shanghai" > /etc/timezone +RUN dpkg-reconfigure -f noninteractive tzdata +RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local + +# install dependencies +RUN apt-get update && apt-get install -y --no-install-recommends \ + curl \ + unzip \ + build-essential \ + libxml2-dev \ + libssl-dev \ + libbz2-dev \ + libcurl4-openssl-dev \ + libjpeg-dev \ + libpng-dev \ + libwebp-dev \ + libfreetype6-dev \ + libxpm-dev \ + libgmp-dev \ + libmcrypt-dev \ + libreadline-dev \ + libxslt1-dev \ + libonig-dev \ + libzip-dev \ + libc-client-dev \ + libkrb5-dev \ + libmemcached-dev \ + libmagickwand-dev --no-install-recommends \ + libicu-dev && \ + rm -rf /var/lib/apt/lists/* + + + +# memcached +RUN pecl install memcached +RUN docker-php-ext-enable memcached + +# mcrypt +RUN pecl install mcrypt +RUN docker-php-ext-enable mcrypt + +# redis +RUN pecl install redis +RUN docker-php-ext-enable redis + +#pecl temporarily does not support PHP8.1 api installation rar +#Reference Links :https://stackoverflow.com/questions/73564424/error-while-installing-php-rar-extension-on-ubuntu-server +# rar +#RUN pecl install rar +#RUN docker-php-ext-enable rar + +# configure +RUN docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg --with-webp \ +&& docker-php-ext-configure intl \ +&& docker-php-ext-configure mysqli --with-mysqli=mysqlnd \ +&& docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd \ +&& docker-php-ext-configure zip \ +&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ +&& docker-php-ext-install -j "$(nproc)" \ + gd \ + intl \ + mysqli \ + pdo_mysql \ + zip \ + imap \ + fileinfo \ + xsl \ + bcmath \ + gettext \ + exif \ + curl \ + mbstring + +# install imagick +RUN pecl install imagick +RUN docker-php-ext-enable imagick + +RUN echo "extension=redis.so" >> /usr/local/etc/php/php.ini + +WORKDIR /www + + diff --git a/apps/php-unofficial/8.4.8/data.yml b/apps/php-unofficial/8.4.8/data.yml new file mode 100644 index 000000000..6cc6c9796 --- /dev/null +++ b/apps/php-unofficial/8.4.8/data.yml @@ -0,0 +1,17 @@ +additionalProperties: + formFields: + - default: 9002 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: /opt/1panel/apps/openresty/OpenResty/www + edit: true + envKey: SITE_PATH + labelEn: Website directory file path + labelZh: 网站目录文件路径 + required: true + type: text diff --git a/apps/php-unofficial/8.4.8/data/php-fpm.conf b/apps/php-unofficial/8.4.8/data/php-fpm.conf new file mode 100644 index 000000000..f8f8fe3bf --- /dev/null +++ b/apps/php-unofficial/8.4.8/data/php-fpm.conf @@ -0,0 +1,469 @@ +; Start a new pool named 'www'. +; the variable $pool can be used in any directive and will be replaced by the +; pool name ('www' here) +[www] + +; Per pool prefix +; It only applies on the following directives: +; - 'access.log' +; - 'slowlog' +; - 'listen' (unixsocket) +; - 'chroot' +; - 'chdir' +; - 'php_values' +; - 'php_admin_values' +; When not set, the global prefix (or NONE) applies instead. +; Note: This directive can also be relative to the global prefix. +; Default Value: none +;prefix = /path/to/pools/$pool + +; Unix user/group of the child processes. This can be used only if the master +; process running user is root. It is set after the child process is created. +; The user and group can be specified either by their name or by their numeric +; IDs. +; Note: If the user is root, the executable needs to be started with +; --allow-to-run-as-root option to work. +; Default Values: The user is set to master process running user by default. +; If the group is not set, the user's group is used. +user = www-data +group = www-data + +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = 127.0.0.1:9000 + +; Set listen(2) backlog. +; Default Value: 511 (-1 on FreeBSD and OpenBSD) +;listen.backlog = 511 + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. The owner +; and group can be specified either by name or by their numeric IDs. +; Default Values: Owner is set to the master process running user. If the group +; is not set, the owner's group is used. Mode is set to 0660. +;listen.owner = www-data +;listen.group = www-data +;listen.mode = 0660 + +; When POSIX Access Control Lists are supported you can set them using +; these options, value is a comma separated list of user/group names. +; When set, listen.owner and listen.group are ignored +;listen.acl_users = +;listen.acl_groups = + +; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. +; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address +; must be separated by a comma. If this value is left blank, connections will be +; accepted from any ip address. +; Default Value: any +;listen.allowed_clients = 127.0.0.1 + +; Specify the nice(2) priority to apply to the pool processes (only if set) +; The value can vary from -19 (highest priority) to 20 (lower priority) +; Note: - It will only work if the FPM master process is launched as root +; - The pool processes will inherit the master process priority +; unless it specified otherwise +; Default Value: no set +; process.priority = -19 + +; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user +; or group is different than the master process user. It allows to create process +; core dump and ptrace the process for the pool user. +; Default Value: no +; process.dumpable = yes + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static - a fixed number (pm.max_children) of child processes; +; dynamic - the number of child processes are set dynamically based on the +; following directives. With this process management, there will be +; always at least 1 children. +; pm.max_children - the maximum number of children that can +; be alive at the same time. +; pm.start_servers - the number of children created on startup. +; pm.min_spare_servers - the minimum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is less than this +; number then some children will be created. +; pm.max_spare_servers - the maximum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is greater than this +; number then some children will be killed. +; pm.max_spawn_rate - the maximum number of rate to spawn child +; processes at once. +; ondemand - no children are created at startup. Children will be forked when +; new requests will connect. The following parameter are used: +; pm.max_children - the maximum number of children that +; can be alive at the same time. +; pm.process_idle_timeout - The number of seconds after which +; an idle process will be killed. +; Note: This value is mandatory. +pm = dynamic + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. The below defaults are based on a server without much resources. Don't +; forget to tweak pm.* to fit your needs. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 5 + +; The number of child processes created on startup. +; Note: Used only when pm is set to 'dynamic' +; Default Value: (min_spare_servers + max_spare_servers) / 2 +pm.start_servers = 2 + +; The desired minimum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.min_spare_servers = 1 + +; The desired maximum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.max_spare_servers = 3 + +; The number of rate to spawn child processes at once. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +; Default Value: 32 +;pm.max_spawn_rate = 32 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +;pm.process_idle_timeout = 10s; + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +;pm.max_requests = 500 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. It shows the following information: +; pool - the name of the pool; +; process manager - static, dynamic or ondemand; +; start time - the date and time FPM has started; +; start since - number of seconds since FPM has started; +; accepted conn - the number of request accepted by the pool; +; listen queue - the number of request in the queue of pending +; connections (see backlog in listen(2)); +; max listen queue - the maximum number of requests in the queue +; of pending connections since FPM has started; +; listen queue len - the size of the socket queue of pending connections; +; idle processes - the number of idle processes; +; active processes - the number of active processes; +; total processes - the number of idle + active processes; +; max active processes - the maximum number of active processes since FPM +; has started; +; max children reached - number of times, the process limit has been reached, +; when pm tries to start more children (works only for +; pm 'dynamic' and 'ondemand'); +; Value are updated in real time. +; Example output: +; pool: www +; process manager: static +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 62636 +; accepted conn: 190460 +; listen queue: 0 +; max listen queue: 1 +; listen queue len: 42 +; idle processes: 4 +; active processes: 11 +; total processes: 15 +; max active processes: 12 +; max children reached: 0 +; +; By default the status page output is formatted as text/plain. Passing either +; 'html', 'xml' or 'json' in the query string will return the corresponding +; output syntax. Example: +; http://www.foo.bar/status +; http://www.foo.bar/status?json +; http://www.foo.bar/status?html +; http://www.foo.bar/status?xml +; +; By default the status page only outputs short status. Passing 'full' in the +; query string will also return status for each pool process. +; Example: +; http://www.foo.bar/status?full +; http://www.foo.bar/status?json&full +; http://www.foo.bar/status?html&full +; http://www.foo.bar/status?xml&full +; The Full status returns for each process: +; pid - the PID of the process; +; state - the state of the process (Idle, Running, ...); +; start time - the date and time the process has started; +; start since - the number of seconds since the process has started; +; requests - the number of requests the process has served; +; request duration - the duration in µs of the requests; +; request method - the request method (GET, POST, ...); +; request URI - the request URI with the query string; +; content length - the content length of the request (only with POST); +; user - the user (PHP_AUTH_USER) (or '-' if not set); +; script - the main script called (or '-' if not set); +; last request cpu - the %cpu the last request consumed +; it's always 0 if the process is not in Idle state +; because CPU calculation is done when the request +; processing has terminated; +; last request memory - the max amount of memory the last request consumed +; it's always 0 if the process is not in Idle state +; because memory calculation is done when the request +; processing has terminated; +; If the process is in Idle state, then informations are related to the +; last request the process has served. Otherwise informations are related to +; the current request being served. +; Example output: +; ************************ +; pid: 31330 +; state: Running +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 63087 +; requests: 12808 +; request duration: 1250261 +; request method: GET +; request URI: /test_mem.php?N=10000 +; content length: 0 +; user: - +; script: /home/fat/web/docs/php/test_mem.php +; last request cpu: 0.00 +; last request memory: 0 +; +; Note: There is a real-time FPM status monitoring sample web page available +; It's available in: /usr/local/share/php/fpm/status.html +; +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;pm.status_path = /status + +; The address on which to accept FastCGI status request. This creates a new +; invisible pool that can handle requests independently. This is useful +; if the main pool is busy with long running requests because it is still possible +; to get the status before finishing the long running requests. +; +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Default Value: value of the listen option +;pm.status_listen = 127.0.0.1:9001 + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;ping.path = /ping + +; This directive may be used to customize the response of a ping request. The +; response is formatted as text/plain with a 200 response code. +; Default Value: pong +;ping.response = pong + +; The access log file +; Default: not set +;access.log = log/$pool.access.log + +; The access log format. +; The following syntax is allowed +; %%: the '%' character +; %C: %CPU used by the request +; it can accept the following format: +; - %{user}C for user CPU only +; - %{system}C for system CPU only +; - %{total}C for user + system CPU (default) +; %d: time taken to serve the request +; it can accept the following format: +; - %{seconds}d (default) +; - %{milliseconds}d +; - %{milli}d +; - %{microseconds}d +; - %{micro}d +; %e: an environment variable (same as $_ENV or $_SERVER) +; it must be associated with embraces to specify the name of the env +; variable. Some examples: +; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e +; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e +; %f: script filename +; %l: content-length of the request (for POST request only) +; %m: request method +; %M: peak of memory allocated by PHP +; it can accept the following format: +; - %{bytes}M (default) +; - %{kilobytes}M +; - %{kilo}M +; - %{megabytes}M +; - %{mega}M +; %n: pool name +; %o: output header +; it must be associated with embraces to specify the name of the header: +; - %{Content-Type}o +; - %{X-Powered-By}o +; - %{Transfert-Encoding}o +; - .... +; %p: PID of the child that serviced the request +; %P: PID of the parent of the child that serviced the request +; %q: the query string +; %Q: the '?' character if query string exists +; %r: the request URI (without the query string, see %q and %Q) +; %R: remote IP address +; %s: status (response code) +; %t: server time the request was received +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsulated in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %T: time the log has been written (the request has finished) +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsulated in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %u: remote user +; +; Default: "%R - %u %t \"%m %r\" %s" +;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{milli}d %{kilo}M %C%%" + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +;slowlog = log/$pool.log.slow + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; Depth of slow log stack trace. +; Default Value: 20 +;request_slowlog_trace_depth = 20 + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_terminate_timeout = 0 + +; The timeout set by 'request_terminate_timeout' ini option is not engaged after +; application calls 'fastcgi_finish_request' or when application has finished and +; shutdown functions are being called (registered via register_shutdown_function). +; This option will enable timeout limit to be applied unconditionally +; even in such cases. +; Default Value: no +;request_terminate_timeout_track_finished = no + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +;chdir = /var/www + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environment, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Decorate worker output with prefix and suffix containing information about +; the child that writes to the log and if stdout or stderr is used as well as +; log level and time. This options is used only if catch_workers_output is yes. +; Settings to "no" will output data as written to the stdout or stderr. +; Default value: yes +;decorate_workers_output = no + +; Clear environment in FPM workers +; Prevents arbitrary environment variables from reaching FPM worker processes +; by clearing the environment in workers before env vars specified in this +; pool configuration are added. +; Setting to "no" will make all environment variables available to PHP code +; via getenv(), $_ENV and $_SERVER. +; Default Value: yes +;clear_env = no + +; Limits the extensions of the main script FPM will allow to parse. This can +; prevent configuration mistakes on the web server side. You should only limit +; FPM to .php extensions to prevent malicious users to use other extensions to +; execute php code. +; Note: set an empty value to allow all extensions. +; Default Value: .php +;security.limit_extensions = .php .php3 .php4 .php5 .php7 + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /tmp +;env[TMPDIR] = /tmp +;env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr/local) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M diff --git a/apps/php-unofficial/8.4.8/data/php.ini b/apps/php-unofficial/8.4.8/data/php.ini new file mode 100644 index 000000000..a90451fe6 --- /dev/null +++ b/apps/php-unofficial/8.4.8/data/php.ini @@ -0,0 +1,1965 @@ +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; PHP's initialization file, generally called php.ini, is responsible for +; configuring many of the aspects of PHP's behavior. + +; PHP attempts to find and load this configuration from a number of locations. +; The following is a summary of its search order: +; 1. SAPI module specific location. +; 2. The PHPRC environment variable. (As of PHP 5.2.0) +; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) +; 4. Current working directory (except CLI) +; 5. The web server's directory (for SAPI modules), or directory of PHP +; (otherwise in Windows) +; 6. The directory from the --with-config-file-path compile time option, or the +; Windows directory (usually C:\windows) +; See the PHP docs for more specific information. +; https://php.net/configuration.file + +; The syntax of the file is extremely simple. Whitespace and lines +; beginning with a semicolon are silently ignored (as you probably guessed). +; Section headers (e.g. [Foo]) are also silently ignored, even though +; they might mean something in the future. + +; Directives following the section heading [PATH=/www/mysite] only +; apply to PHP files in the /www/mysite directory. Directives +; following the section heading [HOST=www.example.com] only apply to +; PHP files served from www.example.com. Directives set in these +; special sections cannot be overridden by user-defined INI files or +; at runtime. Currently, [PATH=] and [HOST=] sections only work under +; CGI/FastCGI. +; https://php.net/ini.sections + +; Directives are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; Directives are variables used to configure PHP or PHP extensions. +; There is no name validation. If PHP can't find an expected +; directive because it is not set or is mistyped, a default value will be used. + +; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one +; of the INI constants (On, Off, True, False, Yes, No and None) or an expression +; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a +; previously set variable or directive (e.g. ${foo}) + +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; ^ bitwise XOR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT + +; Boolean flags can be turned on using the values 1, On, True or Yes. +; They can be turned off using the values 0, Off, False or No. + +; An empty string can be denoted by simply not writing anything after the equal +; sign, or by using the None keyword: + +; foo = ; sets foo to an empty string +; foo = None ; sets foo to an empty string +; foo = "None" ; sets foo to the string 'None' + +; If you use constants in your value, and these constants belong to a +; dynamically loaded extension (either a PHP extension or a Zend extension), +; you may only use these constants *after* the line that loads the extension. + +;;;;;;;;;;;;;;;;;;; +; About this file ; +;;;;;;;;;;;;;;;;;;; +; PHP comes packaged with two INI files. One that is recommended to be used +; in production environments and one that is recommended to be used in +; development environments. + +; php.ini-production contains settings which hold security, performance and +; best practices at its core. But please be aware, these settings may break +; compatibility with older or less security conscience applications. We +; recommending using the production ini in production and testing environments. + +; php.ini-development is very similar to its production variant, except it is +; much more verbose when it comes to errors. We recommend using the +; development version only in development environments, as errors shown to +; application users can inadvertently leak otherwise secure information. + +; This is the php.ini-production INI file. + +;;;;;;;;;;;;;;;;;;; +; Quick Reference ; +;;;;;;;;;;;;;;;;;;; + +; The following are all the settings which are different in either the production +; or development versions of the INIs with respect to PHP's default behavior. +; Please see the actual settings later in the document for more details as to why +; we recommend these changes in PHP's behavior. + +; display_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; display_startup_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; error_reporting +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT + +; log_errors +; Default Value: Off +; Development Value: On +; Production Value: On + +; max_input_time +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) + +; output_buffering +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 + +; register_argc_argv +; Default Value: On +; Development Value: Off +; Production Value: Off + +; request_order +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" + +; session.gc_divisor +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 + +; session.sid_bits_per_character +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 + +; short_open_tag +; Default Value: On +; Development Value: Off +; Production Value: Off + +; variables_order +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS" + +; zend.exception_ignore_args +; Default Value: Off +; Development Value: Off +; Production Value: On + +; zend.exception_string_param_max_len +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 + +;;;;;;;;;;;;;;;;;;;; +; php.ini Options ; +;;;;;;;;;;;;;;;;;;;; +; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" +;user_ini.filename = ".user.ini" + +; To disable this feature set this option to an empty value +;user_ini.filename = + +; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) +;user_ini.cache_ttl = 300 + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +; https://php.net/engine +engine = On + +; This directive determines whether or not PHP will recognize code between +; tags as PHP source which should be processed as such. It is +; generally recommended that should be used and that this feature +; should be disabled, as enabling it may result in issues when generating XML +; documents, however this remains supported for backward compatibility reasons. +; Note that this directive does not control the would work. +; https://php.net/syntax-highlighting +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.default = #0000BB +;highlight.html = #000000 + +; If enabled, the request will be allowed to complete even if the user aborts +; the request. Consider enabling it if executing long requests, which may end up +; being interrupted by the user or a browser timing out. PHP's default behavior +; is to disable this feature. +; https://php.net/ignore-user-abort +;ignore_user_abort = On + +; Determines the size of the realpath cache to be used by PHP. This value should +; be increased on systems where PHP opens many files to reflect the quantity of +; the file operations performed. +; Note: if open_basedir is set, the cache is disabled +; https://php.net/realpath-cache-size +;realpath_cache_size = 4096k + +; Duration of time, in seconds for which to cache realpath information for a given +; file or directory. For systems with rarely changing files, consider increasing this +; value. +; https://php.net/realpath-cache-ttl +;realpath_cache_ttl = 120 + +; Enables or disables the circular reference collector. +; https://php.net/zend.enable-gc +zend.enable_gc = On + +; If enabled, scripts may be written in encodings that are incompatible with +; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such +; encodings. To use this feature, mbstring extension must be enabled. +;zend.multibyte = Off + +; Allows to set the default encoding for the scripts. This value will be used +; unless "declare(encoding=...)" directive appears at the top of the script. +; Only affects if zend.multibyte is set. +;zend.script_encoding = + +; Allows to include or exclude arguments from stack traces generated for exceptions. +; In production, it is recommended to turn this setting on to prohibit the output +; of sensitive information in stack traces +; Default Value: Off +; Development Value: Off +; Production Value: On +zend.exception_ignore_args = On + +; Allows setting the maximum string length in an argument of a stringified stack trace +; to a value between 0 and 1000000. +; This has no effect when zend.exception_ignore_args is enabled. +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 +; In production, it is recommended to set this to 0 to reduce the output +; of sensitive information in stack traces. +zend.exception_string_param_max_len = 0 + +;;;;;;;;;;;;;;;;; +; Miscellaneous ; +;;;;;;;;;;;;;;;;; + +; Decides whether PHP may expose the fact that it is installed on the server +; (e.g. by adding its signature to the Web server header). It is no security +; threat in any way, but it makes it possible to determine whether you use PHP +; on your server or not. +; https://php.net/expose-php +expose_php = On + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +; Maximum execution time of each script, in seconds +; https://php.net/max-execution-time +; Note: This directive is hardcoded to 0 for the CLI SAPI +max_execution_time = 30 + +; Maximum amount of time each script may spend parsing request data. It's a good +; idea to limit this time on productions servers in order to eliminate unexpectedly +; long running scripts. +; Note: This directive is hardcoded to -1 for the CLI SAPI +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) +; https://php.net/max-input-time +max_input_time = 60 + +; Maximum input variable nesting level +; https://php.net/max-input-nesting-level +;max_input_nesting_level = 64 + +; How many GET/POST/COOKIE input variables may be accepted +;max_input_vars = 1000 + +; How many multipart body parts (combined input variable and file uploads) may +; be accepted. +; Default Value: -1 (Sum of max_input_vars and max_file_uploads) +;max_multipart_body_parts = 1500 + +; Maximum amount of memory a script may consume +; https://php.net/memory-limit +memory_limit = 128M + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; This directive informs PHP of which errors, warnings and notices you would like +; it to take action for. The recommended way of setting values for this +; directive is through the use of the error level constants and bitwise +; operators. The error level constants are below here for convenience as well as +; some common settings and their meanings. +; By default, PHP is set to take action on all errors, notices and warnings EXCEPT +; those related to E_NOTICE and E_STRICT, which together cover best practices and +; recommended coding standards in PHP. For performance reasons, this is the +; recommend error reporting setting. Your production server shouldn't be wasting +; resources complaining about best practices and coding standards. That's what +; development servers and development settings are for. +; Note: The php.ini-development file has this setting as E_ALL. This +; means it pretty much reports everything which is exactly what you want during +; development and early testing. +; +; Error Level Constants: +; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) +; E_ERROR - fatal run-time errors +; E_RECOVERABLE_ERROR - almost fatal run-time errors +; E_WARNING - run-time warnings (non-fatal errors) +; E_PARSE - compile-time parse errors +; E_NOTICE - run-time notices (these are warnings which often result +; from a bug in your code, but it's possible that it was +; intentional (e.g., using an uninitialized variable and +; relying on the fact it is automatically initialized to an +; empty string) +; E_STRICT - run-time notices, enable to have PHP suggest changes +; to your code which will ensure the best interoperability +; and forward compatibility of your code +; E_CORE_ERROR - fatal errors that occur during PHP's initial startup +; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's +; initial startup +; E_COMPILE_ERROR - fatal compile-time errors +; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) +; E_USER_ERROR - user-generated error message +; E_USER_WARNING - user-generated warning message +; E_USER_NOTICE - user-generated notice message +; E_DEPRECATED - warn about code that will not work in future versions +; of PHP +; E_USER_DEPRECATED - user-generated deprecation warnings +; +; Common Values: +; E_ALL (Show all errors, warnings and notices including coding standards.) +; E_ALL & ~E_NOTICE (Show all errors, except for notices) +; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) +; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT +; https://php.net/error-reporting +error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT + +; This directive controls whether or not and where PHP will output errors, +; notices and warnings too. Error output is very useful during development, but +; it could be very dangerous in production environments. Depending on the code +; which is triggering the error, sensitive information could potentially leak +; out of your application such as database usernames and passwords or worse. +; For production environments, we recommend logging errors rather than +; sending them to STDOUT. +; Possible Values: +; Off = Do not display any errors +; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout = Display errors to STDOUT +; Default Value: On +; Development Value: On +; Production Value: Off +; https://php.net/display-errors +display_errors = Off + +; The display of errors which occur during PHP's startup sequence are handled +; separately from display_errors. We strongly recommend you set this to 'off' +; for production servers to avoid leaking configuration details. +; Default Value: On +; Development Value: On +; Production Value: Off +; https://php.net/display-startup-errors +display_startup_errors = Off + +; Besides displaying errors, PHP can also log errors to locations such as a +; server-specific log, STDERR, or a location specified by the error_log +; directive found below. While errors should not be displayed on productions +; servers they should still be monitored and logging is a great way to do that. +; Default Value: Off +; Development Value: On +; Production Value: On +; https://php.net/log-errors +log_errors = On + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line unless ignore_repeated_source is set true. +; https://php.net/ignore-repeated-errors +ignore_repeated_errors = Off + +; Ignore source of message when ignoring repeated messages. When this setting +; is On you will not log errors with repeated messages from different files or +; source lines. +; https://php.net/ignore-repeated-source +ignore_repeated_source = Off + +; If this parameter is set to Off, then memory leaks will not be shown (on +; stdout or in the log). This is only effective in a debug compile, and if +; error reporting includes E_WARNING in the allowed list +; https://php.net/report-memleaks +report_memleaks = On + +; This setting is off by default. +;report_zend_debug = 0 + +; Turn off normal error reporting and emit XML-RPC error XML +; https://php.net/xmlrpc-errors +;xmlrpc_errors = 0 + +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; When PHP displays or logs an error, it has the capability of formatting the +; error message as HTML for easier reading. This directive controls whether +; the error message is formatted as HTML or not. +; Note: This directive is hardcoded to Off for the CLI SAPI +; https://php.net/html-errors +;html_errors = On + +; If html_errors is set to On *and* docref_root is not empty, then PHP +; produces clickable error messages that direct to a page describing the error +; or function causing the error in detail. +; You can download a copy of the PHP manual from https://php.net/docs +; and change docref_root to the base URL of your local copy including the +; leading '/'. You must also specify the file extension being used including +; the dot. PHP's default behavior is to leave these settings empty, in which +; case no links to documentation are generated. +; Note: Never use this feature for production boxes. +; https://php.net/docref-root +; Examples +;docref_root = "/phpmanual/" + +; https://php.net/docref-ext +;docref_ext = .html + +; String to output before an error message. PHP's default behavior is to leave +; this setting blank. +; https://php.net/error-prepend-string +; Example: +;error_prepend_string = "" + +; String to output after an error message. PHP's default behavior is to leave +; this setting blank. +; https://php.net/error-append-string +; Example: +;error_append_string = "" + +; Log errors to specified file. PHP's default behavior is to leave this value +; empty. +; https://php.net/error-log +; Example: +;error_log = php_errors.log +; Log errors to syslog (Event Log on Windows). +;error_log = syslog + +; The syslog ident is a string which is prepended to every message logged +; to syslog. Only used when error_log is set to syslog. +;syslog.ident = php + +; The syslog facility is used to specify what type of program is logging +; the message. Only used when error_log is set to syslog. +;syslog.facility = user + +; Set this to disable filtering control characters (the default). +; Some loggers only accept NVT-ASCII, others accept anything that's not +; control characters. If your logger accepts everything, then no filtering +; is needed at all. +; Allowed values are: +; ascii (all printable ASCII characters and NL) +; no-ctrl (all characters except control characters) +; all (all characters) +; raw (like "all", but messages are not split at newlines) +; https://php.net/syslog.filter +;syslog.filter = ascii + +;windows.show_crt_warning +; Default value: 0 +; Development value: 0 +; Production value: 0 + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; + +; The separator used in PHP generated URLs to separate arguments. +; PHP's default setting is "&". +; https://php.net/arg-separator.output +; Example: +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; PHP's default setting is "&". +; NOTE: Every character in this directive is considered as separator! +; https://php.net/arg-separator.input +; Example: +;arg_separator.input = ";&" + +; This directive determines which super global arrays are registered when PHP +; starts up. G,P,C,E & S are abbreviations for the following respective super +; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty +; paid for the registration of these arrays and because ENV is not as commonly +; used as the others, ENV is not recommended on productions servers. You +; can still get access to the environment variables through getenv() should you +; need to. +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS"; +; https://php.net/variables-order +variables_order = "GPCS" + +; This directive determines which super global data (G,P & C) should be +; registered into the super global array REQUEST. If so, it also determines +; the order in which that data is registered. The values for this directive +; are specified in the same manner as the variables_order directive, +; EXCEPT one. Leaving this value empty will cause PHP to use the value set +; in the variables_order directive. It does not mean it will leave the super +; globals array REQUEST empty. +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" +; https://php.net/request-order +request_order = "GP" + +; This directive determines whether PHP registers $argv & $argc each time it +; runs. $argv contains an array of all the arguments passed to PHP when a script +; is invoked. $argc contains an integer representing the number of arguments +; that were passed when the script was invoked. These arrays are extremely +; useful when running scripts from the command line. When this directive is +; enabled, registering these variables consumes CPU cycles and memory each time +; a script is executed. For performance reasons, this feature should be disabled +; on production servers. +; Note: This directive is hardcoded to On for the CLI SAPI +; Default Value: On +; Development Value: Off +; Production Value: Off +; https://php.net/register-argc-argv +register_argc_argv = Off + +; When enabled, the ENV, REQUEST and SERVER variables are created when they're +; first used (Just In Time) instead of when the script starts. If these +; variables are not used within a script, having this directive on will result +; in a performance gain. The PHP directive register_argc_argv must be disabled +; for this directive to have any effect. +; https://php.net/auto-globals-jit +auto_globals_jit = On + +; Whether PHP will read the POST data. +; This option is enabled by default. +; Most likely, you won't want to disable this option globally. It causes $_POST +; and $_FILES to always be empty; the only way you will be able to read the +; POST data will be through the php://input stream wrapper. This can be useful +; to proxy requests or to process the POST data in a memory efficient fashion. +; https://php.net/enable-post-data-reading +;enable_post_data_reading = Off + +; Maximum size of POST data that PHP will accept. +; Its value may be 0 to disable the limit. It is ignored if POST data reading +; is disabled through enable_post_data_reading. +; https://php.net/post-max-size +post_max_size = 8M + +; Automatically add files before PHP document. +; https://php.net/auto-prepend-file +auto_prepend_file = + +; Automatically add files after PHP document. +; https://php.net/auto-append-file +auto_append_file = + +; By default, PHP will output a media type using the Content-Type header. To +; disable this, simply set it to be empty. +; +; PHP's built-in default media type is set to text/html. +; https://php.net/default-mimetype +default_mimetype = "text/html" + +; PHP's default character set is set to UTF-8. +; https://php.net/default-charset +default_charset = "UTF-8" + +; PHP internal character encoding is set to empty. +; If empty, default_charset is used. +; https://php.net/internal-encoding +;internal_encoding = + +; PHP input character encoding is set to empty. +; If empty, default_charset is used. +; https://php.net/input-encoding +;input_encoding = + +; PHP output character encoding is set to empty. +; If empty, default_charset is used. +; See also output_buffer. +; https://php.net/output-encoding +;output_encoding = + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; UNIX: "/path1:/path2" +;include_path = ".:/php/includes" +; +; Windows: "\path1;\path2" +;include_path = ".;c:\php\includes" +; +; PHP's default setting for include_path is ".;/path/to/php/pear" +; https://php.net/include-path + +; The root of the PHP pages, used only if nonempty. +; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root +; if you are running php as a CGI under any web server (other than IIS) +; see documentation for security issues. The alternate is to use the +; cgi.force_redirect configuration below +; https://php.net/doc-root +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +; https://php.net/user-dir +user_dir = + +; Directory in which the loadable extensions (modules) reside. +; https://php.net/extension-dir +;extension_dir = "./" +; On windows: +;extension_dir = "ext" + +; Directory where the temporary files should be placed. +; Defaults to the system default (see sys_get_temp_dir) +;sys_temp_dir = "/tmp" + +; Whether or not to enable the dl() function. The dl() function does NOT work +; properly in multithreaded servers, such as IIS or Zeus, and is automatically +; disabled on them. +; https://php.net/enable-dl +enable_dl = Off + +; cgi.force_redirect is necessary to provide security running PHP as a CGI under +; most web servers. Left undefined, PHP turns this on by default. You can +; turn it off here AT YOUR OWN RISK +; **You CAN safely turn this off for IIS, in fact, you MUST.** +; https://php.net/cgi.force-redirect +;cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. PHP's default behavior is to disable this feature. +;cgi.nph = 1 + +; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape +; (iPlanet) web servers, you MAY need to set an environment variable name that PHP +; will look for to know it is OK to continue execution. Setting this variable MAY +; cause security issues, KNOW WHAT YOU ARE DOING FIRST. +; https://php.net/cgi.redirect-status-env +;cgi.redirect_status_env = + +; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's +; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok +; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting +; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting +; of zero causes PHP to behave as before. Default is 1. You should fix your scripts +; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. +; https://php.net/cgi.fix-pathinfo +;cgi.fix_pathinfo=1 + +; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside +; of the web tree and people will not be able to circumvent .htaccess security. +;cgi.discard_path=1 + +; FastCGI under IIS supports the ability to impersonate +; security tokens of the calling client. This allows IIS to define the +; security context that the request runs under. mod_fastcgi under Apache +; does not currently support this feature (03/17/2002) +; Set to 1 if running under IIS. Default is zero. +; https://php.net/fastcgi.impersonate +;fastcgi.impersonate = 1 + +; Disable logging through FastCGI connection. PHP's default behavior is to enable +; this feature. +;fastcgi.logging = 0 + +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If set to 0, PHP sends Status: header that +; is supported by Apache. When this option is set to 1, PHP will send +; RFC2616 compliant header. +; Default is zero. +; https://php.net/cgi.rfc2616-headers +;cgi.rfc2616_headers = 0 + +; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! +; (shebang) at the top of the running script. This line might be needed if the +; script support running both as stand-alone script and via PHP CGI<. PHP in CGI +; mode skips this line and ignores its content if this directive is turned on. +; https://php.net/cgi.check-shebang-line +;cgi.check_shebang_line=1 + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +; https://php.net/file-uploads +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +; https://php.net/upload-tmp-dir +;upload_tmp_dir = + +; Maximum allowed size for uploaded files. +; https://php.net/upload-max-filesize +upload_max_filesize = 2M + +; Maximum number of files that can be uploaded via a single request +max_file_uploads = 20 + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +; https://php.net/allow-url-fopen +allow_url_fopen = On + +; Whether to allow include/require to open URLs (like https:// or ftp://) as files. +; https://php.net/allow-url-include +allow_url_include = Off + +; Define the anonymous ftp password (your email address). PHP's default setting +; for this is empty. +; https://php.net/from +;from="john@doe.com" + +; Define the User-Agent string. PHP's default setting for this is empty. +; https://php.net/user-agent +;user_agent="PHP" + +; Default timeout for socket based streams (seconds) +; https://php.net/default-socket-timeout +default_socket_timeout = 60 + +; If your scripts have to deal with files from Macintosh systems, +; or you are running on a Mac and need to deal with files from +; unix or win32 systems, setting this flag will cause PHP to +; automatically detect the EOL character in those files so that +; fgets() and file() will work regardless of the source of the file. +; https://php.net/auto-detect-line-endings +;auto_detect_line_endings = Off + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; + +; If you wish to have an extension loaded automatically, use the following +; syntax: +; +; extension=modulename +; +; For example: +; +; extension=mysqli +; +; When the extension library to load is not located in the default extension +; directory, You may specify an absolute path to the library file: +; +; extension=/path/to/extension/mysqli.so +; +; Note : The syntax used in previous PHP versions ('extension=.so' and +; 'extension='php_.dll') is supported for legacy reasons and may be +; deprecated in a future PHP major version. So, when it is possible, please +; move to the new ('extension=) syntax. +; +; Notes for Windows environments : +; +; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+) +; extension folders as well as the separate PECL DLL download (PHP 5+). +; Be sure to appropriately set the extension_dir directive. +; +;extension=bz2 + +; The ldap extension must be before curl if OpenSSL 1.0.2 and OpenLDAP is used +; otherwise it results in segfault when unloading after using SASL. +; See https://github.com/php/php-src/issues/8620 for more info. +;extension=ldap + +;extension=curl +;extension=ffi +;extension=ftp +;extension=fileinfo +;extension=gd +;extension=gettext +;extension=gmp +;extension=intl +;extension=imap +;extension=mbstring +;extension=exif ; Must be after mbstring as it depends on it +;extension=mysqli +;extension=oci8_12c ; Use with Oracle Database 12c Instant Client +;extension=oci8_19 ; Use with Oracle Database 19 Instant Client +;extension=odbc +;extension=openssl +;extension=pdo_firebird +;extension=pdo_mysql +;extension=pdo_oci +;extension=pdo_odbc +;extension=pdo_pgsql +;extension=pdo_sqlite +;extension=pgsql +;extension=shmop + +; The MIBS data available in the PHP distribution must be installed. +; See https://www.php.net/manual/en/snmp.installation.php +;extension=snmp + +;extension=soap +;extension=sockets +;extension=sodium +;extension=sqlite3 +;extension=tidy +;extension=xsl + +;zend_extension=opcache + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[CLI Server] +; Whether the CLI web server uses ANSI color coding in its terminal output. +cli_server.color = On + +[Date] +; Defines the default timezone used by the date functions +; https://php.net/date.timezone +;date.timezone = + +; https://php.net/date.default-latitude +;date.default_latitude = 31.7667 + +; https://php.net/date.default-longitude +;date.default_longitude = 35.2333 + +; https://php.net/date.sunrise-zenith +;date.sunrise_zenith = 90.833333 + +; https://php.net/date.sunset-zenith +;date.sunset_zenith = 90.833333 + +[filter] +; https://php.net/filter.default +;filter.default = unsafe_raw + +; https://php.net/filter.default-flags +;filter.default_flags = + +[iconv] +; Use of this INI entry is deprecated, use global input_encoding instead. +; If empty, default_charset or input_encoding or iconv.input_encoding is used. +; The precedence is: default_charset < input_encoding < iconv.input_encoding +;iconv.input_encoding = + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;iconv.internal_encoding = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; If empty, default_charset or output_encoding or iconv.output_encoding is used. +; The precedence is: default_charset < output_encoding < iconv.output_encoding +; To use an output encoding conversion, iconv's output handler must be set +; otherwise output encoding conversion cannot be performed. +;iconv.output_encoding = + +[imap] +; rsh/ssh logins are disabled by default. Use this INI entry if you want to +; enable them. Note that the IMAP library does not filter mailbox names before +; passing them to rsh/ssh command, thus passing untrusted data to this function +; with rsh/ssh enabled is insecure. +;imap.enable_insecure_rsh=0 + +[intl] +;intl.default_locale = +; This directive allows you to produce PHP errors when some error +; happens within intl functions. The value is the level of the error produced. +; Default is 0, which does not produce any errors. +;intl.error_level = E_WARNING +;intl.use_exceptions = 0 + +[sqlite3] +; Directory pointing to SQLite3 extensions +; https://php.net/sqlite3.extension-dir +;sqlite3.extension_dir = + +; SQLite defensive mode flag (only available from SQLite 3.26+) +; When the defensive flag is enabled, language features that allow ordinary +; SQL to deliberately corrupt the database file are disabled. This forbids +; writing directly to the schema, shadow tables (eg. FTS data tables), or +; the sqlite_dbpage virtual table. +; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html +; (for older SQLite versions, this flag has no use) +;sqlite3.defensive = 1 + +[Pcre] +; PCRE library backtracking limit. +; https://php.net/pcre.backtrack-limit +;pcre.backtrack_limit=100000 + +; PCRE library recursion limit. +; Please note that if you set this value to a high number you may consume all +; the available process stack and eventually crash PHP (due to reaching the +; stack size limit imposed by the Operating System). +; https://php.net/pcre.recursion-limit +;pcre.recursion_limit=100000 + +; Enables or disables JIT compilation of patterns. This requires the PCRE +; library to be compiled with JIT support. +;pcre.jit=1 + +[Pdo] +; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" +; https://php.net/pdo-odbc.connection-pooling +;pdo_odbc.connection_pooling=strict + +[Pdo_mysql] +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +pdo_mysql.default_socket= + +[Phar] +; https://php.net/phar.readonly +;phar.readonly = On + +; https://php.net/phar.require-hash +;phar.require_hash = On + +;phar.cache_list = + +[mail function] +; For Win32 only. +; https://php.net/smtp +SMTP = localhost +; https://php.net/smtp-port +smtp_port = 25 + +; For Win32 only. +; https://php.net/sendmail-from +;sendmail_from = me@example.com + +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +; https://php.net/sendmail-path +;sendmail_path = + +; Force the addition of the specified parameters to be passed as extra parameters +; to the sendmail binary. These parameters will always replace the value of +; the 5th parameter to mail(). +;mail.force_extra_parameters = + +; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename +mail.add_x_header = Off + +; The path to a log file that will log all mail() calls. Log entries include +; the full path of the script, line number, To address and headers. +;mail.log = +; Log mail to syslog (Event Log on Windows). +;mail.log = syslog + +[ODBC] +; https://php.net/odbc.default-db +;odbc.default_db = Not yet implemented + +; https://php.net/odbc.default-user +;odbc.default_user = Not yet implemented + +; https://php.net/odbc.default-pw +;odbc.default_pw = Not yet implemented + +; Controls the ODBC cursor model. +; Default: SQL_CURSOR_STATIC (default). +;odbc.default_cursortype + +; Allow or prevent persistent links. +; https://php.net/odbc.allow-persistent +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +; https://php.net/odbc.check-persistent +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/odbc.max-persistent +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; https://php.net/odbc.max-links +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +; https://php.net/odbc.defaultlrl +odbc.defaultlrl = 4096 + +; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. +; See the documentation on odbc_binmode and odbc_longreadlen for an explanation +; of odbc.defaultlrl and odbc.defaultbinmode +; https://php.net/odbc.defaultbinmode +odbc.defaultbinmode = 1 + +[MySQLi] + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/mysqli.max-persistent +mysqli.max_persistent = -1 + +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; https://php.net/mysqli.allow_local_infile +;mysqli.allow_local_infile = On + +; It allows the user to specify a folder where files that can be sent via LOAD DATA +; LOCAL can exist. It is ignored if mysqli.allow_local_infile is enabled. +;mysqli.local_infile_directory = + +; Allow or prevent persistent links. +; https://php.net/mysqli.allow-persistent +mysqli.allow_persistent = On + +; Maximum number of links. -1 means no limit. +; https://php.net/mysqli.max-links +mysqli.max_links = -1 + +; Default port number for mysqli_connect(). If unset, mysqli_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; https://php.net/mysqli.default-port +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; https://php.net/mysqli.default-socket +mysqli.default_socket = + +; Default host for mysqli_connect() (doesn't apply in safe mode). +; https://php.net/mysqli.default-host +mysqli.default_host = + +; Default user for mysqli_connect() (doesn't apply in safe mode). +; https://php.net/mysqli.default-user +mysqli.default_user = + +; Default password for mysqli_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; https://php.net/mysqli.default-pw +mysqli.default_pw = + +; Allow or prevent reconnect +mysqli.reconnect = Off + +; If this option is enabled, closing a persistent connection will rollback +; any pending transactions of this connection, before it is put back +; into the persistent connection pool. +;mysqli.rollback_on_cached_plink = Off + +[mysqlnd] +; Enable / Disable collection of general statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_statistics = On + +; Enable / Disable collection of memory usage statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_memory_statistics = Off + +; Records communication from all extensions using mysqlnd to the specified log +; file. +; https://php.net/mysqlnd.debug +;mysqlnd.debug = + +; Defines which queries will be logged. +;mysqlnd.log_mask = 0 + +; Default size of the mysqlnd memory pool, which is used by result sets. +;mysqlnd.mempool_default_size = 16000 + +; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. +;mysqlnd.net_cmd_buffer_size = 2048 + +; Size of a pre-allocated buffer used for reading data sent by the server in +; bytes. +;mysqlnd.net_read_buffer_size = 32768 + +; Timeout for network requests in seconds. +;mysqlnd.net_read_timeout = 31536000 + +; SHA-256 Authentication Plugin related. File with the MySQL server public RSA +; key. +;mysqlnd.sha256_server_public_key = + +[OCI8] + +; Connection: Enables privileged connections using external +; credentials (OCI_SYSOPER, OCI_SYSDBA) +; https://php.net/oci8.privileged-connect +;oci8.privileged_connect = Off + +; Connection: The maximum number of persistent OCI8 connections per +; process. Using -1 means no limit. +; https://php.net/oci8.max-persistent +;oci8.max_persistent = -1 + +; Connection: The maximum number of seconds a process is allowed to +; maintain an idle persistent connection. Using -1 means idle +; persistent connections will be maintained forever. +; https://php.net/oci8.persistent-timeout +;oci8.persistent_timeout = -1 + +; Connection: The number of seconds that must pass before issuing a +; ping during oci_pconnect() to check the connection validity. When +; set to 0, each oci_pconnect() will cause a ping. Using -1 disables +; pings completely. +; https://php.net/oci8.ping-interval +;oci8.ping_interval = 60 + +; Connection: Set this to a user chosen connection class to be used +; for all pooled server requests with Oracle 11g Database Resident +; Connection Pooling (DRCP). To use DRCP, this value should be set to +; the same string for all web servers running the same application, +; the database pool must be configured, and the connection string must +; specify to use a pooled server. +;oci8.connection_class = + +; High Availability: Using On lets PHP receive Fast Application +; Notification (FAN) events generated when a database node fails. The +; database must also be configured to post FAN events. +;oci8.events = Off + +; Tuning: This option enables statement caching, and specifies how +; many statements to cache. Using 0 disables statement caching. +; https://php.net/oci8.statement-cache-size +;oci8.statement_cache_size = 20 + +; Tuning: Enables statement prefetching and sets the default number of +; rows that will be fetched automatically after statement execution. +; https://php.net/oci8.default-prefetch +;oci8.default_prefetch = 100 + +; Compatibility. Using On means oci_close() will not close +; oci_connect() and oci_new_connect() connections. +; https://php.net/oci8.old-oci-close-semantics +;oci8.old_oci_close_semantics = Off + +[PostgreSQL] +; Allow or prevent persistent links. +; https://php.net/pgsql.allow-persistent +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +; https://php.net/pgsql.auto-reset-persistent +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/pgsql.max-persistent +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +; https://php.net/pgsql.max-links +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +; https://php.net/pgsql.ignore-notice +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Notice message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +; https://php.net/pgsql.log-notice +pgsql.log_notice = 0 + +[bcmath] +; Number of decimal digits for all bcmath functions. +; https://php.net/bcmath.scale +bcmath.scale = 0 + +[browscap] +; https://php.net/browscap +;browscap = extra/browscap.ini + +[Session] +; Handler used to store/retrieve data. +; https://php.net/session.save-handler +session.save_handler = files + +; Argument passed to save_handler. In the case of files, this is the path +; where data files are stored. Note: Windows users have to change this +; variable in order to use PHP's session functions. +; +; The path can be defined as: +; +; session.save_path = "N;/path" +; +; where N is an integer. Instead of storing all the session files in +; /path, what this will do is use subdirectories N-levels deep, and +; store the session data in those directories. This is useful if +; your OS has problems with many files in one directory, and is +; a more efficient layout for servers that handle many sessions. +; +; NOTE 1: PHP will not create this directory structure automatically. +; You can use the script in the ext/session dir for that purpose. +; NOTE 2: See the section on garbage collection below if you choose to +; use subdirectories for session storage +; +; The file storage module creates files using mode 600 by default. +; You can change that by using +; +; session.save_path = "N;MODE;/path" +; +; where MODE is the octal representation of the mode. Note that this +; does not overwrite the process's umask. +; https://php.net/session.save-path +;session.save_path = "/tmp" + +; Whether to use strict session mode. +; Strict session mode does not accept an uninitialized session ID, and +; regenerates the session ID if the browser sends an uninitialized session ID. +; Strict mode protects applications from session fixation via a session adoption +; vulnerability. It is disabled by default for maximum compatibility, but +; enabling it is encouraged. +; https://wiki.php.net/rfc/strict_sessions +session.use_strict_mode = 0 + +; Whether to use cookies. +; https://php.net/session.use-cookies +session.use_cookies = 1 + +; https://php.net/session.cookie-secure +;session.cookie_secure = + +; This option forces PHP to fetch and use a cookie for storing and maintaining +; the session id. We encourage this operation as it's very helpful in combating +; session hijacking when not specifying and managing your own session id. It is +; not the be-all and end-all of session hijacking defense, but it's a good start. +; https://php.net/session.use-only-cookies +session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +; https://php.net/session.name +session.name = PHPSESSID + +; Initialize session on request startup. +; https://php.net/session.auto-start +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +; https://php.net/session.cookie-lifetime +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +; https://php.net/session.cookie-path +session.cookie_path = / + +; The domain for which the cookie is valid. +; https://php.net/session.cookie-domain +session.cookie_domain = + +; Whether or not to add the httpOnly flag to the cookie, which makes it +; inaccessible to browser scripting languages such as JavaScript. +; https://php.net/session.cookie-httponly +session.cookie_httponly = + +; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) +; Current valid values are "Strict", "Lax" or "None". When using "None", +; make sure to include the quotes, as `none` is interpreted like `false` in ini files. +; https://tools.ietf.org/html/draft-west-first-party-cookies-07 +session.cookie_samesite = + +; Handler used to serialize data. php is the standard serializer of PHP. +; https://php.net/session.serialize-handler +session.serialize_handler = php + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; https://php.net/session.gc-probability +session.gc_probability = 1 + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; For high volume production servers, using a value of 1000 is a more efficient approach. +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 +; https://php.net/session.gc-divisor +session.gc_divisor = 1000 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +; https://php.net/session.gc-maxlifetime +session.gc_maxlifetime = 1440 + +; NOTE: If you are using the subdirectory option for storing session files +; (see session.save_path above), then garbage collection does *not* +; happen automatically. You will need to do your own garbage +; collection through a shell script, cron entry, or some other method. +; For example, the following script is the equivalent of setting +; session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): +; find /path/to/sessions -cmin +24 -type f | xargs rm + +; Check HTTP Referer to invalidate externally stored URLs containing ids. +; HTTP_REFERER has to contain this substring for the session to be +; considered as valid. +; https://php.net/session.referer-check +session.referer_check = + +; Set to {nocache,private,public,} to determine HTTP caching aspects +; or leave this empty to avoid sending anti-caching headers. +; https://php.net/session.cache-limiter +session.cache_limiter = nocache + +; Document expires after n minutes. +; https://php.net/session.cache-expire +session.cache_expire = 180 + +; trans sid support is disabled by default. +; Use of trans sid may risk your users' security. +; Use this option with caution. +; - User may send URL contains active session ID +; to other person via. email/irc/etc. +; - URL that contains active session ID may be stored +; in publicly accessible computer. +; - User may access your site with the same session ID +; always using URL stored in browser's history or bookmarks. +; https://php.net/session.use-trans-sid +session.use_trans_sid = 0 + +; Set session ID character length. This value could be between 22 to 256. +; Shorter length than default is supported only for compatibility reason. +; Users should use 32 or more chars. +; https://php.net/session.sid-length +; Default Value: 32 +; Development Value: 26 +; Production Value: 26 +session.sid_length = 26 + +; The URL rewriter will look for URLs in a defined set of HTML tags. +;
is special; if you include them here, the rewriter will +; add a hidden field with the info which is otherwise appended +; to URLs. tag's action attribute URL will not be modified +; unless it is specified. +; Note that all valid entries require a "=", even if no value follows. +; Default Value: "a=href,area=href,frame=src,form=" +; Development Value: "a=href,area=href,frame=src,form=" +; Production Value: "a=href,area=href,frame=src,form=" +; https://php.net/url-rewriter.tags +session.trans_sid_tags = "a=href,area=href,frame=src,form=" + +; URL rewriter does not rewrite absolute URLs by default. +; To enable rewrites for absolute paths, target hosts must be specified +; at RUNTIME. i.e. use ini_set() +; tags is special. PHP will check action attribute's URL regardless +; of session.trans_sid_tags setting. +; If no host is defined, HTTP_HOST will be used for allowed host. +; Example value: php.net,www.php.net,wiki.php.net +; Use "," for multiple hosts. No spaces are allowed. +; Default Value: "" +; Development Value: "" +; Production Value: "" +;session.trans_sid_hosts="" + +; Define how many bits are stored in each character when converting +; the binary hash data to something readable. +; Possible values: +; 4 (4 bits: 0-9, a-f) +; 5 (5 bits: 0-9, a-v) +; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 +; https://php.net/session.hash-bits-per-character +session.sid_bits_per_character = 5 + +; Enable upload progress tracking in $_SESSION +; Default Value: On +; Development Value: On +; Production Value: On +; https://php.net/session.upload-progress.enabled +;session.upload_progress.enabled = On + +; Cleanup the progress information as soon as all POST data has been read +; (i.e. upload completed). +; Default Value: On +; Development Value: On +; Production Value: On +; https://php.net/session.upload-progress.cleanup +;session.upload_progress.cleanup = On + +; A prefix used for the upload progress key in $_SESSION +; Default Value: "upload_progress_" +; Development Value: "upload_progress_" +; Production Value: "upload_progress_" +; https://php.net/session.upload-progress.prefix +;session.upload_progress.prefix = "upload_progress_" + +; The index name (concatenated with the prefix) in $_SESSION +; containing the upload progress information +; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" +; https://php.net/session.upload-progress.name +;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" + +; How frequently the upload progress should be updated. +; Given either in percentages (per-file), or in bytes +; Default Value: "1%" +; Development Value: "1%" +; Production Value: "1%" +; https://php.net/session.upload-progress.freq +;session.upload_progress.freq = "1%" + +; The minimum delay between updates, in seconds +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; https://php.net/session.upload-progress.min-freq +;session.upload_progress.min_freq = "1" + +; Only write session data when session data is changed. Enabled by default. +; https://php.net/session.lazy-write +;session.lazy_write = On + +[Assertion] +; Switch whether to compile assertions at all (to have no overhead at run-time) +; -1: Do not compile at all +; 0: Jump over assertion at run-time +; 1: Execute assertions +; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) +; Default Value: 1 +; Development Value: 1 +; Production Value: -1 +; https://php.net/zend.assertions +zend.assertions = -1 + +; Assert(expr); active by default. +; https://php.net/assert.active +;assert.active = On + +; Throw an AssertionError on failed assertions +; https://php.net/assert.exception +;assert.exception = On + +; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) +; https://php.net/assert.warning +;assert.warning = On + +; Don't bail out by default. +; https://php.net/assert.bail +;assert.bail = Off + +; User-function to be called if an assertion fails. +; https://php.net/assert.callback +;assert.callback = 0 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +; https://php.net/com.typelib-file +;com.typelib_file = + +; allow Distributed-COM calls +; https://php.net/com.allow-dcom +;com.allow_dcom = true + +; autoregister constants of a component's typelib on com_load() +; https://php.net/com.autoregister-typelib +;com.autoregister_typelib = true + +; register constants casesensitive +; https://php.net/com.autoregister-casesensitive +;com.autoregister_casesensitive = false + +; show warnings on duplicate constant registrations +; https://php.net/com.autoregister-verbose +;com.autoregister_verbose = true + +; The default character set code-page to use when passing strings to and from COM objects. +; Default: system ANSI code page +;com.code_page= + +; The version of the .NET framework to use. The value of the setting are the first three parts +; of the framework's version number, separated by dots, and prefixed with "v", e.g. "v4.0.30319". +;com.dotnet_version= + +[mbstring] +; language for internal character representation. +; This affects mb_send_mail() and mbstring.detect_order. +; https://php.net/mbstring.language +;mbstring.language = Japanese + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; internal/script encoding. +; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;mbstring.internal_encoding = + +; Use of this INI entry is deprecated, use global input_encoding instead. +; http input encoding. +; mbstring.encoding_translation = On is needed to use this setting. +; If empty, default_charset or input_encoding or mbstring.input is used. +; The precedence is: default_charset < input_encoding < mbstring.http_input +; https://php.net/mbstring.http-input +;mbstring.http_input = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; http output encoding. +; mb_output_handler must be registered as output buffer to function. +; If empty, default_charset or output_encoding or mbstring.http_output is used. +; The precedence is: default_charset < output_encoding < mbstring.http_output +; To use an output encoding conversion, mbstring's output handler must be set +; otherwise output encoding conversion cannot be performed. +; https://php.net/mbstring.http-output +;mbstring.http_output = + +; enable automatic encoding translation according to +; mbstring.internal_encoding setting. Input chars are +; converted to internal encoding by setting this to On. +; Note: Do _not_ use automatic encoding translation for +; portable libs/applications. +; https://php.net/mbstring.encoding-translation +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; "auto" detect order is changed according to mbstring.language +; https://php.net/mbstring.detect-order +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +; https://php.net/mbstring.substitute-character +;mbstring.substitute_character = none + +; Enable strict encoding detection. +;mbstring.strict_detection = Off + +; This directive specifies the regex pattern of content types for which mb_output_handler() +; is activated. +; Default: mbstring.http_output_conv_mimetypes=^(text/|application/xhtml\+xml) +;mbstring.http_output_conv_mimetypes= + +; This directive specifies maximum stack depth for mbstring regular expressions. It is similar +; to the pcre.recursion_limit for PCRE. +;mbstring.regex_stack_limit=100000 + +; This directive specifies maximum retry count for mbstring regular expressions. It is similar +; to the pcre.backtrack_limit for PCRE. +;mbstring.regex_retry_limit=1000000 + +[gd] +; Tell the jpeg decode to ignore warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +; https://php.net/gd.jpeg-ignore-warning +;gd.jpeg_ignore_warning = 1 + +[exif] +; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. +; With mbstring support this will automatically be converted into the encoding +; given by corresponding encode setting. When empty mbstring.internal_encoding +; is used. For the decode settings you can distinguish between motorola and +; intel byte order. A decode setting cannot be empty. +; https://php.net/exif.encode-unicode +;exif.encode_unicode = ISO-8859-15 + +; https://php.net/exif.decode-unicode-motorola +;exif.decode_unicode_motorola = UCS-2BE + +; https://php.net/exif.decode-unicode-intel +;exif.decode_unicode_intel = UCS-2LE + +; https://php.net/exif.encode-jis +;exif.encode_jis = + +; https://php.net/exif.decode-jis-motorola +;exif.decode_jis_motorola = JIS + +; https://php.net/exif.decode-jis-intel +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +; https://php.net/tidy.default-config +;tidy.default_config = /usr/local/lib/php/default.tcfg + +; Should tidy clean and repair output automatically? +; WARNING: Do not use this option if you are generating non-html content +; such as dynamic images +; https://php.net/tidy.clean-output +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +; https://php.net/soap.wsdl-cache-enabled +soap.wsdl_cache_enabled=1 + +; Sets the directory name where SOAP extension will put cache files. +; https://php.net/soap.wsdl-cache-dir +soap.wsdl_cache_dir="/tmp" + +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +; https://php.net/soap.wsdl-cache-ttl +soap.wsdl_cache_ttl=86400 + +; Sets the size of the cache limit. (Max. number of WSDL files to cache) +soap.wsdl_cache_limit = 5 + +[sysvshm] +; A default size of the shared memory segment +;sysvshm.init_mem = 10000 + +[ldap] +; Sets the maximum number of open links or -1 for unlimited. +ldap.max_links = -1 + +[dba] +;dba.default_handler= + +[opcache] +; Determines if Zend OPCache is enabled +;opcache.enable=1 + +; Determines if Zend OPCache is enabled for the CLI version of PHP +;opcache.enable_cli=0 + +; The OPcache shared memory storage size. +;opcache.memory_consumption=128 + +; The amount of memory for interned strings in Mbytes. +;opcache.interned_strings_buffer=8 + +; The maximum number of keys (scripts) in the OPcache hash table. +; Only numbers between 200 and 1000000 are allowed. +;opcache.max_accelerated_files=10000 + +; The maximum percentage of "wasted" memory until a restart is scheduled. +;opcache.max_wasted_percentage=5 + +; When this directive is enabled, the OPcache appends the current working +; directory to the script key, thus eliminating possible collisions between +; files with the same name (basename). Disabling the directive improves +; performance, but may break existing applications. +;opcache.use_cwd=1 + +; When disabled, you must reset the OPcache manually or restart the +; webserver for changes to the filesystem to take effect. +;opcache.validate_timestamps=1 + +; How often (in seconds) to check file timestamps for changes to the shared +; memory storage allocation. ("1" means validate once per second, but only +; once per request. "0" means always validate) +;opcache.revalidate_freq=2 + +; Enables or disables file search in include_path optimization +;opcache.revalidate_path=0 + +; If disabled, all PHPDoc comments are dropped from the code to reduce the +; size of the optimized code. +;opcache.save_comments=1 + +; If enabled, compilation warnings (including notices and deprecations) will +; be recorded and replayed each time a file is included. Otherwise, compilation +; warnings will only be emitted when the file is first cached. +;opcache.record_warnings=0 + +; Allow file existence override (file_exists, etc.) performance feature. +;opcache.enable_file_override=0 + +; A bitmask, where each bit enables or disables the appropriate OPcache +; passes +;opcache.optimization_level=0x7FFFBFFF + +;opcache.dups_fix=0 + +; The location of the OPcache blacklist file (wildcards allowed). +; Each OPcache blacklist file is a text file that holds the names of files +; that should not be accelerated. The file format is to add each filename +; to a new line. The filename may be a full path or just a file prefix +; (i.e., /var/www/x blacklists all the files and directories in /var/www +; that start with 'x'). Line starting with a ; are ignored (comments). +;opcache.blacklist_filename= + +; Allows exclusion of large files from being cached. By default all files +; are cached. +;opcache.max_file_size=0 + +; Check the cache checksum each N requests. +; The default value of "0" means that the checks are disabled. +;opcache.consistency_checks=0 + +; How long to wait (in seconds) for a scheduled restart to begin if the cache +; is not being accessed. +;opcache.force_restart_timeout=180 + +; OPcache error_log file name. Empty string assumes "stderr". +;opcache.error_log= + +; All OPcache errors go to the Web server log. +; By default, only fatal errors (level 0) or errors (level 1) are logged. +; You can also enable warnings (level 2), info messages (level 3) or +; debug messages (level 4). +;opcache.log_verbosity_level=1 + +; Preferred Shared Memory back-end. Leave empty and let the system decide. +;opcache.preferred_memory_model= + +; Protect the shared memory from unexpected writing during script execution. +; Useful for internal debugging only. +;opcache.protect_memory=0 + +; Allows calling OPcache API functions only from PHP scripts which path is +; started from specified string. The default "" means no restriction +;opcache.restrict_api= + +; Mapping base of shared memory segments (for Windows only). All the PHP +; processes have to map shared memory into the same address space. This +; directive allows to manually fix the "Unable to reattach to base address" +; errors. +;opcache.mmap_base= + +; Facilitates multiple OPcache instances per user (for Windows only). All PHP +; processes with the same cache ID and user share an OPcache instance. +;opcache.cache_id= + +; Enables and sets the second level cache directory. +; It should improve performance when SHM memory is full, at server restart or +; SHM reset. The default "" disables file based caching. +;opcache.file_cache= + +; Enables or disables opcode caching in shared memory. +;opcache.file_cache_only=0 + +; Enables or disables checksum validation when script loaded from file cache. +;opcache.file_cache_consistency_checks=1 + +; Implies opcache.file_cache_only=1 for a certain process that failed to +; reattach to the shared memory (for Windows only). Explicitly enabled file +; cache is required. +;opcache.file_cache_fallback=1 + +; Enables or disables copying of PHP code (text segment) into HUGE PAGES. +; Under certain circumstances (if only a single global PHP process is +; started from which all others fork), this can increase performance +; by a tiny amount because TLB misses are reduced. On the other hand, this +; delays PHP startup, increases memory usage and degrades performance +; under memory pressure - use with care. +; Requires appropriate OS configuration. +;opcache.huge_code_pages=0 + +; Validate cached file permissions. +;opcache.validate_permission=0 + +; Prevent name collisions in chroot'ed environment. +;opcache.validate_root=0 + +; If specified, it produces opcode dumps for debugging different stages of +; optimizations. +;opcache.opt_debug_level=0 + +; Specifies a PHP script that is going to be compiled and executed at server +; start-up. +; https://php.net/opcache.preload +;opcache.preload= + +; Preloading code as root is not allowed for security reasons. This directive +; facilitates to let the preloading to be run as another user. +; https://php.net/opcache.preload_user +;opcache.preload_user= + +; Prevents caching files that are less than this number of seconds old. It +; protects from caching of incompletely updated files. In case all file updates +; on your site are atomic, you may increase performance by setting it to "0". +;opcache.file_update_protection=2 + +; Absolute path used to store shared lockfiles (for *nix only). +;opcache.lockfile_path=/tmp + +[curl] +; A default value for the CURLOPT_CAINFO option. This is required to be an +; absolute path. +;curl.cainfo = + +[openssl] +; The location of a Certificate Authority (CA) file on the local filesystem +; to use when verifying the identity of SSL/TLS peers. Most users should +; not specify a value for this directive as PHP will attempt to use the +; OS-managed cert stores in its absence. If specified, this value may still +; be overridden on a per-stream basis via the "cafile" SSL stream context +; option. +;openssl.cafile= + +; If openssl.cafile is not specified or if the CA file is not found, the +; directory pointed to by openssl.capath is searched for a suitable +; certificate. This value must be a correctly hashed certificate directory. +; Most users should not specify a value for this directive as PHP will +; attempt to use the OS-managed cert stores in its absence. If specified, +; this value may still be overridden on a per-stream basis via the "capath" +; SSL stream context option. +;openssl.capath= + +[ffi] +; FFI API restriction. Possible values: +; "preload" - enabled in CLI scripts and preloaded files (default) +; "false" - always disabled +; "true" - always enabled +;ffi.enable=preload + +; List of headers files to preload, wildcard patterns allowed. +;ffi.preload= diff --git a/apps/php-unofficial/8.4.8/docker-compose.yml b/apps/php-unofficial/8.4.8/docker-compose.yml new file mode 100644 index 000000000..33bb0afc4 --- /dev/null +++ b/apps/php-unofficial/8.4.8/docker-compose.yml @@ -0,0 +1,23 @@ +services: + php81: + build: + context: . + dockerfile: Dockerfile + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:9000" + volumes: + - "./data/php.ini:/usr/local/etc/php/php.ini" + - "./data/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf" + - "${SITE_PATH}:/www" + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true + + diff --git a/apps/picimpact/2.4.1/.env.sample b/apps/picimpact/2.5.6/.env.sample similarity index 100% rename from apps/picimpact/2.4.1/.env.sample rename to apps/picimpact/2.5.6/.env.sample diff --git a/apps/picimpact/2.4.1/data.yml b/apps/picimpact/2.5.6/data.yml similarity index 100% rename from apps/picimpact/2.4.1/data.yml rename to apps/picimpact/2.5.6/data.yml diff --git a/apps/picimpact/2.4.1/docker-compose.yml b/apps/picimpact/2.5.6/docker-compose.yml similarity index 91% rename from apps/picimpact/2.4.1/docker-compose.yml rename to apps/picimpact/2.5.6/docker-compose.yml index 37c1fb2fc..6238715ac 100644 --- a/apps/picimpact/2.4.1/docker-compose.yml +++ b/apps/picimpact/2.5.6/docker-compose.yml @@ -1,6 +1,6 @@ services: picimpact: - image: besscroft/picimpact:v2.4.1 + image: besscroft/picimpact:v2.5.6 container_name: ${CONTAINER_NAME} restart: always networks: diff --git a/apps/piclist/1.9.11/.env.sample b/apps/piclist/1.9.14/.env.sample similarity index 100% rename from apps/piclist/1.9.11/.env.sample rename to apps/piclist/1.9.14/.env.sample diff --git a/apps/piclist/1.9.11/data.yml b/apps/piclist/1.9.14/data.yml similarity index 100% rename from apps/piclist/1.9.11/data.yml rename to apps/piclist/1.9.14/data.yml diff --git a/apps/piclist/1.9.11/docker-compose.yml b/apps/piclist/1.9.14/docker-compose.yml similarity index 90% rename from apps/piclist/1.9.11/docker-compose.yml rename to apps/piclist/1.9.14/docker-compose.yml index 70e7dd38d..011d5d9a8 100644 --- a/apps/piclist/1.9.11/docker-compose.yml +++ b/apps/piclist/1.9.14/docker-compose.yml @@ -1,6 +1,6 @@ services: piclist: - image: "kuingsmile/piclist:v1.9.11" + image: "kuingsmile/piclist:v1.9.14" container_name: ${CONTAINER_NAME} restart: always networks: diff --git a/apps/pingvin-share/1.11.1/.env.sample b/apps/pingvin-share/1.13.0/.env.sample similarity index 100% rename from apps/pingvin-share/1.11.1/.env.sample rename to apps/pingvin-share/1.13.0/.env.sample diff --git a/apps/pingvin-share/1.11.1/data.yml b/apps/pingvin-share/1.13.0/data.yml similarity index 100% rename from apps/pingvin-share/1.11.1/data.yml rename to apps/pingvin-share/1.13.0/data.yml diff --git a/apps/pingvin-share/1.11.1/docker-compose.yml b/apps/pingvin-share/1.13.0/docker-compose.yml similarity index 89% rename from apps/pingvin-share/1.11.1/docker-compose.yml rename to apps/pingvin-share/1.13.0/docker-compose.yml index 8999af792..961e6097a 100644 --- a/apps/pingvin-share/1.11.1/docker-compose.yml +++ b/apps/pingvin-share/1.13.0/docker-compose.yml @@ -9,7 +9,7 @@ services: volumes: - "${DATA_PATH}:/opt/app/backend/data" - "${UPLOAD_PATH}:/opt/app/frontend/public/img" - image: stonith404/pingvin-share:v1.11.1 + image: stonith404/pingvin-share:v1.13.0 labels: createdBy: "Apps" diff --git a/apps/plex/1.41.6/.env.sample b/apps/plex/1.41.8/.env.sample similarity index 100% rename from apps/plex/1.41.6/.env.sample rename to apps/plex/1.41.8/.env.sample diff --git a/apps/plex/1.41.6/data.yml b/apps/plex/1.41.8/data.yml similarity index 100% rename from apps/plex/1.41.6/data.yml rename to apps/plex/1.41.8/data.yml diff --git a/apps/plex/1.41.6/docker-compose.yml b/apps/plex/1.41.8/docker-compose.yml similarity index 95% rename from apps/plex/1.41.6/docker-compose.yml rename to apps/plex/1.41.8/docker-compose.yml index 11a699790..e5298642a 100644 --- a/apps/plex/1.41.6/docker-compose.yml +++ b/apps/plex/1.41.8/docker-compose.yml @@ -1,6 +1,6 @@ services: plex: - image: "linuxserver/plex:1.41.6" + image: "linuxserver/plex:1.41.8" container_name: ${CONTAINER_NAME} restart: always networks: diff --git a/apps/prometheus/3.3.0/.env.sample b/apps/prometheus/3.4.1/.env.sample similarity index 100% rename from apps/prometheus/3.3.0/.env.sample rename to apps/prometheus/3.4.1/.env.sample diff --git a/apps/prometheus/3.3.0/data.yml b/apps/prometheus/3.4.1/data.yml similarity index 100% rename from apps/prometheus/3.3.0/data.yml rename to apps/prometheus/3.4.1/data.yml diff --git a/apps/prometheus/3.3.0/data/prometheus.yml b/apps/prometheus/3.4.1/data/prometheus.yml similarity index 100% rename from apps/prometheus/3.3.0/data/prometheus.yml rename to apps/prometheus/3.4.1/data/prometheus.yml diff --git a/apps/prometheus/3.3.0/docker-compose.yml b/apps/prometheus/3.4.1/docker-compose.yml similarity index 89% rename from apps/prometheus/3.3.0/docker-compose.yml rename to apps/prometheus/3.4.1/docker-compose.yml index a7366c5d6..0569e6399 100644 --- a/apps/prometheus/3.3.0/docker-compose.yml +++ b/apps/prometheus/3.4.1/docker-compose.yml @@ -8,7 +8,7 @@ services: - "${PANEL_APP_PORT_HTTP}:9090" volumes: - "./data:/etc/prometheus" - image: prom/prometheus:v3.3.0 + image: prom/prometheus:v3.4.1 labels: createdBy: "Apps" diff --git a/apps/radarr/5.21.1/.env.sample b/apps/radarr/5.25.0/.env.sample similarity index 100% rename from apps/radarr/5.21.1/.env.sample rename to apps/radarr/5.25.0/.env.sample diff --git a/apps/radarr/5.21.1/data.yml b/apps/radarr/5.25.0/data.yml similarity index 100% rename from apps/radarr/5.21.1/data.yml rename to apps/radarr/5.25.0/data.yml diff --git a/apps/radarr/5.21.1/docker-compose.yml b/apps/radarr/5.25.0/docker-compose.yml similarity index 92% rename from apps/radarr/5.21.1/docker-compose.yml rename to apps/radarr/5.25.0/docker-compose.yml index f77fb4805..099ee1f44 100644 --- a/apps/radarr/5.21.1/docker-compose.yml +++ b/apps/radarr/5.25.0/docker-compose.yml @@ -1,6 +1,6 @@ services: radarr: - image: "linuxserver/radarr:5.21.1" + image: "linuxserver/radarr:5.25.0" container_name: ${CONTAINER_NAME} restart: always networks: diff --git a/apps/reader/3.2.13/.env.sample b/apps/reader/3.2.14/.env.sample similarity index 100% rename from apps/reader/3.2.13/.env.sample rename to apps/reader/3.2.14/.env.sample diff --git a/apps/reader/3.2.13/data.yml b/apps/reader/3.2.14/data.yml similarity index 100% rename from apps/reader/3.2.13/data.yml rename to apps/reader/3.2.14/data.yml diff --git a/apps/reader/3.2.13/docker-compose.yml b/apps/reader/3.2.14/docker-compose.yml similarity index 95% rename from apps/reader/3.2.13/docker-compose.yml rename to apps/reader/3.2.14/docker-compose.yml index 8660ccc85..4a86aded8 100644 --- a/apps/reader/3.2.13/docker-compose.yml +++ b/apps/reader/3.2.14/docker-compose.yml @@ -19,7 +19,7 @@ services: - READER_APP_SECURE=true - READER_APP_SECUREKEY=${PASSWORD} - READER_APP_INVITECODE=${INVITE_CODE} - image: hectorqin/reader:3.2.13 + image: hectorqin/reader:3.2.14 labels: createdBy: "Apps" diff --git a/apps/redisinsight/2.68.0/.env.sample b/apps/redisinsight/2.70.0/.env.sample similarity index 100% rename from apps/redisinsight/2.68.0/.env.sample rename to apps/redisinsight/2.70.0/.env.sample diff --git a/apps/redisinsight/2.68.0/data.yml b/apps/redisinsight/2.70.0/data.yml similarity index 100% rename from apps/redisinsight/2.68.0/data.yml rename to apps/redisinsight/2.70.0/data.yml diff --git a/apps/redisinsight/2.68.0/data/.gitkeep b/apps/redisinsight/2.70.0/data/.gitkeep similarity index 100% rename from apps/redisinsight/2.68.0/data/.gitkeep rename to apps/redisinsight/2.70.0/data/.gitkeep diff --git a/apps/redisinsight/2.68.0/docker-compose.yml b/apps/redisinsight/2.70.0/docker-compose.yml similarity index 94% rename from apps/redisinsight/2.68.0/docker-compose.yml rename to apps/redisinsight/2.70.0/docker-compose.yml index 03802960a..2c6dba73a 100644 --- a/apps/redisinsight/2.68.0/docker-compose.yml +++ b/apps/redisinsight/2.70.0/docker-compose.yml @@ -1,6 +1,6 @@ services: redisinsight: - image: "redis/redisinsight:2.68.0" + image: "redis/redisinsight:2.70.0" container_name: ${CONTAINER_NAME} restart: always networks: diff --git a/apps/redisinsight/2.68.0/scripts/init.sh b/apps/redisinsight/2.70.0/scripts/init.sh similarity index 100% rename from apps/redisinsight/2.68.0/scripts/init.sh rename to apps/redisinsight/2.70.0/scripts/init.sh diff --git a/apps/rembg/2.0.65/.env.sample b/apps/rembg/2.0.66/.env.sample similarity index 100% rename from apps/rembg/2.0.65/.env.sample rename to apps/rembg/2.0.66/.env.sample diff --git a/apps/rembg/2.0.65/data.yml b/apps/rembg/2.0.66/data.yml similarity index 100% rename from apps/rembg/2.0.65/data.yml rename to apps/rembg/2.0.66/data.yml diff --git a/apps/rembg/2.0.65/docker-compose.yml b/apps/rembg/2.0.66/docker-compose.yml similarity index 87% rename from apps/rembg/2.0.65/docker-compose.yml rename to apps/rembg/2.0.66/docker-compose.yml index 791f10a46..c67df5f8e 100644 --- a/apps/rembg/2.0.65/docker-compose.yml +++ b/apps/rembg/2.0.66/docker-compose.yml @@ -1,6 +1,6 @@ services: rembg: - image: "danielgatis/rembg:2.0.65" + image: "danielgatis/rembg:2.0.66" container_name: ${CONTAINER_NAME} restart: always networks: diff --git a/apps/safeline/newnet-7.3.1/.env.sample b/apps/safeline/8.8.0-lts/.env.sample similarity index 100% rename from apps/safeline/newnet-7.3.1/.env.sample rename to apps/safeline/8.8.0-lts/.env.sample diff --git a/apps/safeline/newnet-7.3.1/data.yml b/apps/safeline/8.8.0-lts/data.yml similarity index 100% rename from apps/safeline/newnet-7.3.1/data.yml rename to apps/safeline/8.8.0-lts/data.yml diff --git a/apps/safeline/newnet-7.3.1/docker-compose.yml b/apps/safeline/8.8.0-lts/docker-compose.yml similarity index 91% rename from apps/safeline/newnet-7.3.1/docker-compose.yml rename to apps/safeline/8.8.0-lts/docker-compose.yml index 3388c4d7f..295059720 100644 --- a/apps/safeline/newnet-7.3.1/docker-compose.yml +++ b/apps/safeline/8.8.0-lts/docker-compose.yml @@ -6,7 +6,7 @@ services: 1panel-network: safeline-ce: ipv4_address: ${SUBNET_PREFIX}.4 - image: chaitin/safeline-mgt:7.3.1 + image: chaitin/safeline-mgt:8.8.0-lts volumes: - /etc/localtime:/etc/localtime:ro - ${SAFELINE_DIR}/resources/mgt:/app/data @@ -36,7 +36,7 @@ services: 1panel-network: safeline-ce: ipv4_address: ${SUBNET_PREFIX}.5 - image: chaitin/safeline-detector:7.3.1 + image: chaitin/safeline-detector:8.8.0-lts volumes: - ${SAFELINE_DIR}/resources/detector:/resources/detector - ${SAFELINE_DIR}/logs/detector:/logs/detector @@ -49,7 +49,7 @@ services: safeline-tengine: container_name: ${CONTAINER_NAME}-tengine restart: always - image: chaitin/safeline-tengine:7.3.1 + image: chaitin/safeline-tengine:8.8.0-lts volumes: - /etc/localtime:/etc/localtime:ro - /etc/resolv.conf:/etc/resolv.conf:ro @@ -75,7 +75,7 @@ services: 1panel-network: safeline-ce: ipv4_address: ${SUBNET_PREFIX}.7 - image: chaitin/safeline-luigi:7.3.1 + image: chaitin/safeline-luigi:8.8.0-lts volumes: - /etc/localtime:/etc/localtime:ro - ${SAFELINE_DIR}/resources/luigi:/app/data @@ -99,7 +99,7 @@ services: 1panel-network: safeline-ce: ipv4_address: ${SUBNET_PREFIX}.8 - image: chaitin/safeline-fvm:7.3.1 + image: chaitin/safeline-fvm:8.8.0-lts volumes: - /etc/localtime:/etc/localtime:ro logging: @@ -116,7 +116,7 @@ services: 1panel-network: safeline-ce: ipv4_address: ${SUBNET_PREFIX}.2 - image: postgres:15.8 + image: chaitin/safeline-postgres:15.2 volumes: - ${SAFELINE_DIR}/resources/postgres/data:/var/lib/postgresql/data - /etc/localtime:/etc/localtime:ro @@ -136,7 +136,7 @@ services: 1panel-network: safeline-ce: ipv4_address: ${SUBNET_PREFIX}.10 - image: chaitin/safeline-chaos:7.3.1 + image: chaitin/safeline-chaos:8.8.0-lts logging: options: max-size: "100m" diff --git a/apps/safeline/7.3.1/.env.sample b/apps/safeline/8.9.1/.env.sample similarity index 100% rename from apps/safeline/7.3.1/.env.sample rename to apps/safeline/8.9.1/.env.sample diff --git a/apps/safeline/7.3.1/data.yml b/apps/safeline/8.9.1/data.yml similarity index 100% rename from apps/safeline/7.3.1/data.yml rename to apps/safeline/8.9.1/data.yml diff --git a/apps/safeline/7.3.1/docker-compose.yml b/apps/safeline/8.9.1/docker-compose.yml similarity index 92% rename from apps/safeline/7.3.1/docker-compose.yml rename to apps/safeline/8.9.1/docker-compose.yml index e3fed1f4a..754b120d2 100644 --- a/apps/safeline/7.3.1/docker-compose.yml +++ b/apps/safeline/8.9.1/docker-compose.yml @@ -5,7 +5,7 @@ services: networks: 1panel-network: ipv4_address: ${SUBNET_PREFIX}.234 - image: chaitin/safeline-mgt:7.3.1 + image: chaitin/safeline-mgt:8.9.1 volumes: - /etc/localtime:/etc/localtime:ro - ${SAFELINE_DIR}/resources/mgt:/app/data @@ -34,7 +34,7 @@ services: networks: 1panel-network: ipv4_address: ${SUBNET_PREFIX}.235 - image: chaitin/safeline-detector:7.3.1 + image: chaitin/safeline-detector:8.9.1 volumes: - ${SAFELINE_DIR}/resources/detector:/resources/detector - ${SAFELINE_DIR}/logs/detector:/logs/detector @@ -47,7 +47,7 @@ services: safeline-tengine: container_name: ${CONTAINER_NAME}-tengine restart: always - image: chaitin/safeline-tengine:7.3.1 + image: chaitin/safeline-tengine:8.9.1 volumes: - /etc/localtime:/etc/localtime:ro - /etc/resolv.conf:/etc/resolv.conf:ro @@ -72,7 +72,7 @@ services: networks: 1panel-network: ipv4_address: ${SUBNET_PREFIX}.237 - image: chaitin/safeline-luigi:7.3.1 + image: chaitin/safeline-luigi:8.9.1 volumes: - /etc/localtime:/etc/localtime:ro - ${SAFELINE_DIR}/resources/luigi:/app/data @@ -94,7 +94,7 @@ services: networks: 1panel-network: ipv4_address: ${SUBNET_PREFIX}.238 - image: chaitin/safeline-fvm:7.3.1 + image: chaitin/safeline-fvm:8.9.1 volumes: - /etc/localtime:/etc/localtime:ro logging: @@ -110,7 +110,7 @@ services: networks: 1panel-network: ipv4_address: ${SUBNET_PREFIX}.232 - image: postgres:15.8 + image: chaitin/safeline-postgres:15.2 volumes: - ${SAFELINE_DIR}/resources/postgres/data:/var/lib/postgresql/data - /etc/localtime:/etc/localtime:ro @@ -129,7 +129,7 @@ services: networks: 1panel-network: ipv4_address: ${SUBNET_PREFIX}.240 - image: chaitin/safeline-chaos:7.3.1 + image: chaitin/safeline-chaos:8.9.1 logging: options: max-size: "100m" diff --git a/apps/safeline/latest/docker-compose.yml b/apps/safeline/latest/docker-compose.yml index 4e531c852..b8e42582d 100644 --- a/apps/safeline/latest/docker-compose.yml +++ b/apps/safeline/latest/docker-compose.yml @@ -110,7 +110,7 @@ services: networks: 1panel-network: ipv4_address: ${SUBNET_PREFIX}.232 - image: postgres:15.8 + image: chaitin/safeline-postgres:15.2 volumes: - ${SAFELINE_DIR}/resources/postgres/data:/var/lib/postgresql/data - /etc/localtime:/etc/localtime:ro diff --git a/apps/safeline/newnet-latest/.env.sample b/apps/safeline/newnet-latest/.env.sample deleted file mode 100644 index 3cd644f4d..000000000 --- a/apps/safeline/newnet-latest/.env.sample +++ /dev/null @@ -1,5 +0,0 @@ -CONTAINER_NAME="safeline" -PANEL_APP_PORT_HTTP="40080" -POSTGRES_PASSWORD="password_xxJdZD" -SAFELINE_DIR="./data" -SUBNET_PREFIX="169.254.0" \ No newline at end of file diff --git a/apps/safeline/newnet-latest/data.yml b/apps/safeline/newnet-latest/data.yml deleted file mode 100644 index e467d37c3..000000000 --- a/apps/safeline/newnet-latest/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -additionalProperties: - formFields: - - default: "" - edit: true - envKey: POSTGRES_PASSWORD - labelEn: Postgres database User Password - labelZh: Postgres数据库密码 - required: true - rule: paramCommon - type: password - - default: 40080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: ./data - edit: true - envKey: SAFELINE_DIR - labelEn: Data storage folder - labelZh: 数据存放文件夹 - required: true - type: text - - default: 169.254.0 - edit: true - envKey: SUBNET_PREFIX - labelEn: New docker network subnet prefix - labelZh: 新 docker 网络子网前缀 - required: true - type: text diff --git a/apps/safeline/newnet-latest/docker-compose.yml b/apps/safeline/newnet-latest/docker-compose.yml deleted file mode 100644 index bf1dc0c62..000000000 --- a/apps/safeline/newnet-latest/docker-compose.yml +++ /dev/null @@ -1,161 +0,0 @@ -services: - safeline-mgt: - container_name: ${CONTAINER_NAME}-mgt - restart: always - networks: - 1panel-network: - safeline-ce: - ipv4_address: ${SUBNET_PREFIX}.4 - image: chaitin/safeline-mgt:latest - volumes: - - /etc/localtime:/etc/localtime:ro - - ${SAFELINE_DIR}/resources/mgt:/app/data - - ${SAFELINE_DIR}/logs/nginx:/app/log/nginx:z - - ${SAFELINE_DIR}/resources/sock:/app/sock - - /var/run:/app/run - ports: - - ${PANEL_APP_PORT_HTTP:-9443}:1443 - healthcheck: - test: curl -k -f https://localhost:1443/api/open/health - environment: - - MGT_PG=postgres://safeline-ce:${POSTGRES_PASSWORD}@safeline-pg/safeline-ce?sslmode=disable - logging: - options: - max-size: "100m" - max-file: "5" - depends_on: - - safeline-pg - - safeline-fvm - labels: - createdBy: Apps - - safeline-detector: - container_name: ${CONTAINER_NAME}-detector - restart: always - networks: - 1panel-network: - safeline-ce: - ipv4_address: ${SUBNET_PREFIX}.5 - image: chaitin/safeline-detector:latest - volumes: - - ${SAFELINE_DIR}/resources/detector:/resources/detector - - ${SAFELINE_DIR}/logs/detector:/logs/detector - - /etc/localtime:/etc/localtime:ro - environment: - - LOG_DIR=/logs/detector - labels: - createdBy: Apps - - safeline-tengine: - container_name: ${CONTAINER_NAME}-tengine - restart: always - image: chaitin/safeline-tengine:latest - volumes: - - /etc/localtime:/etc/localtime:ro - - /etc/resolv.conf:/etc/resolv.conf:ro - - ${SAFELINE_DIR}/resources/nginx:/etc/nginx - - ${SAFELINE_DIR}/resources/detector:/resources/detector - - ${SAFELINE_DIR}/resources/chaos:/resources/chaos - - ${SAFELINE_DIR}/logs/nginx:/var/log/nginx:z - - ${SAFELINE_DIR}/resources/cache:/usr/local/nginx/cache - - ${SAFELINE_DIR}/resources/sock:/app/sock - environment: - - TCD_MGT_API=https://${SUBNET_PREFIX}.4:1443/api/open/publish/server - - SNSERVER_ADDR=${SUBNET_PREFIX}.5:8000 - ulimits: - nofile: 131072 - network_mode: host - labels: - createdBy: Apps - - safeline-luigi: - container_name: ${CONTAINER_NAME}-luigi - restart: always - networks: - 1panel-network: - safeline-ce: - ipv4_address: ${SUBNET_PREFIX}.7 - image: chaitin/safeline-luigi:latest - volumes: - - /etc/localtime:/etc/localtime:ro - - ${SAFELINE_DIR}/resources/luigi:/app/data - environment: - - MGT_IP=${SUBNET_PREFIX}.4 - logging: - options: - max-size: "100m" - max-file: "5" - depends_on: - - safeline-detector - - safeline-mgt - labels: - createdBy: Apps - - safeline-fvm: - container_name: ${CONTAINER_NAME}-fvm - restart: always - networks: - 1panel-network: - safeline-ce: - ipv4_address: ${SUBNET_PREFIX}.8 - image: chaitin/safeline-fvm:latest - volumes: - - /etc/localtime:/etc/localtime:ro - logging: - options: - max-size: "100m" - max-file: "5" - labels: - createdBy: Apps - - safeline-pg: - container_name: ${CONTAINER_NAME}-pg - restart: always - networks: - 1panel-network: - safeline-ce: - ipv4_address: ${SUBNET_PREFIX}.2 - image: postgres:15.8 - volumes: - - ${SAFELINE_DIR}/resources/postgres/data:/var/lib/postgresql/data - - /etc/localtime:/etc/localtime:ro - environment: - - POSTGRES_USER=safeline-ce - - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - command: [postgres, -c, max_connections=600] - healthcheck: - test: pg_isready -U safeline-ce -d safeline-ce - labels: - createdBy: Apps - - safeline-chaos: - container_name: ${CONTAINER_NAME}-chaos - restart: always - networks: - 1panel-network: - safeline-ce: - ipv4_address: ${SUBNET_PREFIX}.10 - image: chaitin/safeline-chaos:latest - logging: - options: - max-size: "100m" - max-file: "5" - volumes: - - ${SAFELINE_DIR}/resources/sock:/app/sock - - ${SAFELINE_DIR}/resources/chaos:/app/chaos - labels: - createdBy: Apps - -networks: - 1panel-network: - external: true - safeline-ce: - name: safeline-ce - driver: bridge - ipam: - driver: default - config: - - gateway: ${SUBNET_PREFIX:?SUBNET_PREFIX required}.1 - subnet: ${SUBNET_PREFIX}.0/24 - driver_opts: - com.docker.network.bridge.name: safeline-ce \ No newline at end of file diff --git a/apps/sd-comfyui/latest/comfy/Dockerfile b/apps/sd-comfyui/latest/comfy/Dockerfile index 43a41675b..a581e9f87 100644 --- a/apps/sd-comfyui/latest/comfy/Dockerfile +++ b/apps/sd-comfyui/latest/comfy/Dockerfile @@ -1,4 +1,4 @@ -FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 +FROM nvidia/cuda:12.2.2-cudnn8-devel-ubuntu22.04 ENV DEBIAN_FRONTEND=noninteractive ENV PIP_PREFER_BINARY=1 diff --git a/apps/seafile/12.0.11/.env.sample b/apps/seafile/12.0.14/.env.sample similarity index 100% rename from apps/seafile/12.0.11/.env.sample rename to apps/seafile/12.0.14/.env.sample diff --git a/apps/seafile/12.0.11/data.yml b/apps/seafile/12.0.14/data.yml similarity index 100% rename from apps/seafile/12.0.11/data.yml rename to apps/seafile/12.0.14/data.yml diff --git a/apps/seafile/12.0.11/docker-compose.yml b/apps/seafile/12.0.14/docker-compose.yml similarity index 94% rename from apps/seafile/12.0.11/docker-compose.yml rename to apps/seafile/12.0.14/docker-compose.yml index 08f4c74c3..34cf5153f 100644 --- a/apps/seafile/12.0.11/docker-compose.yml +++ b/apps/seafile/12.0.14/docker-compose.yml @@ -17,7 +17,7 @@ services: - SEAFILE_ADMIN_PASSWORD=${ADMIN_PASSWORD} - SEAFILE_SERVER_LETSENCRYPT=false - SEAFILE_SERVER_HOSTNAME=${SERVER_HOSTNAME} - image: seafileltd/seafile-mc:12.0.11 + image: seafileltd/seafile-mc:12.0.14 labels: createdBy: "Apps" diff --git a/apps/siyuan/3.1.27/.env.sample b/apps/siyuan/3.1.32/.env.sample similarity index 100% rename from apps/siyuan/3.1.27/.env.sample rename to apps/siyuan/3.1.32/.env.sample diff --git a/apps/siyuan/3.1.27/data.yml b/apps/siyuan/3.1.32/data.yml similarity index 100% rename from apps/siyuan/3.1.27/data.yml rename to apps/siyuan/3.1.32/data.yml diff --git a/apps/siyuan/3.1.27/docker-compose.yml b/apps/siyuan/3.1.32/docker-compose.yml similarity index 92% rename from apps/siyuan/3.1.27/docker-compose.yml rename to apps/siyuan/3.1.32/docker-compose.yml index 29dd71967..ac69a80ee 100644 --- a/apps/siyuan/3.1.27/docker-compose.yml +++ b/apps/siyuan/3.1.32/docker-compose.yml @@ -10,7 +10,7 @@ services: - "${DATA_PATH}:/siyuan/workspace" user: "1000:1000" command: "--workspace=/siyuan/workspace/" - image: b3log/siyuan:v3.1.27 + image: b3log/siyuan:v3.1.32 labels: createdBy: "Apps" diff --git a/apps/slink/1.4.8/.env.sample b/apps/slink/1.4.9/.env.sample similarity index 100% rename from apps/slink/1.4.8/.env.sample rename to apps/slink/1.4.9/.env.sample diff --git a/apps/slink/1.4.8/data.yml b/apps/slink/1.4.9/data.yml similarity index 100% rename from apps/slink/1.4.8/data.yml rename to apps/slink/1.4.9/data.yml diff --git a/apps/slink/1.4.8/docker-compose.yml b/apps/slink/1.4.9/docker-compose.yml similarity index 96% rename from apps/slink/1.4.8/docker-compose.yml rename to apps/slink/1.4.9/docker-compose.yml index c742e392d..e4bc9cf7c 100644 --- a/apps/slink/1.4.8/docker-compose.yml +++ b/apps/slink/1.4.9/docker-compose.yml @@ -1,6 +1,6 @@ services: slink: - image: anirdev/slink:v1.4.8 + image: anirdev/slink:v1.4.9 container_name: ${CONTAINER_NAME} restart: always networks: diff --git a/apps/smokeping/2.8.2/.env.sample b/apps/smokeping/2.9.0/.env.sample similarity index 100% rename from apps/smokeping/2.8.2/.env.sample rename to apps/smokeping/2.9.0/.env.sample diff --git a/apps/smokeping/2.8.2/data.yml b/apps/smokeping/2.9.0/data.yml similarity index 100% rename from apps/smokeping/2.8.2/data.yml rename to apps/smokeping/2.9.0/data.yml diff --git a/apps/smokeping/2.8.2/docker-compose.yml b/apps/smokeping/2.9.0/docker-compose.yml similarity index 92% rename from apps/smokeping/2.8.2/docker-compose.yml rename to apps/smokeping/2.9.0/docker-compose.yml index 70bea23b5..f8841386e 100644 --- a/apps/smokeping/2.8.2/docker-compose.yml +++ b/apps/smokeping/2.9.0/docker-compose.yml @@ -6,7 +6,7 @@ services: - 1panel-network ports: - "${PANEL_APP_PORT_HTTP}:80" - image: linuxserver/smokeping:2.8.2 + image: linuxserver/smokeping:2.9.0 environment: - PUID=1000 - PGID=1000 diff --git a/apps/synapse-admin/0.10.3/.env.sample b/apps/synapse-admin/0.11.1/.env.sample similarity index 100% rename from apps/synapse-admin/0.10.3/.env.sample rename to apps/synapse-admin/0.11.1/.env.sample diff --git a/apps/synapse-admin/0.10.3/data.yml b/apps/synapse-admin/0.11.1/data.yml similarity index 100% rename from apps/synapse-admin/0.10.3/data.yml rename to apps/synapse-admin/0.11.1/data.yml diff --git a/apps/synapse-admin/0.10.3/docker-compose.yml b/apps/synapse-admin/0.11.1/docker-compose.yml similarity index 83% rename from apps/synapse-admin/0.10.3/docker-compose.yml rename to apps/synapse-admin/0.11.1/docker-compose.yml index 25e6f8aac..bb0b64c71 100644 --- a/apps/synapse-admin/0.10.3/docker-compose.yml +++ b/apps/synapse-admin/0.11.1/docker-compose.yml @@ -6,7 +6,7 @@ services: - 1panel-network ports: - "${PANEL_APP_PORT_HTTP}:80" - image: awesometechnologies/synapse-admin:0.10.3 + image: awesometechnologies/synapse-admin:0.11.1 labels: createdBy: "Apps" diff --git a/apps/synapse/1.128.0/.env.sample b/apps/synapse/1.131.0/.env.sample similarity index 100% rename from apps/synapse/1.128.0/.env.sample rename to apps/synapse/1.131.0/.env.sample diff --git a/apps/synapse/1.128.0/data.yml b/apps/synapse/1.131.0/data.yml similarity index 100% rename from apps/synapse/1.128.0/data.yml rename to apps/synapse/1.131.0/data.yml diff --git a/apps/synapse/1.128.0/docker-compose.yml b/apps/synapse/1.131.0/docker-compose.yml similarity index 93% rename from apps/synapse/1.128.0/docker-compose.yml rename to apps/synapse/1.131.0/docker-compose.yml index d262d1974..2564d4a56 100644 --- a/apps/synapse/1.128.0/docker-compose.yml +++ b/apps/synapse/1.131.0/docker-compose.yml @@ -12,7 +12,7 @@ services: - TZ=Asia/Shanghai - UID=1000 - GID=1000 - image: matrixdotorg/synapse:v1.128.0 + image: matrixdotorg/synapse:v1.131.0 logging: options: max-size: "10m" diff --git a/apps/syncclipboard-server/2.9.0/.env.sample b/apps/syncclipboard-server/3.0.1/.env.sample similarity index 100% rename from apps/syncclipboard-server/2.9.0/.env.sample rename to apps/syncclipboard-server/3.0.1/.env.sample diff --git a/apps/syncclipboard-server/2.9.0/data.yml b/apps/syncclipboard-server/3.0.1/data.yml similarity index 100% rename from apps/syncclipboard-server/2.9.0/data.yml rename to apps/syncclipboard-server/3.0.1/data.yml diff --git a/apps/syncclipboard-server/2.9.0/data/appsettings.json b/apps/syncclipboard-server/3.0.1/data/appsettings.json similarity index 100% rename from apps/syncclipboard-server/2.9.0/data/appsettings.json rename to apps/syncclipboard-server/3.0.1/data/appsettings.json diff --git a/apps/syncclipboard-server/2.9.0/docker-compose.yml b/apps/syncclipboard-server/3.0.1/docker-compose.yml similarity index 87% rename from apps/syncclipboard-server/2.9.0/docker-compose.yml rename to apps/syncclipboard-server/3.0.1/docker-compose.yml index f181d383a..02b0704b2 100644 --- a/apps/syncclipboard-server/2.9.0/docker-compose.yml +++ b/apps/syncclipboard-server/3.0.1/docker-compose.yml @@ -1,6 +1,6 @@ services: syncclipboard-server: - image: jericx/syncclipboard-server:v2.9.0 + image: jericx/syncclipboard-server:v3.0.1 container_name: ${CONTAINER_NAME} restart: always networks: diff --git a/apps/syncthing/1.29.5/.env.sample b/apps/syncthing/1.29.7/.env.sample similarity index 100% rename from apps/syncthing/1.29.5/.env.sample rename to apps/syncthing/1.29.7/.env.sample diff --git a/apps/syncthing/1.29.5/data.yml b/apps/syncthing/1.29.7/data.yml similarity index 100% rename from apps/syncthing/1.29.5/data.yml rename to apps/syncthing/1.29.7/data.yml diff --git a/apps/syncthing/1.29.5/docker-compose.yml b/apps/syncthing/1.29.7/docker-compose.yml similarity index 93% rename from apps/syncthing/1.29.5/docker-compose.yml rename to apps/syncthing/1.29.7/docker-compose.yml index 4b0781bfc..d48530a57 100644 --- a/apps/syncthing/1.29.5/docker-compose.yml +++ b/apps/syncthing/1.29.7/docker-compose.yml @@ -18,7 +18,7 @@ services: - ${SYNCTHING_PORT}:22000/tcp - ${SYNCTHING_PORT}:22000/udp - ${SYNCTHING_PORT_EXTRA_UDP}:21027/udp - image: linuxserver/syncthing:1.29.5 + image: linuxserver/syncthing:1.29.7 labels: createdBy: "Apps" diff --git a/apps/tailscale/1.82/.env.sample b/apps/tailscale/1.84/.env.sample similarity index 100% rename from apps/tailscale/1.82/.env.sample rename to apps/tailscale/1.84/.env.sample diff --git a/apps/tailscale/1.82/data.yml b/apps/tailscale/1.84/data.yml similarity index 75% rename from apps/tailscale/1.82/data.yml rename to apps/tailscale/1.84/data.yml index 8ac9a3e4b..9001a494b 100644 --- a/apps/tailscale/1.82/data.yml +++ b/apps/tailscale/1.84/data.yml @@ -4,7 +4,8 @@ additionalProperties: edit: true envKey: TS_AUTHKEY labelEn: Tailscale Auth Key - labelZh: Tailscale 认证密钥 + labelZh: Tailscale 认证密钥(建议重新生成) + random: true required: true type: text - default: 192.168.1.0/24,10.0.0.0/16 @@ -17,17 +18,27 @@ additionalProperties: - default: 'false' edit: true envKey: TS_ACCEPT_DNS - labelEn: Accept DNS configuration (true/false) - labelZh: 是否接受 DNS 配置 (true/false) + labelEn: Accept DNS configuration + labelZh: 是否接受 DNS 配置 required: false - type: text + type: select + values: + - label: 'true' + value: 'true' + - label: 'false' + value: 'false' - default: 'false' edit: true envKey: TS_AUTH_ONCE - labelEn: Attempt to log in once (true/false) - labelZh: 尝试仅登录一次 (true/false) + labelEn: Attempt to log in once + labelZh: 尝试仅登录一次 required: false - type: text + type: select + values: + - label: 'true' + value: 'true' + - label: 'false' + value: 'false' - default: '' edit: true envKey: TS_DEST_IP @@ -80,10 +91,15 @@ additionalProperties: - default: 'true' edit: true envKey: TS_USERSPACE - labelEn: Enable Userspace Networking (true/false) - labelZh: 启用用户空间网络 (true/false) + labelEn: Enable Userspace Networking + labelZh: 启用用户空间网络 required: false - type: text + type: select + values: + - label: 'true' + value: 'true' + - label: 'false' + value: 'false' - default: '' edit: true envKey: TS_EXTRA_ARGS diff --git a/apps/tailscale/1.82/docker-compose.yml b/apps/tailscale/1.84/docker-compose.yml similarity index 95% rename from apps/tailscale/1.82/docker-compose.yml rename to apps/tailscale/1.84/docker-compose.yml index a342ad594..5c48b16ed 100644 --- a/apps/tailscale/1.82/docker-compose.yml +++ b/apps/tailscale/1.84/docker-compose.yml @@ -23,6 +23,6 @@ services: - TS_STATE_DIR=${TS_STATE_DIR} - TS_USERSPACE=${TS_USERSPACE} - TS_EXTRA_ARGS=${TS_EXTRA_ARGS} - image: tailscale/tailscale:v1.82 + image: tailscale/tailscale:v1.84 labels: createdBy: "Apps" diff --git a/apps/tailscale/latest/data.yml b/apps/tailscale/latest/data.yml index 8ac9a3e4b..9001a494b 100644 --- a/apps/tailscale/latest/data.yml +++ b/apps/tailscale/latest/data.yml @@ -4,7 +4,8 @@ additionalProperties: edit: true envKey: TS_AUTHKEY labelEn: Tailscale Auth Key - labelZh: Tailscale 认证密钥 + labelZh: Tailscale 认证密钥(建议重新生成) + random: true required: true type: text - default: 192.168.1.0/24,10.0.0.0/16 @@ -17,17 +18,27 @@ additionalProperties: - default: 'false' edit: true envKey: TS_ACCEPT_DNS - labelEn: Accept DNS configuration (true/false) - labelZh: 是否接受 DNS 配置 (true/false) + labelEn: Accept DNS configuration + labelZh: 是否接受 DNS 配置 required: false - type: text + type: select + values: + - label: 'true' + value: 'true' + - label: 'false' + value: 'false' - default: 'false' edit: true envKey: TS_AUTH_ONCE - labelEn: Attempt to log in once (true/false) - labelZh: 尝试仅登录一次 (true/false) + labelEn: Attempt to log in once + labelZh: 尝试仅登录一次 required: false - type: text + type: select + values: + - label: 'true' + value: 'true' + - label: 'false' + value: 'false' - default: '' edit: true envKey: TS_DEST_IP @@ -80,10 +91,15 @@ additionalProperties: - default: 'true' edit: true envKey: TS_USERSPACE - labelEn: Enable Userspace Networking (true/false) - labelZh: 启用用户空间网络 (true/false) + labelEn: Enable Userspace Networking + labelZh: 启用用户空间网络 required: false - type: text + type: select + values: + - label: 'true' + value: 'true' + - label: 'false' + value: 'false' - default: '' edit: true envKey: TS_EXTRA_ARGS diff --git a/apps/tianji/1.19.0/.env.sample b/apps/tianji/1.21.13/.env.sample similarity index 100% rename from apps/tianji/1.19.0/.env.sample rename to apps/tianji/1.21.13/.env.sample diff --git a/apps/tianji/1.19.0/data.yml b/apps/tianji/1.21.13/data.yml similarity index 100% rename from apps/tianji/1.19.0/data.yml rename to apps/tianji/1.21.13/data.yml diff --git a/apps/tianji/1.19.0/docker-compose.yml b/apps/tianji/1.21.13/docker-compose.yml similarity index 92% rename from apps/tianji/1.19.0/docker-compose.yml rename to apps/tianji/1.21.13/docker-compose.yml index a7ee4a68d..f010f77a4 100644 --- a/apps/tianji/1.19.0/docker-compose.yml +++ b/apps/tianji/1.21.13/docker-compose.yml @@ -2,7 +2,7 @@ services: tianji: container_name: ${CONTAINER_NAME} restart: always - image: moonrailgun/tianji:1.19.0 + image: moonrailgun/tianji:1.21.13 networks: - 1panel-network ports: diff --git a/apps/transmission/4.0.6/.env.sample b/apps/transmission/2021.11.18/.env.sample similarity index 100% rename from apps/transmission/4.0.6/.env.sample rename to apps/transmission/2021.11.18/.env.sample diff --git a/apps/transmission/4.0.6/data.yml b/apps/transmission/2021.11.18/data.yml similarity index 100% rename from apps/transmission/4.0.6/data.yml rename to apps/transmission/2021.11.18/data.yml diff --git a/apps/transmission/4.0.6/docker-compose.yml b/apps/transmission/2021.11.18/docker-compose.yml similarity index 94% rename from apps/transmission/4.0.6/docker-compose.yml rename to apps/transmission/2021.11.18/docker-compose.yml index 0903342e5..e41082f17 100644 --- a/apps/transmission/4.0.6/docker-compose.yml +++ b/apps/transmission/2021.11.18/docker-compose.yml @@ -22,7 +22,7 @@ services: - WHITELIST= #optional - PEERPORT=${PEER_PORT_VALUE} - HOST_WHITELIST= #optional - image: linuxserver/transmission:4.0.6 + image: linuxserver/transmission:2021.11.18 labels: createdBy: "Apps" diff --git a/apps/unblockneteasemusic/0.27.8/.env.sample b/apps/unblockneteasemusic/0.27.10/.env.sample similarity index 100% rename from apps/unblockneteasemusic/0.27.8/.env.sample rename to apps/unblockneteasemusic/0.27.10/.env.sample diff --git a/apps/unblockneteasemusic/0.27.8/data.yml b/apps/unblockneteasemusic/0.27.10/data.yml similarity index 100% rename from apps/unblockneteasemusic/0.27.8/data.yml rename to apps/unblockneteasemusic/0.27.10/data.yml diff --git a/apps/unblockneteasemusic/0.27.8/data/server.crt b/apps/unblockneteasemusic/0.27.10/data/server.crt similarity index 100% rename from apps/unblockneteasemusic/0.27.8/data/server.crt rename to apps/unblockneteasemusic/0.27.10/data/server.crt diff --git a/apps/unblockneteasemusic/0.27.8/data/server.key b/apps/unblockneteasemusic/0.27.10/data/server.key similarity index 100% rename from apps/unblockneteasemusic/0.27.8/data/server.key rename to apps/unblockneteasemusic/0.27.10/data/server.key diff --git a/apps/unblockneteasemusic/0.27.8/docker-compose.yml b/apps/unblockneteasemusic/0.27.10/docker-compose.yml similarity index 97% rename from apps/unblockneteasemusic/0.27.8/docker-compose.yml rename to apps/unblockneteasemusic/0.27.10/docker-compose.yml index ec31ca777..fe664ace4 100644 --- a/apps/unblockneteasemusic/0.27.8/docker-compose.yml +++ b/apps/unblockneteasemusic/0.27.10/docker-compose.yml @@ -56,7 +56,7 @@ services: # 在其他音源搜索歌曲时携带专辑名称(默认搜索条件 `歌曲名 - 歌手`,启用后搜索条件 `歌曲名 - 歌手 专辑名`) - SEARCH_ALBUM=true #command: ["-o", "bilibili"] # 设置要传递给容器的参数 - image: pan93412/unblock-netease-music-enhanced:v0.27.8 + image: pan93412/unblock-netease-music-enhanced:v0.27.10 labels: createdBy: "Apps" diff --git a/apps/upsnap/5.0/.env.sample b/apps/upsnap/5.1/.env.sample similarity index 100% rename from apps/upsnap/5.0/.env.sample rename to apps/upsnap/5.1/.env.sample diff --git a/apps/upsnap/5.0/data.yml b/apps/upsnap/5.1/data.yml similarity index 100% rename from apps/upsnap/5.0/data.yml rename to apps/upsnap/5.1/data.yml diff --git a/apps/upsnap/5.0/docker-compose.yml b/apps/upsnap/5.1/docker-compose.yml similarity index 95% rename from apps/upsnap/5.0/docker-compose.yml rename to apps/upsnap/5.1/docker-compose.yml index fdcc8eee2..88527fa42 100644 --- a/apps/upsnap/5.0/docker-compose.yml +++ b/apps/upsnap/5.1/docker-compose.yml @@ -1,6 +1,6 @@ services: upsnap: - image: "seriousm4x/upsnap:5.0" + image: "seriousm4x/upsnap:5.1" container_name: ${CONTAINER_NAME} network_mode: host restart: always diff --git a/apps/uuwaf/6.2.0/.env.sample b/apps/uuwaf/6.8.0/.env.sample similarity index 100% rename from apps/uuwaf/6.2.0/.env.sample rename to apps/uuwaf/6.8.0/.env.sample diff --git a/apps/uuwaf/6.2.0/data.yml b/apps/uuwaf/6.8.0/data.yml similarity index 100% rename from apps/uuwaf/6.2.0/data.yml rename to apps/uuwaf/6.8.0/data.yml diff --git a/apps/uuwaf/6.2.0/docker-compose.yml b/apps/uuwaf/6.8.0/docker-compose.yml similarity index 94% rename from apps/uuwaf/6.2.0/docker-compose.yml rename to apps/uuwaf/6.8.0/docker-compose.yml index 27f87c81e..0f734aba1 100644 --- a/apps/uuwaf/6.2.0/docker-compose.yml +++ b/apps/uuwaf/6.8.0/docker-compose.yml @@ -1,6 +1,6 @@ services: uuwaf: - image: "uusec/nanqiang:v6.2.0" + image: "uusec/nanqiang:v6.8.0" ulimits: nproc: 65535 nofile: @@ -27,7 +27,7 @@ services: wafdb: condition: service_healthy wafdb: - image: "percona/percona-server:5.7.44" + image: "percona/percona-server:8.4.5" container_name: ${CONTAINER_NAME}-db restart: always networks: diff --git a/apps/uuwaf/6.2.0/low-memory-my.cnf b/apps/uuwaf/6.8.0/low-memory-my.cnf similarity index 100% rename from apps/uuwaf/6.2.0/low-memory-my.cnf rename to apps/uuwaf/6.8.0/low-memory-my.cnf diff --git a/apps/uuwaf/6.2.0/scripts/uninstall.sh b/apps/uuwaf/6.8.0/scripts/uninstall.sh similarity index 100% rename from apps/uuwaf/6.2.0/scripts/uninstall.sh rename to apps/uuwaf/6.8.0/scripts/uninstall.sh diff --git a/apps/vertex/2025.06.06/.env.sample b/apps/vertex/2025.06.06/.env.sample new file mode 100644 index 000000000..9f59c3c3d --- /dev/null +++ b/apps/vertex/2025.06.06/.env.sample @@ -0,0 +1,3 @@ +CONTAINER_NAME="vertex" +PANEL_APP_PORT_HTTP="40197" +DATA_PATH="./data" diff --git a/apps/vertex/2025.06.06/data.yml b/apps/vertex/2025.06.06/data.yml new file mode 100644 index 000000000..423c24341 --- /dev/null +++ b/apps/vertex/2025.06.06/data.yml @@ -0,0 +1,17 @@ +additionalProperties: + formFields: + - default: 40197 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: ./data + edit: true + envKey: DATA_PATH + labelEn: Data folder path + labelZh: 数据文件夹路径 + required: true + type: text diff --git a/apps/vertex/2025.06.06/docker-compose.yml b/apps/vertex/2025.06.06/docker-compose.yml new file mode 100644 index 000000000..2244859e0 --- /dev/null +++ b/apps/vertex/2025.06.06/docker-compose.yml @@ -0,0 +1,20 @@ +services: + vertex: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP}" + volumes: + - "${DATA_PATH}:/vertex" + environment: + - TZ=Asia/Shanghai + - PORT=${PANEL_APP_PORT_HTTP} + image: lswl/vertex:2025.06.06 + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/wallos/2.50.1/.env.sample b/apps/wallos/3.3.0/.env.sample similarity index 100% rename from apps/wallos/2.50.1/.env.sample rename to apps/wallos/3.3.0/.env.sample diff --git a/apps/wallos/2.50.1/data.yml b/apps/wallos/3.3.0/data.yml similarity index 100% rename from apps/wallos/2.50.1/data.yml rename to apps/wallos/3.3.0/data.yml diff --git a/apps/wallos/2.50.1/docker-compose.yml b/apps/wallos/3.3.0/docker-compose.yml similarity index 92% rename from apps/wallos/2.50.1/docker-compose.yml rename to apps/wallos/3.3.0/docker-compose.yml index 62badc6f0..16e0b85ce 100644 --- a/apps/wallos/2.50.1/docker-compose.yml +++ b/apps/wallos/3.3.0/docker-compose.yml @@ -11,7 +11,7 @@ services: - ./data/logos:/var/www/html/images/uploads/logos environment: - TZ=${TIME_ZONE} - image: bellamy/wallos:2.50.1 + image: bellamy/wallos:3.3.0 labels: createdBy: "Apps" diff --git a/apps/webos/1.4.3/.env.sample b/apps/webos/1.4.4/.env.sample similarity index 100% rename from apps/webos/1.4.3/.env.sample rename to apps/webos/1.4.4/.env.sample diff --git a/apps/webos/1.4.3/data.yml b/apps/webos/1.4.4/data.yml similarity index 100% rename from apps/webos/1.4.3/data.yml rename to apps/webos/1.4.4/data.yml diff --git a/apps/webos/1.4.3/docker-compose.yml b/apps/webos/1.4.4/docker-compose.yml similarity index 91% rename from apps/webos/1.4.3/docker-compose.yml rename to apps/webos/1.4.4/docker-compose.yml index b324aa1e6..8eed24b52 100644 --- a/apps/webos/1.4.3/docker-compose.yml +++ b/apps/webos/1.4.4/docker-compose.yml @@ -10,7 +10,7 @@ services: - "${DATA_PATH}/rootPath:/webos/api/rootPath" - "${DATA_PATH}/apps:/webos/web/apps" tty: true - image: fs185085781/webos:v1.4.3 + image: fs185085781/webos:v1.4.4 labels: createdBy: "Apps" diff --git a/apps/windows/4.27/.env.sample b/apps/windows/4.35/.env.sample similarity index 100% rename from apps/windows/4.27/.env.sample rename to apps/windows/4.35/.env.sample diff --git a/apps/windows/4.27/data.yml b/apps/windows/4.35/data.yml similarity index 100% rename from apps/windows/4.27/data.yml rename to apps/windows/4.35/data.yml diff --git a/apps/windows/4.27/docker-compose.yml b/apps/windows/4.35/docker-compose.yml similarity index 95% rename from apps/windows/4.27/docker-compose.yml rename to apps/windows/4.35/docker-compose.yml index 380fb0eb0..abe6e31fd 100644 --- a/apps/windows/4.27/docker-compose.yml +++ b/apps/windows/4.35/docker-compose.yml @@ -1,6 +1,6 @@ services: windows: - image: "dockurr/windows:4.27" + image: "dockurr/windows:4.35" container_name: ${CONTAINER_NAME} restart: ${RESTART_POLICY} networks: diff --git a/apps/wireguard-easy/14/.env.sample b/apps/wireguard-easy/15/.env.sample similarity index 100% rename from apps/wireguard-easy/14/.env.sample rename to apps/wireguard-easy/15/.env.sample diff --git a/apps/wireguard-easy/14/data.yml b/apps/wireguard-easy/15/data.yml similarity index 100% rename from apps/wireguard-easy/14/data.yml rename to apps/wireguard-easy/15/data.yml diff --git a/apps/wireguard-easy/14/docker-compose.yml b/apps/wireguard-easy/15/docker-compose.yml similarity index 95% rename from apps/wireguard-easy/14/docker-compose.yml rename to apps/wireguard-easy/15/docker-compose.yml index c58d68423..c96c954e3 100644 --- a/apps/wireguard-easy/14/docker-compose.yml +++ b/apps/wireguard-easy/15/docker-compose.yml @@ -25,7 +25,7 @@ services: sysctls: - net.ipv4.ip_forward=1 - net.ipv4.conf.all.src_valid_mark=1 - image: "ghcr.io/wg-easy/wg-easy:14" + image: "ghcr.io/wg-easy/wg-easy:15" labels: createdBy: "Apps" diff --git a/apps/wireguard-easy/14/scripts/upgrade.sh b/apps/wireguard-easy/15/scripts/upgrade.sh similarity index 100% rename from apps/wireguard-easy/14/scripts/upgrade.sh rename to apps/wireguard-easy/15/scripts/upgrade.sh diff --git a/apps/woodpecker/3.5.2/.env.sample b/apps/woodpecker/3.7.0/.env.sample similarity index 100% rename from apps/woodpecker/3.5.2/.env.sample rename to apps/woodpecker/3.7.0/.env.sample diff --git a/apps/woodpecker/3.5.2/data.yml b/apps/woodpecker/3.7.0/data.yml similarity index 100% rename from apps/woodpecker/3.5.2/data.yml rename to apps/woodpecker/3.7.0/data.yml diff --git a/apps/woodpecker/3.5.2/docker-compose.yml b/apps/woodpecker/3.7.0/docker-compose.yml similarity index 96% rename from apps/woodpecker/3.5.2/docker-compose.yml rename to apps/woodpecker/3.7.0/docker-compose.yml index 593b0a371..06d10002a 100644 --- a/apps/woodpecker/3.5.2/docker-compose.yml +++ b/apps/woodpecker/3.7.0/docker-compose.yml @@ -45,7 +45,7 @@ services: # Postgres #- WOODPECKER_DATABASE_DRIVER=postgres #- WOODPECKER_DATABASE_DATASOURCE=postgres://root:password@1.2.3.4:5432/postgres?sslmode=disable - image: woodpeckerci/woodpecker-server:v3.5.2 + image: woodpeckerci/woodpecker-server:v3.7.0 labels: createdBy: "Apps" @@ -63,7 +63,7 @@ services: environment: - WOODPECKER_SERVER=woodpecker-server:9000 - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} - image: woodpeckerci/woodpecker-server:v3.5.2 + image: woodpeckerci/woodpecker-server:v3.7.0 labels: createdBy: "Apps" diff --git a/apps/yourls/1.10.0/.env.sample b/apps/yourls/1.10.1/.env.sample similarity index 100% rename from apps/yourls/1.10.0/.env.sample rename to apps/yourls/1.10.1/.env.sample diff --git a/apps/yourls/1.10.0/data.yml b/apps/yourls/1.10.1/data.yml similarity index 100% rename from apps/yourls/1.10.0/data.yml rename to apps/yourls/1.10.1/data.yml diff --git a/apps/yourls/1.10.0/docker-compose.yml b/apps/yourls/1.10.1/docker-compose.yml similarity index 96% rename from apps/yourls/1.10.0/docker-compose.yml rename to apps/yourls/1.10.1/docker-compose.yml index 6bf4a95c1..f96231a9c 100644 --- a/apps/yourls/1.10.0/docker-compose.yml +++ b/apps/yourls/1.10.1/docker-compose.yml @@ -17,7 +17,7 @@ services: - YOURLS_DB_USER=${PANEL_DB_USER} - YOURLS_DB_PASS=${PANEL_DB_USER_PASSWORD} - YOURLS_DB_PREFIX=${PANEL_DB_PREFIX} - image: yourls:1.10.0 + image: yourls:1.10.1 labels: createdBy: "Apps" diff --git a/apps/zdir/4.3.0/.env.sample b/apps/zdir/4.5.0/.env.sample similarity index 100% rename from apps/zdir/4.3.0/.env.sample rename to apps/zdir/4.5.0/.env.sample diff --git a/apps/zdir/4.3.0/data.yml b/apps/zdir/4.5.0/data.yml similarity index 100% rename from apps/zdir/4.3.0/data.yml rename to apps/zdir/4.5.0/data.yml diff --git a/apps/zdir/4.3.0/docker-compose.yml b/apps/zdir/4.5.0/docker-compose.yml similarity index 92% rename from apps/zdir/4.3.0/docker-compose.yml rename to apps/zdir/4.5.0/docker-compose.yml index 1b29deb2a..281317655 100644 --- a/apps/zdir/4.3.0/docker-compose.yml +++ b/apps/zdir/4.5.0/docker-compose.yml @@ -1,6 +1,6 @@ services: zdir: - image: helloz/zdir:4.3.0 + image: helloz/zdir:4.5.0 container_name: ${CONTAINER_NAME} restart: always networks: diff --git a/apps/zfile/4.1.5/.env.sample b/apps/zfile/4.3.1/.env.sample similarity index 100% rename from apps/zfile/4.1.5/.env.sample rename to apps/zfile/4.3.1/.env.sample diff --git a/apps/zfile/4.1.5/data.yml b/apps/zfile/4.3.1/data.yml similarity index 100% rename from apps/zfile/4.1.5/data.yml rename to apps/zfile/4.3.1/data.yml diff --git a/apps/zfile/4.1.5/docker-compose.yml b/apps/zfile/4.3.1/docker-compose.yml similarity index 91% rename from apps/zfile/4.1.5/docker-compose.yml rename to apps/zfile/4.3.1/docker-compose.yml index 0e8c41dc8..b261f4e59 100644 --- a/apps/zfile/4.1.5/docker-compose.yml +++ b/apps/zfile/4.3.1/docker-compose.yml @@ -10,7 +10,7 @@ services: - "${DATA_PATH}/db:/root/.zfile-v4/db" - "${DATA_PATH}/logs:/root/.zfile-v4/logs" - "${MOUNT_PATH}:/data/file" - image: zhaojun1998/zfile:4.1.5 + image: zhaojun1998/zfile:4.3.1 labels: createdBy: "Apps"