-
-
-AdGuard Home is a network-wide software for blocking ads and tracking. After you
-set it up, it'll cover ALL your home devices, and you don't need any client-side
-software for that.
-
-It operates as a DNS server that re-routes tracking domains to a “black hole”,
-thus preventing your devices from connecting to those servers. It's based on
-software we use for our public [AdGuard DNS] servers, and both share a lot of
-code.
-
-[AdGuard DNS]: https://adguard-dns.io/
-
-
-
- * [Getting Started](#getting-started)
- * [Automated install (Unix)](#automated-install-linux-and-mac)
- * [Alternative methods](#alternative-methods)
- * [Guides](#guides)
- * [API](#api)
- * [Comparing AdGuard Home to other solutions](#comparison)
- * [How is this different from public AdGuard DNS servers?](#comparison-adguard-dns)
- * [How does AdGuard Home compare to Pi-Hole](#comparison-pi-hole)
- * [How does AdGuard Home compare to traditional ad blockers](#comparison-adblock)
- * [Known limitations](#comparison-limitations)
- * [How to build from source](#how-to-build)
- * [Prerequisites](#prerequisites)
- * [Building](#building)
- * [Contributing](#contributing)
- * [Test unstable versions](#test-unstable-versions)
- * [Reporting issues](#reporting-issues)
- * [Help with translations](#translate)
- * [Other](#help-other)
- * [Projects that use AdGuard Home](#uses)
- * [Acknowledgments](#acknowledgments)
- * [Privacy](#privacy)
-
-
-
-## Getting Started
-
- ### Automated install (Unix)
-
-To install with `curl` run the following command:
-
-```sh
-curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
-```
-
-To install with `wget` run the following command:
-
-```sh
-wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
-```
-
-To install with `fetch` run the following command:
-
-```sh
-fetch -o - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
-```
-
-The script also accepts some options:
-
- * `-c ` to use specified channel;
- * `-r` to reinstall AdGuard Home;
- * `-u` to uninstall AdGuard Home;
- * `-v` for verbose output.
-
-Note that options `-r` and `-u` are mutually exclusive.
-
-
-
- ### Alternative methods
-
- #### Manual installation
-
-Please read the **[Getting Started][wiki-start]** article on our Wiki to learn
-how to install AdGuard Home manually, and how to configure your devices to use
-it.
-
- #### Docker
-
-You can use our official Docker image on [Docker Hub].
-
- #### Snap Store
-
-If you're running **Linux,** there's a secure and easy way to install AdGuard
-Home: get it from the [Snap Store].
-
-[Docker Hub]: https://hub.docker.com/r/adguard/adguardhome
-[Snap Store]: https://snapcraft.io/adguard-home
-[wiki-start]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started
-
-
-
- ### Guides
-
-See our [Wiki][wiki].
-
-[wiki]: https://github.com/AdguardTeam/AdGuardHome/wiki
-
-
-
- ### API
-
-If you want to integrate with AdGuard Home, you can use our [REST API][openapi].
-Alternatively, you can use this [python client][pyclient], which is used to
-build the [AdGuard Home Hass.io Add-on][hassio].
-
-[hassio]: https://www.home-assistant.io/integrations/adguard/
-[openapi]: https://github.com/AdguardTeam/AdGuardHome/tree/master/openapi
-[pyclient]: https://pypi.org/project/adguardhome/
-
-
-
-## Comparing AdGuard Home to other solutions
-
- ### How is this different from public AdGuard DNS servers?
-
-Running your own AdGuard Home server allows you to do much more than using a
-public DNS server. It's a completely different level. See for yourself:
-
- * Choose what exactly the server blocks and permits.
-
- * Monitor your network activity.
-
- * Add your own custom filtering rules.
-
- * **Most importantly, it's your own server, and you are the only one who's in
- control.**
-
-
-
- ### How does AdGuard Home compare to Pi-Hole
-
-At this point, AdGuard Home has a lot in common with Pi-Hole. Both block ads
-and trackers using the so-called “DNS sinkholing” method and both allow
-customizing what's blocked.
-
-
-
-AdGuard Home provides a lot of features out-of-the-box with no need to install
-and configure additional software. We want it to be simple to the point when
-even casual users can set it up with minimal effort.
-
-**Disclaimer:** some of the listed features can be added to Pi-Hole by
-installing additional software or by manually using SSH terminal and
-reconfiguring one of the utilities Pi-Hole consists of. However, in our
-opinion, this cannot be legitimately counted as a Pi-Hole's feature.
-
-| Feature | AdGuard Home | Pi-Hole |
-|-------------------------------------------------------------------------|-------------------|-----------------------------------------------------------|
-| Blocking ads and trackers | ✅ | ✅ |
-| Customizing blocklists | ✅ | ✅ |
-| Built-in DHCP server | ✅ | ✅ |
-| HTTPS for the Admin interface | ✅ | Kind of, but you'll need to manually configure lighttpd |
-| Encrypted DNS upstream servers (DNS-over-HTTPS, DNS-over-TLS, DNSCrypt) | ✅ | ❌ (requires additional software) |
-| Cross-platform | ✅ | ❌ (not natively, only via Docker) |
-| Running as a DNS-over-HTTPS or DNS-over-TLS server | ✅ | ❌ (requires additional software) |
-| Blocking phishing and malware domains | ✅ | ❌ (requires non-default blocklists) |
-| Parental control (blocking adult domains) | ✅ | ❌ |
-| Force Safe search on search engines | ✅ | ❌ |
-| Per-client (device) configuration | ✅ | ✅ |
-| Access settings (choose who can use AGH DNS) | ✅ | ❌ |
-| Running [without root privileges][wiki-noroot] | ✅ | ❌ |
-
-[wiki-noroot]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started#running-without-superuser
-
-
-
- ### How does AdGuard Home compare to traditional ad blockers
-
-It depends.
-
-DNS sinkholing is capable of blocking a big percentage of ads, but it lacks
-the flexibility and the power of traditional ad blockers. You can get a good
-impression about the difference between these methods by reading [this
-article][blog-adaway], which compares AdGuard for Android (a traditional ad
-blocker) to hosts-level ad blockers (which are almost identical to DNS-based
-blockers in their capabilities). This level of protection is enough for some
-users.
-
-Additionally, using a DNS-based blocker can help to block ads, tracking and
-analytics requests on other types of devices, such as SmartTVs, smart speakers
-or other kinds of IoT devices (on which you can't install traditional ad
-blockers).
-
-
-
- ### Known limitations
-
-Here are some examples of what cannot be blocked by a DNS-level blocker:
-
- * YouTube, Twitch ads;
-
- * Facebook, Twitter, Instagram sponsored posts.
-
-Essentially, any advertising that shares a domain with content cannot be blocked
-by a DNS-level blocker.
-
-Is there a chance to handle this in the future? DNS will never be enough to do
-this. Our only option is to use a content blocking proxy like what we do in the
-standalone AdGuard applications. We're [going to bring][issue-1228] this
-feature support to AdGuard Home in the future. Unfortunately, even in this
-case, there still will be cases when this won't be enough or would require quite
-a complicated configuration.
-
-[blog-adaway]: https://adguard.com/blog/adguard-vs-adaway-dns66.html
-[issue-1228]: https://github.com/AdguardTeam/AdGuardHome/issues/1228
-
-
-
-## How to build from source
-
- ### Prerequisites
-
-Run `make init` to prepare the development environment.
-
-You will need this to build AdGuard Home:
-
- * [Go](https://golang.org/dl/) v1.19 or later;
- * [Node.js](https://nodejs.org/en/download/) v10.16.2 or later;
- * [npm](https://www.npmjs.com/) v6.14 or later;
- * [yarn](https://yarnpkg.com/) v1.22.5 or later.
-
-
-
- ### Building
-
-Open your terminal and execute these commands:
-
-```sh
-git clone https://github.com/AdguardTeam/AdGuardHome
-cd AdGuardHome
-make
-```
-
-**NOTE:** The non-standard `-j` flag is currently not supported, so building
-with `make -j 4` or setting your `MAKEFLAGS` to include, for example, `-j 4` is
-likely to break the build. If you do have your `MAKEFLAGS` set to that, and you
-don't want to change it, you can override it by running `make -j 1`.
-
-Check the [`Makefile`][src-makefile] to learn about other commands.
-
- #### Building for a different platform
-
-You can build AdGuard Home for any OS/ARCH that Go supports. In order to do
-this, specify `GOOS` and `GOARCH` environment variables as macros when running
-`make`.
-
-For example:
-
-```sh
-env GOOS='linux' GOARCH='arm64' make
-```
-
-or:
-
-```sh
-make GOOS='linux' GOARCH='arm64'
-```
-
- #### Preparing releases
-
-You'll need [`snapcraft`] to prepare a release build. Once installed, run the
-following command:
-
-```sh
-make build-release CHANNEL='...' VERSION='...'
-```
-
-See the [`build-release` target documentation][targ-release].
-
- #### Docker image
-
-Run `make build-docker` to build the Docker image locally (the one that we
-publish to DockerHub). Please note, that we're using [Docker Buildx][buildx] to
-build our official image.
-
-You may need to prepare before using these builds:
-
- * (Linux-only) Install Qemu:
-
- ```sh
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes
- ```
-
- * Prepare the builder:
-
- ```sh
- docker buildx create --name buildx-builder --driver docker-container --use
- ```
-
-See the [`build-docker` target documentation][targ-docker].
-
- #### Debugging the frontend
-
-When you need to debug the frontend without recompiling the production version
-every time, for example to check how your labels would look on a form, you can
-run the frontend build a development environment.
-
-1. In a separate terminal, run:
-
- ```sh
- ( cd ./client/ && env NODE_ENV='development' npm run watch )
- ```
-
-2. Run your `AdGuardHome` binary with the `--local-frontend` flag, which
- instructs AdGuard Home to ignore the built-in frontend files and use those
- from the `./build/` directory.
-
-3. Now any changes you make in the `./client/` directory should be recompiled
- and become available on the web UI. Make sure that you disable the browser
- cache to make sure that you actually get the recompiled version.
-
-[`snapcraft`]: https://snapcraft.io/
-[buildx]: https://docs.docker.com/buildx/working-with-buildx/
-[src-makefile]: https://github.com/AdguardTeam/AdGuardHome/blob/master/Makefile
-[targ-docker]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-dockersh-build-a-multi-architecture-docker-image
-[targ-release]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-releasesh-build-a-release-for-all-platforms
-
-
-
-## Contributing
-
-You are welcome to fork this repository, make your changes and [submit a pull
-request][pr]. Please make sure you follow our [code guidelines][guide] though.
-
-Please note that we don't expect people to contribute to both UI and backend
-parts of the program simultaneously. Ideally, the backend part is implemented
-first, i.e. configuration, API, and the functionality itself. The UI part can
-be implemented later in a different pull request by a different person.
-
-[guide]: https://github.com/AdguardTeam/CodeGuidelines/
-[pr]: https://github.com/AdguardTeam/AdGuardHome/pulls
-
-
-
- ### Test unstable versions
-
-There are two update channels that you can use:
-
- * `beta`: beta versions of AdGuard Home. More or less stable versions,
- usually released every two weeks or more often.
-
- * `edge`: the newest version of AdGuard Home from the development branch. New
- updates are pushed to this channel daily.
-
-There are three options how you can install an unstable version:
-
-1. [Snap Store]: look for the `beta` and `edge` channels.
-
-2. [Docker Hub]: look for the `beta` and `edge` tags.
-
-3. Standalone builds. Use the automated installation script or look for the
- available builds [on the Wiki][wiki-platf].
-
- Script to install a beta version:
-
- ```sh
- curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c beta
- ```
-
- Script to install an edge version:
-
- ```sh
- curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c edge
- ```
-[wiki-platf]: https://github.com/AdguardTeam/AdGuardHome/wiki/Platforms
-
-
-
- ### Report issues
-
-If you run into any problem or have a suggestion, head to [this page][iss] and
-click on the “New issue” button.
-
-[iss]: https://github.com/AdguardTeam/AdGuardHome/issues
-
-
-
- ### Help with translations
-
-If you want to help with AdGuard Home translations, please learn more about
-translating AdGuard products [in our Knowledge Base][kb-trans]. You can
-contribute to the [AdGuardHome project on CrowdIn][crowdin].
-
-[crowdin]: https://crowdin.com/project/adguard-applications/en#/adguard-home
-[kb-trans]: https://kb.adguard.com/en/general/adguard-translations
-
-
-
- ### Other
-
-Another way you can contribute is by [looking for issues][iss-help] marked as
-`help wanted`, asking if the issue is up for grabs, and sending a PR fixing the
-bug or implementing the feature.
-
-[iss-help]: https://github.com/AdguardTeam/AdGuardHome/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
-
-
-
-## Projects that use AdGuard Home
-
-
-
- * [AdGuard Home Remote](https://apps.apple.com/app/apple-store/id1543143740):
- iOS app by [Joost](https://rocketscience-it.nl/).
-
- * [Python library](https://github.com/frenck/python-adguardhome) by
- [@frenck](https://github.com/frenck).
-
- * [Home Assistant add-on](https://github.com/hassio-addons/addon-adguard-home)
- by [@frenck](https://github.com/frenck).
-
- * [OpenWrt LUCI app](https://github.com/kongfl888/luci-app-adguardhome) by
- [@kongfl888](https://github.com/kongfl888) (originally by
- [@rufengsuixing](https://github.com/rufengsuixing)).
-
- * [Prometheus exporter for AdGuard
- Home](https://github.com/ebrianne/adguard-exporter) by
- [@ebrianne](https://github.com/ebrianne).
-
- * [Terminal-based, real-time traffic monitoring and statistics for your AdGuard Home
- instance](https://github.com/Lissy93/AdGuardian-Term) by
- [@Lissy93](https://github.com/Lissy93)
-
- * [AdGuard Home on GLInet
- routers](https://forum.gl-inet.com/t/adguardhome-on-gl-routers/10664) by
- [Gl-Inet](https://gl-inet.com/).
-
- * [Cloudron app](https://git.cloudron.io/cloudron/adguard-home-app) by
- [@gramakri](https://github.com/gramakri).
-
- * [Asuswrt-Merlin-AdGuardHome-Installer](https://github.com/jumpsmm7/Asuswrt-Merlin-AdGuardHome-Installer)
- by [@jumpsmm7](https://github.com/jumpsmm7) aka
- [@SomeWhereOverTheRainBow](https://www.snbforums.com/members/somewhereovertherainbow.64179/).
-
- * [Node.js library](https://github.com/Andrea055/AdguardHomeAPI) by
- [@Andrea055](https://github.com/Andrea055/).
-
-
-
-## Acknowledgments
-
-
-
-This software wouldn't have been possible without:
-
- * [Go](https://golang.org/dl/) and its libraries:
- * [gcache](https://github.com/bluele/gcache)
- * [miekg's dns](https://github.com/miekg/dns)
- * [go-yaml](https://github.com/go-yaml/yaml)
- * [service](https://godoc.org/github.com/kardianos/service)
- * [dnsproxy](https://github.com/AdguardTeam/dnsproxy)
- * [urlfilter](https://github.com/AdguardTeam/urlfilter)
- * [Node.js](https://nodejs.org/) and its libraries:
- * And many more Node.js packages.
- * [React.js](https://reactjs.org)
- * [Tabler](https://github.com/tabler/tabler)
- * [whotracks.me data](https://github.com/cliqz-oss/whotracks.me)
-
-You might have seen that [CoreDNS] was mentioned here before, but we've stopped
-using it in AdGuard Home.
-
-For the full list of all Node.js packages in use, please take a look at
-[`client/package.json`][src-packagejson] file.
-
-[CoreDNS]: https://coredns.io
-[src-packagejson]: https://github.com/AdguardTeam/AdGuardHome/blob/master/client/package.json
-
-
-
-## Privacy
-
-Our main idea is that you are the one, who should be in control of your data.
-So it is only natural, that AdGuard Home does not collect any usage statistics,
-and does not use any web services unless you configure it to do so. See also
-the [full privacy policy][privacy] with every bit that *could in theory be sent*
-by AdGuard Home is available.
-
-[privacy]: https://adguard.com/en/privacy/home.html
diff --git a/apps/adguardhome/data.yml b/apps/adguardhome/data.yml
deleted file mode 100644
index a62e75b4..00000000
--- a/apps/adguardhome/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: AdGuardHome
-tags:
- - 安全
-title: 自由且开源的,功能强大的网络广告和跟踪器屏蔽DNS服务器
-description: 自由且开源的,功能强大的网络广告和跟踪器屏蔽DNS服务器
-additionalProperties:
- key: adguardhome
- name: AdGuardHome
- tags:
- - Security
- shortDescZh: 自由且开源的,功能强大的网络广告和跟踪器屏蔽DNS服务器
- shortDescEn: Free and open source, powerful network-wide ads & trackers blocking DNS server
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://hub.docker.com/r/adguard/adguardhome
- github: https://github.com/AdguardTeam/AdGuardHome
- document: https://github.com/AdguardTeam/AdGuardHome/wiki
diff --git a/apps/adguardhome/latest/.env.sample b/apps/adguardhome/latest/.env.sample
deleted file mode 100644
index ffd81e37..00000000
--- a/apps/adguardhome/latest/.env.sample
+++ /dev/null
@@ -1,13 +0,0 @@
-CONTAINER_NAME="adguardhome"
-PLAIN_DNS_PORT="20053"
-DHCP_PORT1="20067"
-DHCP_PORT2="20068"
-HTTP_PORT="23000"
-PANEL_APP_PORT_HTTP="23001"
-DOH_PORT="20443"
-DOT_PORT="853"
-QUIC_PORT1="20784"
-QUIC_PORT2="8853"
-DNS_CRYPT_PORT="5443"
-WORK_PATH="./data/work"
-CONFIG_PATH="./data/conf"
diff --git a/apps/adguardhome/latest/data.yml b/apps/adguardhome/latest/data.yml
deleted file mode 100644
index 13053a04..00000000
--- a/apps/adguardhome/latest/data.yml
+++ /dev/null
@@ -1,96 +0,0 @@
-additionalProperties:
- formFields:
- - default: 20053
- edit: true
- envKey: PLAIN_DNS_PORT
- labelEn: Plain DNS port
- labelZh: 普通DNS端口
- required: true
- rule: paramPort
- type: number
- - default: 20067
- edit: true
- envKey: DHCP_PORT1
- labelEn: DHCP service port 1
- labelZh: DHCP服务端口1
- required: true
- rule: paramPort
- type: number
- - default: 20068
- edit: true
- envKey: DHCP_PORT2
- labelEn: DHCP service port 2
- labelZh: DHCP服务端口2
- required: true
- rule: paramPort
- type: number
- - default: 23000
- edit: true
- envKey: HTTP_PORT
- labelEn: HTTP web port
- labelZh: HTTP网页端口
- required: true
- rule: paramPort
- type: number
- - default: 23001
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Initial setup web page port
- labelZh: 初始设置网页端口
- required: true
- rule: paramPort
- type: number
- - default: 20443
- edit: true
- envKey: DOH_PORT
- labelEn: DOH service port
- labelZh: DOH服务端口
- required: true
- rule: paramPort
- type: number
- - default: 853
- edit: true
- envKey: DOT_PORT
- labelEn: DOT service port
- labelZh: DOT服务端口
- required: true
- rule: paramPort
- type: number
- - default: 20784
- edit: true
- envKey: QUIC_PORT1
- labelEn: QUIC service port 1
- labelZh: QUIC服务端口1
- required: true
- rule: paramPort
- type: number
- - default: 8853
- edit: true
- envKey: QUIC_PORT2
- labelEn: QUIC service port 2
- labelZh: QUIC服务端口2
- required: true
- rule: paramPort
- type: number
- - default: 5443
- edit: true
- envKey: DNS_CRYPT_PORT
- labelEn: DNS Crypt service port
- labelZh: DNS Crypt服务端口
- required: true
- rule: paramPort
- type: number
- - default: ./data/work
- edit: true
- envKey: WORK_PATH
- labelEn: Work data folder path
- labelZh: 工作数据文件夹路径
- required: true
- type: text
- - default: ./data/conf
- edit: true
- envKey: CONFIG_PATH
- labelEn: Configuration folder path
- labelZh: 配置文件夹路径
- required: true
- type: text
diff --git a/apps/adguardhome/latest/docker-compose.yml b/apps/adguardhome/latest/docker-compose.yml
deleted file mode 100644
index da1106ee..00000000
--- a/apps/adguardhome/latest/docker-compose.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-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:latest
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/adguardhome/logo.png b/apps/adguardhome/logo.png
deleted file mode 100644
index 87ad08af..00000000
Binary files a/apps/adguardhome/logo.png and /dev/null differ
diff --git a/apps/alist/3.44.0/.env.sample b/apps/alist/3.44.0/.env.sample
deleted file mode 100644
index ce9d0b12..00000000
--- a/apps/alist/3.44.0/.env.sample
+++ /dev/null
@@ -1,4 +0,0 @@
-CONTAINER_NAME="alist"
-PANEL_APP_PORT_HTTP="40034"
-DATA_PATH="./data/data"
-MOUNT_PATH="./data/mnt"
\ No newline at end of file
diff --git a/apps/alist/3.44.0/data.yml b/apps/alist/3.44.0/data.yml
deleted file mode 100644
index 926c1679..00000000
--- a/apps/alist/3.44.0/data.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40034
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
- - default: ./data/data
- edit: true
- envKey: DATA_PATH
- labelEn: Data folder path
- labelZh: 数据文件夹路径
- required: true
- type: text
- - default: ./data/mnt
- edit: true
- envKey: MOUNT_PATH
- labelEn: Mount folder path
- labelZh: 挂载文件夹路径
- required: true
- type: text
diff --git a/apps/alist/3.44.0/docker-compose.yml b/apps/alist/3.44.0/docker-compose.yml
deleted file mode 100644
index f236508c..00000000
--- a/apps/alist/3.44.0/docker-compose.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-services:
- alist:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:5244"
- volumes:
- - "${DATA_PATH}:/opt/alist/data"
- - "${MOUNT_PATH}:/mnt/data"
- environment:
- - PUID=0
- - PGID=0
- - UMASK=022
- image: xhofe/alist:v3.44.0
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
-
diff --git a/apps/alist/README.md b/apps/alist/README.md
deleted file mode 100644
index ac73ec7f..00000000
--- a/apps/alist/README.md
+++ /dev/null
@@ -1,144 +0,0 @@
-# 使用说明
-
-- 账户与密码
-
-查看容器日志,或者容器功能界面找到`alist`的容器,点击终端连接到容器内部, 运行
-```
-./alist admin
-```
-# 原始相关
-
-
-
-# About
-
-Audiobookshelf is a self-hosted audiobook and podcast server.
-
-### Features
-
-* Fully **open-source**, including the [android & iOS app](https://github.com/advplyr/audiobookshelf-app) *(in beta)*
-* Stream all audio formats on the fly
-* Search and add podcasts to download episodes w/ auto-download
-* Multi-user support w/ custom permissions
-* Keeps progress per user and syncs across devices
-* Auto-detects library updates, no need to re-scan
-* Upload books and podcasts w/ bulk upload drag and drop folders
-* Backup your metadata + automated daily backups
-* Progressive Web App (PWA)
-* Chromecast support on the web app and android app
-* Fetch metadata and cover art from several sources
-* Chapter editor and chapter lookup (using [Audnexus API](https://audnex.us/))
-* Merge your audio files into a single m4b
-* Embed metadata and cover image into your audio files (using [Tone](https://github.com/sandreas/tone))
-* Basic ebook support and ereader
- * Epub, pdf, cbr, cbz
- * Send ebook to device (i.e. Kindle)
-* Open RSS feeds for podcasts and audiobooks
-
-Is there a feature you are looking for? [Suggest it](https://github.com/advplyr/audiobookshelf/issues/new/choose)
-
-Join us on [Discord](https://discord.gg/pJsjuNCKRq) or [Matrix](https://matrix.to/#/#audiobookshelf:matrix.org)
-
-### Android App (beta)
-Try it out on the [Google Play Store](https://play.google.com/store/apps/details?id=com.audiobookshelf.app)
-
-### iOS App (beta)
-Available using Test Flight: https://testflight.apple.com/join/wiic7QIW - [Join the discussion](https://github.com/advplyr/audiobookshelf-app/discussions/60)
-
-### Build your own tools & clients
-Check out the [API documentation](https://api.audiobookshelf.org/)
-
-
-
-
-
-
-
-# Organizing your audiobooks
-
-#### Directory structure and folder names are important to Audiobookshelf!
-
- See [documentation](https://audiobookshelf.org/docs#book-directory-structure) for supported directory structure, folder naming conventions, and audio file metadata usage.
-
-
-
-# Installation
-
-See [install docs](https://www.audiobookshelf.org/docs)
-
-
-
-# Reverse Proxy Set Up
-
-#### Important! Audiobookshelf requires a websocket connection.
-
-#### Note: Subfolder paths (e.g. /audiobooks) are not supported yet. See [issue](https://github.com/advplyr/audiobookshelf/issues/385)
-
-### NGINX Proxy Manager
-
-Toggle websockets support.
-
-
-
-### NGINX Reverse Proxy
-
-Add this to the site config file on your nginx server after you have changed the relevant parts in the <> brackets, and inserted your certificate paths.
-
-
-```bash
-server
-{
- listen 443 ssl;
- server_name ..;
-
- access_log /var/log/nginx/audiobookshelf.access.log;
- error_log /var/log/nginx/audiobookshelf.error.log;
-
- ssl_certificate /path/to/certificate;
- ssl_certificate_key /path/to/key;
-
- location / {
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto $scheme;
- proxy_set_header Host $host;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection "upgrade";
-
- proxy_http_version 1.1;
-
- proxy_pass http://;
- proxy_redirect http:// https://;
- }
-}
-```
-
-### Apache Reverse Proxy
-
-Add this to the site config file on your Apache server after you have changed the relevant parts in the <> brackets, and inserted your certificate paths.
-
-For this to work you must enable at least the following mods using `a2enmod`:
- - `ssl`
- - `proxy`
- - `proxy_http`
- - `proxy_balancer`
- - `proxy_wstunnel`
- - `rewrite`
-
-```bash
-
-
- ServerName ..
-
- ErrorLog ${APACHE_LOG_DIR}/error.log
- CustomLog ${APACHE_LOG_DIR}/access.log combined
-
- ProxyPreserveHost On
- ProxyPass / http://localhost:/
- RewriteEngine on
- RewriteCond %{HTTP:Upgrade} websocket [NC]
- RewriteCond %{HTTP:Connection} upgrade [NC]
- RewriteRule ^/?(.*) "ws://localhost:/$1" [P,L]
-
- # unless you're doing something special this should be generated by a
- # tool like certbot by let's encrypt
- SSLCertificateFile /path/to/cert/file
- SSLCertificateKeyFile /path/to/key/file
-
-
-```
-
-Some SSL certificates like those signed by Let's Encrypt require ACME validation. To allow Let's Encrypt to write and confirm
-the ACME challenge, edit your VirtualHost definition to prevent proxying traffic that queries `/.well-known` and instead
-serve that directly:
-```bash
-
- # ...
-
- # create the directory structure /.well-known/acme-challenges
- # within DocumentRoot and give the HTTP user recursive write
- # access to it.
- DocumentRoot /path/to/local/directory
-
- ProxyPreserveHost On
- ProxyPass /.well-known !
- ProxyPass / http://localhost:/
-
- # ...
-
-```
-
-
-### SWAG Reverse Proxy
-
-[See LinuxServer.io config sample](https://github.com/linuxserver/reverse-proxy-confs/blob/master/audiobookshelf.subdomain.conf.sample)
-
-### Synology Reverse Proxy
-
-1. Open Control Panel > Application Portal
-2. Change to the Reverse Proxy tab
-3. Select the proxy rule for which you want to enable Websockets and click on Edit
-4. Change to the "Custom Header" tab
-5. Click Create > WebSocket
-6. Click Save
-
-[from @silentArtifact](https://github.com/advplyr/audiobookshelf/issues/241#issuecomment-1036732329)
-
-### [Traefik Reverse Proxy](https://doc.traefik.io/traefik/)
-
-Middleware relating to CORS will cause the app to report Unknown Error when logging in. To prevent this don't apply any of the following headers to the router for this site:
-
-
-
accessControlAllowMethods
-
accessControlAllowOriginList
-
accessControlMaxAge
-
-
-From [@Dondochaka](https://discord.com/channels/942908292873723984/942914154254176257/945074590374318170) and [@BeastleeUK](https://discord.com/channels/942908292873723984/942914154254176257/970366039294611506)
-
-
-### Example Caddyfile - [Caddy Reverse Proxy](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy)
-
-```
-subdomain.domain.com {
- encode gzip zstd
- reverse_proxy :
-}
-```
-
-
-# Run from source
-
-# Contributing
-
-This application is built using [NodeJs](https://nodejs.org/).
-
-### Dev Container Setup
-The easiest way to begin developing this project is to use a dev container. An introduction to dev containers in VSCode can be found [here](https://code.visualstudio.com/docs/devcontainers/containers).
-
-Required Software:
-* [Docker Desktop](https://www.docker.com/products/docker-desktop/)
-* [VSCode](https://code.visualstudio.com/download)
-
-*Note, it is possible to use other container software than Docker and IDEs other than VSCode. However, this setup is more complicated and not covered here.*
-
-
-
-Install the required software on Windows with winget
-
-
-Note: This requires a PowerShell prompt with winget installed. You should be able to copy and paste the code block to install. If you use an elevated PowerShell prompt, UAC will not pop up during the installs.
-
-```PowerShell
-winget install -e --id Docker.DockerDesktop; `
-winget install -e --id Microsoft.VisualStudioCode
-```
-
-
-
-
-
-
-
-Install the required software on MacOS with homebrew
-
-
- Want to formalize the database change process but don't know how?
-
-
-| | |
-| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
-| Standard Operating Procedure (SOP) Standardize the database schema and data change process across different database systems, small or [large tables](https://www.bytebase.com/docs/change-database/online-schema-migration-for-mysql) and [different tenants](https://www.bytebase.com/docs/change-database/batch-change/#change-databases-from-multiple-tenants).
SQL Review [100+ lint rules](https://www.bytebase.com/docs/sql-review/review-rules) to detect SQL anti-patterns and enforce consistent SQL style in the organization.
GitOps [Point-and-click GitHub and GitLab integration](https://www.bytebase.com/docs/vcs-integration/overview) to enable GitOps workflow for changing database. | |
-
-
-
-
🔮
-
Query
-
- Want to control the data access but don't know how?
-
-
-| | |
-| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
-| All-in-one SQL Editor Web-based IDE specifically for performing SQL specific tasks.
Data Masking State-of-the-art [column level masking](https://www.bytebase.com/docs/sql-editor/mask-data) engine to cover complex situations like subquery, CTE.
Data Access Control Organization level policy to centralize the [data access control](https://www.bytebase.com/docs/security/data-access-control). | |
-
-
-
-
🔒
-
Secure
-
- Want to avoid data leakage, change outage and detect malicious behavior but don't know how?
-
-
-| | |
-| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
-| Centralize Change, Query and Admin Tasks A single place to perform different tasks on different databases, thus enforce policy and monitor activity accordingly.
RBAC [Two-level RBAC model](https://www.bytebase.com/docs/concepts/roles-and-permissions) mapping to the organization wide privileges and application team privileges respectively.
Anomaly Center and Audit Logging Capture all database [anomalies](https://www.bytebase.com/docs/administration/anomaly-center), user actions and system events and present them in a holistic view. | |
-
-
-
-
👩💼
-
Govern
-
- Want to enforce organization policy but don't know how?
-
-
-| | |
-| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
-| Manage Database Resources A single place to manage environments, database instances, database users for application development, with optional [Terraform integration](https://registry.terraform.io/providers/bytebase/bytebase/latest/docs).
Policy Enforcement Enforce organization wide SQL Review policy, backup policy and data access policy.
SQL Editor Admin mode [CLI like experience](https://www.bytebase.com/docs/sql-editor/admin-mode) without setting up bastion. | |
-
-
-
-# 🖖 Intro
-
-Bytebase is a Database CI/CD solution for the Developers and DBAs. It's the **only database CI/CD project** included by the [CNCF Landscape](https://landscape.cncf.io/?selected=bytebase). The Bytebase family consists of these tools:
-
-- [Bytebase Console](https://bytebase.com/?source=github): A web-based GUI for developers and DBAs to manage the database development lifecycle.
-- [Bytebase CLI (bb)](https://www.bytebase.com/docs/cli/overview): The CLI to help developers integrate database changes into the existing CI/CD workflow.
-- [Bytebase GitHub App](https://github.com/marketplace/bytebase) and [SQL Review GitHub Action](https://github.com/marketplace/actions/sql-review): The GitHub App and GitHub Action to detect SQL anti-patterns and enforce a consistent SQL style guide during Pull Request.
-- [Terraform Bytebase Provider](https://registry.terraform.io/providers/bytebase/bytebase/latest/docs): The Terraform
- provider enables team to manage Bytebase resources via Terraform. A typical setup involves teams using
- Terraform to provision database instances from Cloud vendors, followed by using Bytebase provider to
- prepare those instances ready for application use.
-
-| | Topic |
-| --- | :------------------------------------------------------------------ |
-| 🏗️ | [Installation](#-installation) |
-| 🎮 | [Demo](#-demo) |
-| 👩🏫 | [Tutorials](#-tutorials) |
-| 💎 | [Design Principles](#-design-principles) |
-| 🧩 | [Data Model](#-data-model) |
-| 🎭 | [Roles](#-roles) |
-| 🕊 | [Developing and Contributing](#-developing-and-contributing) |
-| 🤺 | [Bytebase vs Alternatives](#-bytebase-vs-alternatives) |
-
-
-
-# 🏗️ Installation
-
-### One liner
-
-```bash
-# One-liner installation script from latest release
-/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/bytebase/install/main/install.sh)"
-
-```
-
-- [Build from source](https://www.bytebase.com/docs/get-started/install/build-from-source-code)
-- [Docker](https://www.bytebase.com/docs/get-started/install/deploy-with-docker)
-- [Kubernetes](https://www.bytebase.com/docs/get-started/install/deploy-to-kubernetes)
-- [render.com](https://www.bytebase.com/docs/get-started/install/deploy-to-render)
-- [Rainbond](https://www.bytebase.com/docs/get-started/install/deploy-to-rainbond)
-
-
-
-# 🎮 Demo
-
-Live demo at https://demo.bytebase.com
-
-You can also [book a 30min product walkthrough](https://cal.com/adela-bytebase/30min) with one of
-our product experts.
-
-
-
-# 👩🏫 Tutorials
-
-Product tutorials are available at https://www.bytebase.com/tutorial.
-
-## Integrations
-
-- [Manage Supabase PostgreSQL](https://www.bytebase.com/docs/how-to/integrations/supabase)
-- [Manage render PostgreSQL](https://www.bytebase.com/docs/how-to/integrations/render)
-- [Manage Neon database](https://www.bytebase.com/docs/how-to/integrations/neon)
-- [Deploy to sealos](https://www.bytebase.com/docs/get-started/install/deploy-to-sealos)
-- [Deploy to Rainbond](https://www.bytebase.com/docs/get-started/install/deploy-to-rainbond)
-
-
-
-# 💎 Design Principles
-
-| | | |
-| --- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| 🪶 | Dependency Free | Start with a single command `./bytebase` without any external dependency. External PostgreSQL data store and others are optional. |
-| 🔗 | Integration First | Solely focus on database management and leave the rest to others. We have native VCS integration with [GitHub/GitLab](https://www.bytebase.com/docs/vcs-integration/overview), [Terraform Provider](https://registry.terraform.io/providers/bytebase/bytebase/latest/docs), [webhook](https://www.bytebase.com/docs/change-database/webhook), and etc. |
-| 💂♀️ | Engineering Disciplined | Disciplined [bi-weekly release](https://www.bytebase.com/changelog) and [engineering practice](https://github.com/bytebase/bytebase/blob/main/docs/life-of-a-feature.md). |
-
-
-
-# 🧩 Data Model
-
-More details in [Data Model Doc](https://www.bytebase.com/docs/concepts/data-model).
-
-
-
-
-
-
-
-# 🎭 Roles
-
-More details in [Roles and Permissions Doc](https://www.bytebase.com/docs/concepts/roles-and-permissions).
-
-Bytebase employs RBAC (Role-Based-Access-Control) and provides two role sets at the workspace and project level:
-
-- Workspace roles: `Owner`, `DBA`, `Developer`. The workspace role maps to the role in an engineering organization.
-- Project roles: `Owner`, `Developer`. The project level role maps to the role in a specific team or project.
-
-Every user is assigned a workspace role, and if a particular user is involved in a particular project, then she will also be assigned a project role accordingly.
-
-Below diagram describes a typical mapping between an engineering org and the corresponding roles in the Bytebase workspace
-
-
-
-
-
-
-
-# 🕊 Developing and Contributing
-
-
-
-
-
-- Bytebase is built with a curated tech stack. It is optimized for **developer experience** and is very easy to start
- working on the code:
-
- 1. It has no external dependency.
- 1. It requires zero config.
- 1. 1 command to start backend and 1 command to start frontend, both with live reload support.
-
-- Interactive code walkthrough
-
- - [Life of a schema change](https://sourcegraph.com/github.com/bytebase/bytebase/-/blob/docs/design/life-of-a-schema-change.snb.md)
- - [SQL Review](https://sourcegraph.com/github.com/bytebase/bytebase/-/blob/docs/design/sql-review-source-code-tour.snb.md)
-
-- Follow [Life of a Feature](https://github.com/bytebase/bytebase/blob/main/docs/life-of-a-feature.md).
-
-## Dev Environment Setup
-
-### Prerequisites
-
-- [Go](https://golang.org/doc/install) (1.21.3 or later)
-- [pnpm](https://pnpm.io/installation)
-- [Air](https://github.com/bytebase/air) (**our forked repo @87187cc with the proper signal handling**). This is for backend live reload.
- ```bash
- go install github.com/bytebase/air@87187cc
- ```
-
-### Steps
-
-1. Pull source.
-
- ```bash
- git clone https://github.com/bytebase/bytebase
- ```
-
-1. Create an external Postgres database on localhost.
-
- ```sql
- CREATE USER bbdev SUPERUSER;
- CREATE DATABASE bbdev;
- ```
-
-1. Start backend using air (with live reload).
-
- ```bash
- PG_URL=postgresql://bbdev@localhost/bbdev air -c scripts/.air.toml
- ```
-
- Change the open file limit if you encounter "error: too many open files".
-
- ```bash
- ulimit -n 10240
- ```
-
- If you need additional runtime parameters such as --backup-bucket, please add them like this:
-
- ```bash
- air -c scripts/.air.toml -- --backup-region us-east-1 --backup-bucket s3:\\/\\/example-bucket --backup-credential ~/.aws/credentials
- ```
-
-1. Start frontend (with live reload).
-
- ```bash
- cd frontend && pnpm i && pnpm dev
- ```
-
- Bytebase should now be running at http://localhost:3000 and change either frontend or backend code would trigger live reload.
-
-### Tips
-
-* Use [Code Inspector](https://en.inspector.fe-dev.cn/guide/start.html#method1-recommend) to locate
-frontend code from UI. Hold `Option + Shift` on Mac or `Alt + Shift` on Windows
-
-
-
-
-# Bytebase vs Flyway, Liquibase
-
-- [Bytebase vs Liquibase](https://www.bytebase.com/blog/bytebase-vs-liquibase/)
-- [Bytebase vs Flyway](https://www.bytebase.com/blog/bytebase-vs-flyway/)
-
-Either Flyway or Liquibase is a library and CLI focusing on schema change. While Bytebase is an one-stop
-solution covering the entire database development lifecycle for Developers and DBAs to collaborate.
-
-Another key difference is Bytebase **doesn't** support Oracle and SQL Server. This is a conscious
-decision we make so that we can focus on supporting other databases without good tooling support.
-In particular, many of our users tell us Bytebase is by far the best (and sometimes the only) database
-tool that can support their PostgreSQL and ClickHouse use cases.
-
-[](https://star-history.com/#bytebase/bytebase&liquibase/liquibase&flyway/flyway&Date)
-
-# Bytebase vs Yearning, Archery
-
-Either Yearning or Archery provides a DBA operation portal. While Bytebase provides a collaboration
-workspace for DBAs and Developers, and brings DevOps practice to the Database Change Management (DCM).
-Bytebase has the similar `Project` concept seen in GitLab/GitHub and provides native GitOps integration
-with GitLab/GitHub.
-
-Another key difference is Yearning, Archery are open source projects maintained by the individuals part-time. While Bytebase is open-sourced, it adopts an open-core model and is a commercialized product, supported
-by a [fully staffed team](https://www.bytebase.com/about#team) [releasing new version every 2 weeks](https://www.bytebase.com/changelog).
-
-[](https://star-history.com/#bytebase/bytebase&cookieY/Yearning&hhyo/Archery&Date)
-
-# 👨👩👧👦 Community
-
-[](https://discord.gg/huyw7gRsyA)
-
-[](https://twitter.com/Bytebase)
-
-
-
-# 🤔 Frequently Asked Questions (FAQs)
-
-Check out our [FAQ](https://www.bytebase.com/docs/faq).
-
-
-
-# 🙋 Contact Us
-
-- Interested in joining us? Check out our [jobs page](https://bytebase.com/jobs?source=github) for openings.
-- Want to solve your schema change and database management headache? Book a [30min demo](https://cal.com/adela-bytebase/30min) with one of our product experts.
diff --git a/apps/bytebase/data.yml b/apps/bytebase/data.yml
deleted file mode 100644
index 8c7e03b8..00000000
--- a/apps/bytebase/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Bytebase
-tags:
- - DevOps
-title: 开源的数据库 DevOps 工具
-description: 开源的数据库 DevOps 工具
-additionalProperties:
- key: bytebase
- name: Bytebase
- tags:
- - DevOps
- shortDescZh: 开源的数据库 DevOps 工具
- shortDescEn: An open-source database DevOps tool
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://www.bytebase.com
- github: https://github.com/bytebase/bytebase
- document: https://www.bytebase.com/docs
diff --git a/apps/bytebase/logo.png b/apps/bytebase/logo.png
deleted file mode 100644
index cf27d622..00000000
Binary files a/apps/bytebase/logo.png and /dev/null differ
diff --git a/apps/calibre-web/0.6.24/.env.sample b/apps/calibre-web/0.6.24/.env.sample
deleted file mode 100644
index a967d1f7..00000000
--- a/apps/calibre-web/0.6.24/.env.sample
+++ /dev/null
@@ -1,4 +0,0 @@
-CONTAINER_NAME="calibre-web"
-PANEL_APP_PORT_HTTP="40109"
-DATA_PATH="./data/books"
-TIME_ZONE="Asia/Shanghai"
diff --git a/apps/calibre-web/0.6.24/data.yml b/apps/calibre-web/0.6.24/data.yml
deleted file mode 100644
index fa4567d9..00000000
--- a/apps/calibre-web/0.6.24/data.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40109
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: HTTP Port
- labelZh: HTTP端口
- required: true
- rule: paramPort
- type: number
- - default: ./data/books
- edit: true
- envKey: DATA_PATH
- labelEn: Books folder path
- labelZh: 书本文件夹路径
- required: true
- type: text
- - default: Asia/Shanghai
- edit: true
- envKey: TIME_ZONE
- labelEn: Time zone
- labelZh: 时区
- required: true
- type: text
diff --git a/apps/calibre-web/0.6.24/docker-compose.yml b/apps/calibre-web/0.6.24/docker-compose.yml
deleted file mode 100644
index 91427527..00000000
--- a/apps/calibre-web/0.6.24/docker-compose.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-services:
- calibre-web:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:8083"
- volumes:
- - "./data/config:/config"
- - "${DATA_PATH}:/books"
- environment:
- - PUID=1000
- - PGID=1000
- - TZ=${TIME_ZONE}
- - DOCKER_MODS=linuxserver/mods:universal-calibre #optional
- - OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
- image: linuxserver/calibre-web:0.6.24
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/calibre-web/README.md b/apps/calibre-web/README.md
deleted file mode 100644
index bcd0de98..00000000
--- a/apps/calibre-web/README.md
+++ /dev/null
@@ -1,133 +0,0 @@
-# 使用说明
-
-- 默认账户密码
-
-```
-username:admin
-password:admin123
-```
-
-# 原始相关
-
-# Calibre-Web
-
-Calibre-Web is a web app that offers a clean and intuitive interface for browsing, reading, and downloading eBooks using a valid [Calibre](https://calibre-ebook.com) database.
-
-[](https://github.com/janeczku/calibre-web/blob/master/LICENSE)
-
-[](https://github.com/janeczku/calibre-web/releases)
-[](https://pypi.org/project/calibreweb/)
-[](https://pypi.org/project/calibreweb/)
-[](https://discord.gg/h2VsJ2NEfB)
-
-
-Table of Contents (click to expand)
-
-- [使用说明](#使用说明)
-- [原始相关](#原始相关)
-- [Calibre-Web](#calibre-web)
- - [Features](#features)
- - [Installation](#installation)
- - [Installation via pip (recommended)](#installation-via-pip-recommended)
- - [Quick Start](#quick-start)
- - [Default Admin Login:](#default-admin-login)
- - [Requirements](#requirements)
- - [Docker Images](#docker-images)
- - [**LinuxServer - x64, aarch64**](#linuxserver---x64-aarch64)
- - [Contributor Recognition](#contributor-recognition)
- - [Contact](#contact)
- - [Contributing to Calibre-Web](#contributing-to-calibre-web)
-
-
-
-
-*This software is a fork of [library](https://github.com/mutschler/calibreserver) and licensed under the GPL v3 License.*
-
-
-
-## Features
-
-- Modern and responsive Bootstrap 3 HTML5 interface
-- Full graphical setup
-- Comprehensive user management with fine-grained per-user permissions
-- Admin interface
-- Multilingual user interface supporting 20+ languages ([supported languages](https://github.com/janeczku/calibre-web/wiki/Translation-Status))
-- OPDS feed for eBook reader apps
-- Advanced search and filtering options
-- Custom book collection (shelves) creation
-- eBook metadata editing and deletion support
-- Metadata download from various sources (extensible via plugins)
-- eBook conversion through Calibre binaries
-- eBook download restriction to logged-in users
-- Public user registration support
-- Send eBooks to E-Readers with a single click
-- Sync Kobo devices with your Calibre library
-- In-browser eBook reading support for multiple formats
-- Upload new books in various formats, including audio formats
-- Calibre Custom Columns support
-- Content hiding based on categories and Custom Column content per user
-- Self-update capability
-- "Magic Link" login for easy access on eReaders
-- LDAP, Google/GitHub OAuth, and proxy authentication support
-
-## Installation
-
-#### Installation via pip (recommended)
-1. Create a virtual environment for Calibre-Web to avoid conflicts with existing Python dependencies
-2. Install Calibre-Web via pip: `pip install calibreweb` (or `pip3` depending on your OS/distro)
-3. Install optional features via pip as needed, see [this page](https://github.com/janeczku/calibre-web/wiki/Dependencies-in-Calibre-Web-Linux-and-Windows) for details
-4. Start Calibre-Web by typing `cps`
-
-*Note: Raspberry Pi OS users may encounter issues during installation. If so, please update pip (`./venv/bin/python3 -m pip install --upgrade pip`) and/or install cargo (`sudo apt install cargo`) before retrying the installation.*
-
-Refer to the Wiki for additional installation examples: [manual installation](https://github.com/janeczku/calibre-web/wiki/Manual-installation), [Linux Mint](https://github.com/janeczku/calibre-web/wiki/How-To:Install-Calibre-Web-in-Linux-Mint-19-or-20), [Cloud Provider](https://github.com/janeczku/calibre-web/wiki/How-To:-Install-Calibre-Web-on-a-Cloud-Provider).
-
-## Quick Start
-
-1. Open your browser and navigate to `http://localhost:8083` or `http://localhost:8083/opds` for the OPDS catalog
-2. Log in with the default admin credentials
-3. If you don't have a Calibre database, you can use [this database](https://github.com/janeczku/calibre-web/raw/master/library/metadata.db) (move it out of the Calibre-Web folder to prevent overwriting during updates)
-4. Set `Location of Calibre database` to the path of the folder containing your Calibre library (metadata.db) and click "Save"
-5. Optionally, use Google Drive to host your Calibre library by following the [Google Drive integration guide](https://github.com/janeczku/calibre-web/wiki/G-Drive-Setup#using-google-drive-integration)
-6. Configure your Calibre-Web instance via the admin page, referring to the [Basic Configuration](https://github.com/janeczku/calibre-web/wiki/Configuration#basic-configuration) and [UI Configuration](https://github.com/janeczku/calibre-web/wiki/Configuration#ui-configuration) guides
-
-#### Default Admin Login:
-- **Username:** admin
-- **Password:** admin123
-
-## Requirements
-
-- Python 3.5+
-- [Imagemagick](https://imagemagick.org/script/download.php) for cover extraction from EPUBs (Windows users may need to install [Ghostscript](https://ghostscript.com/releases/gsdnld.html) for PDF cover extraction)
-- Optional: [Calibre desktop program](https://calibre-ebook.com/download) for on-the-fly conversion and metadata editing (set "calibre's converter tool" path on the setup page)
-- Optional: [Kepubify tool](https://github.com/pgaskin/kepubify/releases/latest) for Kobo device support (place the binary in `/opt/kepubify` on Linux or `C:\Program Files\kepubify` on Windows)
-
-## Docker Images
-
-Pre-built Docker images are available in the following Docker Hub repositories (maintained by the LinuxServer team):
-
-#### **LinuxServer - x64, aarch64**
-- [Docker Hub](https://hub.docker.com/r/linuxserver/calibre-web)
-- [GitHub](https://github.com/linuxserver/docker-calibre-web)
-- [GitHub - Optional Calibre layer](https://github.com/linuxserver/docker-mods/tree/universal-calibre)
-
- Include the environment variable `DOCKER_MODS=linuxserver/mods:universal-calibre` in your Docker run/compose file to add the Calibre `ebook-convert` binary (x64 only). Omit this variable for a lightweight image.
-
- Both the Calibre-Web and Calibre-Mod images are automatically rebuilt on new releases and updates.
-
- - Set "path to convertertool" to `/usr/bin/ebook-convert`
- - Set "path to unrar" to `/usr/bin/unrar`
-
-## Contributor Recognition
-
-We would like to thank all the [contributors](https://github.com/janeczku/calibre-web/graphs/contributors) and maintainers of Calibre-Web for their valuable input and dedication to the project. Your contributions are greatly appreciated.
-
-## Contact
-
-Join us on [Discord](https://discord.gg/h2VsJ2NEfB)
-
-For more information, How To's, and FAQs, please visit the [Wiki](https://github.com/janeczku/calibre-web/wiki)
-
-## Contributing to Calibre-Web
-
-Check out our [Contributing Guidelines](https://github.com/janeczku/calibre-web/blob/master/CONTRIBUTING.md)
diff --git a/apps/calibre-web/data.yml b/apps/calibre-web/data.yml
deleted file mode 100644
index eb636ead..00000000
--- a/apps/calibre-web/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Calibre-Web
-tags:
- - 多媒体
-title: 用于浏览、阅读和下载存储在 Calibre 数据库中的电子书的 Web 应用程序
-description: 用于浏览、阅读和下载存储在 Calibre 数据库中的电子书的 Web 应用程序
-additionalProperties:
- key: calibre-web
- name: Calibre-Web
- tags:
- - Media
- shortDescZh: 用于浏览、阅读和下载存储在 Calibre 数据库中的电子书的 Web 应用程序
- shortDescEn: Web app for browsing, reading and downloading eBooks stored in a Calibre database
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://calibre-ebook.com
- github: https://github.com/janeczku/calibre-web
- document: https://calibre-ebook.com/help
diff --git a/apps/calibre-web/latest/.env.sample b/apps/calibre-web/latest/.env.sample
deleted file mode 100644
index a967d1f7..00000000
--- a/apps/calibre-web/latest/.env.sample
+++ /dev/null
@@ -1,4 +0,0 @@
-CONTAINER_NAME="calibre-web"
-PANEL_APP_PORT_HTTP="40109"
-DATA_PATH="./data/books"
-TIME_ZONE="Asia/Shanghai"
diff --git a/apps/calibre-web/latest/data.yml b/apps/calibre-web/latest/data.yml
deleted file mode 100644
index fa4567d9..00000000
--- a/apps/calibre-web/latest/data.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40109
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: HTTP Port
- labelZh: HTTP端口
- required: true
- rule: paramPort
- type: number
- - default: ./data/books
- edit: true
- envKey: DATA_PATH
- labelEn: Books folder path
- labelZh: 书本文件夹路径
- required: true
- type: text
- - default: Asia/Shanghai
- edit: true
- envKey: TIME_ZONE
- labelEn: Time zone
- labelZh: 时区
- required: true
- type: text
diff --git a/apps/calibre-web/latest/docker-compose.yml b/apps/calibre-web/latest/docker-compose.yml
deleted file mode 100644
index 74551a6b..00000000
--- a/apps/calibre-web/latest/docker-compose.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-services:
- calibre-web:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:8083"
- volumes:
- - "./data/config:/config"
- - "${DATA_PATH}:/books"
- environment:
- - PUID=1000
- - PGID=1000
- - TZ=${TIME_ZONE}
- - DOCKER_MODS=linuxserver/mods:universal-calibre #optional
- - OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
- image: linuxserver/calibre-web:latest
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/calibre-web/logo.png b/apps/calibre-web/logo.png
deleted file mode 100644
index d9e98cc1..00000000
Binary files a/apps/calibre-web/logo.png and /dev/null differ
diff --git a/apps/certd/1.28.3/.env.sample b/apps/certd/1.28.3/.env.sample
deleted file mode 100644
index d3029589..00000000
--- a/apps/certd/1.28.3/.env.sample
+++ /dev/null
@@ -1,10 +0,0 @@
-CONTAINER_NAME="certd"
-DATA_PATH="./data"
-DNS_1="223.5.5.5"
-DNS_2="119.29.29.29"
-HTTPS_PROXY=""
-HTTP_PROXY=""
-IMMEDIATE_TRIGGER="false"
-PANEL_APP_PORT_HTTP=40311
-RESET_ADMIN_PASSWD="false"
-TIME_ZONE="Asia/Shanghai"
diff --git a/apps/certd/1.28.3/data.yml b/apps/certd/1.28.3/data.yml
deleted file mode 100644
index db2de3e1..00000000
--- a/apps/certd/1.28.3/data.yml
+++ /dev/null
@@ -1,76 +0,0 @@
-additionalProperties:
- formFields:
- - default: "40311"
- 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 Path
- labelZh: 数据路径
- required: true
- type: text
- - default: "223.5.5.5"
- edit: true
- envKey: DNS_1
- labelEn: Primary DNS
- labelZh: 主 DNS
- required: true
- type: text
- - default: "119.29.29.29"
- edit: true
- envKey: DNS_2
- labelEn: Secondary DNS
- labelZh: 次 DNS
- required: true
- type: text
- - default: "Asia/Shanghai"
- edit: true
- envKey: TIME_ZONE
- labelEn: Time Zone
- labelZh: 时区
- required: true
- type: text
- - default: ""
- edit: true
- envKey: HTTPS_PROXY
- labelEn: HTTPS Proxy
- labelZh: HTTPS 代理
- required: false
- type: text
- - default: ""
- edit: true
- envKey: HTTP_PROXY
- labelEn: HTTP Proxy
- labelZh: HTTP 代理
- required: false
- type: text
- - default: "false"
- edit: true
- envKey: RESET_ADMIN_PASSWD
- labelEn: Reset Admin Password
- labelZh: 重置管理员密码
- required: true
- type: select
- values:
- - label: "true"
- value: "true"
- - label: "false"
- value: "false"
- - default: "false"
- edit: true
- envKey: IMMEDIATE_TRIGGER
- labelEn: Immediate trigger of cron
- labelZh: 立即触发定时任务
- required: true
- type: select
- values:
- - label: "true"
- value: "true"
- - label: "false"
- value: "false"
diff --git a/apps/certd/1.28.3/docker-compose.yml b/apps/certd/1.28.3/docker-compose.yml
deleted file mode 100644
index 249c0ad7..00000000
--- a/apps/certd/1.28.3/docker-compose.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-services:
- certd:
- image: "greper/certd:1.28.3"
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- volumes:
- - ${DATA_PATH}:/app/data
- ports:
- - "${PANEL_APP_PORT_HTTP}:7001"
- dns:
- - ${DNS_1}
- - ${DNS_2}
- environment:
- - TZ=${TIME_ZONE}
- - HTTPS_PROXY=${HTTPS_PROXY}
- - HTTP_PROXY=${HTTP_PROXY}
- - certd_system_resetAdminPasswd=${RESET_ADMIN_PASSWD}
- - certd_cron_immediateTriggerOnce=${IMMEDIATE_TRIGGER}
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/certd/README.md b/apps/certd/README.md
deleted file mode 100644
index 2e0ee077..00000000
--- a/apps/certd/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# Certd
-
-Certd 是一个免费全自动申请和自动部署更新SSL证书的管理系统。
-后缀d取自linux守护进程的命名风格,意为证书守护进程。
-
-关键字:证书自动申请、证书自动更新、证书自动续期、证书自动续签、证书管理工具
-
-## 使用说明
-
-- 账户密码
-```
-username: admin
-password: 123456
-```
-
-## 特性
-本项目不仅支持证书申请过程自动化,还可以自动化部署更新证书,让你的证书永不过期。
-
-* 全自动申请证书(支持所有注册商注册的域名)
-* 全自动部署更新证书(目前支持部署到主机、部署到阿里云、腾讯云等,目前已支持30+部署插件)
-* 支持通配符域名/泛域名,支持多个域名打到一个证书上
-* 邮件通知
-* 私有化部署,保障数据安全
-* 支持sqlite,postgresql数据库
\ No newline at end of file
diff --git a/apps/certd/data.yml b/apps/certd/data.yml
deleted file mode 100644
index 26f473a9..00000000
--- a/apps/certd/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Certd
-tags:
- - 安全
-title: 开源 SSL 证书管理工具
-description: 开源 SSL 证书管理工具
-additionalProperties:
- key: certd
- name: Certd
- tags:
- - Security
- shortDescZh: 开源 SSL 证书管理工具
- shortDescEn: Open source SSL certificate management tool
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://certd.docmirror.cn
- github: https://github.com/certd/certd
- document: https://certd.docmirror.cn
diff --git a/apps/certd/latest-postgres/.env.sample b/apps/certd/latest-postgres/.env.sample
deleted file mode 100644
index e9903420..00000000
--- a/apps/certd/latest-postgres/.env.sample
+++ /dev/null
@@ -1,15 +0,0 @@
-CONTAINER_NAME="certd"
-DATA_PATH="./data"
-DNS_1="223.5.5.5"
-DNS_2="119.29.29.29"
-HTTPS_PROXY=""
-HTTP_PROXY=""
-IMMEDIATE_TRIGGER="false"
-PANEL_APP_PORT_HTTP=40311
-PANEL_DB_HOST="postgresql"
-PANEL_DB_NAME="certd"
-PANEL_DB_PORT=5432
-PANEL_DB_USER="certd"
-PANEL_DB_USER_PASSWORD="certd"
-RESET_ADMIN_PASSWD="false"
-TIME_ZONE="Asia/Shanghai"
diff --git a/apps/certd/latest-postgres/data.yml b/apps/certd/latest-postgres/data.yml
deleted file mode 100644
index d217bf41..00000000
--- a/apps/certd/latest-postgres/data.yml
+++ /dev/null
@@ -1,116 +0,0 @@
-additionalProperties:
- formFields:
- - default: "40311"
- 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 Path
- labelZh: 数据路径
- required: true
- type: text
- - default: "223.5.5.5"
- edit: true
- envKey: DNS_1
- labelEn: Primary DNS
- labelZh: 主 DNS
- required: true
- type: text
- - default: "119.29.29.29"
- edit: true
- envKey: DNS_2
- labelEn: Secondary DNS
- labelZh: 次 DNS
- required: true
- type: text
- - default: "Asia/Shanghai"
- edit: true
- envKey: TIME_ZONE
- labelEn: Time Zone
- labelZh: 时区
- required: true
- type: text
- - default: ""
- edit: true
- envKey: HTTPS_PROXY
- labelEn: HTTPS Proxy
- labelZh: HTTPS 代理
- required: false
- type: text
- - default: ""
- edit: true
- envKey: HTTP_PROXY
- labelEn: HTTP Proxy
- labelZh: HTTP 代理
- required: false
- type: text
- - default: "false"
- edit: true
- envKey: RESET_ADMIN_PASSWD
- labelEn: Reset Admin Password
- labelZh: 重置管理员密码
- required: true
- type: select
- values:
- - label: "true"
- value: "true"
- - label: "false"
- value: "false"
- - default: "false"
- edit: true
- envKey: IMMEDIATE_TRIGGER
- labelEn: Immediate trigger of cron
- labelZh: 立即触发定时任务
- required: true
- type: select
- values:
- - label: "true"
- value: "true"
- - label: "false"
- value: "false"
- - default: ""
- edit: true
- envKey: PANEL_DB_HOST
- key: postgresql
- labelEn: Database Service
- labelZh: 数据库服务
- required: true
- type: service
- - default: "5432"
- edit: true
- envKey: PANEL_DB_PORT
- labelEn: Database Port Number
- labelZh: 数据库端口号
- required: true
- rule: paramPort
- type: number
- - default: "certd"
- envKey: PANEL_DB_NAME
- labelEn: Database
- labelZh: 数据库名
- random: true
- required: true
- rule: paramCommon
- type: text
- - default: "certd"
- envKey: PANEL_DB_USER
- labelEn: User
- labelZh: 数据库用户
- random: true
- required: true
- rule: paramCommon
- type: text
- - default: "certd"
- envKey: PANEL_DB_USER_PASSWORD
- labelEn: Password
- labelZh: 数据库用户密码
- random: true
- required: true
- rule: paramComplexity
- type: password
diff --git a/apps/certd/latest-postgres/docker-compose.yml b/apps/certd/latest-postgres/docker-compose.yml
deleted file mode 100644
index 49f8a73c..00000000
--- a/apps/certd/latest-postgres/docker-compose.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-services:
- certd:
- image: "greper/certd:latest"
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- volumes:
- - ${DATA_PATH}:/app/data
- ports:
- - "${PANEL_APP_PORT_HTTP}:7001"
- dns:
- - ${DNS_1}
- - ${DNS_2}
- environment:
- - TZ=${TIME_ZONE}
- - HTTPS_PROXY=${HTTPS_PROXY}
- - HTTP_PROXY=${HTTP_PROXY}
- - certd_system_resetAdminPasswd=${RESET_ADMIN_PASSWD}
- - certd_cron_immediateTriggerOnce=${IMMEDIATE_TRIGGER}
- - certd_flyway_scriptDir=./db/migration-pg
- - certd_typeorm_dataSource_default_type=postgres
- - certd_typeorm_dataSource_default_host=${PANEL_DB_HOST}
- - certd_typeorm_dataSource_default_port=${PANEL_DB_PORT}
- - certd_typeorm_dataSource_default_username=${PANEL_DB_USER}
- - certd_typeorm_dataSource_default_password=${PANEL_DB_USER_PASSWORD}
- - certd_typeorm_dataSource_default_database=${PANEL_DB_NAME}
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/certd/latest/.env.sample b/apps/certd/latest/.env.sample
deleted file mode 100644
index d3029589..00000000
--- a/apps/certd/latest/.env.sample
+++ /dev/null
@@ -1,10 +0,0 @@
-CONTAINER_NAME="certd"
-DATA_PATH="./data"
-DNS_1="223.5.5.5"
-DNS_2="119.29.29.29"
-HTTPS_PROXY=""
-HTTP_PROXY=""
-IMMEDIATE_TRIGGER="false"
-PANEL_APP_PORT_HTTP=40311
-RESET_ADMIN_PASSWD="false"
-TIME_ZONE="Asia/Shanghai"
diff --git a/apps/certd/latest/data.yml b/apps/certd/latest/data.yml
deleted file mode 100644
index db2de3e1..00000000
--- a/apps/certd/latest/data.yml
+++ /dev/null
@@ -1,76 +0,0 @@
-additionalProperties:
- formFields:
- - default: "40311"
- 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 Path
- labelZh: 数据路径
- required: true
- type: text
- - default: "223.5.5.5"
- edit: true
- envKey: DNS_1
- labelEn: Primary DNS
- labelZh: 主 DNS
- required: true
- type: text
- - default: "119.29.29.29"
- edit: true
- envKey: DNS_2
- labelEn: Secondary DNS
- labelZh: 次 DNS
- required: true
- type: text
- - default: "Asia/Shanghai"
- edit: true
- envKey: TIME_ZONE
- labelEn: Time Zone
- labelZh: 时区
- required: true
- type: text
- - default: ""
- edit: true
- envKey: HTTPS_PROXY
- labelEn: HTTPS Proxy
- labelZh: HTTPS 代理
- required: false
- type: text
- - default: ""
- edit: true
- envKey: HTTP_PROXY
- labelEn: HTTP Proxy
- labelZh: HTTP 代理
- required: false
- type: text
- - default: "false"
- edit: true
- envKey: RESET_ADMIN_PASSWD
- labelEn: Reset Admin Password
- labelZh: 重置管理员密码
- required: true
- type: select
- values:
- - label: "true"
- value: "true"
- - label: "false"
- value: "false"
- - default: "false"
- edit: true
- envKey: IMMEDIATE_TRIGGER
- labelEn: Immediate trigger of cron
- labelZh: 立即触发定时任务
- required: true
- type: select
- values:
- - label: "true"
- value: "true"
- - label: "false"
- value: "false"
diff --git a/apps/certd/latest/docker-compose.yml b/apps/certd/latest/docker-compose.yml
deleted file mode 100644
index 8f9f5e2f..00000000
--- a/apps/certd/latest/docker-compose.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-services:
- certd:
- image: "greper/certd:latest"
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- volumes:
- - ${DATA_PATH}:/app/data
- ports:
- - "${PANEL_APP_PORT_HTTP}:7001"
- dns:
- - ${DNS_1}
- - ${DNS_2}
- environment:
- - TZ=${TIME_ZONE}
- - HTTPS_PROXY=${HTTPS_PROXY}
- - HTTP_PROXY=${HTTP_PROXY}
- - certd_system_resetAdminPasswd=${RESET_ADMIN_PASSWD}
- - certd_cron_immediateTriggerOnce=${IMMEDIATE_TRIGGER}
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/certd/logo.png b/apps/certd/logo.png
deleted file mode 100644
index 9b33bec6..00000000
Binary files a/apps/certd/logo.png and /dev/null differ
diff --git a/apps/certimate/0.3.18/.env.sample b/apps/certimate/0.3.18/.env.sample
deleted file mode 100644
index 3cee25a7..00000000
--- a/apps/certimate/0.3.18/.env.sample
+++ /dev/null
@@ -1,3 +0,0 @@
-CONTAINER_NAME="certimate"
-DATA_PATH="./data"
-PANEL_APP_PORT_HTTP=40297
diff --git a/apps/certimate/0.3.18/data.yml b/apps/certimate/0.3.18/data.yml
deleted file mode 100644
index be4e63f6..00000000
--- a/apps/certimate/0.3.18/data.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-additionalProperties:
- formFields:
- - default: "40297"
- 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 Path
- labelZh: 数据路径
- required: true
- type: text
diff --git a/apps/certimate/0.3.18/docker-compose.yml b/apps/certimate/0.3.18/docker-compose.yml
deleted file mode 100644
index 6264702d..00000000
--- a/apps/certimate/0.3.18/docker-compose.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-services:
- certimate:
- image: "usual2970/certimate:v0.3.18"
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:8090"
- volumes:
- - "${DATA_PATH}:/app/pb_data"
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/certimate/README.md b/apps/certimate/README.md
deleted file mode 100644
index 3a63bb02..00000000
--- a/apps/certimate/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# 🔒Certimate
-
-做个人产品或在小企业负责运维的同学,需要管理多个域名,要给域名申请证书。但手动申请证书有以下缺点:
-
-1. 😱麻烦:申请、部署证书虽不困难,但也挺麻烦的,尤其是维护多个域名的时候。
-2. 😭易忘:当前免费证书有效期仅90天,这就要求定期操作,增加工作量的同时,也很容易忘掉,导致网站无法访问。
-
-Certimate 就是为了解决上述问题而产生的,它具有以下特点:
-
-1. 操作简单:自动申请、部署、续期 SSL 证书,全程无需人工干预。
-2. 支持私有部署:部署方法简单,只需下载二进制文件执行即可。二进制文件、docker 镜像全部用 github actions 生成,过程透明,可自行审计。
-3. 数据安全:由于是私有部署,所有数据均存储在本地,不会保存在服务商的服务器,确保数据的安全性。
-
-## 使用说明
-
-- 账户密码
-```
-username: admin@certimate.fun
-password: 1234567890
-```
\ No newline at end of file
diff --git a/apps/certimate/data.yml b/apps/certimate/data.yml
deleted file mode 100644
index 86d3decb..00000000
--- a/apps/certimate/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Certimate
-tags:
- - 安全
-title: 开源的 SSL 证书管理工具
-description: 开源的 SSL 证书管理工具
-additionalProperties:
- key: certimate
- name: Certimate
- tags:
- - Security
- shortDescZh: 开源的 SSL 证书管理工具
- shortDescEn: Open source SSL certificate management tool
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://docs.certimate.me
- github: https://github.com/usual2970/certimate
- document: https://docs.certimate.me
diff --git a/apps/certimate/latest/.env.sample b/apps/certimate/latest/.env.sample
deleted file mode 100644
index 3cee25a7..00000000
--- a/apps/certimate/latest/.env.sample
+++ /dev/null
@@ -1,3 +0,0 @@
-CONTAINER_NAME="certimate"
-DATA_PATH="./data"
-PANEL_APP_PORT_HTTP=40297
diff --git a/apps/certimate/latest/data.yml b/apps/certimate/latest/data.yml
deleted file mode 100644
index be4e63f6..00000000
--- a/apps/certimate/latest/data.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-additionalProperties:
- formFields:
- - default: "40297"
- 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 Path
- labelZh: 数据路径
- required: true
- type: text
diff --git a/apps/certimate/latest/docker-compose.yml b/apps/certimate/latest/docker-compose.yml
deleted file mode 100644
index f33d6ad1..00000000
--- a/apps/certimate/latest/docker-compose.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-services:
- certimate:
- image: "usual2970/certimate:latest"
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:8090"
- volumes:
- - "${DATA_PATH}:/app/pb_data"
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/certimate/logo.png b/apps/certimate/logo.png
deleted file mode 100644
index 384211b3..00000000
Binary files a/apps/certimate/logo.png and /dev/null differ
diff --git a/apps/changedetectionio/0.50/.env.sample b/apps/changedetectionio/0.50/.env.sample
deleted file mode 100644
index db8393dc..00000000
--- a/apps/changedetectionio/0.50/.env.sample
+++ /dev/null
@@ -1,3 +0,0 @@
-CONTAINER_NAME="changedetection"
-PANEL_APP_PORT_HTTP="40097"
-DATA_PATH="./data"
diff --git a/apps/changedetectionio/0.50/data.yml b/apps/changedetectionio/0.50/data.yml
deleted file mode 100644
index a3ab2461..00000000
--- a/apps/changedetectionio/0.50/data.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40097
- 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/changedetectionio/0.50/docker-compose.yml b/apps/changedetectionio/0.50/docker-compose.yml
deleted file mode 100644
index 34caacce..00000000
--- a/apps/changedetectionio/0.50/docker-compose.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-services:
- changedetection:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:5000"
- volumes:
- - "${DATA_PATH}:/datastore"
- image: dgtlmoon/changedetection.io:0.50
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/changedetectionio/README.md b/apps/changedetectionio/README.md
deleted file mode 100644
index ea93e742..00000000
--- a/apps/changedetectionio/README.md
+++ /dev/null
@@ -1,260 +0,0 @@
-## Web Site Change Detection, Restock monitoring and notifications.
-
-**_Detect website content changes and perform meaningful actions - trigger notifications via Discord, Email, Slack, Telegram, API calls and many more._**
-
-_Live your data-life pro-actively._
-
-
-[](https://changedetection.io?src=github)
-
-[![Release Version][release-shield]][release-link] [![Docker Pulls][docker-pulls]][docker-link] [![License][license-shield]](https://github.com/dgtlmoon/changedetection.io/blob/master/LICENSE.md)
-
-
-
-[**Don't have time? Let us host it for you! try our $8.99/month subscription - use our proxies and support!**](https://changedetection.io) , _half the price of other website change monitoring services!_
-
-- Chrome browser included.
-- Super fast, no registration needed setup.
-- Get started watching and receiving website change notifications straight away.
-
-
-### Target specific parts of the webpage using the Visual Selector tool.
-
-Available when connected to a playwright content fetcher (included as part of our subscription service)
-
-[](https://changedetection.io?src=github)
-
-### Easily see what changed, examine by word, line, or individual character.
-
-[](https://changedetection.io?src=github)
-
-
-### Perform interactive browser steps
-
-Fill in text boxes, click buttons and more, setup your changedetection scenario.
-
-Using the **Browser Steps** configuration, add basic steps before performing change detection, such as logging into websites, adding a product to a cart, accept cookie logins, entering dates and refining searches.
-
-[](https://changedetection.io?src=github)
-
-After **Browser Steps** have been run, then visit the **Visual Selector** tab to refine the content you're interested in.
-Requires Playwright to be enabled.
-
-
-### Example use cases
-
-- Products and services have a change in pricing
-- _Out of stock notification_ and _Back In stock notification_
-- Monitor and track PDF file changes, know when a PDF file has text changes.
-- Governmental department updates (changes are often only on their websites)
-- New software releases, security advisories when you're not on their mailing list.
-- Festivals with changes
-- Discogs restock alerts and monitoring
-- Realestate listing changes
-- Know when your favourite whiskey is on sale, or other special deals are announced before anyone else
-- COVID related news from government websites
-- University/organisation news from their website
-- Detect and monitor changes in JSON API responses
-- JSON API monitoring and alerting
-- Changes in legal and other documents
-- Trigger API calls via notifications when text appears on a website
-- Glue together APIs using the JSON filter and JSON notifications
-- Create RSS feeds based on changes in web content
-- Monitor HTML source code for unexpected changes, strengthen your PCI compliance
-- You have a very sensitive list of URLs to watch and you do _not_ want to use the paid alternatives. (Remember, _you_ are the product)
-- Get notified when certain keywords appear in Twitter search results
-- Proactively search for jobs, get notified when companies update their careers page, search job portals for keywords.
-- Get alerts when new job positions are open on Bamboo HR and other job platforms
-- Website defacement monitoring
-- Pokémon Card Restock Tracker / Pokémon TCG Tracker
-
-_Need an actual Chrome runner with Javascript support? We support fetching via WebDriver and Playwright!_
-
-#### Key Features
-
-- Lots of trigger filters, such as "Trigger on text", "Remove text by selector", "Ignore text", "Extract text", also using regular-expressions!
-- Target elements with xPath and CSS Selectors, Easily monitor complex JSON with JSONPath or jq
-- Switch between fast non-JS and Chrome JS based "fetchers"
-- Track changes in PDF files (Monitor text changed in the PDF, Also monitor PDF filesize and checksums)
-- Easily specify how often a site should be checked
-- Execute JS before extracting text (Good for logging in, see examples in the UI!)
-- Override Request Headers, Specify `POST` or `GET` and other methods
-- Use the "Visual Selector" to help target specific elements
-- Configurable [proxy per watch](https://github.com/dgtlmoon/changedetection.io/wiki/Proxy-configuration)
-- Send a screenshot with the notification when a change is detected in the web page
-
-We [recommend and use Bright Data](https://brightdata.grsm.io/n0r16zf7eivq) global proxy services, Bright Data will match any first deposit up to $100 using our signup link.
-
-Please :star: star :star: this project and help it grow! https://github.com/dgtlmoon/changedetection.io/
-
-## Installation
-
-### Docker
-
-With Docker composer, just clone this repository and..
-
-```bash
-$ docker-compose up -d
-```
-
-Docker standalone
-```bash
-$ docker run -d --restart always -p "127.0.0.1:5000:5000" -v datastore-volume:/datastore --name changedetection.io dgtlmoon/changedetection.io
-```
-
-`:latest` tag is our latest stable release, `:dev` tag is our bleeding edge `master` branch.
-
-Alternative docker repository over at ghcr - [ghcr.io/dgtlmoon/changedetection.io](https://ghcr.io/dgtlmoon/changedetection.io)
-
-### Windows
-
-See the install instructions at the wiki https://github.com/dgtlmoon/changedetection.io/wiki/Microsoft-Windows
-
-### Python Pip
-
-Check out our pypi page https://pypi.org/project/changedetection.io/
-
-```bash
-$ pip3 install changedetection.io
-$ changedetection.io -d /path/to/empty/data/dir -p 5000
-```
-
-Then visit http://127.0.0.1:5000 , You should now be able to access the UI.
-
-_Now with per-site configurable support for using a fast built in HTTP fetcher or use a Chrome based fetcher for monitoring of JavaScript websites!_
-
-## Updating changedetection.io
-
-### Docker
-```
-docker pull dgtlmoon/changedetection.io
-docker kill $(docker ps -a -f name=changedetection.io -q)
-docker rm $(docker ps -a -f name=changedetection.io -q)
-docker run -d --restart always -p "127.0.0.1:5000:5000" -v datastore-volume:/datastore --name changedetection.io dgtlmoon/changedetection.io
-```
-
-### docker-compose
-
-```bash
-docker-compose pull && docker-compose up -d
-```
-
-See the wiki for more information https://github.com/dgtlmoon/changedetection.io/wiki
-
-
-## Filters
-
-XPath, JSONPath, jq, and CSS support comes baked in! You can be as specific as you need, use XPath exported from various XPath element query creation tools.
-(We support LXML `re:test`, `re:match` and `re:replace`.)
-
-## Notifications
-
-ChangeDetection.io supports a massive amount of notifications (including email, office365, custom APIs, etc) when a web-page has a change detected thanks to the apprise library.
-Simply set one or more notification URL's in the _[edit]_ tab of that watch.
-
-Just some examples
-
- discord://webhook_id/webhook_token
- flock://app_token/g:channel_id
- gitter://token/room
- gchat://workspace/key/token
- msteams://TokenA/TokenB/TokenC/
- o365://TenantID:AccountEmail/ClientID/ClientSecret/TargetEmail
- rocket://user:password@hostname/#Channel
- mailto://user:pass@example.com?to=receivingAddress@example.com
- json://someserver.com/custom-api
- syslog://
-
-And everything else in this list!
-
-
-
-Now you can also customise your notification content and use Jinja2 templating for their title and body!
-
-## JSON API Monitoring
-
-Detect changes and monitor data in JSON API's by using either JSONPath or jq to filter, parse, and restructure JSON as needed.
-
-
-
-This will re-parse the JSON and apply formatting to the text, making it super easy to monitor and detect changes in JSON API results
-
-
-
-### JSONPath or jq?
-
-For more complex parsing, filtering, and modifying of JSON data, jq is recommended due to the built-in operators and functions. Refer to the [documentation](https://stedolan.github.io/jq/manual/) for more specifc information on jq.
-
-One big advantage of `jq` is that you can use logic in your JSON filter, such as filters to only show items that have a value greater than/less than etc.
-
-See the wiki https://github.com/dgtlmoon/changedetection.io/wiki/JSON-Selector-Filter-help for more information and examples
-
-### Parse JSON embedded in HTML!
-
-When you enable a `json:` or `jq:` filter, you can even automatically extract and parse embedded JSON inside a HTML page! Amazingly handy for sites that build content based on JSON, such as many e-commerce websites.
-
-```
-
-...
-
-```
-
-`json:$..price` or `jq:..price` would give `3949.99`, or you can extract the whole structure (use a JSONpath test website to validate with)
-
-The application also supports notifying you that it can follow this information automatically
-
-
-## Proxy Configuration
-
-See the wiki https://github.com/dgtlmoon/changedetection.io/wiki/Proxy-configuration , we also support using [BrightData proxy services where possible]( https://github.com/dgtlmoon/changedetection.io/wiki/Proxy-configuration#brightdata-proxy-support)
-
-## Raspberry Pi support?
-
-Raspberry Pi and linux/arm/v6 linux/arm/v7 arm64 devices are supported! See the wiki for [details](https://github.com/dgtlmoon/changedetection.io/wiki/Fetching-pages-with-WebDriver)
-
-## API Support
-
-Supports managing the website watch list [via our API](https://changedetection.io/docs/api_v1/index.html)
-
-## Support us
-
-Do you use changedetection.io to make money? does it save you time or money? Does it make your life easier? less stressful? Remember, we write this software when we should be doing actual paid work, we have to buy food and pay rent just like you.
-
-
-Firstly, consider taking out a [change detection monthly subscription - unlimited checks and watches](https://changedetection.io?src=github) , even if you don't use it, you still get the warm fuzzy feeling of helping out the project. (And who knows, you might just use it!)
-
-Or directly donate an amount PayPal [](https://www.paypal.com/donate/?hosted_button_id=7CP6HR9ZCNDYJ)
-
-Or BTC `1PLFN327GyUarpJd7nVe7Reqg9qHx5frNn`
-
-
-
-## Commercial Support
-
-I offer commercial support, this software is depended on by network security, aerospace , data-science and data-journalist professionals just to name a few, please reach out at dgtlmoon@gmail.com for any enquiries, I am more than glad to work with your organisation to further the possibilities of what can be done with changedetection.io
-
-
-[release-shield]: https://img.shields.io:/github/v/release/dgtlmoon/changedetection.io?style=for-the-badge
-[docker-pulls]: https://img.shields.io/docker/pulls/dgtlmoon/changedetection.io?style=for-the-badge
-[test-shield]: https://github.com/dgtlmoon/changedetection.io/actions/workflows/test-only.yml/badge.svg?branch=master
-
-[license-shield]: https://img.shields.io/github/license/dgtlmoon/changedetection.io.svg?style=for-the-badge
-[release-link]: https://github.com/dgtlmoon/changedetection.io/releases
-[docker-link]: https://hub.docker.com/r/dgtlmoon/changedetection.io
\ No newline at end of file
diff --git a/apps/changedetectionio/data.yml b/apps/changedetectionio/data.yml
deleted file mode 100644
index a50aa44e..00000000
--- a/apps/changedetectionio/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Changedetection.io
-tags:
- - 工具
-title: 网站更改检测、补货监控和通知。
-description: 网站更改检测、补货监控和通知。
-additionalProperties:
- key: changedetectionio
- name: Changedetection.io
- tags:
- - Tool
- shortDescZh: 网站更改检测、补货监控和通知。
- shortDescEn: Web Site Change Detection, Restock monitoring and notifications
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://changedetection.io/
- github: https://github.com/dgtlmoon/changedetection.io
- document: https://github.com/dgtlmoon/changedetection.io/wiki
diff --git a/apps/changedetectionio/latest/.env.sample b/apps/changedetectionio/latest/.env.sample
deleted file mode 100644
index db8393dc..00000000
--- a/apps/changedetectionio/latest/.env.sample
+++ /dev/null
@@ -1,3 +0,0 @@
-CONTAINER_NAME="changedetection"
-PANEL_APP_PORT_HTTP="40097"
-DATA_PATH="./data"
diff --git a/apps/changedetectionio/latest/data.yml b/apps/changedetectionio/latest/data.yml
deleted file mode 100644
index a3ab2461..00000000
--- a/apps/changedetectionio/latest/data.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40097
- 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/changedetectionio/latest/docker-compose.yml b/apps/changedetectionio/latest/docker-compose.yml
deleted file mode 100644
index f5129f88..00000000
--- a/apps/changedetectionio/latest/docker-compose.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-services:
- changedetection:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:5000"
- volumes:
- - "${DATA_PATH}:/datastore"
- image: dgtlmoon/changedetection.io:latest
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/changedetectionio/logo.png b/apps/changedetectionio/logo.png
deleted file mode 100644
index 8719f226..00000000
Binary files a/apps/changedetectionio/logo.png and /dev/null differ
diff --git a/apps/chatgpt-next-web/2.16.0/.env.sample b/apps/chatgpt-next-web/2.16.0/.env.sample
deleted file mode 100644
index ecff0a25..00000000
--- a/apps/chatgpt-next-web/2.16.0/.env.sample
+++ /dev/null
@@ -1,6 +0,0 @@
-CONTAINER_NAME="chatgpt-next-web"
-API_BASE_URL="https://api.openai.com"
-API_KEY="sk-xxx"
-PANEL_APP_PORT_HTTP="40042"
-PROXY=""
-SECRET_KEY="chatgptnextweb_password"
diff --git a/apps/chatgpt-next-web/2.16.0/data.yml b/apps/chatgpt-next-web/2.16.0/data.yml
deleted file mode 100644
index aaf4c90a..00000000
--- a/apps/chatgpt-next-web/2.16.0/data.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40042
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
- - default: "sk-xxx"
- edit: true
- envKey: API_KEY
- labelEn: OPENAI API KEY
- labelZh: OPENAI API KEY
- required: true
- type: text
- - default: "chatgptnextweb"
- edit: true
- envKey: SECRET_KEY
- labelEn: Access rights key, optional (recommended)
- labelZh: 访问权限密钥,可选(强烈建议填写)
- random: true
- required: false
- rule: paramComplexity
- type: password
- - default: ""
- edit: true
- envKey: PROXY
- labelEn: Proxy (example:http://127.0.0.1:7890 user password)
- labelZh: 代理地址(例子:http://127.0.0.1:7890 user password)
- required: false
- type: text
- - default: "https://api.openai.com"
- edit: true
- envKey: API_BASE_URL
- labelEn: API interface address
- labelZh: API接口地址
- required: true
- type: text
diff --git a/apps/chatgpt-next-web/2.16.0/docker-compose.yml b/apps/chatgpt-next-web/2.16.0/docker-compose.yml
deleted file mode 100644
index b5586c58..00000000
--- a/apps/chatgpt-next-web/2.16.0/docker-compose.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-services:
- chatgpt-next-web:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:3000"
- environment:
- - "OPENAI_API_KEY=${API_KEY}"
- - "CODE=${SECRET_KEY}"
- - "PROXY_URL=${PROXY}"
- - "BASE_URL=${API_BASE_URL}"
- image: yidadaa/chatgpt-next-web:v2.16.0
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/chatgpt-next-web/README.md b/apps/chatgpt-next-web/README.md
deleted file mode 100644
index f8d5693e..00000000
--- a/apps/chatgpt-next-web/README.md
+++ /dev/null
@@ -1,186 +0,0 @@
-
-
-## About Flarum
-
-**[Flarum](https://flarum.org/) is a delightfully simple discussion platform for your website.** It's fast and easy to use, with all the features you need to run a successful community. It is designed to be:
-
-* **Fast and simple.** No clutter, no bloat, no complex dependencies. Flarum is built with PHP so it’s quick and easy to deploy. The interface is powered by Mithril, a performant JavaScript framework with a tiny footprint.
-
-* **Beautiful and responsive.** This is forum software for humans. Flarum is carefully designed to be consistent and intuitive across platforms, out-of-the-box.
-
-* **Powerful and extensible.** Customize, extend, and integrate Flarum to suit your community. Flarum’s architecture is amazingly flexible, with a powerful Extension API.
-
-
-
-## Installation
-
-Read the **[Installation guide](https://docs.flarum.org/install)** to get started. For support, refer to the [documentation](https://docs.flarum.org/), and ask questions on the [community forum](https://discuss.flarum.org/) or [Discord chat](https://flarum.org/discord/).
-
-## Contributing
-
-Thank you for considering contributing to Flarum! Please read the **[Contributing guide](https://docs.flarum.org/contributing)** to learn how you can help.
-
-This repository only holds the Flarum skeleton application. Most development happens in [flarum/core](https://github.com/flarum/core).
-
-## Security Vulnerabilities
-
-If you discover a security vulnerability within Flarum, please follow our [security policy](https://github.com/flarum/core/security/policy) so we can address it promptly.
-
-## License
-
-Flarum is open-source software licensed under the [MIT License](https://github.com/flarum/flarum/blob/master/LICENSE).
-
-
diff --git a/apps/flarum/data.yml b/apps/flarum/data.yml
deleted file mode 100644
index 5539c748..00000000
--- a/apps/flarum/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: flarum
-tags:
- - 建站
-title: 新一代的论坛软件,使在线讨论变得有趣
-description: 新一代的论坛软件,使在线讨论变得有趣
-additionalProperties:
- key: flarum
- name: flarum
- tags:
- - Website
- shortDescZh: 新一代的论坛软件,使在线讨论变得有趣
- shortDescEn: The next-generation forum software that makes online discussion fun
- type: website
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://flarum.org/
- github: https://github.com/flarum/flarum
- document: https://docs.flarum.org/
diff --git a/apps/flarum/latest/.env.sample b/apps/flarum/latest/.env.sample
deleted file mode 100644
index 707fa709..00000000
--- a/apps/flarum/latest/.env.sample
+++ /dev/null
@@ -1,10 +0,0 @@
-CONTAINER_NAME="flarum"
-PANEL_APP_PORT_HTTP="40020"
-DATA_PATH="./data"
-PANEL_DB_HOST="127.0.0.1"
-FLARUM_DB_PORT="3306"
-PANEL_DB_NAME="flarum"
-PANEL_DB_USER="flarum"
-PANEL_DB_USER_PASSWORD="MyDBPWD_brls9UwcRasl"
-PANEL_DB_PREFIX="flarum_"
-FLARUM_EXTERNAL_URL="http://localhost:40020"
\ No newline at end of file
diff --git a/apps/flarum/latest/data.yml b/apps/flarum/latest/data.yml
deleted file mode 100644
index dc65e000..00000000
--- a/apps/flarum/latest/data.yml
+++ /dev/null
@@ -1,78 +0,0 @@
-additionalProperties:
- formFields:
- - child:
- default: ""
- envKey: PANEL_DB_HOST
- labelEn: Database Service
- labelZh: 数据库服务
- required: true
- type: service
- default: mysql
- labelEn: Database Service
- labelZh: 数据库服务
- params:
- - envKey: FLARUM_DB_PORT
- key: mysql
- type: param
- value: "3306"
- - envKey: FLARUM_DB_PORT
- key: postgresql
- type: param
- value: "5432"
- required: true
- type: apps
- values:
- - label: MySQL
- value: mysql
- - default: flarum
- envKey: PANEL_DB_NAME
- labelEn: Database
- labelZh: 数据库名
- random: true
- required: true
- rule: paramCommon
- type: text
- - default: flarum
- envKey: PANEL_DB_USER
- labelEn: User
- labelZh: 数据库用户
- random: true
- required: true
- rule: paramCommon
- type: text
- - default: flarum
- envKey: PANEL_DB_USER_PASSWORD
- labelEn: Password
- labelZh: 数据库用户密码
- random: true
- required: true
- rule: paramComplexity
- type: password
- - default: flarum_
- envKey: PANEL_DB_PREFIX
- labelEn: Database prefix
- labelZh: 数据库前缀
- required: true
- type: text
- - default: 40020
- 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 storage folder
- labelZh: 数据存放文件夹
- required: true
- type: text
- - default: http://localhost:40020
- edit: true
- envKey: FLARUM_EXTERNAL_URL
- labelEn: External URL
- labelZh: 外部访问地址
- required: true
- type: text
diff --git a/apps/flarum/latest/docker-compose.yml b/apps/flarum/latest/docker-compose.yml
deleted file mode 100644
index 5b4ab5d0..00000000
--- a/apps/flarum/latest/docker-compose.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-services:
- flarum:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:8000"
- volumes:
- - "${DATA_PATH}:/data"
- environment:
- - TZ=Asia/Shanghai
- - PUID=1000
- - PGID=1000
- - MEMORY_LIMIT=256M
- - UPLOAD_MAX_SIZE=256M
- - CLEAR_ENV=yes
- - OPCACHE_MEM_SIZE=128M
- - LISTEN_IPV6=true
- - REAL_IP_FROM=0.0.0.0/32
- - DB_HOST=${PANEL_DB_HOST}
- - DB_PORT=${FLARUM_DB_PORT}
- - DB_NAME=${PANEL_DB_NAME}
- - DB_USER=${PANEL_DB_USER}
- - DB_PASSWORD=${PANEL_DB_USER_PASSWORD}
- - DB_PREFIX=${PANEL_DB_PREFIX}
- - DB_NOPREFIX=false
- - DB_TIMEOUT=60
- - FLARUM_BASE_URL=${FLARUM_EXTERNAL_URL}
- image: crazymax/flarum:latest
- labels:
- createdBy: Apps
-networks:
- 1panel-network:
- external: true
diff --git a/apps/flarum/logo.png b/apps/flarum/logo.png
deleted file mode 100644
index 35f6c277..00000000
Binary files a/apps/flarum/logo.png and /dev/null differ
diff --git a/apps/focalboard/7.11.4/.env.sample b/apps/focalboard/7.11.4/.env.sample
deleted file mode 100644
index 19d9b8db..00000000
--- a/apps/focalboard/7.11.4/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="focalboard "
-PANEL_APP_PORT_HTTP="40098"
diff --git a/apps/focalboard/7.11.4/data.yml b/apps/focalboard/7.11.4/data.yml
deleted file mode 100644
index 4367dc99..00000000
--- a/apps/focalboard/7.11.4/data.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40098
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
diff --git a/apps/focalboard/7.11.4/data/config.json b/apps/focalboard/7.11.4/data/config.json
deleted file mode 100644
index 185651fa..00000000
--- a/apps/focalboard/7.11.4/data/config.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "serverRoot": "http://localhost:8000",
- "port": 8000,
- "dbtype": "sqlite3",
- "dbconfig": "./data/focalboard.db",
- "postgres_dbconfig": "dbname=focalboard sslmode=disable",
- "useSSL": false,
- "webpath": "./pack",
- "filespath": "./data/files",
- "telemetry": true,
- "session_expire_time": 2592000,
- "session_refresh_time": 18000,
- "localOnly": false,
- "enableLocalMode": true,
- "localModeSocketLocation": "/var/tmp/focalboard_local.socket"
- }
\ No newline at end of file
diff --git a/apps/focalboard/7.11.4/data/postgres-config.json b/apps/focalboard/7.11.4/data/postgres-config.json
deleted file mode 100644
index 7dc2dcfe..00000000
--- a/apps/focalboard/7.11.4/data/postgres-config.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "serverRoot": "http://localhost:8000",
- "port": 8000,
- "dbtype": "postgres",
- "dbconfig": "postgres://boardsuser:boardsuser-password@focalboard-db/boards?sslmode=disable&connect_timeout=10",
- "postgres_dbconfig": "dbname=boards sslmode=disable",
- "useSSL": false,
- "webpath": "./pack",
- "filespath": "./data/files",
- "telemetry": true,
- "prometheusaddress": ":9092",
- "session_expire_time": 2592000,
- "session_refresh_time": 18000,
- "localOnly": false,
- "enableLocalMode": true,
- "localModeSocketLocation": "/var/tmp/focalboard_local.socket"
-}
\ No newline at end of file
diff --git a/apps/focalboard/7.11.4/docker-compose.yml b/apps/focalboard/7.11.4/docker-compose.yml
deleted file mode 100644
index c15956df..00000000
--- a/apps/focalboard/7.11.4/docker-compose.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-services:
- focalboard:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:8000"
- volumes:
- - "./data/config.json:/opt/focalboard/config.json" #sqlite
- #- "./data/postgres-config.json:/opt/focalboard/config.json" #postgres,需要修改对应数据库信息
- - fbdata:/opt/focalboard/data
- image: mattermost/focalboard:7.11.4
- labels:
- createdBy: "Apps"
-
-volumes:
- fbdata:
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/focalboard/README.md b/apps/focalboard/README.md
deleted file mode 100644
index 1cd5f187..00000000
--- a/apps/focalboard/README.md
+++ /dev/null
@@ -1,149 +0,0 @@
-# 使用说明
-
-默认以`SQLite`数据库模式运行,
-
-需要以`postgres`数据库运行的,需要修改目录下的`postgres-config.json`里的数据库信息
-
-且修改`docker-compose.yml`文件里的配置映射。
-
-# 原始相关
-
-# :warning: Announcement: PLEASE READ :warning:
-Focalboard Personal Server and Personal Desktop editions will transition to being fully community supported as of **April 30th, 2023**. This Focalboard repository will become the Personal Edition repository, and will remain open indefinitely. However, we won’t be adding any new enhancements, and will only address Sev-1 level bugs until April 30th, 2023.
-
-# Focalboard
-
-
-
-
-
-
-
-
-
-Like what you see? :eyes: Give us a GitHub Star! :star:
-
-
-
-Focalboard is an open source, multilingual, self-hosted project management tool that's an alternative to Trello, Notion, and Asana.
-
-It helps define, organize, track and manage work across individuals and teams. Focalboard comes in three editions:
-
-* **[Mattermost Boards](https://mattermost.com/boards/)**: Integrated with the Mattermost platform for your team to plan and collaborate.
-
-* **[Personal Desktop](https://www.focalboard.com/docs/personal-edition/desktop/)**: A standalone, single-user [macOS](https://apps.apple.com/app/apple-store/id1556908618?pt=2114704&ct=website&mt=8), [Windows](https://www.microsoft.com/store/apps/9NLN2T0SX9VF?cid=website), or [Linux](https://www.focalboard.com/download/personal-edition/desktop/#linux-desktop) desktop app for your own todos and personal projects.
-
-* **[Personal Server](https://www.focalboard.com/download/personal-edition/ubuntu/)**: A standalone, multi-user server for development and personal use.
-
-## Try Focalboard
-
-### Mattermost Boards
-
-**Mattermost Boards** combines project management tools with messaging and collaboration for teams of all sizes. To access and use **Mattermost Boards**, install or upgrade to Mattermost v6.0 or later as a [self-hosted server](https://docs.mattermost.com/guides/deployment.html?utm_source=github&utm_campaign=focalboard). After logging into Mattermost, select the menu in the top left corner and select **Boards**.
-
-### Personal Desktop (Windows, Mac or Linux Desktop)
-
-* **Windows**: Download from the [Windows App Store](https://www.microsoft.com/store/productId/9NLN2T0SX9VF) or download `focalboard-win.zip` from the [latest release](https://github.com/mattermost/focalboard/releases), unpack, and run `Focalboard.exe`.
-* **Mac**: Download from the [Mac App Store](https://apps.apple.com/us/app/focalboard-insiders/id1556908618?mt=12).
-* **Linux Desktop**: Download `focalboard-linux.tar.gz` from the [latest release](https://github.com/mattermost/focalboard/releases), unpack, and open `focalboard-app`.
-
-### Personal Server
-
-**Ubuntu**: You can download and run the compiled Focalboard **Personal Server** on Ubuntu by following [our latest install guide](https://www.focalboard.com/download/personal-edition/ubuntu/).
-
-### API Docs
-
-Boards API docs can be found over at https://htmlpreview.github.io/?https://github.com/mattermost/focalboard/blob/main/server/swagger/docs/html/index.html
-
-## Contribute to Focalboard
-
-For anyone interested in being an official maintainer of the Focalboard repository, please reach out to us on our [Focalboard Community Channel](https://community.mattermost.com/core/channels/focalboard). If there are no maintainers, and you’re still interested in adding your own improvements to the Focalboard Personal Editions, we encourage you to fork and maintain the repository.
-
-### Getting started
-
-Our [developer guide](https://developers.mattermost.com/contribute/focalboard/personal-server-setup-guide) has detailed instructions on how to set up your development environment for the **Personal Server**. It also provides more information about contributing to our open source community.
-
-Clone [mattermost-server](https://github.com/mattermost/mattermost-server) into sibling directory.
-
-Create an `.env` file in the focalboard directory that contains:
-
-```
-EXCLUDE_ENTERPRISE="1"
-```
-
-To build the server:
-
-```
-make prebuild
-make
-```
-
-To run the server:
-
-```
- ./bin/focalboard-server
-```
-
-Then navigate your browser to [`http://localhost:8000`](http://localhost:8000) to access your Focalboard server. The port is configured in `config.json`.
-
-Once the server is running, you can rebuild just the web app via `make webapp` in a separate terminal window. Reload your browser to see the changes.
-
-### Building and running standalone desktop apps
-
-You can build standalone apps that package the server to run locally against SQLite:
-
-* **Windows**:
- * *Requires Windows 10, [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/) 10.0.19041.0, and .NET 4.8 developer pack*
- * Open a `git-bash` prompt.
- * Run `make prebuild`
- * The above prebuild step needs to be run only when you make changes to or want to install your npm dependencies, etc.
- * Once the prebuild is completed, you can keep repeating the below steps to build the app & see the changes.
- * Run `make win-wpf-app`
- * Run `cd win-wpf/msix && focalboard.exe`
-* **Mac**:
- * *Requires macOS 11.3+ and Xcode 13.2.1+*
- * Run `make prebuild`
- * The above prebuild step needs to be run only when you make changes to or want to install your npm dependencies, etc.
- * Once the prebuild is completed, you can keep repeating the below steps to build the app & see the changes.
- * Run `make mac-app`
- * Run `open mac/dist/Focalboard.app`
-* **Linux**:
- * *Tested on Ubuntu 18.04*
- * Install `webgtk` dependencies
- * Run `sudo apt-get install libgtk-3-dev`
- * Run `sudo apt-get install libwebkit2gtk-4.0-dev`
- * Run `make prebuild`
- * The above prebuild step needs to be run only when you make changes to or want to install your npm dependencies, etc.
- * Once the prebuild is completed, you can keep repeating the below steps to build the app & see the changes.
- * Run `make linux-app`
- * Uncompress `linux/dist/focalboard-linux.tar.gz` to a directory of your choice
- * Run `focalboard-app` from the directory you have chosen
-* **Docker**:
- * To run it locally from offical image:
- * `docker run -it -p 80:8000 mattermost/focalboard`
- * To build it for your current architecture:
- * `docker build -f docker/Dockerfile .`
- * To build it for a custom architecture (experimental):
- * `docker build -f docker/Dockerfile --platform linux/arm64 .`
-
-Cross-compilation currently isn't fully supported, so please build on the appropriate platform. Refer to the GitHub Actions workflows (`build-mac.yml`, `build-win.yml`, `build-ubuntu.yml`) for the detailed list of steps on each platform.
-
-### Unit testing
-
-Before checking in commits, run `make ci`, which is similar to the `.gitlab-ci.yml` workflow and includes:
-
-* **Server unit tests**: `make server-test`
-* **Web app ESLint**: `cd webapp; npm run check`
-* **Web app unit tests**: `cd webapp; npm run test`
-* **Web app UI tests**: `cd webapp; npm run cypress:ci`
-
-### Translating
-
-Help translate Focalboard! The app is already translated into several languages. We welcome corrections and new language translations! You can add new languages or improve existing translations at [Weblate](https://translate.mattermost.com/engage/focalboard/).
-
-### Staying informed
-
-* **Changes**: See the [CHANGELOG](CHANGELOG.md) for the latest updates
-* **GitHub Discussions**: Join the [Developer Discussion](https://github.com/mattermost/focalboard/discussions) board
-* **Bug Reports**: [File a bug report](https://github.com/mattermost/focalboard/issues/new?assignees=&labels=bug&template=bug_report.md&title=)
-* **Chat**: Join the [Focalboard community channel](https://community.mattermost.com/core/channels/focalboard)
\ No newline at end of file
diff --git a/apps/focalboard/data.yml b/apps/focalboard/data.yml
deleted file mode 100644
index abed0cd1..00000000
--- a/apps/focalboard/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Focalboard
-tags:
- - DevOps
-title: Trello,Notion 和 Asana 的开源自托管替代方案
-description: Trello,Notion 和 Asana 的开源自托管替代方案
-additionalProperties:
- key: focalboard
- name: Focalboard
- tags:
- - DevOps
- shortDescZh: Trello,Notion 和 Asana 的开源自托管替代方案
- shortDescEn: An open source, self-hosted alternative to Trello, Notion, and Asana
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://www.focalboard.com/
- github: https://github.com/mattermost/focalboard
- document: https://docs.mattermost.com/guides/boards.html
diff --git a/apps/focalboard/latest/.env.sample b/apps/focalboard/latest/.env.sample
deleted file mode 100644
index 19d9b8db..00000000
--- a/apps/focalboard/latest/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="focalboard "
-PANEL_APP_PORT_HTTP="40098"
diff --git a/apps/focalboard/latest/data.yml b/apps/focalboard/latest/data.yml
deleted file mode 100644
index 4367dc99..00000000
--- a/apps/focalboard/latest/data.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40098
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
diff --git a/apps/focalboard/latest/data/config.json b/apps/focalboard/latest/data/config.json
deleted file mode 100644
index 185651fa..00000000
--- a/apps/focalboard/latest/data/config.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "serverRoot": "http://localhost:8000",
- "port": 8000,
- "dbtype": "sqlite3",
- "dbconfig": "./data/focalboard.db",
- "postgres_dbconfig": "dbname=focalboard sslmode=disable",
- "useSSL": false,
- "webpath": "./pack",
- "filespath": "./data/files",
- "telemetry": true,
- "session_expire_time": 2592000,
- "session_refresh_time": 18000,
- "localOnly": false,
- "enableLocalMode": true,
- "localModeSocketLocation": "/var/tmp/focalboard_local.socket"
- }
\ No newline at end of file
diff --git a/apps/focalboard/latest/data/postgres-config.json b/apps/focalboard/latest/data/postgres-config.json
deleted file mode 100644
index 7dc2dcfe..00000000
--- a/apps/focalboard/latest/data/postgres-config.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "serverRoot": "http://localhost:8000",
- "port": 8000,
- "dbtype": "postgres",
- "dbconfig": "postgres://boardsuser:boardsuser-password@focalboard-db/boards?sslmode=disable&connect_timeout=10",
- "postgres_dbconfig": "dbname=boards sslmode=disable",
- "useSSL": false,
- "webpath": "./pack",
- "filespath": "./data/files",
- "telemetry": true,
- "prometheusaddress": ":9092",
- "session_expire_time": 2592000,
- "session_refresh_time": 18000,
- "localOnly": false,
- "enableLocalMode": true,
- "localModeSocketLocation": "/var/tmp/focalboard_local.socket"
-}
\ No newline at end of file
diff --git a/apps/focalboard/latest/docker-compose.yml b/apps/focalboard/latest/docker-compose.yml
deleted file mode 100644
index 2a4547f0..00000000
--- a/apps/focalboard/latest/docker-compose.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-services:
- focalboard:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:8000"
- volumes:
- - "./data/config.json:/opt/focalboard/config.json" #sqlite
- #- "./data/postgres-config.json:/opt/focalboard/config.json" #postgres,需要修改对应数据库信息
- - fbdata:/opt/focalboard/data
- image: mattermost/focalboard:latest
- labels:
- createdBy: "Apps"
-
-volumes:
- fbdata:
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/focalboard/logo.png b/apps/focalboard/logo.png
deleted file mode 100644
index f8489e8f..00000000
Binary files a/apps/focalboard/logo.png and /dev/null differ
diff --git a/apps/freshrss/1.26.3/.env.sample b/apps/freshrss/1.26.3/.env.sample
deleted file mode 100644
index 7200b809..00000000
--- a/apps/freshrss/1.26.3/.env.sample
+++ /dev/null
@@ -1,7 +0,0 @@
-CONTAINER_NAME="freshrss"
-CRON_MIN="2,32"
-DATA_PATH="./data/data"
-EXTENSIONS_PATH="./data/extensions"
-FRESHRSS_ENV="development"
-PANEL_APP_PORT_HTTP=40293
-TIME_ZONE="Asia/Shanghai"
diff --git a/apps/freshrss/1.26.3/data.yml b/apps/freshrss/1.26.3/data.yml
deleted file mode 100644
index 6abbd970..00000000
--- a/apps/freshrss/1.26.3/data.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-additionalProperties:
- formFields:
- - default: "40293"
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
- - default: "./data/data"
- edit: true
- envKey: DATA_PATH
- labelEn: Data Path
- labelZh: 数据路径
- required: true
- type: text
- - default: "./data/extensions"
- edit: true
- envKey: EXTENSIONS_PATH
- labelEn: Extensions Path
- labelZh: 扩展路径
- required: true
- type: text
- - default: "Asia/Shanghai"
- edit: true
- envKey: TIME_ZONE
- labelEn: Time Zone
- labelZh: 时区
- required: true
- type: text
- - default: "2,32"
- edit: true
- envKey: CRON_MIN
- labelEn: Cron Min
- labelZh: 定时任务分钟
- required: true
- type: text
- - default: "development"
- edit: true
- envKey: FRESHRSS_ENV
- labelEn: Environment
- labelZh: 环境
- required: true
- type: select
- values:
- - label: "Development"
- value: "development"
- - label: "Production"
- value: "production"
diff --git a/apps/freshrss/1.26.3/docker-compose.yml b/apps/freshrss/1.26.3/docker-compose.yml
deleted file mode 100644
index 3a2e62f4..00000000
--- a/apps/freshrss/1.26.3/docker-compose.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-services:
- freshrss:
- image: "freshrss/freshrss:1.26.3"
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP}"
- volumes:
- - ${DATA_PATH}/data:/var/www/FreshRSS/data
- - ${EXTENSIONS_PATH}:/var/www/FreshRSS/extensions
- environment:
- - TZ=${TIME_ZONE}
- - CRON_MIN=${CRON_MIN}
- - FRESHRSS_ENV=${FRESHRSS_ENV}
- - LISTEN=0.0.0.0:${PANEL_APP_PORT_HTTP}
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/freshrss/README.md b/apps/freshrss/README.md
deleted file mode 100644
index 0d374035..00000000
--- a/apps/freshrss/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# FreshRSS
-
-FreshRSS 是一个自托管的 RSS 聚合器。
-
-它轻量、易用、强大且可定制。支持多用户使用,并具备匿名阅读模式和自定义标签功能。提供 API 用于(移动)客户端,还支持 [命令行接口](https://github.com/FreshRSS/FreshRSS/blob/edge/cli/README.md)。
-
-通过 [WebSub](https://freshrss.github.io/FreshRSS/en/users/WebSub.html) 标准,FreshRSS 能够从兼容的来源(如 [Friendica](https://friendi.ca)、[WordPress](https://wordpress.org/plugins/pubsubhubbub/)、Blogger、Medium 等)接收即时推送通知。
-
-FreshRSS 原生支持基于 [XPath](https://www.w3.org/TR/xpath-10/) 的 [Web 抓取](https://freshrss.github.io/FreshRSS/en/users/11_website_scraping.html),适用于没有提供 RSS / Atom 订阅的网站。同时支持 JSON 文档解析。
-
-FreshRSS 还提供了通过 HTML、RSS 和 OPML [重新分享文章的功能](https://freshrss.github.io/FreshRSS/en/users/user_queries.html)。
-
-支持多种 [登录方法](https://freshrss.github.io/FreshRSS/en/admins/09_AccessControl.html):Web 表单(包含匿名选项)、HTTP 身份验证(兼容代理委托)、OpenID Connect。
-
-此外,FreshRSS 还支持 [扩展](https://github.com/FreshRSS/FreshRSS#extensions) 以便进行更多调整。
-
-- 官方网站:
-- 演示:
\ No newline at end of file
diff --git a/apps/freshrss/data.yml b/apps/freshrss/data.yml
deleted file mode 100644
index 0d75bf21..00000000
--- a/apps/freshrss/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: FreshRSS
-tags:
- - 实用工具
-title: 自托管的 RSS 和 Atom 订阅源聚合器
-description: 自托管的 RSS 和 Atom 订阅源聚合器
-additionalProperties:
- key: freshrss
- name: FreshRSS
- tags:
- - Tool
- shortDescZh: 自托管的 RSS 和 Atom 订阅源聚合器
- shortDescEn: A self-hosted RSS and Atom feed aggregator
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://freshrss.org
- github: https://github.com/FreshRSS/FreshRSS
- document: https://freshrss.github.io/FreshRSS
diff --git a/apps/freshrss/latest/.env.sample b/apps/freshrss/latest/.env.sample
deleted file mode 100644
index 7200b809..00000000
--- a/apps/freshrss/latest/.env.sample
+++ /dev/null
@@ -1,7 +0,0 @@
-CONTAINER_NAME="freshrss"
-CRON_MIN="2,32"
-DATA_PATH="./data/data"
-EXTENSIONS_PATH="./data/extensions"
-FRESHRSS_ENV="development"
-PANEL_APP_PORT_HTTP=40293
-TIME_ZONE="Asia/Shanghai"
diff --git a/apps/freshrss/latest/data.yml b/apps/freshrss/latest/data.yml
deleted file mode 100644
index 6abbd970..00000000
--- a/apps/freshrss/latest/data.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-additionalProperties:
- formFields:
- - default: "40293"
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
- - default: "./data/data"
- edit: true
- envKey: DATA_PATH
- labelEn: Data Path
- labelZh: 数据路径
- required: true
- type: text
- - default: "./data/extensions"
- edit: true
- envKey: EXTENSIONS_PATH
- labelEn: Extensions Path
- labelZh: 扩展路径
- required: true
- type: text
- - default: "Asia/Shanghai"
- edit: true
- envKey: TIME_ZONE
- labelEn: Time Zone
- labelZh: 时区
- required: true
- type: text
- - default: "2,32"
- edit: true
- envKey: CRON_MIN
- labelEn: Cron Min
- labelZh: 定时任务分钟
- required: true
- type: text
- - default: "development"
- edit: true
- envKey: FRESHRSS_ENV
- labelEn: Environment
- labelZh: 环境
- required: true
- type: select
- values:
- - label: "Development"
- value: "development"
- - label: "Production"
- value: "production"
diff --git a/apps/freshrss/latest/docker-compose.yml b/apps/freshrss/latest/docker-compose.yml
deleted file mode 100644
index b583b8bc..00000000
--- a/apps/freshrss/latest/docker-compose.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-services:
- freshrss:
- image: "freshrss/freshrss:latest"
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP}"
- volumes:
- - ${DATA_PATH}/data:/var/www/FreshRSS/data
- - ${EXTENSIONS_PATH}:/var/www/FreshRSS/extensions
- environment:
- - TZ=${TIME_ZONE}
- - CRON_MIN=${CRON_MIN}
- - FRESHRSS_ENV=${FRESHRSS_ENV}
- - LISTEN=0.0.0.0:${PANEL_APP_PORT_HTTP}
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/freshrss/logo.png b/apps/freshrss/logo.png
deleted file mode 100644
index 9d9b7c9a..00000000
Binary files a/apps/freshrss/logo.png and /dev/null differ
diff --git a/apps/frpc/0.63.0/.env.sample b/apps/frpc/0.63.0/.env.sample
deleted file mode 100644
index 984ecd93..00000000
--- a/apps/frpc/0.63.0/.env.sample
+++ /dev/null
@@ -1 +0,0 @@
-CONTAINER_NAME="frpc"
\ No newline at end of file
diff --git a/apps/frpc/0.63.0/data.yml b/apps/frpc/0.63.0/data.yml
deleted file mode 100644
index ade86cdd..00000000
--- a/apps/frpc/0.63.0/data.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-additionalProperties:
- formFields:
- - default: ./data/frpc.toml
- edit: true
- envKey: CONFIG_FILE_PATH
- labelEn: Configuration file path
- labelZh: 配置文件路径
- required: true
- type: text
- - default: 6000
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port (determined by the configuration file)
- labelZh: 端口 (由配置文件决定)
- required: true
- type: number
- - default: ./data/ssl
- edit: true
- envKey: SSL_FOLDER_PATH
- labelEn: Certificate folder path (corresponding to "/etc/frp/ssl" in container)
- labelZh: 证书文件夹路径 (对应容器内 "/etc/frp/ssl")
- required: true
- type: text
diff --git a/apps/frpc/0.63.0/data/frpc.ini b/apps/frpc/0.63.0/data/frpc.ini
deleted file mode 100644
index 13a8e5f6..00000000
--- a/apps/frpc/0.63.0/data/frpc.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[common]
-server_addr = 127.0.0.1
-server_port = 7000
-
-[ssh]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-remote_port = 6000
diff --git a/apps/frpc/0.63.0/data/frpc.toml b/apps/frpc/0.63.0/data/frpc.toml
deleted file mode 100644
index 9e64a124..00000000
--- a/apps/frpc/0.63.0/data/frpc.toml
+++ /dev/null
@@ -1,42 +0,0 @@
-# common
-serverAddr = "1.2.3.4"
-serverPort = 7000
-auth.method = "token"
-auth.token = "token123456"
-# supports tcp, kcp, quic, websocket and wss now, default is tcp
-transport.protocol = "tcp"
-
-# dashboard
-webServer.addr = "127.0.0.1"
-webServer.port = 6000
-webServer.user = "admin"
-webServer.password = "password123456"
-webServer.pprofEnable = false
-
-# setting
-loginFailExit = false
-transport.tcpMux = false
-transport.tls.enable = false
-# transport.tls.certFile = "client.crt"
-# transport.tls.keyFile = "client.key"
-# transport.tls.trustedCaFile = "ca.crt"
-# transport.tls.serverName = "example.com"
-
-# tls
-#transport.tls.certFile = "/etc/frp/ssl/client.crt"
-#transport.tls.keyFile = "/etc/frp/ssl/client.key"
-#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt"
-
-[[proxies]]
-name = "rdp_tcp"
-type = "tcp"
-localIP = "127.0.0.1"
-localPort = 3389
-remotePort = 13389
-
-[[proxies]]
-name = "rdp_udp"
-type = "udp"
-localIP = "127.0.0.1"
-localPort = 3389
-remotePort = 13389
\ No newline at end of file
diff --git a/apps/frpc/0.63.0/data/frpc_full.ini b/apps/frpc/0.63.0/data/frpc_full.ini
deleted file mode 100644
index 29f6bcab..00000000
--- a/apps/frpc/0.63.0/data/frpc_full.ini
+++ /dev/null
@@ -1,365 +0,0 @@
-# [common] is integral section
-[common]
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single "server_addr" field, no need square brackets, like "server_addr = ::".
-server_addr = 0.0.0.0
-server_port = 7000
-
-# The maximum amount of time a dial to server will wait for a connect to complete. Default value is 10 seconds.
-# dial_server_timeout = 10
-
-# dial_server_keepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# dial_server_keepalive = 7200
-
-# if you want to connect frps by http proxy or socks5 proxy or ntlm proxy, you can set http_proxy here or in global environment variables
-# it only works when protocol is tcp
-# http_proxy = http://user:passwd@192.168.1.128:8080
-# http_proxy = socks5://user:passwd@192.168.1.128:1080
-# http_proxy = ntlm://user:passwd@192.168.1.128:2080
-
-# console or real logFile path like ./frpc.log
-log_file = ./frpc.log
-
-# trace, debug, info, warn, error
-log_level = info
-
-log_max_days = 3
-
-# disable log colors when log_file is console, default is false
-disable_log_color = false
-
-# for authentication, should be same as your frps.ini
-# authenticate_heartbeats specifies whether to include authentication token in heartbeats sent to frps. By default, this value is false.
-authenticate_heartbeats = false
-
-# authenticate_new_work_conns specifies whether to include authentication token in new work connections sent to frps. By default, this value is false.
-authenticate_new_work_conns = false
-
-# auth token
-token = 12345678
-
-authentication_method =
-
-# oidc_client_id specifies the client ID to use to get a token in OIDC authentication if AuthenticationMethod == "oidc".
-# By default, this value is "".
-oidc_client_id =
-
-# oidc_client_secret specifies the client secret to use to get a token in OIDC authentication if AuthenticationMethod == "oidc".
-# By default, this value is "".
-oidc_client_secret =
-
-# oidc_audience specifies the audience of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "".
-oidc_audience =
-
-# oidc_scope specifies the permisssions of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "".
-oidc_scope =
-
-# oidc_token_endpoint_url specifies the URL which implements OIDC Token Endpoint.
-# It will be used to get an OIDC token if AuthenticationMethod == "oidc". By default, this value is "".
-oidc_token_endpoint_url =
-
-# oidc_additional_xxx specifies additional parameters to be sent to the OIDC Token Endpoint.
-# For example, if you want to specify the "audience" parameter, you can set as follow.
-# frp will add "audience=" "var1=" to the additional parameters.
-# oidc_additional_audience = https://dev.auth.com/api/v2/
-# oidc_additional_var1 = foobar
-
-# set admin address for control frpc's action by http api such as reload
-admin_addr = 127.0.0.1
-admin_port = 7400
-admin_user = admin
-admin_pwd = admin
-# Admin assets directory. By default, these assets are bundled with frpc.
-# assets_dir = ./static
-
-# connections will be established in advance, default value is zero
-pool_count = 5
-
-# if tcp stream multiplexing is used, default is true, it must be same with frps
-# tcp_mux = true
-
-# specify keep alive interval for tcp mux.
-# only valid if tcp_mux is true.
-# tcp_mux_keepalive_interval = 60
-
-# your proxy name will be changed to {user}.{proxy}
-user = your_name
-
-# decide if exit program when first login failed, otherwise continuous relogin to frps
-# default is true
-login_fail_exit = true
-
-# communication protocol used to connect to server
-# supports tcp, kcp, quic and websocket now, default is tcp
-protocol = tcp
-
-# set client binding ip when connect server, default is empty.
-# only when protocol = tcp or websocket, the value will be used.
-connect_server_local_ip = 0.0.0.0
-
-# quic protocol options
-# quic_keepalive_period = 10
-# quic_max_idle_timeout = 30
-# quic_max_incoming_streams = 100000
-
-# if tls_enable is true, frpc will connect frps by tls
-tls_enable = true
-
-# tls_cert_file = client.crt
-# tls_key_file = client.key
-# tls_trusted_ca_file = ca.crt
-# tls_server_name = example.com
-
-# specify a dns server, so frpc will use this instead of default one
-# dns_server = 8.8.8.8
-
-# proxy names you want to start separated by ','
-# default is empty, means all proxies
-# start = ssh,dns
-
-# heartbeat configure, it's not recommended to modify the default value
-# The default value of heartbeat_interval is 10 and heartbeat_timeout is 90. Set negative value
-# to disable it.
-# heartbeat_interval = 30
-# heartbeat_timeout = 90
-
-# additional meta info for client
-meta_var1 = 123
-meta_var2 = 234
-
-# specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udp_packet_size = 1500
-
-# include other config files for proxies.
-# includes = ./confd/*.ini
-
-# By default, frpc will connect frps with first custom byte if tls is enabled.
-# If DisableCustomTLSFirstByte is true, frpc will not send that custom byte.
-disable_custom_tls_first_byte = false
-
-# Enable golang pprof handlers in admin listener.
-# Admin port must be set first.
-pprof_enable = false
-
-# 'ssh' is the unique proxy name
-# if user in [common] section is not empty, it will be changed to {user}.{proxy} such as 'your_name.ssh'
-[ssh]
-# tcp | udp | http | https | stcp | xtcp, default is tcp
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-# limit bandwidth for this proxy, unit is KB and MB
-bandwidth_limit = 1MB
-# where to limit bandwidth, can be 'client' or 'server', default is 'client'
-bandwidth_limit_mode = client
-# true or false, if true, messages between frps and frpc will be encrypted, default is false
-use_encryption = false
-# if true, message will be compressed
-use_compression = false
-# remote port listen by frps
-remote_port = 6001
-# frps will load balancing connections for proxies in same group
-group = test_group
-# group should have same group key
-group_key = 123456
-# enable health check for the backend service, it support 'tcp' and 'http' now
-# frpc will connect local service's port to detect it's healthy status
-health_check_type = tcp
-# health check connection timeout
-health_check_timeout_s = 3
-# if continuous failed in 3 times, the proxy will be removed from frps
-health_check_max_failed = 3
-# every 10 seconds will do a health check
-health_check_interval_s = 10
-# additional meta info for each proxy
-meta_var1 = 123
-meta_var2 = 234
-
-[ssh_random]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-# if remote_port is 0, frps will assign a random port for you
-remote_port = 0
-
-# if you want to expose multiple ports, add 'range:' prefix to the section name
-# frpc will generate multiple proxies such as 'tcp_port_6010', 'tcp_port_6011' and so on.
-[range:tcp_port]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 6010-6020,6022,6024-6028
-remote_port = 6010-6020,6022,6024-6028
-use_encryption = false
-use_compression = false
-
-[dns]
-type = udp
-local_ip = 114.114.114.114
-local_port = 53
-remote_port = 6002
-use_encryption = false
-use_compression = false
-
-[range:udp_port]
-type = udp
-local_ip = 127.0.0.1
-local_port = 6010-6020
-remote_port = 6010-6020
-use_encryption = false
-use_compression = false
-
-# Resolve your domain names to [server_addr] so you can use http://web01.yourdomain.com to browse web01 and http://web02.yourdomain.com to browse web02
-[web01]
-type = http
-local_ip = 127.0.0.1
-local_port = 80
-use_encryption = false
-use_compression = true
-# http username and password are safety certification for http protocol
-# if not set, you can access this custom_domains without certification
-http_user = admin
-http_pwd = admin
-# if domain for frps is frps.com, then you can access [web01] proxy by URL http://web01.frps.com
-subdomain = web01
-custom_domains = web01.yourdomain.com
-# locations is only available for http type
-locations = /,/pic
-# route requests to this service if http basic auto user is abc
-# route_by_http_user = abc
-host_header_rewrite = example.com
-# params with prefix "header_" will be used to update http request headers
-header_X-From-Where = frp
-health_check_type = http
-# frpc will send a GET http request '/status' to local http service
-# http service is alive when it return 2xx http response code
-health_check_url = /status
-health_check_interval_s = 10
-health_check_max_failed = 3
-health_check_timeout_s = 3
-
-[web02]
-type = https
-local_ip = 127.0.0.1
-local_port = 8000
-use_encryption = false
-use_compression = false
-subdomain = web01
-custom_domains = web02.yourdomain.com
-# if not empty, frpc will use proxy protocol to transfer connection info to your local service
-# v1 or v2 or empty
-proxy_protocol_version = v2
-
-[plugin_unix_domain_socket]
-type = tcp
-remote_port = 6003
-# if plugin is defined, local_ip and local_port is useless
-# plugin will handle connections got from frps
-plugin = unix_domain_socket
-# params with prefix "plugin_" that plugin needed
-plugin_unix_path = /var/run/docker.sock
-
-[plugin_http_proxy]
-type = tcp
-remote_port = 6004
-plugin = http_proxy
-plugin_http_user = abc
-plugin_http_passwd = abc
-
-[plugin_socks5]
-type = tcp
-remote_port = 6005
-plugin = socks5
-plugin_user = abc
-plugin_passwd = abc
-
-[plugin_static_file]
-type = tcp
-remote_port = 6006
-plugin = static_file
-plugin_local_path = /var/www/blog
-plugin_strip_prefix = static
-plugin_http_user = abc
-plugin_http_passwd = abc
-
-[plugin_https2http]
-type = https
-custom_domains = test.yourdomain.com
-plugin = https2http
-plugin_local_addr = 127.0.0.1:80
-plugin_crt_path = ./server.crt
-plugin_key_path = ./server.key
-plugin_host_header_rewrite = 127.0.0.1
-plugin_header_X-From-Where = frp
-
-[plugin_https2https]
-type = https
-custom_domains = test.yourdomain.com
-plugin = https2https
-plugin_local_addr = 127.0.0.1:443
-plugin_crt_path = ./server.crt
-plugin_key_path = ./server.key
-plugin_host_header_rewrite = 127.0.0.1
-plugin_header_X-From-Where = frp
-
-[plugin_http2https]
-type = http
-custom_domains = test.yourdomain.com
-plugin = http2https
-plugin_local_addr = 127.0.0.1:443
-plugin_host_header_rewrite = 127.0.0.1
-plugin_header_X-From-Where = frp
-
-[secret_tcp]
-# If the type is secret tcp, remote_port is useless
-# Who want to connect local port should deploy another frpc with stcp proxy and role is visitor
-type = stcp
-# sk used for authentication for visitors
-sk = abcdefg
-local_ip = 127.0.0.1
-local_port = 22
-use_encryption = false
-use_compression = false
-
-# user of frpc should be same in both stcp server and stcp visitor
-[secret_tcp_visitor]
-# frpc role visitor -> frps -> frpc role server
-role = visitor
-type = stcp
-# the server name you want to visitor
-server_name = secret_tcp
-sk = abcdefg
-# connect this address to visitor stcp server
-bind_addr = 127.0.0.1
-bind_port = 9000
-use_encryption = false
-use_compression = false
-
-[p2p_tcp]
-type = xtcp
-sk = abcdefg
-local_ip = 127.0.0.1
-local_port = 22
-use_encryption = false
-use_compression = false
-
-[p2p_tcp_visitor]
-role = visitor
-type = xtcp
-server_name = p2p_tcp
-sk = abcdefg
-bind_addr = 127.0.0.1
-bind_port = 9001
-use_encryption = false
-use_compression = false
-
-[tcpmuxhttpconnect]
-type = tcpmux
-multiplexer = httpconnect
-local_ip = 127.0.0.1
-local_port = 10701
-custom_domains = tunnel1
-# route_by_http_user = user1
diff --git a/apps/frpc/0.63.0/data/frpc_full.toml b/apps/frpc/0.63.0/data/frpc_full.toml
deleted file mode 100644
index 67fd84ec..00000000
--- a/apps/frpc/0.63.0/data/frpc_full.toml
+++ /dev/null
@@ -1,366 +0,0 @@
-# This configuration file is for reference only. Please do not use this configuration directly to run the program as it may have various issues.
-
-# your proxy name will be changed to {user}.{proxy}
-user = "your_name"
-
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single serverAddr field, no need square brackets, like serverAddr = "::".
-serverAddr = "0.0.0.0"
-serverPort = 7000
-
-# STUN server to help penetrate NAT hole.
-# natHoleStunServer = "stun.easyvoip.com:3478"
-
-# Decide if exit program when first login failed, otherwise continuous relogin to frps
-# default is true
-loginFailExit = true
-
-# console or real logFile path like ./frpc.log
-log.to = "./frpc.log"
-# trace, debug, info, warn, error
-log.level = "info"
-log.maxDays = 3
-# disable log colors when log.to is console, default is false
-log.disablePrintColor = false
-
-auth.method = "token"
-# auth.additionalScopes specifies additional scopes to include authentication information.
-# Optional values are HeartBeats, NewWorkConns.
-# auth.additionalScopes = ["HeartBeats", "NewWorkConns"]
-
-# auth token
-auth.token = "12345678"
-
-# oidc.clientID specifies the client ID to use to get a token in OIDC authentication.
-# auth.oidc.clientID = ""
-# oidc.clientSecret specifies the client secret to use to get a token in OIDC authentication.
-# auth.oidc.clientSecret = ""
-# oidc.audience specifies the audience of the token in OIDC authentication.
-# auth.oidc.audience = ""
-# oidc.scope specifies the permissions of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "".
-# auth.oidc.scope = ""
-# oidc.tokenEndpointURL specifies the URL which implements OIDC Token Endpoint.
-# It will be used to get an OIDC token.
-# auth.oidc.tokenEndpointURL = ""
-
-# oidc.additionalEndpointParams specifies additional parameters to be sent to the OIDC Token Endpoint.
-# For example, if you want to specify the "audience" parameter, you can set as follow.
-# frp will add "audience=" "var1=" to the additional parameters.
-# auth.oidc.additionalEndpointParams.audience = "https://dev.auth.com/api/v2/"
-# auth.oidc.additionalEndpointParams.var1 = "foobar"
-
-# Set admin address for control frpc's action by http api such as reload
-webServer.addr = "127.0.0.1"
-webServer.port = 7400
-webServer.user = "admin"
-webServer.password = "admin"
-# Admin assets directory. By default, these assets are bundled with frpc.
-# webServer.assetsDir = "./static"
-
-# Enable golang pprof handlers in admin listener.
-webServer.pprofEnable = false
-
-# The maximum amount of time a dial to server will wait for a connect to complete. Default value is 10 seconds.
-# transport.dialServerTimeout = 10
-
-# dialServerKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# transport.dialServerKeepalive = 7200
-
-# connections will be established in advance, default value is zero
-transport.poolCount = 5
-
-# If tcp stream multiplexing is used, default is true, it must be same with frps
-# transport.tcpMux = true
-
-# Specify keep alive interval for tcp mux.
-# only valid if tcpMux is enabled.
-# transport.tcpMuxKeepaliveInterval = 60
-
-# Communication protocol used to connect to server
-# supports tcp, kcp, quic, websocket and wss now, default is tcp
-transport.protocol = "tcp"
-
-# set client binding ip when connect server, default is empty.
-# only when protocol = tcp or websocket, the value will be used.
-transport.connectServerLocalIP = "0.0.0.0"
-
-# if you want to connect frps by http proxy or socks5 proxy or ntlm proxy, you can set proxyURL here or in global environment variables
-# it only works when protocol is tcp
-# transport.proxyURL = "http://user:passwd@192.168.1.128:8080"
-# transport.proxyURL = "socks5://user:passwd@192.168.1.128:1080"
-# transport.proxyURL = "ntlm://user:passwd@192.168.1.128:2080"
-
-# quic protocol options
-# transport.quic.keepalivePeriod = 10
-# transport.quic.maxIdleTimeout = 30
-# transport.quic.maxIncomingStreams = 100000
-
-# If tls.enable is true, frpc will connect frps by tls.
-# Since v0.50.0, the default value has been changed to true, and tls is enabled by default.
-transport.tls.enable = true
-
-# transport.tls.certFile = "client.crt"
-# transport.tls.keyFile = "client.key"
-# transport.tls.trustedCaFile = "ca.crt"
-# transport.tls.serverName = "example.com"
-
-# If the disableCustomTLSFirstByte is set to false, frpc will establish a connection with frps using the
-# first custom byte when tls is enabled.
-# Since v0.50.0, the default value has been changed to true, and the first custom byte is disabled by default.
-# transport.tls.disableCustomTLSFirstByte = true
-
-# Heartbeat configure, it's not recommended to modify the default value.
-# The default value of heartbeatInterval is 10 and heartbeatTimeout is 90. Set negative value
-# to disable it.
-# transport.heartbeatInterval = 30
-# transport.heartbeatTimeout = 90
-
-# Specify a dns server, so frpc will use this instead of default one
-# dnsServer = "8.8.8.8"
-
-# Proxy names you want to start.
-# Default is empty, means all proxies.
-# start = ["ssh", "dns"]
-
-# Specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udpPacketSize = 1500
-
-# Additional metadatas for client.
-metadatas.var1 = "abc"
-metadatas.var2 = "123"
-
-# Include other config files for proxies.
-# includes = ["./confd/*.ini"]
-
-[[proxies]]
-# 'ssh' is the unique proxy name
-# If global user is not empty, it will be changed to {user}.{proxy} such as 'your_name.ssh'
-name = "ssh"
-type = "tcp"
-localIP = "127.0.0.1"
-localPort = 22
-# Limit bandwidth for this proxy, unit is KB and MB
-transport.bandwidthLimit = "1MB"
-# Where to limit bandwidth, can be 'client' or 'server', default is 'client'
-transport.bandwidthLimitMode = "client"
-# If true, traffic of this proxy will be encrypted, default is false
-transport.useEncryption = false
-# If true, traffic will be compressed
-transport.useCompression = false
-# Remote port listen by frps
-remotePort = 6001
-# frps will load balancing connections for proxies in same group
-loadBalancer.group = "test_group"
-# group should have same group key
-loadBalancer.groupKey = "123456"
-# Enable health check for the backend service, it supports 'tcp' and 'http' now.
-# frpc will connect local service's port to detect it's healthy status
-healthCheck.type = "tcp"
-# Health check connection timeout
-healthCheck.timeoutSeconds = 3
-# If continuous failed in 3 times, the proxy will be removed from frps
-healthCheck.maxFailed = 3
-# Every 10 seconds will do a health check
-healthCheck.intervalSeconds = 10
-# Additional meta info for each proxy. It will be passed to the server-side plugin for use.
-metadatas.var1 = "abc"
-metadatas.var2 = "123"
-# You can add some extra information to the proxy through annotations.
-# These annotations will be displayed on the frps dashboard.
-[proxies.annotations]
-key1 = "value1"
-"prefix/key2" = "value2"
-
-[[proxies]]
-name = "ssh_random"
-type = "tcp"
-localIP = "192.168.31.100"
-localPort = 22
-# If remotePort is 0, frps will assign a random port for you
-remotePort = 0
-
-[[proxies]]
-name = "dns"
-type = "udp"
-localIP = "114.114.114.114"
-localPort = 53
-remotePort = 6002
-
-# Resolve your domain names to [serverAddr] so you can use http://web01.yourdomain.com to browse web01 and http://web02.yourdomain.com to browse web02
-[[proxies]]
-name = "web01"
-type = "http"
-localIP = "127.0.0.1"
-localPort = 80
-# http username and password are safety certification for http protocol
-# if not set, you can access this customDomains without certification
-httpUser = "admin"
-httpPassword = "admin"
-# if domain for frps is frps.com, then you can access [web01] proxy by URL http://web01.frps.com
-subdomain = "web01"
-customDomains = ["web01.yourdomain.com"]
-# locations is only available for http type
-locations = ["/", "/pic"]
-# route requests to this service if http basic auto user is abc
-# routeByHTTPUser = abc
-hostHeaderRewrite = "example.com"
-requestHeaders.set.x-from-where = "frp"
-healthCheck.type = "http"
-# frpc will send a GET http request '/status' to local http service
-# http service is alive when it return 2xx http response code
-healthCheck.path = "/status"
-healthCheck.intervalSeconds = 10
-healthCheck.maxFailed = 3
-healthCheck.timeoutSeconds = 3
-
-[[proxies]]
-name = "web02"
-type = "https"
-localIP = "127.0.0.1"
-localPort = 8000
-subdomain = "web02"
-customDomains = ["web02.yourdomain.com"]
-# if not empty, frpc will use proxy protocol to transfer connection info to your local service
-# v1 or v2 or empty
-transport.proxyProtocolVersion = "v2"
-
-[[proxies]]
-name = "tcpmuxhttpconnect"
-type = "tcpmux"
-multiplexer = "httpconnect"
-localIP = "127.0.0.1"
-localPort = 10701
-customDomains = ["tunnel1"]
-# routeByHTTPUser = "user1"
-
-[[proxies]]
-name = "plugin_unix_domain_socket"
-type = "tcp"
-remotePort = 6003
-# if plugin is defined, localIP and localPort is useless
-# plugin will handle connections got from frps
-[proxies.plugin]
-type = "unix_domain_socket"
-unixPath = "/var/run/docker.sock"
-
-[[proxies]]
-name = "plugin_http_proxy"
-type = "tcp"
-remotePort = 6004
-[proxies.plugin]
-type = "http_proxy"
-httpUser = "abc"
-httpPassword = "abc"
-
-[[proxies]]
-name = "plugin_socks5"
-type = "tcp"
-remotePort = 6005
-[proxies.plugin]
-type = "socks5"
-username = "abc"
-password = "abc"
-
-[[proxies]]
-name = "plugin_static_file"
-type = "tcp"
-remotePort = 6006
-[proxies.plugin]
-type = "static_file"
-localPath = "/var/www/blog"
-stripPrefix = "static"
-httpUser = "abc"
-httpPassword = "abc"
-
-[[proxies]]
-name = "plugin_https2http"
-type = "https"
-customDomains = ["test.yourdomain.com"]
-[proxies.plugin]
-type = "https2http"
-localAddr = "127.0.0.1:80"
-crtPath = "./server.crt"
-keyPath = "./server.key"
-hostHeaderRewrite = "127.0.0.1"
-requestHeaders.set.x-from-where = "frp"
-
-[[proxies]]
-name = "plugin_https2https"
-type = "https"
-customDomains = ["test.yourdomain.com"]
-[proxies.plugin]
-type = "https2https"
-localAddr = "127.0.0.1:443"
-crtPath = "./server.crt"
-keyPath = "./server.key"
-hostHeaderRewrite = "127.0.0.1"
-requestHeaders.set.x-from-where = "frp"
-
-[[proxies]]
-name = "plugin_http2https"
-type = "http"
-customDomains = ["test.yourdomain.com"]
-[proxies.plugin]
-type = "http2https"
-localAddr = "127.0.0.1:443"
-hostHeaderRewrite = "127.0.0.1"
-requestHeaders.set.x-from-where = "frp"
-
-[[proxies]]
-name = "secret_tcp"
-# If the type is secret tcp, remotePort is useless
-# Who want to connect local port should deploy another frpc with stcp proxy and role is visitor
-type = "stcp"
-# secretKey is used for authentication for visitors
-secretKey = "abcdefg"
-localIP = "127.0.0.1"
-localPort = 22
-# If not empty, only visitors from specified users can connect.
-# Otherwise, visitors from same user can connect. '*' means allow all users.
-allowUsers = ["*"]
-
-[[proxies]]
-name = "p2p_tcp"
-type = "xtcp"
-secretKey = "abcdefg"
-localIP = "127.0.0.1"
-localPort = 22
-# If not empty, only visitors from specified users can connect.
-# Otherwise, visitors from same user can connect. '*' means allow all users.
-allowUsers = ["user1", "user2"]
-
-# frpc role visitor -> frps -> frpc role server
-[[visitors]]
-name = "secret_tcp_visitor"
-type = "stcp"
-# the server name you want to visitor
-serverName = "secret_tcp"
-secretKey = "abcdefg"
-# connect this address to visitor stcp server
-bindAddr = "127.0.0.1"
-# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from
-# other visitors. (This is not supported for SUDP now)
-bindPort = 9000
-
-[[visitors]]
-name = "p2p_tcp_visitor"
-type = "xtcp"
-# if the server user is not set, it defaults to the current user
-serverUser = "user1"
-serverName = "p2p_tcp"
-secretKey = "abcdefg"
-bindAddr = "127.0.0.1"
-# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from
-# other visitors. (This is not supported for SUDP now)
-bindPort = 9001
-# when automatic tunnel persistence is required, set it to true
-keepTunnelOpen = false
-# effective when keepTunnelOpen is set to true, the number of attempts to punch through per hour
-maxRetriesAnHour = 8
-minRetryInterval = 90
-# fallbackTo = "stcp_visitor"
-# fallbackTimeoutMs = 500
\ No newline at end of file
diff --git a/apps/frpc/0.63.0/data/frps.ini b/apps/frpc/0.63.0/data/frps.ini
deleted file mode 100644
index 229567a9..00000000
--- a/apps/frpc/0.63.0/data/frps.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[common]
-bind_port = 7000
diff --git a/apps/frpc/0.63.0/data/frps.toml b/apps/frpc/0.63.0/data/frps.toml
deleted file mode 100644
index cc3f831d..00000000
--- a/apps/frpc/0.63.0/data/frps.toml
+++ /dev/null
@@ -1,42 +0,0 @@
-# common
-bindAddr = "0.0.0.0"
-bindPort = 7000
-auth.method = "token"
-auth.token = "token123456"
-
-# udp by kcp
-kcpBindPort = 7000
-
-# udp by quic
-#quicBindPort = 7002
-#transport.quic.keepalivePeriod = 10
-#transport.quic.maxIdleTimeout = 30
-#transport.quic.maxIncomingStreams = 100000
-
-# web
-#vhostHTTPPort = 40480
-#vhostHTTPSPort = 40443
-#subDomainHost = "example.com"
-
-# tls
-transport.tls.force = true
-#tls.force = false # 版本0.52.0到0.55.0用这个
-#transport.tls.certFile = "/etc/frp/ssl/server.crt"
-#transport.tls.keyFile = "/etc/frp/ssl/server.key"
-#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt"
-
-# dashboard
-webServer.addr = "0.0.0.0"
-webServer.port = 7001
-webServer.user = "admin"
-webServer.password = "password123456"
-webServer.pprofEnable = false
-# webServer.tls.certFile = "server.crt"
-# webServer.tls.keyFile = "server.key"
-
-# setting
-transport.tcpMux = false
-enablePrometheus = true
-maxPortsPerClient = 0
-natholeAnalysisDataReserveHours = 168
-udpPacketSize = 1500
\ No newline at end of file
diff --git a/apps/frpc/0.63.0/data/frps_full.ini b/apps/frpc/0.63.0/data/frps_full.ini
deleted file mode 100644
index 2d5e08e1..00000000
--- a/apps/frpc/0.63.0/data/frps_full.ini
+++ /dev/null
@@ -1,168 +0,0 @@
-# [common] is integral section
-[common]
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single "bind_addr" field, no need square brackets, like "bind_addr = ::".
-bind_addr = 0.0.0.0
-bind_port = 7000
-
-# udp port to help make udp hole to penetrate nat
-bind_udp_port = 7001
-
-# udp port used for kcp protocol, it can be same with 'bind_port'.
-# if not set, kcp is disabled in frps.
-kcp_bind_port = 7000
-
-# udp port used for quic protocol.
-# if not set, quic is disabled in frps.
-# quic_bind_port = 7002
-# quic protocol options
-# quic_keepalive_period = 10
-# quic_max_idle_timeout = 30
-# quic_max_incoming_streams = 100000
-
-# specify which address proxy will listen for, default value is same with bind_addr
-# proxy_bind_addr = 127.0.0.1
-
-# if you want to support virtual host, you must set the http port for listening (optional)
-# Note: http port and https port can be same with bind_port
-vhost_http_port = 80
-vhost_https_port = 443
-
-# response header timeout(seconds) for vhost http server, default is 60s
-# vhost_http_timeout = 60
-
-# tcpmux_httpconnect_port specifies the port that the server listens for TCP
-# HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP
-# requests on one single port. If it's not - it will listen on this value for
-# HTTP CONNECT requests. By default, this value is 0.
-# tcpmux_httpconnect_port = 1337
-
-# If tcpmux_passthrough is true, frps won't do any update on traffic.
-# tcpmux_passthrough = false
-
-# set dashboard_addr and dashboard_port to view dashboard of frps
-# dashboard_addr's default value is same with bind_addr
-# dashboard is available only if dashboard_port is set
-dashboard_addr = 0.0.0.0
-dashboard_port = 7500
-
-# dashboard user and passwd for basic auth protect
-dashboard_user = admin
-dashboard_pwd = admin
-
-# dashboard TLS mode
-dashboard_tls_mode = false
-# dashboard_tls_cert_file = server.crt
-# dashboard_tls_key_file = server.key
-
-# enable_prometheus will export prometheus metrics on {dashboard_addr}:{dashboard_port} in /metrics api.
-enable_prometheus = true
-
-# dashboard assets directory(only for debug mode)
-# assets_dir = ./static
-
-# console or real logFile path like ./frps.log
-log_file = ./frps.log
-
-# trace, debug, info, warn, error
-log_level = info
-
-log_max_days = 3
-
-# disable log colors when log_file is console, default is false
-disable_log_color = false
-
-# DetailedErrorsToClient defines whether to send the specific error (with debug info) to frpc. By default, this value is true.
-detailed_errors_to_client = true
-
-# authentication_method specifies what authentication method to use authenticate frpc with frps.
-# If "token" is specified - token will be read into login message.
-# If "oidc" is specified - OIDC (Open ID Connect) token will be issued using OIDC settings. By default, this value is "token".
-authentication_method = token
-
-# authenticate_heartbeats specifies whether to include authentication token in heartbeats sent to frps. By default, this value is false.
-authenticate_heartbeats = false
-
-# AuthenticateNewWorkConns specifies whether to include authentication token in new work connections sent to frps. By default, this value is false.
-authenticate_new_work_conns = false
-
-# auth token
-token = 12345678
-
-# oidc_issuer specifies the issuer to verify OIDC tokens with.
-# By default, this value is "".
-oidc_issuer =
-
-# oidc_audience specifies the audience OIDC tokens should contain when validated.
-# By default, this value is "".
-oidc_audience =
-
-# oidc_skip_expiry_check specifies whether to skip checking if the OIDC token is expired.
-# By default, this value is false.
-oidc_skip_expiry_check = false
-
-# oidc_skip_issuer_check specifies whether to skip checking if the OIDC token's issuer claim matches the issuer specified in OidcIssuer.
-# By default, this value is false.
-oidc_skip_issuer_check = false
-
-# heartbeat configure, it's not recommended to modify the default value
-# the default value of heartbeat_timeout is 90. Set negative value to disable it.
-# heartbeat_timeout = 90
-
-# user_conn_timeout configure, it's not recommended to modify the default value
-# the default value of user_conn_timeout is 10
-# user_conn_timeout = 10
-
-# only allow frpc to bind ports you list, if you set nothing, there won't be any limit
-allow_ports = 2000-3000,3001,3003,4000-50000
-
-# pool_count in each proxy will change to max_pool_count if they exceed the maximum value
-max_pool_count = 5
-
-# max ports can be used for each client, default value is 0 means no limit
-max_ports_per_client = 0
-
-# tls_only specifies whether to only accept TLS-encrypted connections. By default, the value is false.
-tls_only = false
-
-# tls_cert_file = server.crt
-# tls_key_file = server.key
-# tls_trusted_ca_file = ca.crt
-
-# if subdomain_host is not empty, you can set subdomain when type is http or https in frpc's configure file
-# when subdomain is test, the host used by routing is test.frps.com
-subdomain_host = frps.com
-
-# if tcp stream multiplexing is used, default is true
-# tcp_mux = true
-
-# specify keep alive interval for tcp mux.
-# only valid if tcp_mux is true.
-# tcp_mux_keepalive_interval = 60
-
-# tcp_keepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# tcp_keepalive = 7200
-
-# custom 404 page for HTTP requests
-# custom_404_page = /path/to/404.html
-
-# specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udp_packet_size = 1500
-
-# Enable golang pprof handlers in dashboard listener.
-# Dashboard port must be set first
-pprof_enable = false
-
-[plugin.user-manager]
-addr = 127.0.0.1:9000
-path = /handler
-ops = Login
-
-[plugin.port-manager]
-addr = 127.0.0.1:9001
-path = /handler
-ops = NewProxy
diff --git a/apps/frpc/0.63.0/data/frps_full.toml b/apps/frpc/0.63.0/data/frps_full.toml
deleted file mode 100644
index f739d4d4..00000000
--- a/apps/frpc/0.63.0/data/frps_full.toml
+++ /dev/null
@@ -1,164 +0,0 @@
-# This configuration file is for reference only. Please do not use this configuration directly to run the program as it may have various issues.
-
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single "bindAddr" field, no need square brackets, like `bindAddr = "::"`.
-bindAddr = "0.0.0.0"
-bindPort = 7000
-
-# udp port used for kcp protocol, it can be same with 'bindPort'.
-# if not set, kcp is disabled in frps.
-kcpBindPort = 7000
-
-# udp port used for quic protocol.
-# if not set, quic is disabled in frps.
-# quicBindPort = 7002
-
-# Specify which address proxy will listen for, default value is same with bindAddr
-# proxyBindAddr = "127.0.0.1"
-
-# quic protocol options
-# transport.quic.keepalivePeriod = 10
-# transport.quic.maxIdleTimeout = 30
-# transport.quic.maxIncomingStreams = 100000
-
-# Heartbeat configure, it's not recommended to modify the default value
-# The default value of heartbeatTimeout is 90. Set negative value to disable it.
-# transport.heartbeatTimeout = 90
-
-# Pool count in each proxy will keep no more than maxPoolCount.
-transport.maxPoolCount = 5
-
-# If tcp stream multiplexing is used, default is true
-# transport.tcpMux = true
-
-# Specify keep alive interval for tcp mux.
-# only valid if tcpMux is true.
-# transport.tcpMuxKeepaliveInterval = 60
-
-# tcpKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# transport.tcpKeepalive = 7200
-
-# transport.tls.force specifies whether to only accept TLS-encrypted connections. By default, the value is false.
-transport.tls.force = false
-
-# transport.tls.certFile = "server.crt"
-# transport.tls.keyFile = "server.key"
-# transport.tls.trustedCaFile = "ca.crt"
-
-# If you want to support virtual host, you must set the http port for listening (optional)
-# Note: http port and https port can be same with bindPort
-vhostHTTPPort = 80
-vhostHTTPSPort = 443
-
-# Response header timeout(seconds) for vhost http server, default is 60s
-# vhostHTTPTimeout = 60
-
-# tcpmuxHTTPConnectPort specifies the port that the server listens for TCP
-# HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP
-# requests on one single port. If it's not - it will listen on this value for
-# HTTP CONNECT requests. By default, this value is 0.
-# tcpmuxHTTPConnectPort = 1337
-
-# If tcpmuxPassthrough is true, frps won't do any update on traffic.
-# tcpmuxPassthrough = false
-
-# Configure the web server to enable the dashboard for frps.
-# dashboard is available only if webServer.port is set.
-webServer.addr = "127.0.0.1"
-webServer.port = 7500
-webServer.user = "admin"
-webServer.password = "admin"
-# webServer.tls.certFile = "server.crt"
-# webServer.tls.keyFile = "server.key"
-# dashboard assets directory(only for debug mode)
-# webServer.assetsDir = "./static"
-
-# Enable golang pprof handlers in dashboard listener.
-# Dashboard port must be set first
-webServer.pprofEnable = false
-
-# enablePrometheus will export prometheus metrics on webServer in /metrics api.
-enablePrometheus = true
-
-# console or real logFile path like ./frps.log
-log.to = "./frps.log"
-# trace, debug, info, warn, error
-log.level = "info"
-log.maxDays = 3
-# disable log colors when log.to is console, default is false
-log.disablePrintColor = false
-
-# DetailedErrorsToClient defines whether to send the specific error (with debug info) to frpc. By default, this value is true.
-detailedErrorsToClient = true
-
-# auth.method specifies what authentication method to use authenticate frpc with frps.
-# If "token" is specified - token will be read into login message.
-# If "oidc" is specified - OIDC (Open ID Connect) token will be issued using OIDC settings. By default, this value is "token".
-auth.method = "token"
-
-# auth.additionalScopes specifies additional scopes to include authentication information.
-# Optional values are HeartBeats, NewWorkConns.
-# auth.additionalScopes = ["HeartBeats", "NewWorkConns"]
-
-# auth token
-auth.token = "12345678"
-
-# oidc issuer specifies the issuer to verify OIDC tokens with.
-auth.oidc.issuer = ""
-# oidc audience specifies the audience OIDC tokens should contain when validated.
-auth.oidc.audience = ""
-# oidc skipExpiryCheck specifies whether to skip checking if the OIDC token is expired.
-auth.oidc.skipExpiryCheck = false
-# oidc skipIssuerCheck specifies whether to skip checking if the OIDC token's issuer claim matches the issuer specified in OidcIssuer.
-auth.oidc.skipIssuerCheck = false
-
-# userConnTimeout specifies the maximum time to wait for a work connection.
-# userConnTimeout = 10
-
-# Only allow frpc to bind ports you list. By default, there won't be any limit.
-allowPorts = [
- { start = 2000, end = 3000 },
- { single = 3001 },
- { single = 3003 },
- { start = 4000, end = 50000 }
-]
-
-# Max ports can be used for each client, default value is 0 means no limit
-maxPortsPerClient = 0
-
-# If subDomainHost is not empty, you can set subdomain when type is http or https in frpc's configure file
-# When subdomain is test, the host used by routing is test.frps.com
-subDomainHost = "frps.com"
-
-# custom 404 page for HTTP requests
-# custom404Page = "/path/to/404.html"
-
-# specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udpPacketSize = 1500
-
-# Retention time for NAT hole punching strategy data.
-natholeAnalysisDataReserveHours = 168
-
-# ssh tunnel gateway
-# If you want to enable this feature, the bindPort parameter is required, while others are optional.
-# By default, this feature is disabled. It will be enabled if bindPort is greater than 0.
-# sshTunnelGateway.bindPort = 2200
-# sshTunnelGateway.privateKeyFile = "/home/frp-user/.ssh/id_rsa"
-# sshTunnelGateway.autoGenPrivateKeyPath = ""
-# sshTunnelGateway.authorizedKeysFile = "/home/frp-user/.ssh/authorized_keys"
-
-[[httpPlugins]]
-name = "user-manager"
-addr = "127.0.0.1:9000"
-path = "/handler"
-ops = ["Login"]
-
-[[httpPlugins]]
-name = "port-manager"
-addr = "127.0.0.1:9001"
-path = "/handler"
-ops = ["NewProxy"]
\ No newline at end of file
diff --git a/apps/frpc/0.63.0/docker-compose.yml b/apps/frpc/0.63.0/docker-compose.yml
deleted file mode 100644
index 009778d7..00000000
--- a/apps/frpc/0.63.0/docker-compose.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-services:
- frpc:
- container_name: ${CONTAINER_NAME}
- restart: always
- network_mode: "host"
- volumes:
- #- "${CONFIG_FILE_PATH}:/etc/frp/frpc.ini" #截止5.1.3版本使用ini
- - "${CONFIG_FILE_PATH}:/etc/frp/frpc.toml"
- - "${SSL_FOLDER_PATH}:/etc/frp/ssl"
- image: "snowdreamtech/frpc:0.63.0"
- labels:
- createdBy: "Apps"
diff --git a/apps/frpc/README.md b/apps/frpc/README.md
deleted file mode 100644
index 9e035d0e..00000000
--- a/apps/frpc/README.md
+++ /dev/null
@@ -1,1152 +0,0 @@
-
-# frp
-
-[](https://circleci.com/gh/fatedier/frp)
-[](https://github.com/fatedier/frp/releases)
-
-[README](README.md) | [中文文档](README_zh.md)
-
-
-
-
-
-## What is frp?
-
-frp is a fast reverse proxy that allows you to expose a local server located behind a NAT or firewall to the Internet. It currently supports **TCP** and **UDP**, as well as **HTTP** and **HTTPS** protocols, enabling requests to be forwarded to internal services via domain name.
-
-frp also offers a P2P connect mode.
-
-## Table of Contents
-
-
-
-- [frp](#frp)
- - [What is frp?](#what-is-frp)
- - [Table of Contents](#table-of-contents)
- - [Development Status](#development-status)
- - [Architecture](#architecture)
- - [Example Usage](#example-usage)
- - [Access your computer in a LAN network via SSH](#access-your-computer-in-a-lan-network-via-ssh)
- - [Accessing Internal Web Services with Custom Domains in LAN](#accessing-internal-web-services-with-custom-domains-in-lan)
- - [Forward DNS query requests](#forward-dns-query-requests)
- - [Forward Unix Domain Socket](#forward-unix-domain-socket)
- - [Expose a simple HTTP file server](#expose-a-simple-http-file-server)
- - [Enable HTTPS for a local HTTP(S) service](#enable-https-for-a-local-https-service)
- - [Expose your service privately](#expose-your-service-privately)
- - [P2P Mode](#p2p-mode)
- - [Features](#features)
- - [Configuration Files](#configuration-files)
- - [Using Environment Variables](#using-environment-variables)
- - [Split Configures Into Different Files](#split-configures-into-different-files)
- - [Dashboard](#dashboard)
- - [Admin UI](#admin-ui)
- - [Monitor](#monitor)
- - [Prometheus](#prometheus)
- - [Authenticating the Client](#authenticating-the-client)
- - [Token Authentication](#token-authentication)
- - [OIDC Authentication](#oidc-authentication)
- - [Encryption and Compression](#encryption-and-compression)
- - [TLS](#tls)
- - [Hot-Reloading frpc configuration](#hot-reloading-frpc-configuration)
- - [Get proxy status from client](#get-proxy-status-from-client)
- - [Only allowing certain ports on the server](#only-allowing-certain-ports-on-the-server)
- - [Port Reuse](#port-reuse)
- - [Bandwidth Limit](#bandwidth-limit)
- - [For Each Proxy](#for-each-proxy)
- - [TCP Stream Multiplexing](#tcp-stream-multiplexing)
- - [Support KCP Protocol](#support-kcp-protocol)
- - [Support QUIC Protocol](#support-quic-protocol)
- - [Connection Pooling](#connection-pooling)
- - [Load balancing](#load-balancing)
- - [Service Health Check](#service-health-check)
- - [Rewriting the HTTP Host Header](#rewriting-the-http-host-header)
- - [Setting other HTTP Headers](#setting-other-http-headers)
- - [Get Real IP](#get-real-ip)
- - [HTTP X-Forwarded-For](#http-x-forwarded-for)
- - [Proxy Protocol](#proxy-protocol)
- - [Require HTTP Basic Auth (Password) for Web Services](#require-http-basic-auth-password-for-web-services)
- - [Custom Subdomain Names](#custom-subdomain-names)
- - [URL Routing](#url-routing)
- - [TCP Port Multiplexing](#tcp-port-multiplexing)
- - [Connecting to frps via HTTP PROXY](#connecting-to-frps-via-http-proxy)
- - [Range ports mapping](#range-ports-mapping)
- - [Client Plugins](#client-plugins)
- - [Server Manage Plugins](#server-manage-plugins)
- - [Development Plan](#development-plan)
- - [Contributing](#contributing)
- - [Donation](#donation)
- - [GitHub Sponsors](#github-sponsors)
- - [PayPal](#paypal)
-
-
-
-## Development Status
-
-frp is currently under development. You can try the latest release version in the `master` branch, or use the `dev` branch to access the version currently in development.
-
-We are currently working on version 2 and attempting to perform some code refactoring and improvements. However, please note that it will not be compatible with version 1.
-
-We will transition from version 0 to version 1 at the appropriate time and will only accept bug fixes and improvements, rather than big feature requests.
-
-## Architecture
-
-
-
-## Example Usage
-
-To begin, download the latest program for your operating system and architecture from the [Release](https://github.com/fatedier/frp/releases) page.
-
-Next, place the `frps` binary and `frps.ini` configuration file on Server A, which has a public IP address.
-
-Finally, place the `frpc` binary and `frpc.ini` configuration file on Server B, which is located on a LAN that cannot be directly accessed from the public internet.
-
-### Access your computer in a LAN network via SSH
-
-1. Modify `frps.ini` on server A by setting the `bind_port` for frp clients to connect to:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- ```
-
-2. Start `frps` on server A:
-
- `./frps -c ./frps.ini`
-
-3. Modify `frpc.ini` on server B and set the `server_addr` field to the public IP address of your frps server:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [ssh]
- type = tcp
- local_ip = 127.0.0.1
- local_port = 22
- remote_port = 6000
- ```
-
-Note that the `local_port` (listened on the client) and `remote_port` (exposed on the server) are used for traffic going in and out of the frp system, while the `server_port` is used for communication between frps and frpc.
-
-4. Start `frpc` on server B:
-
- `./frpc -c ./frpc.ini`
-
-5. To access server B from another machine through server A via SSH (assuming the username is `test`), use the following command:
-
- `ssh -oPort=6000 test@x.x.x.x`
-
-### Accessing Internal Web Services with Custom Domains in LAN
-
-Sometimes we need to expose a local web service behind a NAT network to others for testing purposes with our own domain name.
-
-Unfortunately, we cannot resolve a domain name to a local IP. However, we can use frp to expose an HTTP(S) service.
-
-1. Modify `frps.ini` and set the HTTP port for vhost to 8080:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- vhost_http_port = 8080
- ```
-
-2. Start `frps`:
-
- `./frps -c ./frps.ini`
-
-3. Modify `frpc.ini` and set `server_addr` to the IP address of the remote frps server. Specify the `local_port` of your web service:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [web]
- type = http
- local_port = 80
- custom_domains = www.example.com
- ```
-
-4. Start `frpc`:
-
- `./frpc -c ./frpc.ini`
-
-5. Map the A record of `www.example.com` to either the public IP of the remote frps server or a CNAME record pointing to your original domain.
-
-6. Visit your local web service using url `http://www.example.com:8080`.
-
-### Forward DNS query requests
-
-1. Modify `frps.ini`:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- ```
-
-2. Start `frps`:
-
- `./frps -c ./frps.ini`
-
-3. Modify `frpc.ini` and set `server_addr` to the IP address of the remote frps server. Forward DNS query requests to the Google Public DNS server `8.8.8.8:53`:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [dns]
- type = udp
- local_ip = 8.8.8.8
- local_port = 53
- remote_port = 6000
- ```
-
-4. Start frpc:
-
- `./frpc -c ./frpc.ini`
-
-5. Test DNS resolution using the `dig` command:
-
- `dig @x.x.x.x -p 6000 www.google.com`
-
-### Forward Unix Domain Socket
-
-Expose a Unix domain socket (e.g. the Docker daemon socket) as TCP.
-
-Configure `frps` as above.
-
-1. Start `frpc` with the following configuration:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [unix_domain_socket]
- type = tcp
- remote_port = 6000
- plugin = unix_domain_socket
- plugin_unix_path = /var/run/docker.sock
- ```
-
-2. Test the configuration by getting the docker version using `curl`:
-
- `curl http://x.x.x.x:6000/version`
-
-### Expose a simple HTTP file server
-
-Expose a simple HTTP file server to access files stored in the LAN from the public Internet.
-
-Configure `frps` as described above, then:
-
-1. Start `frpc` with the following configuration:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [test_static_file]
- type = tcp
- remote_port = 6000
- plugin = static_file
- plugin_local_path = /tmp/files
- plugin_strip_prefix = static
- plugin_http_user = abc
- plugin_http_passwd = abc
- ```
-
-2. Visit `http://x.x.x.x:6000/static/` from your browser and specify correct username and password to view files in `/tmp/files` on the `frpc` machine.
-
-### Enable HTTPS for a local HTTP(S) service
-
-You may substitute `https2https` for the plugin, and point the `plugin_local_addr` to a HTTPS endpoint.
-
-1. Start `frpc` with the following configuration:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [test_https2http]
- type = https
- custom_domains = test.example.com
-
- plugin = https2http
- plugin_local_addr = 127.0.0.1:80
- plugin_crt_path = ./server.crt
- plugin_key_path = ./server.key
- plugin_host_header_rewrite = 127.0.0.1
- plugin_header_X-From-Where = frp
- ```
-
-2. Visit `https://test.example.com`.
-
-### Expose your service privately
-
-To mitigate risks associated with exposing certain services directly to the public network, STCP (Secret TCP) mode requires a preshared key to be used for access to the service from other clients.
-
-Configure `frps` same as above.
-
-1. Start `frpc` on machine B with the following config. This example is for exposing the SSH service (port 22), and note the `sk` field for the preshared key, and that the `remote_port` field is removed here:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [secret_ssh]
- type = stcp
- sk = abcdefg
- local_ip = 127.0.0.1
- local_port = 22
- ```
-
-2. Start another `frpc` (typically on another machine C) with the following config to access the SSH service with a security key (`sk` field):
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [secret_ssh_visitor]
- type = stcp
- role = visitor
- server_name = secret_ssh
- sk = abcdefg
- bind_addr = 127.0.0.1
- bind_port = 6000
- ```
-
-3. On machine C, connect to SSH on machine B, using this command:
-
- `ssh -oPort=6000 127.0.0.1`
-
-### P2P Mode
-
-**xtcp** is designed to transmit large amounts of data directly between clients. A frps server is still needed, as P2P here only refers to the actual data transmission.
-
-Note that it may not work with all types of NAT devices. You might want to fallback to stcp if xtcp doesn't work.
-
-1. In `frps.ini` configure a UDP port for xtcp:
-
- ```ini
- # frps.ini
- bind_udp_port = 7001
- ```
-
-2. Start `frpc` on machine B, and expose the SSH port. Note that the `remote_port` field is removed:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [p2p_ssh]
- type = xtcp
- sk = abcdefg
- local_ip = 127.0.0.1
- local_port = 22
- ```
-
-3. Start another `frpc` (typically on another machine C) with the configuration to connect to SSH using P2P mode:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [p2p_ssh_visitor]
- type = xtcp
- role = visitor
- server_name = p2p_ssh
- sk = abcdefg
- bind_addr = 127.0.0.1
- bind_port = 6000
- ```
-
-4. On machine C, connect to SSH on machine B, using this command:
-
- `ssh -oPort=6000 127.0.0.1`
-
-## Features
-
-### Configuration Files
-
-Read the full example configuration files to find out even more features not described here.
-
-[Full configuration file for frps (Server)](./conf/frps_full.ini)
-
-[Full configuration file for frpc (Client)](./conf/frpc_full.ini)
-
-### Using Environment Variables
-
-Environment variables can be referenced in the configuration file, using Go's standard format:
-
-```ini
-# frpc.ini
-[common]
-server_addr = {{ .Envs.FRP_SERVER_ADDR }}
-server_port = 7000
-
-[ssh]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-remote_port = {{ .Envs.FRP_SSH_REMOTE_PORT }}
-```
-
-With the config above, variables can be passed into `frpc` program like this:
-
-```
-export FRP_SERVER_ADDR="x.x.x.x"
-export FRP_SSH_REMOTE_PORT="6000"
-./frpc -c ./frpc.ini
-```
-
-`frpc` will render configuration file template using OS environment variables. Remember to prefix your reference with `.Envs`.
-
-### Split Configures Into Different Files
-
-You can split multiple proxy configs into different files and include them in the main file.
-
-```ini
-# frpc.ini
-[common]
-server_addr = x.x.x.x
-server_port = 7000
-includes=./confd/*.ini
-```
-
-```ini
-# ./confd/test.ini
-[ssh]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-remote_port = 6000
-```
-
-### Dashboard
-
-Check frp's status and proxies' statistics information by Dashboard.
-
-Configure a port for dashboard to enable this feature:
-
-```ini
-[common]
-dashboard_port = 7500
-# dashboard's username and password are both optional
-dashboard_user = admin
-dashboard_pwd = admin
-```
-
-Then visit `http://[server_addr]:7500` to see the dashboard, with username and password both being `admin`.
-
-Additionally, you can use HTTPS port by using your domains wildcard or normal SSL certificate:
-
-```ini
-[common]
-dashboard_port = 7500
-# dashboard's username and password are both optional
-dashboard_user = admin
-dashboard_pwd = admin
-dashboard_tls_mode = true
-dashboard_tls_cert_file = server.crt
-dashboard_tls_key_file = server.key
-```
-
-Then visit `https://[server_addr]:7500` to see the dashboard in secure HTTPS connection, with username and password both being `admin`.
-
-
-
-### Admin UI
-
-The Admin UI helps you check and manage frpc's configuration.
-
-Configure an address for admin UI to enable this feature:
-
-```ini
-[common]
-admin_addr = 127.0.0.1
-admin_port = 7400
-admin_user = admin
-admin_pwd = admin
-```
-
-Then visit `http://127.0.0.1:7400` to see admin UI, with username and password both being `admin`.
-
-### Monitor
-
-When dashboard is enabled, frps will save monitor data in cache. It will be cleared after process restart.
-
-Prometheus is also supported.
-
-#### Prometheus
-
-Enable dashboard first, then configure `enable_prometheus = true` in `frps.ini`.
-
-`http://{dashboard_addr}/metrics` will provide prometheus monitor data.
-
-### Authenticating the Client
-
-There are 2 authentication methods to authenticate frpc with frps.
-
-You can decide which one to use by configuring `authentication_method` under `[common]` in `frpc.ini` and `frps.ini`.
-
-Configuring `authenticate_heartbeats = true` under `[common]` will use the configured authentication method to add and validate authentication on every heartbeat between frpc and frps.
-
-Configuring `authenticate_new_work_conns = true` under `[common]` will do the same for every new work connection between frpc and frps.
-
-#### Token Authentication
-
-When specifying `authentication_method = token` under `[common]` in `frpc.ini` and `frps.ini` - token based authentication will be used.
-
-Make sure to specify the same `token` in the `[common]` section in `frps.ini` and `frpc.ini` for frpc to pass frps validation
-
-#### OIDC Authentication
-
-When specifying `authentication_method = oidc` under `[common]` in `frpc.ini` and `frps.ini` - OIDC based authentication will be used.
-
-OIDC stands for OpenID Connect, and the flow used is called [Client Credentials Grant](https://tools.ietf.org/html/rfc6749#section-4.4).
-
-To use this authentication type - configure `frpc.ini` and `frps.ini` as follows:
-
-```ini
-# frps.ini
-[common]
-authentication_method = oidc
-oidc_issuer = https://example-oidc-issuer.com/
-oidc_audience = https://oidc-audience.com/.default
-```
-
-```ini
-# frpc.ini
-[common]
-authentication_method = oidc
-oidc_client_id = 98692467-37de-409a-9fac-bb2585826f18 # Replace with OIDC client ID
-oidc_client_secret = oidc_secret
-oidc_audience = https://oidc-audience.com/.default
-oidc_token_endpoint_url = https://example-oidc-endpoint.com/oauth2/v2.0/token
-```
-
-### Encryption and Compression
-
-The features are off by default. You can turn on encryption and/or compression:
-
-```ini
-# frpc.ini
-[ssh]
-type = tcp
-local_port = 22
-remote_port = 6000
-use_encryption = true
-use_compression = true
-```
-
-#### TLS
-
-frp supports the TLS protocol between `frpc` and `frps` since v0.25.0.
-
-For port multiplexing, frp sends a first byte `0x17` to dial a TLS connection.
-
-Configure `tls_enable = true` in the `[common]` section to `frpc.ini` to enable this feature.
-
-To **enforce** `frps` to only accept TLS connections - configure `tls_only = true` in the `[common]` section in `frps.ini`. **This is optional.**
-
-**`frpc` TLS settings (under the `[common]` section):**
-```ini
-tls_enable = true
-tls_cert_file = certificate.crt
-tls_key_file = certificate.key
-tls_trusted_ca_file = ca.crt
-```
-
-**`frps` TLS settings (under the `[common]` section):**
-```ini
-tls_only = true
-tls_enable = true
-tls_cert_file = certificate.crt
-tls_key_file = certificate.key
-tls_trusted_ca_file = ca.crt
-```
-
-You will need **a root CA cert** and **at least one SSL/TLS certificate**. It **can** be self-signed or regular (such as Let's Encrypt or another SSL/TLS certificate provider).
-
-If you using `frp` via IP address and not hostname, make sure to set the appropriate IP address in the Subject Alternative Name (SAN) area when generating SSL/TLS Certificates.
-
-Given an example:
-
-* Prepare openssl config file. It exists at `/etc/pki/tls/openssl.cnf` in Linux System and `/System/Library/OpenSSL/openssl.cnf` in MacOS, and you can copy it to current path, like `cp /etc/pki/tls/openssl.cnf ./my-openssl.cnf`. If not, you can build it by yourself, like:
-```
-cat > my-openssl.cnf << EOF
-[ ca ]
-default_ca = CA_default
-[ CA_default ]
-x509_extensions = usr_cert
-[ req ]
-default_bits = 2048
-default_md = sha256
-default_keyfile = privkey.pem
-distinguished_name = req_distinguished_name
-attributes = req_attributes
-x509_extensions = v3_ca
-string_mask = utf8only
-[ req_distinguished_name ]
-[ req_attributes ]
-[ usr_cert ]
-basicConstraints = CA:FALSE
-nsComment = "OpenSSL Generated Certificate"
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer
-[ v3_ca ]
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer
-basicConstraints = CA:true
-EOF
-```
-
-* build ca certificates:
-```
-openssl genrsa -out ca.key 2048
-openssl req -x509 -new -nodes -key ca.key -subj "/CN=example.ca.com" -days 5000 -out ca.crt
-```
-
-* build frps certificates:
-```
-openssl genrsa -out server.key 2048
-
-openssl req -new -sha256 -key server.key \
- -subj "/C=XX/ST=DEFAULT/L=DEFAULT/O=DEFAULT/CN=server.com" \
- -reqexts SAN \
- -config <(cat my-openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:localhost,IP:127.0.0.1,DNS:example.server.com")) \
- -out server.csr
-
-openssl x509 -req -days 365 -sha256 \
- -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
- -extfile <(printf "subjectAltName=DNS:localhost,IP:127.0.0.1,DNS:example.server.com") \
- -out server.crt
-```
-
-* build frpc certificates:
-```
-openssl genrsa -out client.key 2048
-openssl req -new -sha256 -key client.key \
- -subj "/C=XX/ST=DEFAULT/L=DEFAULT/O=DEFAULT/CN=client.com" \
- -reqexts SAN \
- -config <(cat my-openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:client.com,DNS:example.client.com")) \
- -out client.csr
-
-openssl x509 -req -days 365 -sha256 \
- -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
- -extfile <(printf "subjectAltName=DNS:client.com,DNS:example.client.com") \
- -out client.crt
-```
-
-### Hot-Reloading frpc configuration
-
-The `admin_addr` and `admin_port` fields are required for enabling HTTP API:
-
-```ini
-# frpc.ini
-[common]
-admin_addr = 127.0.0.1
-admin_port = 7400
-```
-
-Then run command `frpc reload -c ./frpc.ini` and wait for about 10 seconds to let `frpc` create or update or remove proxies.
-
-**Note that parameters in [common] section won't be modified except 'start'.**
-
-You can run command `frpc verify -c ./frpc.ini` before reloading to check if there are config errors.
-
-### Get proxy status from client
-
-Use `frpc status -c ./frpc.ini` to get status of all proxies. The `admin_addr` and `admin_port` fields are required for enabling HTTP API.
-
-### Only allowing certain ports on the server
-
-`allow_ports` in `frps.ini` is used to avoid abuse of ports:
-
-```ini
-# frps.ini
-[common]
-allow_ports = 2000-3000,3001,3003,4000-50000
-```
-
-`allow_ports` consists of specific ports or port ranges (lowest port number, dash `-`, highest port number), separated by comma `,`.
-
-### Port Reuse
-
-`vhost_http_port` and `vhost_https_port` in frps can use same port with `bind_port`. frps will detect the connection's protocol and handle it correspondingly.
-
-We would like to try to allow multiple proxies bind a same remote port with different protocols in the future.
-
-### Bandwidth Limit
-
-#### For Each Proxy
-
-```ini
-# frpc.ini
-[ssh]
-type = tcp
-local_port = 22
-remote_port = 6000
-bandwidth_limit = 1MB
-```
-
-Set `bandwidth_limit` in each proxy's configure to enable this feature. Supported units are `MB` and `KB`.
-
-Set `bandwidth_limit_mode` to `client` or `server` to limit bandwidth on the client or server side. Default is `client`.
-
-### TCP Stream Multiplexing
-
-frp supports tcp stream multiplexing since v0.10.0 like HTTP2 Multiplexing, in which case all logic connections to the same frpc are multiplexed into the same TCP connection.
-
-You can disable this feature by modify `frps.ini` and `frpc.ini`:
-
-```ini
-# frps.ini and frpc.ini, must be same
-[common]
-tcp_mux = false
-```
-
-### Support KCP Protocol
-
-KCP is a fast and reliable protocol that can achieve the transmission effect of a reduction of the average latency by 30% to 40% and reduction of the maximum delay by a factor of three, at the cost of 10% to 20% more bandwidth wasted than TCP.
-
-KCP mode uses UDP as the underlying transport. Using KCP in frp:
-
-1. Enable KCP in frps:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- # Specify a UDP port for KCP.
- kcp_bind_port = 7000
- ```
-
- The `kcp_bind_port` number can be the same number as `bind_port`, since `bind_port` field specifies a TCP port.
-
-2. Configure `frpc.ini` to use KCP to connect to frps:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- # Same as the 'kcp_bind_port' in frps.ini
- server_port = 7000
- protocol = kcp
- ```
-
-### Support QUIC Protocol
-
-QUIC is a new multiplexed transport built on top of UDP.
-
-Using QUIC in frp:
-
-1. Enable QUIC in frps:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- # Specify a UDP port for QUIC.
- quic_bind_port = 7000
- ```
-
- The `quic_bind_port` number can be the same number as `bind_port`, since `bind_port` field specifies a TCP port.
-
-2. Configure `frpc.ini` to use QUIC to connect to frps:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- # Same as the 'quic_bind_port' in frps.ini
- server_port = 7000
- protocol = quic
- ```
-
-### Connection Pooling
-
-By default, frps creates a new frpc connection to the backend service upon a user request. With connection pooling, frps keeps a certain number of pre-established connections, reducing the time needed to establish a connection.
-
-This feature is suitable for a large number of short connections.
-
-1. Configure the limit of pool count each proxy can use in `frps.ini`:
-
- ```ini
- # frps.ini
- [common]
- max_pool_count = 5
- ```
-
-2. Enable and specify the number of connection pool:
-
- ```ini
- # frpc.ini
- [common]
- pool_count = 1
- ```
-
-### Load balancing
-
-Load balancing is supported by `group`.
-
-This feature is only available for types `tcp`, `http`, `tcpmux` now.
-
-```ini
-# frpc.ini
-[test1]
-type = tcp
-local_port = 8080
-remote_port = 80
-group = web
-group_key = 123
-
-[test2]
-type = tcp
-local_port = 8081
-remote_port = 80
-group = web
-group_key = 123
-```
-
-`group_key` is used for authentication.
-
-Connections to port 80 will be dispatched to proxies in the same group randomly.
-
-For type `tcp`, `remote_port` in the same group should be the same.
-
-For type `http`, `custom_domains`, `subdomain`, `locations` should be the same.
-
-### Service Health Check
-
-Health check feature can help you achieve high availability with load balancing.
-
-Add `health_check_type = tcp` or `health_check_type = http` to enable health check.
-
-With health check type **tcp**, the service port will be pinged (TCPing):
-
-```ini
-# frpc.ini
-[test1]
-type = tcp
-local_port = 22
-remote_port = 6000
-# Enable TCP health check
-health_check_type = tcp
-# TCPing timeout seconds
-health_check_timeout_s = 3
-# If health check failed 3 times in a row, the proxy will be removed from frps
-health_check_max_failed = 3
-# A health check every 10 seconds
-health_check_interval_s = 10
-```
-
-With health check type **http**, an HTTP request will be sent to the service and an HTTP 2xx OK response is expected:
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_ip = 127.0.0.1
-local_port = 80
-custom_domains = test.example.com
-# Enable HTTP health check
-health_check_type = http
-# frpc will send a GET request to '/status'
-# and expect an HTTP 2xx OK response
-health_check_url = /status
-health_check_timeout_s = 3
-health_check_max_failed = 3
-health_check_interval_s = 10
-```
-
-### Rewriting the HTTP Host Header
-
-By default frp does not modify the tunneled HTTP requests at all as it's a byte-for-byte copy.
-
-However, speaking of web servers and HTTP requests, your web server might rely on the `Host` HTTP header to determine the website to be accessed. frp can rewrite the `Host` header when forwarding the HTTP requests, with the `host_header_rewrite` field:
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_port = 80
-custom_domains = test.example.com
-host_header_rewrite = dev.example.com
-```
-
-The HTTP request will have the `Host` header rewritten to `Host: dev.example.com` when it reaches the actual web server, although the request from the browser probably has `Host: test.example.com`.
-
-### Setting other HTTP Headers
-
-Similar to `Host`, You can override other HTTP request headers with proxy type `http`.
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_port = 80
-custom_domains = test.example.com
-host_header_rewrite = dev.example.com
-header_X-From-Where = frp
-```
-
-Note that parameter(s) prefixed with `header_` will be added to HTTP request headers.
-
-In this example, it will set header `X-From-Where: frp` in the HTTP request.
-
-### Get Real IP
-
-#### HTTP X-Forwarded-For
-
-This feature is for http proxy only.
-
-You can get user's real IP from HTTP request headers `X-Forwarded-For`.
-
-#### Proxy Protocol
-
-frp supports Proxy Protocol to send user's real IP to local services. It support all types except UDP.
-
-Here is an example for https service:
-
-```ini
-# frpc.ini
-[web]
-type = https
-local_port = 443
-custom_domains = test.example.com
-
-# now v1 and v2 are supported
-proxy_protocol_version = v2
-```
-
-You can enable Proxy Protocol support in nginx to expose user's real IP in HTTP header `X-Real-IP`, and then read `X-Real-IP` header in your web service for the real IP.
-
-### Require HTTP Basic Auth (Password) for Web Services
-
-Anyone who can guess your tunnel URL can access your local web server unless you protect it with a password.
-
-This enforces HTTP Basic Auth on all requests with the username and password specified in frpc's configure file.
-
-It can only be enabled when proxy type is http.
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_port = 80
-custom_domains = test.example.com
-http_user = abc
-http_pwd = abc
-```
-
-Visit `http://test.example.com` in the browser and now you are prompted to enter the username and password.
-
-### Custom Subdomain Names
-
-It is convenient to use `subdomain` configure for http and https types when many people share one frps server.
-
-```ini
-# frps.ini
-subdomain_host = frps.com
-```
-
-Resolve `*.frps.com` to the frps server's IP. This is usually called a Wildcard DNS record.
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_port = 80
-subdomain = test
-```
-
-Now you can visit your web service on `test.frps.com`.
-
-Note that if `subdomain_host` is not empty, `custom_domains` should not be the subdomain of `subdomain_host`.
-
-### URL Routing
-
-frp supports forwarding HTTP requests to different backend web services by url routing.
-
-`locations` specifies the prefix of URL used for routing. frps first searches for the most specific prefix location given by literal strings regardless of the listed order.
-
-```ini
-# frpc.ini
-[web01]
-type = http
-local_port = 80
-custom_domains = web.example.com
-locations = /
-
-[web02]
-type = http
-local_port = 81
-custom_domains = web.example.com
-locations = /news,/about
-```
-
-HTTP requests with URL prefix `/news` or `/about` will be forwarded to **web02** and other requests to **web01**.
-
-### TCP Port Multiplexing
-
-frp supports receiving TCP sockets directed to different proxies on a single port on frps, similar to `vhost_http_port` and `vhost_https_port`.
-
-The only supported TCP port multiplexing method available at the moment is `httpconnect` - HTTP CONNECT tunnel.
-
-When setting `tcpmux_httpconnect_port` to anything other than 0 in frps under `[common]`, frps will listen on this port for HTTP CONNECT requests.
-
-The host of the HTTP CONNECT request will be used to match the proxy in frps. Proxy hosts can be configured in frpc by configuring `custom_domain` and / or `subdomain` under `type = tcpmux` proxies, when `multiplexer = httpconnect`.
-
-For example:
-
-```ini
-# frps.ini
-[common]
-bind_port = 7000
-tcpmux_httpconnect_port = 1337
-```
-
-```ini
-# frpc.ini
-[common]
-server_addr = x.x.x.x
-server_port = 7000
-
-[proxy1]
-type = tcpmux
-multiplexer = httpconnect
-custom_domains = test1
-local_port = 80
-
-[proxy2]
-type = tcpmux
-multiplexer = httpconnect
-custom_domains = test2
-local_port = 8080
-```
-
-In the above configuration - frps can be contacted on port 1337 with a HTTP CONNECT header such as:
-
-```
-CONNECT test1 HTTP/1.1\r\n\r\n
-```
-and the connection will be routed to `proxy1`.
-
-### Connecting to frps via HTTP PROXY
-
-frpc can connect to frps using HTTP proxy if you set OS environment variable `HTTP_PROXY`, or if `http_proxy` is set in frpc.ini file.
-
-It only works when protocol is tcp.
-
-```ini
-# frpc.ini
-[common]
-server_addr = x.x.x.x
-server_port = 7000
-http_proxy = http://user:pwd@192.168.1.128:8080
-```
-
-### Range ports mapping
-
-Proxy with names that start with `range:` will support mapping range ports.
-
-```ini
-# frpc.ini
-[range:test_tcp]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 6000-6006,6007
-remote_port = 6000-6006,6007
-```
-
-frpc will generate 8 proxies like `test_tcp_0`, `test_tcp_1`, ..., `test_tcp_7`.
-
-### Client Plugins
-
-frpc only forwards requests to local TCP or UDP ports by default.
-
-Plugins are used for providing rich features. There are built-in plugins such as `unix_domain_socket`, `http_proxy`, `socks5`, `static_file`, `http2https`, `https2http`, `https2https` and you can see [example usage](#example-usage).
-
-Specify which plugin to use with the `plugin` parameter. Configuration parameters of plugin should be started with `plugin_`. `local_ip` and `local_port` are not used for plugin.
-
-Using plugin **http_proxy**:
-
-```ini
-# frpc.ini
-[http_proxy]
-type = tcp
-remote_port = 6000
-plugin = http_proxy
-plugin_http_user = abc
-plugin_http_passwd = abc
-```
-
-`plugin_http_user` and `plugin_http_passwd` are configuration parameters used in `http_proxy` plugin.
-
-### Server Manage Plugins
-
-Read the [document](/doc/server_plugin.md).
-
-Find more plugins in [gofrp/plugin](https://github.com/gofrp/plugin).
-
-## Development Plan
-
-* Log HTTP request information in frps.
-
-## Contributing
-
-Interested in getting involved? We would like to help you!
-
-* Take a look at our [issues list](https://github.com/fatedier/frp/issues) and consider sending a Pull Request to **dev branch**.
-* If you want to add a new feature, please create an issue first to describe the new feature, as well as the implementation approach. Once a proposal is accepted, create an implementation of the new features and submit it as a pull request.
-* Sorry for my poor English. Improvements for this document are welcome, even some typo fixes.
-* If you have great ideas, send an email to fatedier@gmail.com.
-
-**Note: We prefer you to give your advise in [issues](https://github.com/fatedier/frp/issues), so others with a same question can search it quickly and we don't need to answer them repeatedly.**
-
-## Donation
-
-If frp helps you a lot, you can support us by:
-
-### GitHub Sponsors
-
-Support us by [Github Sponsors](https://github.com/sponsors/fatedier).
-
-You can have your company's logo placed on README file of this project.
-
-### PayPal
-
-Donate money by [PayPal](https://www.paypal.me/fatedier) to my account **fatedier@gmail.com**.
-
diff --git a/apps/frpc/data.yml b/apps/frpc/data.yml
deleted file mode 100644
index a462f052..00000000
--- a/apps/frpc/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: frpc-frp 客户端
-tags:
- - 工具
-title: frp 是一种反向代理工具,常用于内网穿透(客户端)
-description: frp 是一种反向代理工具,常用于内网穿透(客户端)
-additionalProperties:
- key: frpc
- name: frpc-frp 客户端
- tags:
- - Tool
- shortDescZh: frp 是一种反向代理工具,常用于内网穿透(客户端)
- shortDescEn: frp is a reverse proxy tool that is commonly used for intranet penetration(Client)
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://github.com/fatedier/frp
- github: https://github.com/fatedier/frp
- document: https://github.com/fatedier/frp/blob/dev/README_zh.md
diff --git a/apps/frpc/latest/.env.sample b/apps/frpc/latest/.env.sample
deleted file mode 100644
index 984ecd93..00000000
--- a/apps/frpc/latest/.env.sample
+++ /dev/null
@@ -1 +0,0 @@
-CONTAINER_NAME="frpc"
\ No newline at end of file
diff --git a/apps/frpc/latest/data.yml b/apps/frpc/latest/data.yml
deleted file mode 100644
index ade86cdd..00000000
--- a/apps/frpc/latest/data.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-additionalProperties:
- formFields:
- - default: ./data/frpc.toml
- edit: true
- envKey: CONFIG_FILE_PATH
- labelEn: Configuration file path
- labelZh: 配置文件路径
- required: true
- type: text
- - default: 6000
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port (determined by the configuration file)
- labelZh: 端口 (由配置文件决定)
- required: true
- type: number
- - default: ./data/ssl
- edit: true
- envKey: SSL_FOLDER_PATH
- labelEn: Certificate folder path (corresponding to "/etc/frp/ssl" in container)
- labelZh: 证书文件夹路径 (对应容器内 "/etc/frp/ssl")
- required: true
- type: text
diff --git a/apps/frpc/latest/data/frpc.ini b/apps/frpc/latest/data/frpc.ini
deleted file mode 100644
index 13a8e5f6..00000000
--- a/apps/frpc/latest/data/frpc.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[common]
-server_addr = 127.0.0.1
-server_port = 7000
-
-[ssh]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-remote_port = 6000
diff --git a/apps/frpc/latest/data/frpc.toml b/apps/frpc/latest/data/frpc.toml
deleted file mode 100644
index 9e64a124..00000000
--- a/apps/frpc/latest/data/frpc.toml
+++ /dev/null
@@ -1,42 +0,0 @@
-# common
-serverAddr = "1.2.3.4"
-serverPort = 7000
-auth.method = "token"
-auth.token = "token123456"
-# supports tcp, kcp, quic, websocket and wss now, default is tcp
-transport.protocol = "tcp"
-
-# dashboard
-webServer.addr = "127.0.0.1"
-webServer.port = 6000
-webServer.user = "admin"
-webServer.password = "password123456"
-webServer.pprofEnable = false
-
-# setting
-loginFailExit = false
-transport.tcpMux = false
-transport.tls.enable = false
-# transport.tls.certFile = "client.crt"
-# transport.tls.keyFile = "client.key"
-# transport.tls.trustedCaFile = "ca.crt"
-# transport.tls.serverName = "example.com"
-
-# tls
-#transport.tls.certFile = "/etc/frp/ssl/client.crt"
-#transport.tls.keyFile = "/etc/frp/ssl/client.key"
-#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt"
-
-[[proxies]]
-name = "rdp_tcp"
-type = "tcp"
-localIP = "127.0.0.1"
-localPort = 3389
-remotePort = 13389
-
-[[proxies]]
-name = "rdp_udp"
-type = "udp"
-localIP = "127.0.0.1"
-localPort = 3389
-remotePort = 13389
\ No newline at end of file
diff --git a/apps/frpc/latest/data/frpc_full.ini b/apps/frpc/latest/data/frpc_full.ini
deleted file mode 100644
index 29f6bcab..00000000
--- a/apps/frpc/latest/data/frpc_full.ini
+++ /dev/null
@@ -1,365 +0,0 @@
-# [common] is integral section
-[common]
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single "server_addr" field, no need square brackets, like "server_addr = ::".
-server_addr = 0.0.0.0
-server_port = 7000
-
-# The maximum amount of time a dial to server will wait for a connect to complete. Default value is 10 seconds.
-# dial_server_timeout = 10
-
-# dial_server_keepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# dial_server_keepalive = 7200
-
-# if you want to connect frps by http proxy or socks5 proxy or ntlm proxy, you can set http_proxy here or in global environment variables
-# it only works when protocol is tcp
-# http_proxy = http://user:passwd@192.168.1.128:8080
-# http_proxy = socks5://user:passwd@192.168.1.128:1080
-# http_proxy = ntlm://user:passwd@192.168.1.128:2080
-
-# console or real logFile path like ./frpc.log
-log_file = ./frpc.log
-
-# trace, debug, info, warn, error
-log_level = info
-
-log_max_days = 3
-
-# disable log colors when log_file is console, default is false
-disable_log_color = false
-
-# for authentication, should be same as your frps.ini
-# authenticate_heartbeats specifies whether to include authentication token in heartbeats sent to frps. By default, this value is false.
-authenticate_heartbeats = false
-
-# authenticate_new_work_conns specifies whether to include authentication token in new work connections sent to frps. By default, this value is false.
-authenticate_new_work_conns = false
-
-# auth token
-token = 12345678
-
-authentication_method =
-
-# oidc_client_id specifies the client ID to use to get a token in OIDC authentication if AuthenticationMethod == "oidc".
-# By default, this value is "".
-oidc_client_id =
-
-# oidc_client_secret specifies the client secret to use to get a token in OIDC authentication if AuthenticationMethod == "oidc".
-# By default, this value is "".
-oidc_client_secret =
-
-# oidc_audience specifies the audience of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "".
-oidc_audience =
-
-# oidc_scope specifies the permisssions of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "".
-oidc_scope =
-
-# oidc_token_endpoint_url specifies the URL which implements OIDC Token Endpoint.
-# It will be used to get an OIDC token if AuthenticationMethod == "oidc". By default, this value is "".
-oidc_token_endpoint_url =
-
-# oidc_additional_xxx specifies additional parameters to be sent to the OIDC Token Endpoint.
-# For example, if you want to specify the "audience" parameter, you can set as follow.
-# frp will add "audience=" "var1=" to the additional parameters.
-# oidc_additional_audience = https://dev.auth.com/api/v2/
-# oidc_additional_var1 = foobar
-
-# set admin address for control frpc's action by http api such as reload
-admin_addr = 127.0.0.1
-admin_port = 7400
-admin_user = admin
-admin_pwd = admin
-# Admin assets directory. By default, these assets are bundled with frpc.
-# assets_dir = ./static
-
-# connections will be established in advance, default value is zero
-pool_count = 5
-
-# if tcp stream multiplexing is used, default is true, it must be same with frps
-# tcp_mux = true
-
-# specify keep alive interval for tcp mux.
-# only valid if tcp_mux is true.
-# tcp_mux_keepalive_interval = 60
-
-# your proxy name will be changed to {user}.{proxy}
-user = your_name
-
-# decide if exit program when first login failed, otherwise continuous relogin to frps
-# default is true
-login_fail_exit = true
-
-# communication protocol used to connect to server
-# supports tcp, kcp, quic and websocket now, default is tcp
-protocol = tcp
-
-# set client binding ip when connect server, default is empty.
-# only when protocol = tcp or websocket, the value will be used.
-connect_server_local_ip = 0.0.0.0
-
-# quic protocol options
-# quic_keepalive_period = 10
-# quic_max_idle_timeout = 30
-# quic_max_incoming_streams = 100000
-
-# if tls_enable is true, frpc will connect frps by tls
-tls_enable = true
-
-# tls_cert_file = client.crt
-# tls_key_file = client.key
-# tls_trusted_ca_file = ca.crt
-# tls_server_name = example.com
-
-# specify a dns server, so frpc will use this instead of default one
-# dns_server = 8.8.8.8
-
-# proxy names you want to start separated by ','
-# default is empty, means all proxies
-# start = ssh,dns
-
-# heartbeat configure, it's not recommended to modify the default value
-# The default value of heartbeat_interval is 10 and heartbeat_timeout is 90. Set negative value
-# to disable it.
-# heartbeat_interval = 30
-# heartbeat_timeout = 90
-
-# additional meta info for client
-meta_var1 = 123
-meta_var2 = 234
-
-# specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udp_packet_size = 1500
-
-# include other config files for proxies.
-# includes = ./confd/*.ini
-
-# By default, frpc will connect frps with first custom byte if tls is enabled.
-# If DisableCustomTLSFirstByte is true, frpc will not send that custom byte.
-disable_custom_tls_first_byte = false
-
-# Enable golang pprof handlers in admin listener.
-# Admin port must be set first.
-pprof_enable = false
-
-# 'ssh' is the unique proxy name
-# if user in [common] section is not empty, it will be changed to {user}.{proxy} such as 'your_name.ssh'
-[ssh]
-# tcp | udp | http | https | stcp | xtcp, default is tcp
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-# limit bandwidth for this proxy, unit is KB and MB
-bandwidth_limit = 1MB
-# where to limit bandwidth, can be 'client' or 'server', default is 'client'
-bandwidth_limit_mode = client
-# true or false, if true, messages between frps and frpc will be encrypted, default is false
-use_encryption = false
-# if true, message will be compressed
-use_compression = false
-# remote port listen by frps
-remote_port = 6001
-# frps will load balancing connections for proxies in same group
-group = test_group
-# group should have same group key
-group_key = 123456
-# enable health check for the backend service, it support 'tcp' and 'http' now
-# frpc will connect local service's port to detect it's healthy status
-health_check_type = tcp
-# health check connection timeout
-health_check_timeout_s = 3
-# if continuous failed in 3 times, the proxy will be removed from frps
-health_check_max_failed = 3
-# every 10 seconds will do a health check
-health_check_interval_s = 10
-# additional meta info for each proxy
-meta_var1 = 123
-meta_var2 = 234
-
-[ssh_random]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-# if remote_port is 0, frps will assign a random port for you
-remote_port = 0
-
-# if you want to expose multiple ports, add 'range:' prefix to the section name
-# frpc will generate multiple proxies such as 'tcp_port_6010', 'tcp_port_6011' and so on.
-[range:tcp_port]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 6010-6020,6022,6024-6028
-remote_port = 6010-6020,6022,6024-6028
-use_encryption = false
-use_compression = false
-
-[dns]
-type = udp
-local_ip = 114.114.114.114
-local_port = 53
-remote_port = 6002
-use_encryption = false
-use_compression = false
-
-[range:udp_port]
-type = udp
-local_ip = 127.0.0.1
-local_port = 6010-6020
-remote_port = 6010-6020
-use_encryption = false
-use_compression = false
-
-# Resolve your domain names to [server_addr] so you can use http://web01.yourdomain.com to browse web01 and http://web02.yourdomain.com to browse web02
-[web01]
-type = http
-local_ip = 127.0.0.1
-local_port = 80
-use_encryption = false
-use_compression = true
-# http username and password are safety certification for http protocol
-# if not set, you can access this custom_domains without certification
-http_user = admin
-http_pwd = admin
-# if domain for frps is frps.com, then you can access [web01] proxy by URL http://web01.frps.com
-subdomain = web01
-custom_domains = web01.yourdomain.com
-# locations is only available for http type
-locations = /,/pic
-# route requests to this service if http basic auto user is abc
-# route_by_http_user = abc
-host_header_rewrite = example.com
-# params with prefix "header_" will be used to update http request headers
-header_X-From-Where = frp
-health_check_type = http
-# frpc will send a GET http request '/status' to local http service
-# http service is alive when it return 2xx http response code
-health_check_url = /status
-health_check_interval_s = 10
-health_check_max_failed = 3
-health_check_timeout_s = 3
-
-[web02]
-type = https
-local_ip = 127.0.0.1
-local_port = 8000
-use_encryption = false
-use_compression = false
-subdomain = web01
-custom_domains = web02.yourdomain.com
-# if not empty, frpc will use proxy protocol to transfer connection info to your local service
-# v1 or v2 or empty
-proxy_protocol_version = v2
-
-[plugin_unix_domain_socket]
-type = tcp
-remote_port = 6003
-# if plugin is defined, local_ip and local_port is useless
-# plugin will handle connections got from frps
-plugin = unix_domain_socket
-# params with prefix "plugin_" that plugin needed
-plugin_unix_path = /var/run/docker.sock
-
-[plugin_http_proxy]
-type = tcp
-remote_port = 6004
-plugin = http_proxy
-plugin_http_user = abc
-plugin_http_passwd = abc
-
-[plugin_socks5]
-type = tcp
-remote_port = 6005
-plugin = socks5
-plugin_user = abc
-plugin_passwd = abc
-
-[plugin_static_file]
-type = tcp
-remote_port = 6006
-plugin = static_file
-plugin_local_path = /var/www/blog
-plugin_strip_prefix = static
-plugin_http_user = abc
-plugin_http_passwd = abc
-
-[plugin_https2http]
-type = https
-custom_domains = test.yourdomain.com
-plugin = https2http
-plugin_local_addr = 127.0.0.1:80
-plugin_crt_path = ./server.crt
-plugin_key_path = ./server.key
-plugin_host_header_rewrite = 127.0.0.1
-plugin_header_X-From-Where = frp
-
-[plugin_https2https]
-type = https
-custom_domains = test.yourdomain.com
-plugin = https2https
-plugin_local_addr = 127.0.0.1:443
-plugin_crt_path = ./server.crt
-plugin_key_path = ./server.key
-plugin_host_header_rewrite = 127.0.0.1
-plugin_header_X-From-Where = frp
-
-[plugin_http2https]
-type = http
-custom_domains = test.yourdomain.com
-plugin = http2https
-plugin_local_addr = 127.0.0.1:443
-plugin_host_header_rewrite = 127.0.0.1
-plugin_header_X-From-Where = frp
-
-[secret_tcp]
-# If the type is secret tcp, remote_port is useless
-# Who want to connect local port should deploy another frpc with stcp proxy and role is visitor
-type = stcp
-# sk used for authentication for visitors
-sk = abcdefg
-local_ip = 127.0.0.1
-local_port = 22
-use_encryption = false
-use_compression = false
-
-# user of frpc should be same in both stcp server and stcp visitor
-[secret_tcp_visitor]
-# frpc role visitor -> frps -> frpc role server
-role = visitor
-type = stcp
-# the server name you want to visitor
-server_name = secret_tcp
-sk = abcdefg
-# connect this address to visitor stcp server
-bind_addr = 127.0.0.1
-bind_port = 9000
-use_encryption = false
-use_compression = false
-
-[p2p_tcp]
-type = xtcp
-sk = abcdefg
-local_ip = 127.0.0.1
-local_port = 22
-use_encryption = false
-use_compression = false
-
-[p2p_tcp_visitor]
-role = visitor
-type = xtcp
-server_name = p2p_tcp
-sk = abcdefg
-bind_addr = 127.0.0.1
-bind_port = 9001
-use_encryption = false
-use_compression = false
-
-[tcpmuxhttpconnect]
-type = tcpmux
-multiplexer = httpconnect
-local_ip = 127.0.0.1
-local_port = 10701
-custom_domains = tunnel1
-# route_by_http_user = user1
diff --git a/apps/frpc/latest/data/frpc_full.toml b/apps/frpc/latest/data/frpc_full.toml
deleted file mode 100644
index 67fd84ec..00000000
--- a/apps/frpc/latest/data/frpc_full.toml
+++ /dev/null
@@ -1,366 +0,0 @@
-# This configuration file is for reference only. Please do not use this configuration directly to run the program as it may have various issues.
-
-# your proxy name will be changed to {user}.{proxy}
-user = "your_name"
-
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single serverAddr field, no need square brackets, like serverAddr = "::".
-serverAddr = "0.0.0.0"
-serverPort = 7000
-
-# STUN server to help penetrate NAT hole.
-# natHoleStunServer = "stun.easyvoip.com:3478"
-
-# Decide if exit program when first login failed, otherwise continuous relogin to frps
-# default is true
-loginFailExit = true
-
-# console or real logFile path like ./frpc.log
-log.to = "./frpc.log"
-# trace, debug, info, warn, error
-log.level = "info"
-log.maxDays = 3
-# disable log colors when log.to is console, default is false
-log.disablePrintColor = false
-
-auth.method = "token"
-# auth.additionalScopes specifies additional scopes to include authentication information.
-# Optional values are HeartBeats, NewWorkConns.
-# auth.additionalScopes = ["HeartBeats", "NewWorkConns"]
-
-# auth token
-auth.token = "12345678"
-
-# oidc.clientID specifies the client ID to use to get a token in OIDC authentication.
-# auth.oidc.clientID = ""
-# oidc.clientSecret specifies the client secret to use to get a token in OIDC authentication.
-# auth.oidc.clientSecret = ""
-# oidc.audience specifies the audience of the token in OIDC authentication.
-# auth.oidc.audience = ""
-# oidc.scope specifies the permissions of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "".
-# auth.oidc.scope = ""
-# oidc.tokenEndpointURL specifies the URL which implements OIDC Token Endpoint.
-# It will be used to get an OIDC token.
-# auth.oidc.tokenEndpointURL = ""
-
-# oidc.additionalEndpointParams specifies additional parameters to be sent to the OIDC Token Endpoint.
-# For example, if you want to specify the "audience" parameter, you can set as follow.
-# frp will add "audience=" "var1=" to the additional parameters.
-# auth.oidc.additionalEndpointParams.audience = "https://dev.auth.com/api/v2/"
-# auth.oidc.additionalEndpointParams.var1 = "foobar"
-
-# Set admin address for control frpc's action by http api such as reload
-webServer.addr = "127.0.0.1"
-webServer.port = 7400
-webServer.user = "admin"
-webServer.password = "admin"
-# Admin assets directory. By default, these assets are bundled with frpc.
-# webServer.assetsDir = "./static"
-
-# Enable golang pprof handlers in admin listener.
-webServer.pprofEnable = false
-
-# The maximum amount of time a dial to server will wait for a connect to complete. Default value is 10 seconds.
-# transport.dialServerTimeout = 10
-
-# dialServerKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# transport.dialServerKeepalive = 7200
-
-# connections will be established in advance, default value is zero
-transport.poolCount = 5
-
-# If tcp stream multiplexing is used, default is true, it must be same with frps
-# transport.tcpMux = true
-
-# Specify keep alive interval for tcp mux.
-# only valid if tcpMux is enabled.
-# transport.tcpMuxKeepaliveInterval = 60
-
-# Communication protocol used to connect to server
-# supports tcp, kcp, quic, websocket and wss now, default is tcp
-transport.protocol = "tcp"
-
-# set client binding ip when connect server, default is empty.
-# only when protocol = tcp or websocket, the value will be used.
-transport.connectServerLocalIP = "0.0.0.0"
-
-# if you want to connect frps by http proxy or socks5 proxy or ntlm proxy, you can set proxyURL here or in global environment variables
-# it only works when protocol is tcp
-# transport.proxyURL = "http://user:passwd@192.168.1.128:8080"
-# transport.proxyURL = "socks5://user:passwd@192.168.1.128:1080"
-# transport.proxyURL = "ntlm://user:passwd@192.168.1.128:2080"
-
-# quic protocol options
-# transport.quic.keepalivePeriod = 10
-# transport.quic.maxIdleTimeout = 30
-# transport.quic.maxIncomingStreams = 100000
-
-# If tls.enable is true, frpc will connect frps by tls.
-# Since v0.50.0, the default value has been changed to true, and tls is enabled by default.
-transport.tls.enable = true
-
-# transport.tls.certFile = "client.crt"
-# transport.tls.keyFile = "client.key"
-# transport.tls.trustedCaFile = "ca.crt"
-# transport.tls.serverName = "example.com"
-
-# If the disableCustomTLSFirstByte is set to false, frpc will establish a connection with frps using the
-# first custom byte when tls is enabled.
-# Since v0.50.0, the default value has been changed to true, and the first custom byte is disabled by default.
-# transport.tls.disableCustomTLSFirstByte = true
-
-# Heartbeat configure, it's not recommended to modify the default value.
-# The default value of heartbeatInterval is 10 and heartbeatTimeout is 90. Set negative value
-# to disable it.
-# transport.heartbeatInterval = 30
-# transport.heartbeatTimeout = 90
-
-# Specify a dns server, so frpc will use this instead of default one
-# dnsServer = "8.8.8.8"
-
-# Proxy names you want to start.
-# Default is empty, means all proxies.
-# start = ["ssh", "dns"]
-
-# Specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udpPacketSize = 1500
-
-# Additional metadatas for client.
-metadatas.var1 = "abc"
-metadatas.var2 = "123"
-
-# Include other config files for proxies.
-# includes = ["./confd/*.ini"]
-
-[[proxies]]
-# 'ssh' is the unique proxy name
-# If global user is not empty, it will be changed to {user}.{proxy} such as 'your_name.ssh'
-name = "ssh"
-type = "tcp"
-localIP = "127.0.0.1"
-localPort = 22
-# Limit bandwidth for this proxy, unit is KB and MB
-transport.bandwidthLimit = "1MB"
-# Where to limit bandwidth, can be 'client' or 'server', default is 'client'
-transport.bandwidthLimitMode = "client"
-# If true, traffic of this proxy will be encrypted, default is false
-transport.useEncryption = false
-# If true, traffic will be compressed
-transport.useCompression = false
-# Remote port listen by frps
-remotePort = 6001
-# frps will load balancing connections for proxies in same group
-loadBalancer.group = "test_group"
-# group should have same group key
-loadBalancer.groupKey = "123456"
-# Enable health check for the backend service, it supports 'tcp' and 'http' now.
-# frpc will connect local service's port to detect it's healthy status
-healthCheck.type = "tcp"
-# Health check connection timeout
-healthCheck.timeoutSeconds = 3
-# If continuous failed in 3 times, the proxy will be removed from frps
-healthCheck.maxFailed = 3
-# Every 10 seconds will do a health check
-healthCheck.intervalSeconds = 10
-# Additional meta info for each proxy. It will be passed to the server-side plugin for use.
-metadatas.var1 = "abc"
-metadatas.var2 = "123"
-# You can add some extra information to the proxy through annotations.
-# These annotations will be displayed on the frps dashboard.
-[proxies.annotations]
-key1 = "value1"
-"prefix/key2" = "value2"
-
-[[proxies]]
-name = "ssh_random"
-type = "tcp"
-localIP = "192.168.31.100"
-localPort = 22
-# If remotePort is 0, frps will assign a random port for you
-remotePort = 0
-
-[[proxies]]
-name = "dns"
-type = "udp"
-localIP = "114.114.114.114"
-localPort = 53
-remotePort = 6002
-
-# Resolve your domain names to [serverAddr] so you can use http://web01.yourdomain.com to browse web01 and http://web02.yourdomain.com to browse web02
-[[proxies]]
-name = "web01"
-type = "http"
-localIP = "127.0.0.1"
-localPort = 80
-# http username and password are safety certification for http protocol
-# if not set, you can access this customDomains without certification
-httpUser = "admin"
-httpPassword = "admin"
-# if domain for frps is frps.com, then you can access [web01] proxy by URL http://web01.frps.com
-subdomain = "web01"
-customDomains = ["web01.yourdomain.com"]
-# locations is only available for http type
-locations = ["/", "/pic"]
-# route requests to this service if http basic auto user is abc
-# routeByHTTPUser = abc
-hostHeaderRewrite = "example.com"
-requestHeaders.set.x-from-where = "frp"
-healthCheck.type = "http"
-# frpc will send a GET http request '/status' to local http service
-# http service is alive when it return 2xx http response code
-healthCheck.path = "/status"
-healthCheck.intervalSeconds = 10
-healthCheck.maxFailed = 3
-healthCheck.timeoutSeconds = 3
-
-[[proxies]]
-name = "web02"
-type = "https"
-localIP = "127.0.0.1"
-localPort = 8000
-subdomain = "web02"
-customDomains = ["web02.yourdomain.com"]
-# if not empty, frpc will use proxy protocol to transfer connection info to your local service
-# v1 or v2 or empty
-transport.proxyProtocolVersion = "v2"
-
-[[proxies]]
-name = "tcpmuxhttpconnect"
-type = "tcpmux"
-multiplexer = "httpconnect"
-localIP = "127.0.0.1"
-localPort = 10701
-customDomains = ["tunnel1"]
-# routeByHTTPUser = "user1"
-
-[[proxies]]
-name = "plugin_unix_domain_socket"
-type = "tcp"
-remotePort = 6003
-# if plugin is defined, localIP and localPort is useless
-# plugin will handle connections got from frps
-[proxies.plugin]
-type = "unix_domain_socket"
-unixPath = "/var/run/docker.sock"
-
-[[proxies]]
-name = "plugin_http_proxy"
-type = "tcp"
-remotePort = 6004
-[proxies.plugin]
-type = "http_proxy"
-httpUser = "abc"
-httpPassword = "abc"
-
-[[proxies]]
-name = "plugin_socks5"
-type = "tcp"
-remotePort = 6005
-[proxies.plugin]
-type = "socks5"
-username = "abc"
-password = "abc"
-
-[[proxies]]
-name = "plugin_static_file"
-type = "tcp"
-remotePort = 6006
-[proxies.plugin]
-type = "static_file"
-localPath = "/var/www/blog"
-stripPrefix = "static"
-httpUser = "abc"
-httpPassword = "abc"
-
-[[proxies]]
-name = "plugin_https2http"
-type = "https"
-customDomains = ["test.yourdomain.com"]
-[proxies.plugin]
-type = "https2http"
-localAddr = "127.0.0.1:80"
-crtPath = "./server.crt"
-keyPath = "./server.key"
-hostHeaderRewrite = "127.0.0.1"
-requestHeaders.set.x-from-where = "frp"
-
-[[proxies]]
-name = "plugin_https2https"
-type = "https"
-customDomains = ["test.yourdomain.com"]
-[proxies.plugin]
-type = "https2https"
-localAddr = "127.0.0.1:443"
-crtPath = "./server.crt"
-keyPath = "./server.key"
-hostHeaderRewrite = "127.0.0.1"
-requestHeaders.set.x-from-where = "frp"
-
-[[proxies]]
-name = "plugin_http2https"
-type = "http"
-customDomains = ["test.yourdomain.com"]
-[proxies.plugin]
-type = "http2https"
-localAddr = "127.0.0.1:443"
-hostHeaderRewrite = "127.0.0.1"
-requestHeaders.set.x-from-where = "frp"
-
-[[proxies]]
-name = "secret_tcp"
-# If the type is secret tcp, remotePort is useless
-# Who want to connect local port should deploy another frpc with stcp proxy and role is visitor
-type = "stcp"
-# secretKey is used for authentication for visitors
-secretKey = "abcdefg"
-localIP = "127.0.0.1"
-localPort = 22
-# If not empty, only visitors from specified users can connect.
-# Otherwise, visitors from same user can connect. '*' means allow all users.
-allowUsers = ["*"]
-
-[[proxies]]
-name = "p2p_tcp"
-type = "xtcp"
-secretKey = "abcdefg"
-localIP = "127.0.0.1"
-localPort = 22
-# If not empty, only visitors from specified users can connect.
-# Otherwise, visitors from same user can connect. '*' means allow all users.
-allowUsers = ["user1", "user2"]
-
-# frpc role visitor -> frps -> frpc role server
-[[visitors]]
-name = "secret_tcp_visitor"
-type = "stcp"
-# the server name you want to visitor
-serverName = "secret_tcp"
-secretKey = "abcdefg"
-# connect this address to visitor stcp server
-bindAddr = "127.0.0.1"
-# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from
-# other visitors. (This is not supported for SUDP now)
-bindPort = 9000
-
-[[visitors]]
-name = "p2p_tcp_visitor"
-type = "xtcp"
-# if the server user is not set, it defaults to the current user
-serverUser = "user1"
-serverName = "p2p_tcp"
-secretKey = "abcdefg"
-bindAddr = "127.0.0.1"
-# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from
-# other visitors. (This is not supported for SUDP now)
-bindPort = 9001
-# when automatic tunnel persistence is required, set it to true
-keepTunnelOpen = false
-# effective when keepTunnelOpen is set to true, the number of attempts to punch through per hour
-maxRetriesAnHour = 8
-minRetryInterval = 90
-# fallbackTo = "stcp_visitor"
-# fallbackTimeoutMs = 500
\ No newline at end of file
diff --git a/apps/frpc/latest/data/frps.ini b/apps/frpc/latest/data/frps.ini
deleted file mode 100644
index 229567a9..00000000
--- a/apps/frpc/latest/data/frps.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[common]
-bind_port = 7000
diff --git a/apps/frpc/latest/data/frps.toml b/apps/frpc/latest/data/frps.toml
deleted file mode 100644
index cc3f831d..00000000
--- a/apps/frpc/latest/data/frps.toml
+++ /dev/null
@@ -1,42 +0,0 @@
-# common
-bindAddr = "0.0.0.0"
-bindPort = 7000
-auth.method = "token"
-auth.token = "token123456"
-
-# udp by kcp
-kcpBindPort = 7000
-
-# udp by quic
-#quicBindPort = 7002
-#transport.quic.keepalivePeriod = 10
-#transport.quic.maxIdleTimeout = 30
-#transport.quic.maxIncomingStreams = 100000
-
-# web
-#vhostHTTPPort = 40480
-#vhostHTTPSPort = 40443
-#subDomainHost = "example.com"
-
-# tls
-transport.tls.force = true
-#tls.force = false # 版本0.52.0到0.55.0用这个
-#transport.tls.certFile = "/etc/frp/ssl/server.crt"
-#transport.tls.keyFile = "/etc/frp/ssl/server.key"
-#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt"
-
-# dashboard
-webServer.addr = "0.0.0.0"
-webServer.port = 7001
-webServer.user = "admin"
-webServer.password = "password123456"
-webServer.pprofEnable = false
-# webServer.tls.certFile = "server.crt"
-# webServer.tls.keyFile = "server.key"
-
-# setting
-transport.tcpMux = false
-enablePrometheus = true
-maxPortsPerClient = 0
-natholeAnalysisDataReserveHours = 168
-udpPacketSize = 1500
\ No newline at end of file
diff --git a/apps/frpc/latest/data/frps_full.ini b/apps/frpc/latest/data/frps_full.ini
deleted file mode 100644
index 2d5e08e1..00000000
--- a/apps/frpc/latest/data/frps_full.ini
+++ /dev/null
@@ -1,168 +0,0 @@
-# [common] is integral section
-[common]
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single "bind_addr" field, no need square brackets, like "bind_addr = ::".
-bind_addr = 0.0.0.0
-bind_port = 7000
-
-# udp port to help make udp hole to penetrate nat
-bind_udp_port = 7001
-
-# udp port used for kcp protocol, it can be same with 'bind_port'.
-# if not set, kcp is disabled in frps.
-kcp_bind_port = 7000
-
-# udp port used for quic protocol.
-# if not set, quic is disabled in frps.
-# quic_bind_port = 7002
-# quic protocol options
-# quic_keepalive_period = 10
-# quic_max_idle_timeout = 30
-# quic_max_incoming_streams = 100000
-
-# specify which address proxy will listen for, default value is same with bind_addr
-# proxy_bind_addr = 127.0.0.1
-
-# if you want to support virtual host, you must set the http port for listening (optional)
-# Note: http port and https port can be same with bind_port
-vhost_http_port = 80
-vhost_https_port = 443
-
-# response header timeout(seconds) for vhost http server, default is 60s
-# vhost_http_timeout = 60
-
-# tcpmux_httpconnect_port specifies the port that the server listens for TCP
-# HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP
-# requests on one single port. If it's not - it will listen on this value for
-# HTTP CONNECT requests. By default, this value is 0.
-# tcpmux_httpconnect_port = 1337
-
-# If tcpmux_passthrough is true, frps won't do any update on traffic.
-# tcpmux_passthrough = false
-
-# set dashboard_addr and dashboard_port to view dashboard of frps
-# dashboard_addr's default value is same with bind_addr
-# dashboard is available only if dashboard_port is set
-dashboard_addr = 0.0.0.0
-dashboard_port = 7500
-
-# dashboard user and passwd for basic auth protect
-dashboard_user = admin
-dashboard_pwd = admin
-
-# dashboard TLS mode
-dashboard_tls_mode = false
-# dashboard_tls_cert_file = server.crt
-# dashboard_tls_key_file = server.key
-
-# enable_prometheus will export prometheus metrics on {dashboard_addr}:{dashboard_port} in /metrics api.
-enable_prometheus = true
-
-# dashboard assets directory(only for debug mode)
-# assets_dir = ./static
-
-# console or real logFile path like ./frps.log
-log_file = ./frps.log
-
-# trace, debug, info, warn, error
-log_level = info
-
-log_max_days = 3
-
-# disable log colors when log_file is console, default is false
-disable_log_color = false
-
-# DetailedErrorsToClient defines whether to send the specific error (with debug info) to frpc. By default, this value is true.
-detailed_errors_to_client = true
-
-# authentication_method specifies what authentication method to use authenticate frpc with frps.
-# If "token" is specified - token will be read into login message.
-# If "oidc" is specified - OIDC (Open ID Connect) token will be issued using OIDC settings. By default, this value is "token".
-authentication_method = token
-
-# authenticate_heartbeats specifies whether to include authentication token in heartbeats sent to frps. By default, this value is false.
-authenticate_heartbeats = false
-
-# AuthenticateNewWorkConns specifies whether to include authentication token in new work connections sent to frps. By default, this value is false.
-authenticate_new_work_conns = false
-
-# auth token
-token = 12345678
-
-# oidc_issuer specifies the issuer to verify OIDC tokens with.
-# By default, this value is "".
-oidc_issuer =
-
-# oidc_audience specifies the audience OIDC tokens should contain when validated.
-# By default, this value is "".
-oidc_audience =
-
-# oidc_skip_expiry_check specifies whether to skip checking if the OIDC token is expired.
-# By default, this value is false.
-oidc_skip_expiry_check = false
-
-# oidc_skip_issuer_check specifies whether to skip checking if the OIDC token's issuer claim matches the issuer specified in OidcIssuer.
-# By default, this value is false.
-oidc_skip_issuer_check = false
-
-# heartbeat configure, it's not recommended to modify the default value
-# the default value of heartbeat_timeout is 90. Set negative value to disable it.
-# heartbeat_timeout = 90
-
-# user_conn_timeout configure, it's not recommended to modify the default value
-# the default value of user_conn_timeout is 10
-# user_conn_timeout = 10
-
-# only allow frpc to bind ports you list, if you set nothing, there won't be any limit
-allow_ports = 2000-3000,3001,3003,4000-50000
-
-# pool_count in each proxy will change to max_pool_count if they exceed the maximum value
-max_pool_count = 5
-
-# max ports can be used for each client, default value is 0 means no limit
-max_ports_per_client = 0
-
-# tls_only specifies whether to only accept TLS-encrypted connections. By default, the value is false.
-tls_only = false
-
-# tls_cert_file = server.crt
-# tls_key_file = server.key
-# tls_trusted_ca_file = ca.crt
-
-# if subdomain_host is not empty, you can set subdomain when type is http or https in frpc's configure file
-# when subdomain is test, the host used by routing is test.frps.com
-subdomain_host = frps.com
-
-# if tcp stream multiplexing is used, default is true
-# tcp_mux = true
-
-# specify keep alive interval for tcp mux.
-# only valid if tcp_mux is true.
-# tcp_mux_keepalive_interval = 60
-
-# tcp_keepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# tcp_keepalive = 7200
-
-# custom 404 page for HTTP requests
-# custom_404_page = /path/to/404.html
-
-# specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udp_packet_size = 1500
-
-# Enable golang pprof handlers in dashboard listener.
-# Dashboard port must be set first
-pprof_enable = false
-
-[plugin.user-manager]
-addr = 127.0.0.1:9000
-path = /handler
-ops = Login
-
-[plugin.port-manager]
-addr = 127.0.0.1:9001
-path = /handler
-ops = NewProxy
diff --git a/apps/frpc/latest/data/frps_full.toml b/apps/frpc/latest/data/frps_full.toml
deleted file mode 100644
index f739d4d4..00000000
--- a/apps/frpc/latest/data/frps_full.toml
+++ /dev/null
@@ -1,164 +0,0 @@
-# This configuration file is for reference only. Please do not use this configuration directly to run the program as it may have various issues.
-
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single "bindAddr" field, no need square brackets, like `bindAddr = "::"`.
-bindAddr = "0.0.0.0"
-bindPort = 7000
-
-# udp port used for kcp protocol, it can be same with 'bindPort'.
-# if not set, kcp is disabled in frps.
-kcpBindPort = 7000
-
-# udp port used for quic protocol.
-# if not set, quic is disabled in frps.
-# quicBindPort = 7002
-
-# Specify which address proxy will listen for, default value is same with bindAddr
-# proxyBindAddr = "127.0.0.1"
-
-# quic protocol options
-# transport.quic.keepalivePeriod = 10
-# transport.quic.maxIdleTimeout = 30
-# transport.quic.maxIncomingStreams = 100000
-
-# Heartbeat configure, it's not recommended to modify the default value
-# The default value of heartbeatTimeout is 90. Set negative value to disable it.
-# transport.heartbeatTimeout = 90
-
-# Pool count in each proxy will keep no more than maxPoolCount.
-transport.maxPoolCount = 5
-
-# If tcp stream multiplexing is used, default is true
-# transport.tcpMux = true
-
-# Specify keep alive interval for tcp mux.
-# only valid if tcpMux is true.
-# transport.tcpMuxKeepaliveInterval = 60
-
-# tcpKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# transport.tcpKeepalive = 7200
-
-# transport.tls.force specifies whether to only accept TLS-encrypted connections. By default, the value is false.
-transport.tls.force = false
-
-# transport.tls.certFile = "server.crt"
-# transport.tls.keyFile = "server.key"
-# transport.tls.trustedCaFile = "ca.crt"
-
-# If you want to support virtual host, you must set the http port for listening (optional)
-# Note: http port and https port can be same with bindPort
-vhostHTTPPort = 80
-vhostHTTPSPort = 443
-
-# Response header timeout(seconds) for vhost http server, default is 60s
-# vhostHTTPTimeout = 60
-
-# tcpmuxHTTPConnectPort specifies the port that the server listens for TCP
-# HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP
-# requests on one single port. If it's not - it will listen on this value for
-# HTTP CONNECT requests. By default, this value is 0.
-# tcpmuxHTTPConnectPort = 1337
-
-# If tcpmuxPassthrough is true, frps won't do any update on traffic.
-# tcpmuxPassthrough = false
-
-# Configure the web server to enable the dashboard for frps.
-# dashboard is available only if webServer.port is set.
-webServer.addr = "127.0.0.1"
-webServer.port = 7500
-webServer.user = "admin"
-webServer.password = "admin"
-# webServer.tls.certFile = "server.crt"
-# webServer.tls.keyFile = "server.key"
-# dashboard assets directory(only for debug mode)
-# webServer.assetsDir = "./static"
-
-# Enable golang pprof handlers in dashboard listener.
-# Dashboard port must be set first
-webServer.pprofEnable = false
-
-# enablePrometheus will export prometheus metrics on webServer in /metrics api.
-enablePrometheus = true
-
-# console or real logFile path like ./frps.log
-log.to = "./frps.log"
-# trace, debug, info, warn, error
-log.level = "info"
-log.maxDays = 3
-# disable log colors when log.to is console, default is false
-log.disablePrintColor = false
-
-# DetailedErrorsToClient defines whether to send the specific error (with debug info) to frpc. By default, this value is true.
-detailedErrorsToClient = true
-
-# auth.method specifies what authentication method to use authenticate frpc with frps.
-# If "token" is specified - token will be read into login message.
-# If "oidc" is specified - OIDC (Open ID Connect) token will be issued using OIDC settings. By default, this value is "token".
-auth.method = "token"
-
-# auth.additionalScopes specifies additional scopes to include authentication information.
-# Optional values are HeartBeats, NewWorkConns.
-# auth.additionalScopes = ["HeartBeats", "NewWorkConns"]
-
-# auth token
-auth.token = "12345678"
-
-# oidc issuer specifies the issuer to verify OIDC tokens with.
-auth.oidc.issuer = ""
-# oidc audience specifies the audience OIDC tokens should contain when validated.
-auth.oidc.audience = ""
-# oidc skipExpiryCheck specifies whether to skip checking if the OIDC token is expired.
-auth.oidc.skipExpiryCheck = false
-# oidc skipIssuerCheck specifies whether to skip checking if the OIDC token's issuer claim matches the issuer specified in OidcIssuer.
-auth.oidc.skipIssuerCheck = false
-
-# userConnTimeout specifies the maximum time to wait for a work connection.
-# userConnTimeout = 10
-
-# Only allow frpc to bind ports you list. By default, there won't be any limit.
-allowPorts = [
- { start = 2000, end = 3000 },
- { single = 3001 },
- { single = 3003 },
- { start = 4000, end = 50000 }
-]
-
-# Max ports can be used for each client, default value is 0 means no limit
-maxPortsPerClient = 0
-
-# If subDomainHost is not empty, you can set subdomain when type is http or https in frpc's configure file
-# When subdomain is test, the host used by routing is test.frps.com
-subDomainHost = "frps.com"
-
-# custom 404 page for HTTP requests
-# custom404Page = "/path/to/404.html"
-
-# specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udpPacketSize = 1500
-
-# Retention time for NAT hole punching strategy data.
-natholeAnalysisDataReserveHours = 168
-
-# ssh tunnel gateway
-# If you want to enable this feature, the bindPort parameter is required, while others are optional.
-# By default, this feature is disabled. It will be enabled if bindPort is greater than 0.
-# sshTunnelGateway.bindPort = 2200
-# sshTunnelGateway.privateKeyFile = "/home/frp-user/.ssh/id_rsa"
-# sshTunnelGateway.autoGenPrivateKeyPath = ""
-# sshTunnelGateway.authorizedKeysFile = "/home/frp-user/.ssh/authorized_keys"
-
-[[httpPlugins]]
-name = "user-manager"
-addr = "127.0.0.1:9000"
-path = "/handler"
-ops = ["Login"]
-
-[[httpPlugins]]
-name = "port-manager"
-addr = "127.0.0.1:9001"
-path = "/handler"
-ops = ["NewProxy"]
\ No newline at end of file
diff --git a/apps/frpc/latest/docker-compose.yml b/apps/frpc/latest/docker-compose.yml
deleted file mode 100644
index 5ec43e7c..00000000
--- a/apps/frpc/latest/docker-compose.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-services:
- frpc:
- container_name: ${CONTAINER_NAME}
- restart: always
- network_mode: "host"
- volumes:
- #- "${CONFIG_FILE_PATH}:/etc/frp/frpc.ini" #截止5.1.3版本使用ini
- - "${CONFIG_FILE_PATH}:/etc/frp/frpc.toml"
- - "${SSL_FOLDER_PATH}:/etc/frp/ssl"
- image: "snowdreamtech/frpc:latest"
- labels:
- createdBy: "Apps"
diff --git a/apps/frpc/logo.png b/apps/frpc/logo.png
deleted file mode 100644
index 9cec3e62..00000000
Binary files a/apps/frpc/logo.png and /dev/null differ
diff --git a/apps/frps/0.63.0/.env.sample b/apps/frps/0.63.0/.env.sample
deleted file mode 100644
index fa2ac786..00000000
--- a/apps/frps/0.63.0/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="frps"
-SSL_FOLDER_PATH="./data/ssl"
\ No newline at end of file
diff --git a/apps/frps/0.63.0/data.yml b/apps/frps/0.63.0/data.yml
deleted file mode 100644
index a04a9f47..00000000
--- a/apps/frps/0.63.0/data.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-additionalProperties:
- formFields:
- - default: ./data/frps.toml
- edit: true
- envKey: CONFIG_FILE_PATH
- labelEn: Configuration file path
- labelZh: 配置文件路径
- required: true
- type: text
- - default: 7000
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port (determined by the configuration file)
- labelZh: 端口 (由配置文件决定)
- required: true
- type: number
- - default: ./data/ssl
- edit: true
- envKey: SSL_FOLDER_PATH
- labelEn: Certificate folder path (corresponding to "/etc/frp/ssl" in container)
- labelZh: 证书文件夹路径 (对应容器内 "/etc/frp/ssl")
- required: true
- type: text
diff --git a/apps/frps/0.63.0/data/frpc.ini b/apps/frps/0.63.0/data/frpc.ini
deleted file mode 100644
index 13a8e5f6..00000000
--- a/apps/frps/0.63.0/data/frpc.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[common]
-server_addr = 127.0.0.1
-server_port = 7000
-
-[ssh]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-remote_port = 6000
diff --git a/apps/frps/0.63.0/data/frpc.toml b/apps/frps/0.63.0/data/frpc.toml
deleted file mode 100644
index 9e64a124..00000000
--- a/apps/frps/0.63.0/data/frpc.toml
+++ /dev/null
@@ -1,42 +0,0 @@
-# common
-serverAddr = "1.2.3.4"
-serverPort = 7000
-auth.method = "token"
-auth.token = "token123456"
-# supports tcp, kcp, quic, websocket and wss now, default is tcp
-transport.protocol = "tcp"
-
-# dashboard
-webServer.addr = "127.0.0.1"
-webServer.port = 6000
-webServer.user = "admin"
-webServer.password = "password123456"
-webServer.pprofEnable = false
-
-# setting
-loginFailExit = false
-transport.tcpMux = false
-transport.tls.enable = false
-# transport.tls.certFile = "client.crt"
-# transport.tls.keyFile = "client.key"
-# transport.tls.trustedCaFile = "ca.crt"
-# transport.tls.serverName = "example.com"
-
-# tls
-#transport.tls.certFile = "/etc/frp/ssl/client.crt"
-#transport.tls.keyFile = "/etc/frp/ssl/client.key"
-#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt"
-
-[[proxies]]
-name = "rdp_tcp"
-type = "tcp"
-localIP = "127.0.0.1"
-localPort = 3389
-remotePort = 13389
-
-[[proxies]]
-name = "rdp_udp"
-type = "udp"
-localIP = "127.0.0.1"
-localPort = 3389
-remotePort = 13389
\ No newline at end of file
diff --git a/apps/frps/0.63.0/data/frpc_full.ini b/apps/frps/0.63.0/data/frpc_full.ini
deleted file mode 100644
index 29f6bcab..00000000
--- a/apps/frps/0.63.0/data/frpc_full.ini
+++ /dev/null
@@ -1,365 +0,0 @@
-# [common] is integral section
-[common]
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single "server_addr" field, no need square brackets, like "server_addr = ::".
-server_addr = 0.0.0.0
-server_port = 7000
-
-# The maximum amount of time a dial to server will wait for a connect to complete. Default value is 10 seconds.
-# dial_server_timeout = 10
-
-# dial_server_keepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# dial_server_keepalive = 7200
-
-# if you want to connect frps by http proxy or socks5 proxy or ntlm proxy, you can set http_proxy here or in global environment variables
-# it only works when protocol is tcp
-# http_proxy = http://user:passwd@192.168.1.128:8080
-# http_proxy = socks5://user:passwd@192.168.1.128:1080
-# http_proxy = ntlm://user:passwd@192.168.1.128:2080
-
-# console or real logFile path like ./frpc.log
-log_file = ./frpc.log
-
-# trace, debug, info, warn, error
-log_level = info
-
-log_max_days = 3
-
-# disable log colors when log_file is console, default is false
-disable_log_color = false
-
-# for authentication, should be same as your frps.ini
-# authenticate_heartbeats specifies whether to include authentication token in heartbeats sent to frps. By default, this value is false.
-authenticate_heartbeats = false
-
-# authenticate_new_work_conns specifies whether to include authentication token in new work connections sent to frps. By default, this value is false.
-authenticate_new_work_conns = false
-
-# auth token
-token = 12345678
-
-authentication_method =
-
-# oidc_client_id specifies the client ID to use to get a token in OIDC authentication if AuthenticationMethod == "oidc".
-# By default, this value is "".
-oidc_client_id =
-
-# oidc_client_secret specifies the client secret to use to get a token in OIDC authentication if AuthenticationMethod == "oidc".
-# By default, this value is "".
-oidc_client_secret =
-
-# oidc_audience specifies the audience of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "".
-oidc_audience =
-
-# oidc_scope specifies the permisssions of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "".
-oidc_scope =
-
-# oidc_token_endpoint_url specifies the URL which implements OIDC Token Endpoint.
-# It will be used to get an OIDC token if AuthenticationMethod == "oidc". By default, this value is "".
-oidc_token_endpoint_url =
-
-# oidc_additional_xxx specifies additional parameters to be sent to the OIDC Token Endpoint.
-# For example, if you want to specify the "audience" parameter, you can set as follow.
-# frp will add "audience=" "var1=" to the additional parameters.
-# oidc_additional_audience = https://dev.auth.com/api/v2/
-# oidc_additional_var1 = foobar
-
-# set admin address for control frpc's action by http api such as reload
-admin_addr = 127.0.0.1
-admin_port = 7400
-admin_user = admin
-admin_pwd = admin
-# Admin assets directory. By default, these assets are bundled with frpc.
-# assets_dir = ./static
-
-# connections will be established in advance, default value is zero
-pool_count = 5
-
-# if tcp stream multiplexing is used, default is true, it must be same with frps
-# tcp_mux = true
-
-# specify keep alive interval for tcp mux.
-# only valid if tcp_mux is true.
-# tcp_mux_keepalive_interval = 60
-
-# your proxy name will be changed to {user}.{proxy}
-user = your_name
-
-# decide if exit program when first login failed, otherwise continuous relogin to frps
-# default is true
-login_fail_exit = true
-
-# communication protocol used to connect to server
-# supports tcp, kcp, quic and websocket now, default is tcp
-protocol = tcp
-
-# set client binding ip when connect server, default is empty.
-# only when protocol = tcp or websocket, the value will be used.
-connect_server_local_ip = 0.0.0.0
-
-# quic protocol options
-# quic_keepalive_period = 10
-# quic_max_idle_timeout = 30
-# quic_max_incoming_streams = 100000
-
-# if tls_enable is true, frpc will connect frps by tls
-tls_enable = true
-
-# tls_cert_file = client.crt
-# tls_key_file = client.key
-# tls_trusted_ca_file = ca.crt
-# tls_server_name = example.com
-
-# specify a dns server, so frpc will use this instead of default one
-# dns_server = 8.8.8.8
-
-# proxy names you want to start separated by ','
-# default is empty, means all proxies
-# start = ssh,dns
-
-# heartbeat configure, it's not recommended to modify the default value
-# The default value of heartbeat_interval is 10 and heartbeat_timeout is 90. Set negative value
-# to disable it.
-# heartbeat_interval = 30
-# heartbeat_timeout = 90
-
-# additional meta info for client
-meta_var1 = 123
-meta_var2 = 234
-
-# specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udp_packet_size = 1500
-
-# include other config files for proxies.
-# includes = ./confd/*.ini
-
-# By default, frpc will connect frps with first custom byte if tls is enabled.
-# If DisableCustomTLSFirstByte is true, frpc will not send that custom byte.
-disable_custom_tls_first_byte = false
-
-# Enable golang pprof handlers in admin listener.
-# Admin port must be set first.
-pprof_enable = false
-
-# 'ssh' is the unique proxy name
-# if user in [common] section is not empty, it will be changed to {user}.{proxy} such as 'your_name.ssh'
-[ssh]
-# tcp | udp | http | https | stcp | xtcp, default is tcp
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-# limit bandwidth for this proxy, unit is KB and MB
-bandwidth_limit = 1MB
-# where to limit bandwidth, can be 'client' or 'server', default is 'client'
-bandwidth_limit_mode = client
-# true or false, if true, messages between frps and frpc will be encrypted, default is false
-use_encryption = false
-# if true, message will be compressed
-use_compression = false
-# remote port listen by frps
-remote_port = 6001
-# frps will load balancing connections for proxies in same group
-group = test_group
-# group should have same group key
-group_key = 123456
-# enable health check for the backend service, it support 'tcp' and 'http' now
-# frpc will connect local service's port to detect it's healthy status
-health_check_type = tcp
-# health check connection timeout
-health_check_timeout_s = 3
-# if continuous failed in 3 times, the proxy will be removed from frps
-health_check_max_failed = 3
-# every 10 seconds will do a health check
-health_check_interval_s = 10
-# additional meta info for each proxy
-meta_var1 = 123
-meta_var2 = 234
-
-[ssh_random]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-# if remote_port is 0, frps will assign a random port for you
-remote_port = 0
-
-# if you want to expose multiple ports, add 'range:' prefix to the section name
-# frpc will generate multiple proxies such as 'tcp_port_6010', 'tcp_port_6011' and so on.
-[range:tcp_port]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 6010-6020,6022,6024-6028
-remote_port = 6010-6020,6022,6024-6028
-use_encryption = false
-use_compression = false
-
-[dns]
-type = udp
-local_ip = 114.114.114.114
-local_port = 53
-remote_port = 6002
-use_encryption = false
-use_compression = false
-
-[range:udp_port]
-type = udp
-local_ip = 127.0.0.1
-local_port = 6010-6020
-remote_port = 6010-6020
-use_encryption = false
-use_compression = false
-
-# Resolve your domain names to [server_addr] so you can use http://web01.yourdomain.com to browse web01 and http://web02.yourdomain.com to browse web02
-[web01]
-type = http
-local_ip = 127.0.0.1
-local_port = 80
-use_encryption = false
-use_compression = true
-# http username and password are safety certification for http protocol
-# if not set, you can access this custom_domains without certification
-http_user = admin
-http_pwd = admin
-# if domain for frps is frps.com, then you can access [web01] proxy by URL http://web01.frps.com
-subdomain = web01
-custom_domains = web01.yourdomain.com
-# locations is only available for http type
-locations = /,/pic
-# route requests to this service if http basic auto user is abc
-# route_by_http_user = abc
-host_header_rewrite = example.com
-# params with prefix "header_" will be used to update http request headers
-header_X-From-Where = frp
-health_check_type = http
-# frpc will send a GET http request '/status' to local http service
-# http service is alive when it return 2xx http response code
-health_check_url = /status
-health_check_interval_s = 10
-health_check_max_failed = 3
-health_check_timeout_s = 3
-
-[web02]
-type = https
-local_ip = 127.0.0.1
-local_port = 8000
-use_encryption = false
-use_compression = false
-subdomain = web01
-custom_domains = web02.yourdomain.com
-# if not empty, frpc will use proxy protocol to transfer connection info to your local service
-# v1 or v2 or empty
-proxy_protocol_version = v2
-
-[plugin_unix_domain_socket]
-type = tcp
-remote_port = 6003
-# if plugin is defined, local_ip and local_port is useless
-# plugin will handle connections got from frps
-plugin = unix_domain_socket
-# params with prefix "plugin_" that plugin needed
-plugin_unix_path = /var/run/docker.sock
-
-[plugin_http_proxy]
-type = tcp
-remote_port = 6004
-plugin = http_proxy
-plugin_http_user = abc
-plugin_http_passwd = abc
-
-[plugin_socks5]
-type = tcp
-remote_port = 6005
-plugin = socks5
-plugin_user = abc
-plugin_passwd = abc
-
-[plugin_static_file]
-type = tcp
-remote_port = 6006
-plugin = static_file
-plugin_local_path = /var/www/blog
-plugin_strip_prefix = static
-plugin_http_user = abc
-plugin_http_passwd = abc
-
-[plugin_https2http]
-type = https
-custom_domains = test.yourdomain.com
-plugin = https2http
-plugin_local_addr = 127.0.0.1:80
-plugin_crt_path = ./server.crt
-plugin_key_path = ./server.key
-plugin_host_header_rewrite = 127.0.0.1
-plugin_header_X-From-Where = frp
-
-[plugin_https2https]
-type = https
-custom_domains = test.yourdomain.com
-plugin = https2https
-plugin_local_addr = 127.0.0.1:443
-plugin_crt_path = ./server.crt
-plugin_key_path = ./server.key
-plugin_host_header_rewrite = 127.0.0.1
-plugin_header_X-From-Where = frp
-
-[plugin_http2https]
-type = http
-custom_domains = test.yourdomain.com
-plugin = http2https
-plugin_local_addr = 127.0.0.1:443
-plugin_host_header_rewrite = 127.0.0.1
-plugin_header_X-From-Where = frp
-
-[secret_tcp]
-# If the type is secret tcp, remote_port is useless
-# Who want to connect local port should deploy another frpc with stcp proxy and role is visitor
-type = stcp
-# sk used for authentication for visitors
-sk = abcdefg
-local_ip = 127.0.0.1
-local_port = 22
-use_encryption = false
-use_compression = false
-
-# user of frpc should be same in both stcp server and stcp visitor
-[secret_tcp_visitor]
-# frpc role visitor -> frps -> frpc role server
-role = visitor
-type = stcp
-# the server name you want to visitor
-server_name = secret_tcp
-sk = abcdefg
-# connect this address to visitor stcp server
-bind_addr = 127.0.0.1
-bind_port = 9000
-use_encryption = false
-use_compression = false
-
-[p2p_tcp]
-type = xtcp
-sk = abcdefg
-local_ip = 127.0.0.1
-local_port = 22
-use_encryption = false
-use_compression = false
-
-[p2p_tcp_visitor]
-role = visitor
-type = xtcp
-server_name = p2p_tcp
-sk = abcdefg
-bind_addr = 127.0.0.1
-bind_port = 9001
-use_encryption = false
-use_compression = false
-
-[tcpmuxhttpconnect]
-type = tcpmux
-multiplexer = httpconnect
-local_ip = 127.0.0.1
-local_port = 10701
-custom_domains = tunnel1
-# route_by_http_user = user1
diff --git a/apps/frps/0.63.0/data/frpc_full.toml b/apps/frps/0.63.0/data/frpc_full.toml
deleted file mode 100644
index 67fd84ec..00000000
--- a/apps/frps/0.63.0/data/frpc_full.toml
+++ /dev/null
@@ -1,366 +0,0 @@
-# This configuration file is for reference only. Please do not use this configuration directly to run the program as it may have various issues.
-
-# your proxy name will be changed to {user}.{proxy}
-user = "your_name"
-
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single serverAddr field, no need square brackets, like serverAddr = "::".
-serverAddr = "0.0.0.0"
-serverPort = 7000
-
-# STUN server to help penetrate NAT hole.
-# natHoleStunServer = "stun.easyvoip.com:3478"
-
-# Decide if exit program when first login failed, otherwise continuous relogin to frps
-# default is true
-loginFailExit = true
-
-# console or real logFile path like ./frpc.log
-log.to = "./frpc.log"
-# trace, debug, info, warn, error
-log.level = "info"
-log.maxDays = 3
-# disable log colors when log.to is console, default is false
-log.disablePrintColor = false
-
-auth.method = "token"
-# auth.additionalScopes specifies additional scopes to include authentication information.
-# Optional values are HeartBeats, NewWorkConns.
-# auth.additionalScopes = ["HeartBeats", "NewWorkConns"]
-
-# auth token
-auth.token = "12345678"
-
-# oidc.clientID specifies the client ID to use to get a token in OIDC authentication.
-# auth.oidc.clientID = ""
-# oidc.clientSecret specifies the client secret to use to get a token in OIDC authentication.
-# auth.oidc.clientSecret = ""
-# oidc.audience specifies the audience of the token in OIDC authentication.
-# auth.oidc.audience = ""
-# oidc.scope specifies the permissions of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "".
-# auth.oidc.scope = ""
-# oidc.tokenEndpointURL specifies the URL which implements OIDC Token Endpoint.
-# It will be used to get an OIDC token.
-# auth.oidc.tokenEndpointURL = ""
-
-# oidc.additionalEndpointParams specifies additional parameters to be sent to the OIDC Token Endpoint.
-# For example, if you want to specify the "audience" parameter, you can set as follow.
-# frp will add "audience=" "var1=" to the additional parameters.
-# auth.oidc.additionalEndpointParams.audience = "https://dev.auth.com/api/v2/"
-# auth.oidc.additionalEndpointParams.var1 = "foobar"
-
-# Set admin address for control frpc's action by http api such as reload
-webServer.addr = "127.0.0.1"
-webServer.port = 7400
-webServer.user = "admin"
-webServer.password = "admin"
-# Admin assets directory. By default, these assets are bundled with frpc.
-# webServer.assetsDir = "./static"
-
-# Enable golang pprof handlers in admin listener.
-webServer.pprofEnable = false
-
-# The maximum amount of time a dial to server will wait for a connect to complete. Default value is 10 seconds.
-# transport.dialServerTimeout = 10
-
-# dialServerKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# transport.dialServerKeepalive = 7200
-
-# connections will be established in advance, default value is zero
-transport.poolCount = 5
-
-# If tcp stream multiplexing is used, default is true, it must be same with frps
-# transport.tcpMux = true
-
-# Specify keep alive interval for tcp mux.
-# only valid if tcpMux is enabled.
-# transport.tcpMuxKeepaliveInterval = 60
-
-# Communication protocol used to connect to server
-# supports tcp, kcp, quic, websocket and wss now, default is tcp
-transport.protocol = "tcp"
-
-# set client binding ip when connect server, default is empty.
-# only when protocol = tcp or websocket, the value will be used.
-transport.connectServerLocalIP = "0.0.0.0"
-
-# if you want to connect frps by http proxy or socks5 proxy or ntlm proxy, you can set proxyURL here or in global environment variables
-# it only works when protocol is tcp
-# transport.proxyURL = "http://user:passwd@192.168.1.128:8080"
-# transport.proxyURL = "socks5://user:passwd@192.168.1.128:1080"
-# transport.proxyURL = "ntlm://user:passwd@192.168.1.128:2080"
-
-# quic protocol options
-# transport.quic.keepalivePeriod = 10
-# transport.quic.maxIdleTimeout = 30
-# transport.quic.maxIncomingStreams = 100000
-
-# If tls.enable is true, frpc will connect frps by tls.
-# Since v0.50.0, the default value has been changed to true, and tls is enabled by default.
-transport.tls.enable = true
-
-# transport.tls.certFile = "client.crt"
-# transport.tls.keyFile = "client.key"
-# transport.tls.trustedCaFile = "ca.crt"
-# transport.tls.serverName = "example.com"
-
-# If the disableCustomTLSFirstByte is set to false, frpc will establish a connection with frps using the
-# first custom byte when tls is enabled.
-# Since v0.50.0, the default value has been changed to true, and the first custom byte is disabled by default.
-# transport.tls.disableCustomTLSFirstByte = true
-
-# Heartbeat configure, it's not recommended to modify the default value.
-# The default value of heartbeatInterval is 10 and heartbeatTimeout is 90. Set negative value
-# to disable it.
-# transport.heartbeatInterval = 30
-# transport.heartbeatTimeout = 90
-
-# Specify a dns server, so frpc will use this instead of default one
-# dnsServer = "8.8.8.8"
-
-# Proxy names you want to start.
-# Default is empty, means all proxies.
-# start = ["ssh", "dns"]
-
-# Specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udpPacketSize = 1500
-
-# Additional metadatas for client.
-metadatas.var1 = "abc"
-metadatas.var2 = "123"
-
-# Include other config files for proxies.
-# includes = ["./confd/*.ini"]
-
-[[proxies]]
-# 'ssh' is the unique proxy name
-# If global user is not empty, it will be changed to {user}.{proxy} such as 'your_name.ssh'
-name = "ssh"
-type = "tcp"
-localIP = "127.0.0.1"
-localPort = 22
-# Limit bandwidth for this proxy, unit is KB and MB
-transport.bandwidthLimit = "1MB"
-# Where to limit bandwidth, can be 'client' or 'server', default is 'client'
-transport.bandwidthLimitMode = "client"
-# If true, traffic of this proxy will be encrypted, default is false
-transport.useEncryption = false
-# If true, traffic will be compressed
-transport.useCompression = false
-# Remote port listen by frps
-remotePort = 6001
-# frps will load balancing connections for proxies in same group
-loadBalancer.group = "test_group"
-# group should have same group key
-loadBalancer.groupKey = "123456"
-# Enable health check for the backend service, it supports 'tcp' and 'http' now.
-# frpc will connect local service's port to detect it's healthy status
-healthCheck.type = "tcp"
-# Health check connection timeout
-healthCheck.timeoutSeconds = 3
-# If continuous failed in 3 times, the proxy will be removed from frps
-healthCheck.maxFailed = 3
-# Every 10 seconds will do a health check
-healthCheck.intervalSeconds = 10
-# Additional meta info for each proxy. It will be passed to the server-side plugin for use.
-metadatas.var1 = "abc"
-metadatas.var2 = "123"
-# You can add some extra information to the proxy through annotations.
-# These annotations will be displayed on the frps dashboard.
-[proxies.annotations]
-key1 = "value1"
-"prefix/key2" = "value2"
-
-[[proxies]]
-name = "ssh_random"
-type = "tcp"
-localIP = "192.168.31.100"
-localPort = 22
-# If remotePort is 0, frps will assign a random port for you
-remotePort = 0
-
-[[proxies]]
-name = "dns"
-type = "udp"
-localIP = "114.114.114.114"
-localPort = 53
-remotePort = 6002
-
-# Resolve your domain names to [serverAddr] so you can use http://web01.yourdomain.com to browse web01 and http://web02.yourdomain.com to browse web02
-[[proxies]]
-name = "web01"
-type = "http"
-localIP = "127.0.0.1"
-localPort = 80
-# http username and password are safety certification for http protocol
-# if not set, you can access this customDomains without certification
-httpUser = "admin"
-httpPassword = "admin"
-# if domain for frps is frps.com, then you can access [web01] proxy by URL http://web01.frps.com
-subdomain = "web01"
-customDomains = ["web01.yourdomain.com"]
-# locations is only available for http type
-locations = ["/", "/pic"]
-# route requests to this service if http basic auto user is abc
-# routeByHTTPUser = abc
-hostHeaderRewrite = "example.com"
-requestHeaders.set.x-from-where = "frp"
-healthCheck.type = "http"
-# frpc will send a GET http request '/status' to local http service
-# http service is alive when it return 2xx http response code
-healthCheck.path = "/status"
-healthCheck.intervalSeconds = 10
-healthCheck.maxFailed = 3
-healthCheck.timeoutSeconds = 3
-
-[[proxies]]
-name = "web02"
-type = "https"
-localIP = "127.0.0.1"
-localPort = 8000
-subdomain = "web02"
-customDomains = ["web02.yourdomain.com"]
-# if not empty, frpc will use proxy protocol to transfer connection info to your local service
-# v1 or v2 or empty
-transport.proxyProtocolVersion = "v2"
-
-[[proxies]]
-name = "tcpmuxhttpconnect"
-type = "tcpmux"
-multiplexer = "httpconnect"
-localIP = "127.0.0.1"
-localPort = 10701
-customDomains = ["tunnel1"]
-# routeByHTTPUser = "user1"
-
-[[proxies]]
-name = "plugin_unix_domain_socket"
-type = "tcp"
-remotePort = 6003
-# if plugin is defined, localIP and localPort is useless
-# plugin will handle connections got from frps
-[proxies.plugin]
-type = "unix_domain_socket"
-unixPath = "/var/run/docker.sock"
-
-[[proxies]]
-name = "plugin_http_proxy"
-type = "tcp"
-remotePort = 6004
-[proxies.plugin]
-type = "http_proxy"
-httpUser = "abc"
-httpPassword = "abc"
-
-[[proxies]]
-name = "plugin_socks5"
-type = "tcp"
-remotePort = 6005
-[proxies.plugin]
-type = "socks5"
-username = "abc"
-password = "abc"
-
-[[proxies]]
-name = "plugin_static_file"
-type = "tcp"
-remotePort = 6006
-[proxies.plugin]
-type = "static_file"
-localPath = "/var/www/blog"
-stripPrefix = "static"
-httpUser = "abc"
-httpPassword = "abc"
-
-[[proxies]]
-name = "plugin_https2http"
-type = "https"
-customDomains = ["test.yourdomain.com"]
-[proxies.plugin]
-type = "https2http"
-localAddr = "127.0.0.1:80"
-crtPath = "./server.crt"
-keyPath = "./server.key"
-hostHeaderRewrite = "127.0.0.1"
-requestHeaders.set.x-from-where = "frp"
-
-[[proxies]]
-name = "plugin_https2https"
-type = "https"
-customDomains = ["test.yourdomain.com"]
-[proxies.plugin]
-type = "https2https"
-localAddr = "127.0.0.1:443"
-crtPath = "./server.crt"
-keyPath = "./server.key"
-hostHeaderRewrite = "127.0.0.1"
-requestHeaders.set.x-from-where = "frp"
-
-[[proxies]]
-name = "plugin_http2https"
-type = "http"
-customDomains = ["test.yourdomain.com"]
-[proxies.plugin]
-type = "http2https"
-localAddr = "127.0.0.1:443"
-hostHeaderRewrite = "127.0.0.1"
-requestHeaders.set.x-from-where = "frp"
-
-[[proxies]]
-name = "secret_tcp"
-# If the type is secret tcp, remotePort is useless
-# Who want to connect local port should deploy another frpc with stcp proxy and role is visitor
-type = "stcp"
-# secretKey is used for authentication for visitors
-secretKey = "abcdefg"
-localIP = "127.0.0.1"
-localPort = 22
-# If not empty, only visitors from specified users can connect.
-# Otherwise, visitors from same user can connect. '*' means allow all users.
-allowUsers = ["*"]
-
-[[proxies]]
-name = "p2p_tcp"
-type = "xtcp"
-secretKey = "abcdefg"
-localIP = "127.0.0.1"
-localPort = 22
-# If not empty, only visitors from specified users can connect.
-# Otherwise, visitors from same user can connect. '*' means allow all users.
-allowUsers = ["user1", "user2"]
-
-# frpc role visitor -> frps -> frpc role server
-[[visitors]]
-name = "secret_tcp_visitor"
-type = "stcp"
-# the server name you want to visitor
-serverName = "secret_tcp"
-secretKey = "abcdefg"
-# connect this address to visitor stcp server
-bindAddr = "127.0.0.1"
-# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from
-# other visitors. (This is not supported for SUDP now)
-bindPort = 9000
-
-[[visitors]]
-name = "p2p_tcp_visitor"
-type = "xtcp"
-# if the server user is not set, it defaults to the current user
-serverUser = "user1"
-serverName = "p2p_tcp"
-secretKey = "abcdefg"
-bindAddr = "127.0.0.1"
-# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from
-# other visitors. (This is not supported for SUDP now)
-bindPort = 9001
-# when automatic tunnel persistence is required, set it to true
-keepTunnelOpen = false
-# effective when keepTunnelOpen is set to true, the number of attempts to punch through per hour
-maxRetriesAnHour = 8
-minRetryInterval = 90
-# fallbackTo = "stcp_visitor"
-# fallbackTimeoutMs = 500
\ No newline at end of file
diff --git a/apps/frps/0.63.0/data/frps.ini b/apps/frps/0.63.0/data/frps.ini
deleted file mode 100644
index 229567a9..00000000
--- a/apps/frps/0.63.0/data/frps.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[common]
-bind_port = 7000
diff --git a/apps/frps/0.63.0/data/frps.toml b/apps/frps/0.63.0/data/frps.toml
deleted file mode 100644
index cc3f831d..00000000
--- a/apps/frps/0.63.0/data/frps.toml
+++ /dev/null
@@ -1,42 +0,0 @@
-# common
-bindAddr = "0.0.0.0"
-bindPort = 7000
-auth.method = "token"
-auth.token = "token123456"
-
-# udp by kcp
-kcpBindPort = 7000
-
-# udp by quic
-#quicBindPort = 7002
-#transport.quic.keepalivePeriod = 10
-#transport.quic.maxIdleTimeout = 30
-#transport.quic.maxIncomingStreams = 100000
-
-# web
-#vhostHTTPPort = 40480
-#vhostHTTPSPort = 40443
-#subDomainHost = "example.com"
-
-# tls
-transport.tls.force = true
-#tls.force = false # 版本0.52.0到0.55.0用这个
-#transport.tls.certFile = "/etc/frp/ssl/server.crt"
-#transport.tls.keyFile = "/etc/frp/ssl/server.key"
-#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt"
-
-# dashboard
-webServer.addr = "0.0.0.0"
-webServer.port = 7001
-webServer.user = "admin"
-webServer.password = "password123456"
-webServer.pprofEnable = false
-# webServer.tls.certFile = "server.crt"
-# webServer.tls.keyFile = "server.key"
-
-# setting
-transport.tcpMux = false
-enablePrometheus = true
-maxPortsPerClient = 0
-natholeAnalysisDataReserveHours = 168
-udpPacketSize = 1500
\ No newline at end of file
diff --git a/apps/frps/0.63.0/data/frps_full.ini b/apps/frps/0.63.0/data/frps_full.ini
deleted file mode 100644
index 2d5e08e1..00000000
--- a/apps/frps/0.63.0/data/frps_full.ini
+++ /dev/null
@@ -1,168 +0,0 @@
-# [common] is integral section
-[common]
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single "bind_addr" field, no need square brackets, like "bind_addr = ::".
-bind_addr = 0.0.0.0
-bind_port = 7000
-
-# udp port to help make udp hole to penetrate nat
-bind_udp_port = 7001
-
-# udp port used for kcp protocol, it can be same with 'bind_port'.
-# if not set, kcp is disabled in frps.
-kcp_bind_port = 7000
-
-# udp port used for quic protocol.
-# if not set, quic is disabled in frps.
-# quic_bind_port = 7002
-# quic protocol options
-# quic_keepalive_period = 10
-# quic_max_idle_timeout = 30
-# quic_max_incoming_streams = 100000
-
-# specify which address proxy will listen for, default value is same with bind_addr
-# proxy_bind_addr = 127.0.0.1
-
-# if you want to support virtual host, you must set the http port for listening (optional)
-# Note: http port and https port can be same with bind_port
-vhost_http_port = 80
-vhost_https_port = 443
-
-# response header timeout(seconds) for vhost http server, default is 60s
-# vhost_http_timeout = 60
-
-# tcpmux_httpconnect_port specifies the port that the server listens for TCP
-# HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP
-# requests on one single port. If it's not - it will listen on this value for
-# HTTP CONNECT requests. By default, this value is 0.
-# tcpmux_httpconnect_port = 1337
-
-# If tcpmux_passthrough is true, frps won't do any update on traffic.
-# tcpmux_passthrough = false
-
-# set dashboard_addr and dashboard_port to view dashboard of frps
-# dashboard_addr's default value is same with bind_addr
-# dashboard is available only if dashboard_port is set
-dashboard_addr = 0.0.0.0
-dashboard_port = 7500
-
-# dashboard user and passwd for basic auth protect
-dashboard_user = admin
-dashboard_pwd = admin
-
-# dashboard TLS mode
-dashboard_tls_mode = false
-# dashboard_tls_cert_file = server.crt
-# dashboard_tls_key_file = server.key
-
-# enable_prometheus will export prometheus metrics on {dashboard_addr}:{dashboard_port} in /metrics api.
-enable_prometheus = true
-
-# dashboard assets directory(only for debug mode)
-# assets_dir = ./static
-
-# console or real logFile path like ./frps.log
-log_file = ./frps.log
-
-# trace, debug, info, warn, error
-log_level = info
-
-log_max_days = 3
-
-# disable log colors when log_file is console, default is false
-disable_log_color = false
-
-# DetailedErrorsToClient defines whether to send the specific error (with debug info) to frpc. By default, this value is true.
-detailed_errors_to_client = true
-
-# authentication_method specifies what authentication method to use authenticate frpc with frps.
-# If "token" is specified - token will be read into login message.
-# If "oidc" is specified - OIDC (Open ID Connect) token will be issued using OIDC settings. By default, this value is "token".
-authentication_method = token
-
-# authenticate_heartbeats specifies whether to include authentication token in heartbeats sent to frps. By default, this value is false.
-authenticate_heartbeats = false
-
-# AuthenticateNewWorkConns specifies whether to include authentication token in new work connections sent to frps. By default, this value is false.
-authenticate_new_work_conns = false
-
-# auth token
-token = 12345678
-
-# oidc_issuer specifies the issuer to verify OIDC tokens with.
-# By default, this value is "".
-oidc_issuer =
-
-# oidc_audience specifies the audience OIDC tokens should contain when validated.
-# By default, this value is "".
-oidc_audience =
-
-# oidc_skip_expiry_check specifies whether to skip checking if the OIDC token is expired.
-# By default, this value is false.
-oidc_skip_expiry_check = false
-
-# oidc_skip_issuer_check specifies whether to skip checking if the OIDC token's issuer claim matches the issuer specified in OidcIssuer.
-# By default, this value is false.
-oidc_skip_issuer_check = false
-
-# heartbeat configure, it's not recommended to modify the default value
-# the default value of heartbeat_timeout is 90. Set negative value to disable it.
-# heartbeat_timeout = 90
-
-# user_conn_timeout configure, it's not recommended to modify the default value
-# the default value of user_conn_timeout is 10
-# user_conn_timeout = 10
-
-# only allow frpc to bind ports you list, if you set nothing, there won't be any limit
-allow_ports = 2000-3000,3001,3003,4000-50000
-
-# pool_count in each proxy will change to max_pool_count if they exceed the maximum value
-max_pool_count = 5
-
-# max ports can be used for each client, default value is 0 means no limit
-max_ports_per_client = 0
-
-# tls_only specifies whether to only accept TLS-encrypted connections. By default, the value is false.
-tls_only = false
-
-# tls_cert_file = server.crt
-# tls_key_file = server.key
-# tls_trusted_ca_file = ca.crt
-
-# if subdomain_host is not empty, you can set subdomain when type is http or https in frpc's configure file
-# when subdomain is test, the host used by routing is test.frps.com
-subdomain_host = frps.com
-
-# if tcp stream multiplexing is used, default is true
-# tcp_mux = true
-
-# specify keep alive interval for tcp mux.
-# only valid if tcp_mux is true.
-# tcp_mux_keepalive_interval = 60
-
-# tcp_keepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# tcp_keepalive = 7200
-
-# custom 404 page for HTTP requests
-# custom_404_page = /path/to/404.html
-
-# specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udp_packet_size = 1500
-
-# Enable golang pprof handlers in dashboard listener.
-# Dashboard port must be set first
-pprof_enable = false
-
-[plugin.user-manager]
-addr = 127.0.0.1:9000
-path = /handler
-ops = Login
-
-[plugin.port-manager]
-addr = 127.0.0.1:9001
-path = /handler
-ops = NewProxy
diff --git a/apps/frps/0.63.0/data/frps_full.toml b/apps/frps/0.63.0/data/frps_full.toml
deleted file mode 100644
index f739d4d4..00000000
--- a/apps/frps/0.63.0/data/frps_full.toml
+++ /dev/null
@@ -1,164 +0,0 @@
-# This configuration file is for reference only. Please do not use this configuration directly to run the program as it may have various issues.
-
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single "bindAddr" field, no need square brackets, like `bindAddr = "::"`.
-bindAddr = "0.0.0.0"
-bindPort = 7000
-
-# udp port used for kcp protocol, it can be same with 'bindPort'.
-# if not set, kcp is disabled in frps.
-kcpBindPort = 7000
-
-# udp port used for quic protocol.
-# if not set, quic is disabled in frps.
-# quicBindPort = 7002
-
-# Specify which address proxy will listen for, default value is same with bindAddr
-# proxyBindAddr = "127.0.0.1"
-
-# quic protocol options
-# transport.quic.keepalivePeriod = 10
-# transport.quic.maxIdleTimeout = 30
-# transport.quic.maxIncomingStreams = 100000
-
-# Heartbeat configure, it's not recommended to modify the default value
-# The default value of heartbeatTimeout is 90. Set negative value to disable it.
-# transport.heartbeatTimeout = 90
-
-# Pool count in each proxy will keep no more than maxPoolCount.
-transport.maxPoolCount = 5
-
-# If tcp stream multiplexing is used, default is true
-# transport.tcpMux = true
-
-# Specify keep alive interval for tcp mux.
-# only valid if tcpMux is true.
-# transport.tcpMuxKeepaliveInterval = 60
-
-# tcpKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# transport.tcpKeepalive = 7200
-
-# transport.tls.force specifies whether to only accept TLS-encrypted connections. By default, the value is false.
-transport.tls.force = false
-
-# transport.tls.certFile = "server.crt"
-# transport.tls.keyFile = "server.key"
-# transport.tls.trustedCaFile = "ca.crt"
-
-# If you want to support virtual host, you must set the http port for listening (optional)
-# Note: http port and https port can be same with bindPort
-vhostHTTPPort = 80
-vhostHTTPSPort = 443
-
-# Response header timeout(seconds) for vhost http server, default is 60s
-# vhostHTTPTimeout = 60
-
-# tcpmuxHTTPConnectPort specifies the port that the server listens for TCP
-# HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP
-# requests on one single port. If it's not - it will listen on this value for
-# HTTP CONNECT requests. By default, this value is 0.
-# tcpmuxHTTPConnectPort = 1337
-
-# If tcpmuxPassthrough is true, frps won't do any update on traffic.
-# tcpmuxPassthrough = false
-
-# Configure the web server to enable the dashboard for frps.
-# dashboard is available only if webServer.port is set.
-webServer.addr = "127.0.0.1"
-webServer.port = 7500
-webServer.user = "admin"
-webServer.password = "admin"
-# webServer.tls.certFile = "server.crt"
-# webServer.tls.keyFile = "server.key"
-# dashboard assets directory(only for debug mode)
-# webServer.assetsDir = "./static"
-
-# Enable golang pprof handlers in dashboard listener.
-# Dashboard port must be set first
-webServer.pprofEnable = false
-
-# enablePrometheus will export prometheus metrics on webServer in /metrics api.
-enablePrometheus = true
-
-# console or real logFile path like ./frps.log
-log.to = "./frps.log"
-# trace, debug, info, warn, error
-log.level = "info"
-log.maxDays = 3
-# disable log colors when log.to is console, default is false
-log.disablePrintColor = false
-
-# DetailedErrorsToClient defines whether to send the specific error (with debug info) to frpc. By default, this value is true.
-detailedErrorsToClient = true
-
-# auth.method specifies what authentication method to use authenticate frpc with frps.
-# If "token" is specified - token will be read into login message.
-# If "oidc" is specified - OIDC (Open ID Connect) token will be issued using OIDC settings. By default, this value is "token".
-auth.method = "token"
-
-# auth.additionalScopes specifies additional scopes to include authentication information.
-# Optional values are HeartBeats, NewWorkConns.
-# auth.additionalScopes = ["HeartBeats", "NewWorkConns"]
-
-# auth token
-auth.token = "12345678"
-
-# oidc issuer specifies the issuer to verify OIDC tokens with.
-auth.oidc.issuer = ""
-# oidc audience specifies the audience OIDC tokens should contain when validated.
-auth.oidc.audience = ""
-# oidc skipExpiryCheck specifies whether to skip checking if the OIDC token is expired.
-auth.oidc.skipExpiryCheck = false
-# oidc skipIssuerCheck specifies whether to skip checking if the OIDC token's issuer claim matches the issuer specified in OidcIssuer.
-auth.oidc.skipIssuerCheck = false
-
-# userConnTimeout specifies the maximum time to wait for a work connection.
-# userConnTimeout = 10
-
-# Only allow frpc to bind ports you list. By default, there won't be any limit.
-allowPorts = [
- { start = 2000, end = 3000 },
- { single = 3001 },
- { single = 3003 },
- { start = 4000, end = 50000 }
-]
-
-# Max ports can be used for each client, default value is 0 means no limit
-maxPortsPerClient = 0
-
-# If subDomainHost is not empty, you can set subdomain when type is http or https in frpc's configure file
-# When subdomain is test, the host used by routing is test.frps.com
-subDomainHost = "frps.com"
-
-# custom 404 page for HTTP requests
-# custom404Page = "/path/to/404.html"
-
-# specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udpPacketSize = 1500
-
-# Retention time for NAT hole punching strategy data.
-natholeAnalysisDataReserveHours = 168
-
-# ssh tunnel gateway
-# If you want to enable this feature, the bindPort parameter is required, while others are optional.
-# By default, this feature is disabled. It will be enabled if bindPort is greater than 0.
-# sshTunnelGateway.bindPort = 2200
-# sshTunnelGateway.privateKeyFile = "/home/frp-user/.ssh/id_rsa"
-# sshTunnelGateway.autoGenPrivateKeyPath = ""
-# sshTunnelGateway.authorizedKeysFile = "/home/frp-user/.ssh/authorized_keys"
-
-[[httpPlugins]]
-name = "user-manager"
-addr = "127.0.0.1:9000"
-path = "/handler"
-ops = ["Login"]
-
-[[httpPlugins]]
-name = "port-manager"
-addr = "127.0.0.1:9001"
-path = "/handler"
-ops = ["NewProxy"]
\ No newline at end of file
diff --git a/apps/frps/0.63.0/docker-compose.yml b/apps/frps/0.63.0/docker-compose.yml
deleted file mode 100644
index 3385cb6f..00000000
--- a/apps/frps/0.63.0/docker-compose.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-services:
- frps:
- container_name: ${CONTAINER_NAME}
- restart: always
- network_mode: "host"
- volumes:
- #- "${CONFIG_FILE_PATH}:/etc/frp/frps.ini" #截止5.1.3版本使用ini
- - "${CONFIG_FILE_PATH}:/etc/frp/frps.toml"
- - "${SSL_FOLDER_PATH}:/etc/frp/ssl"
- image: "snowdreamtech/frps:0.63.0"
- labels:
- createdBy: "Apps"
diff --git a/apps/frps/README.md b/apps/frps/README.md
deleted file mode 100644
index 9e035d0e..00000000
--- a/apps/frps/README.md
+++ /dev/null
@@ -1,1152 +0,0 @@
-
-# frp
-
-[](https://circleci.com/gh/fatedier/frp)
-[](https://github.com/fatedier/frp/releases)
-
-[README](README.md) | [中文文档](README_zh.md)
-
-
-
-
-
-## What is frp?
-
-frp is a fast reverse proxy that allows you to expose a local server located behind a NAT or firewall to the Internet. It currently supports **TCP** and **UDP**, as well as **HTTP** and **HTTPS** protocols, enabling requests to be forwarded to internal services via domain name.
-
-frp also offers a P2P connect mode.
-
-## Table of Contents
-
-
-
-- [frp](#frp)
- - [What is frp?](#what-is-frp)
- - [Table of Contents](#table-of-contents)
- - [Development Status](#development-status)
- - [Architecture](#architecture)
- - [Example Usage](#example-usage)
- - [Access your computer in a LAN network via SSH](#access-your-computer-in-a-lan-network-via-ssh)
- - [Accessing Internal Web Services with Custom Domains in LAN](#accessing-internal-web-services-with-custom-domains-in-lan)
- - [Forward DNS query requests](#forward-dns-query-requests)
- - [Forward Unix Domain Socket](#forward-unix-domain-socket)
- - [Expose a simple HTTP file server](#expose-a-simple-http-file-server)
- - [Enable HTTPS for a local HTTP(S) service](#enable-https-for-a-local-https-service)
- - [Expose your service privately](#expose-your-service-privately)
- - [P2P Mode](#p2p-mode)
- - [Features](#features)
- - [Configuration Files](#configuration-files)
- - [Using Environment Variables](#using-environment-variables)
- - [Split Configures Into Different Files](#split-configures-into-different-files)
- - [Dashboard](#dashboard)
- - [Admin UI](#admin-ui)
- - [Monitor](#monitor)
- - [Prometheus](#prometheus)
- - [Authenticating the Client](#authenticating-the-client)
- - [Token Authentication](#token-authentication)
- - [OIDC Authentication](#oidc-authentication)
- - [Encryption and Compression](#encryption-and-compression)
- - [TLS](#tls)
- - [Hot-Reloading frpc configuration](#hot-reloading-frpc-configuration)
- - [Get proxy status from client](#get-proxy-status-from-client)
- - [Only allowing certain ports on the server](#only-allowing-certain-ports-on-the-server)
- - [Port Reuse](#port-reuse)
- - [Bandwidth Limit](#bandwidth-limit)
- - [For Each Proxy](#for-each-proxy)
- - [TCP Stream Multiplexing](#tcp-stream-multiplexing)
- - [Support KCP Protocol](#support-kcp-protocol)
- - [Support QUIC Protocol](#support-quic-protocol)
- - [Connection Pooling](#connection-pooling)
- - [Load balancing](#load-balancing)
- - [Service Health Check](#service-health-check)
- - [Rewriting the HTTP Host Header](#rewriting-the-http-host-header)
- - [Setting other HTTP Headers](#setting-other-http-headers)
- - [Get Real IP](#get-real-ip)
- - [HTTP X-Forwarded-For](#http-x-forwarded-for)
- - [Proxy Protocol](#proxy-protocol)
- - [Require HTTP Basic Auth (Password) for Web Services](#require-http-basic-auth-password-for-web-services)
- - [Custom Subdomain Names](#custom-subdomain-names)
- - [URL Routing](#url-routing)
- - [TCP Port Multiplexing](#tcp-port-multiplexing)
- - [Connecting to frps via HTTP PROXY](#connecting-to-frps-via-http-proxy)
- - [Range ports mapping](#range-ports-mapping)
- - [Client Plugins](#client-plugins)
- - [Server Manage Plugins](#server-manage-plugins)
- - [Development Plan](#development-plan)
- - [Contributing](#contributing)
- - [Donation](#donation)
- - [GitHub Sponsors](#github-sponsors)
- - [PayPal](#paypal)
-
-
-
-## Development Status
-
-frp is currently under development. You can try the latest release version in the `master` branch, or use the `dev` branch to access the version currently in development.
-
-We are currently working on version 2 and attempting to perform some code refactoring and improvements. However, please note that it will not be compatible with version 1.
-
-We will transition from version 0 to version 1 at the appropriate time and will only accept bug fixes and improvements, rather than big feature requests.
-
-## Architecture
-
-
-
-## Example Usage
-
-To begin, download the latest program for your operating system and architecture from the [Release](https://github.com/fatedier/frp/releases) page.
-
-Next, place the `frps` binary and `frps.ini` configuration file on Server A, which has a public IP address.
-
-Finally, place the `frpc` binary and `frpc.ini` configuration file on Server B, which is located on a LAN that cannot be directly accessed from the public internet.
-
-### Access your computer in a LAN network via SSH
-
-1. Modify `frps.ini` on server A by setting the `bind_port` for frp clients to connect to:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- ```
-
-2. Start `frps` on server A:
-
- `./frps -c ./frps.ini`
-
-3. Modify `frpc.ini` on server B and set the `server_addr` field to the public IP address of your frps server:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [ssh]
- type = tcp
- local_ip = 127.0.0.1
- local_port = 22
- remote_port = 6000
- ```
-
-Note that the `local_port` (listened on the client) and `remote_port` (exposed on the server) are used for traffic going in and out of the frp system, while the `server_port` is used for communication between frps and frpc.
-
-4. Start `frpc` on server B:
-
- `./frpc -c ./frpc.ini`
-
-5. To access server B from another machine through server A via SSH (assuming the username is `test`), use the following command:
-
- `ssh -oPort=6000 test@x.x.x.x`
-
-### Accessing Internal Web Services with Custom Domains in LAN
-
-Sometimes we need to expose a local web service behind a NAT network to others for testing purposes with our own domain name.
-
-Unfortunately, we cannot resolve a domain name to a local IP. However, we can use frp to expose an HTTP(S) service.
-
-1. Modify `frps.ini` and set the HTTP port for vhost to 8080:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- vhost_http_port = 8080
- ```
-
-2. Start `frps`:
-
- `./frps -c ./frps.ini`
-
-3. Modify `frpc.ini` and set `server_addr` to the IP address of the remote frps server. Specify the `local_port` of your web service:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [web]
- type = http
- local_port = 80
- custom_domains = www.example.com
- ```
-
-4. Start `frpc`:
-
- `./frpc -c ./frpc.ini`
-
-5. Map the A record of `www.example.com` to either the public IP of the remote frps server or a CNAME record pointing to your original domain.
-
-6. Visit your local web service using url `http://www.example.com:8080`.
-
-### Forward DNS query requests
-
-1. Modify `frps.ini`:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- ```
-
-2. Start `frps`:
-
- `./frps -c ./frps.ini`
-
-3. Modify `frpc.ini` and set `server_addr` to the IP address of the remote frps server. Forward DNS query requests to the Google Public DNS server `8.8.8.8:53`:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [dns]
- type = udp
- local_ip = 8.8.8.8
- local_port = 53
- remote_port = 6000
- ```
-
-4. Start frpc:
-
- `./frpc -c ./frpc.ini`
-
-5. Test DNS resolution using the `dig` command:
-
- `dig @x.x.x.x -p 6000 www.google.com`
-
-### Forward Unix Domain Socket
-
-Expose a Unix domain socket (e.g. the Docker daemon socket) as TCP.
-
-Configure `frps` as above.
-
-1. Start `frpc` with the following configuration:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [unix_domain_socket]
- type = tcp
- remote_port = 6000
- plugin = unix_domain_socket
- plugin_unix_path = /var/run/docker.sock
- ```
-
-2. Test the configuration by getting the docker version using `curl`:
-
- `curl http://x.x.x.x:6000/version`
-
-### Expose a simple HTTP file server
-
-Expose a simple HTTP file server to access files stored in the LAN from the public Internet.
-
-Configure `frps` as described above, then:
-
-1. Start `frpc` with the following configuration:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [test_static_file]
- type = tcp
- remote_port = 6000
- plugin = static_file
- plugin_local_path = /tmp/files
- plugin_strip_prefix = static
- plugin_http_user = abc
- plugin_http_passwd = abc
- ```
-
-2. Visit `http://x.x.x.x:6000/static/` from your browser and specify correct username and password to view files in `/tmp/files` on the `frpc` machine.
-
-### Enable HTTPS for a local HTTP(S) service
-
-You may substitute `https2https` for the plugin, and point the `plugin_local_addr` to a HTTPS endpoint.
-
-1. Start `frpc` with the following configuration:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [test_https2http]
- type = https
- custom_domains = test.example.com
-
- plugin = https2http
- plugin_local_addr = 127.0.0.1:80
- plugin_crt_path = ./server.crt
- plugin_key_path = ./server.key
- plugin_host_header_rewrite = 127.0.0.1
- plugin_header_X-From-Where = frp
- ```
-
-2. Visit `https://test.example.com`.
-
-### Expose your service privately
-
-To mitigate risks associated with exposing certain services directly to the public network, STCP (Secret TCP) mode requires a preshared key to be used for access to the service from other clients.
-
-Configure `frps` same as above.
-
-1. Start `frpc` on machine B with the following config. This example is for exposing the SSH service (port 22), and note the `sk` field for the preshared key, and that the `remote_port` field is removed here:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [secret_ssh]
- type = stcp
- sk = abcdefg
- local_ip = 127.0.0.1
- local_port = 22
- ```
-
-2. Start another `frpc` (typically on another machine C) with the following config to access the SSH service with a security key (`sk` field):
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [secret_ssh_visitor]
- type = stcp
- role = visitor
- server_name = secret_ssh
- sk = abcdefg
- bind_addr = 127.0.0.1
- bind_port = 6000
- ```
-
-3. On machine C, connect to SSH on machine B, using this command:
-
- `ssh -oPort=6000 127.0.0.1`
-
-### P2P Mode
-
-**xtcp** is designed to transmit large amounts of data directly between clients. A frps server is still needed, as P2P here only refers to the actual data transmission.
-
-Note that it may not work with all types of NAT devices. You might want to fallback to stcp if xtcp doesn't work.
-
-1. In `frps.ini` configure a UDP port for xtcp:
-
- ```ini
- # frps.ini
- bind_udp_port = 7001
- ```
-
-2. Start `frpc` on machine B, and expose the SSH port. Note that the `remote_port` field is removed:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [p2p_ssh]
- type = xtcp
- sk = abcdefg
- local_ip = 127.0.0.1
- local_port = 22
- ```
-
-3. Start another `frpc` (typically on another machine C) with the configuration to connect to SSH using P2P mode:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- server_port = 7000
-
- [p2p_ssh_visitor]
- type = xtcp
- role = visitor
- server_name = p2p_ssh
- sk = abcdefg
- bind_addr = 127.0.0.1
- bind_port = 6000
- ```
-
-4. On machine C, connect to SSH on machine B, using this command:
-
- `ssh -oPort=6000 127.0.0.1`
-
-## Features
-
-### Configuration Files
-
-Read the full example configuration files to find out even more features not described here.
-
-[Full configuration file for frps (Server)](./conf/frps_full.ini)
-
-[Full configuration file for frpc (Client)](./conf/frpc_full.ini)
-
-### Using Environment Variables
-
-Environment variables can be referenced in the configuration file, using Go's standard format:
-
-```ini
-# frpc.ini
-[common]
-server_addr = {{ .Envs.FRP_SERVER_ADDR }}
-server_port = 7000
-
-[ssh]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-remote_port = {{ .Envs.FRP_SSH_REMOTE_PORT }}
-```
-
-With the config above, variables can be passed into `frpc` program like this:
-
-```
-export FRP_SERVER_ADDR="x.x.x.x"
-export FRP_SSH_REMOTE_PORT="6000"
-./frpc -c ./frpc.ini
-```
-
-`frpc` will render configuration file template using OS environment variables. Remember to prefix your reference with `.Envs`.
-
-### Split Configures Into Different Files
-
-You can split multiple proxy configs into different files and include them in the main file.
-
-```ini
-# frpc.ini
-[common]
-server_addr = x.x.x.x
-server_port = 7000
-includes=./confd/*.ini
-```
-
-```ini
-# ./confd/test.ini
-[ssh]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-remote_port = 6000
-```
-
-### Dashboard
-
-Check frp's status and proxies' statistics information by Dashboard.
-
-Configure a port for dashboard to enable this feature:
-
-```ini
-[common]
-dashboard_port = 7500
-# dashboard's username and password are both optional
-dashboard_user = admin
-dashboard_pwd = admin
-```
-
-Then visit `http://[server_addr]:7500` to see the dashboard, with username and password both being `admin`.
-
-Additionally, you can use HTTPS port by using your domains wildcard or normal SSL certificate:
-
-```ini
-[common]
-dashboard_port = 7500
-# dashboard's username and password are both optional
-dashboard_user = admin
-dashboard_pwd = admin
-dashboard_tls_mode = true
-dashboard_tls_cert_file = server.crt
-dashboard_tls_key_file = server.key
-```
-
-Then visit `https://[server_addr]:7500` to see the dashboard in secure HTTPS connection, with username and password both being `admin`.
-
-
-
-### Admin UI
-
-The Admin UI helps you check and manage frpc's configuration.
-
-Configure an address for admin UI to enable this feature:
-
-```ini
-[common]
-admin_addr = 127.0.0.1
-admin_port = 7400
-admin_user = admin
-admin_pwd = admin
-```
-
-Then visit `http://127.0.0.1:7400` to see admin UI, with username and password both being `admin`.
-
-### Monitor
-
-When dashboard is enabled, frps will save monitor data in cache. It will be cleared after process restart.
-
-Prometheus is also supported.
-
-#### Prometheus
-
-Enable dashboard first, then configure `enable_prometheus = true` in `frps.ini`.
-
-`http://{dashboard_addr}/metrics` will provide prometheus monitor data.
-
-### Authenticating the Client
-
-There are 2 authentication methods to authenticate frpc with frps.
-
-You can decide which one to use by configuring `authentication_method` under `[common]` in `frpc.ini` and `frps.ini`.
-
-Configuring `authenticate_heartbeats = true` under `[common]` will use the configured authentication method to add and validate authentication on every heartbeat between frpc and frps.
-
-Configuring `authenticate_new_work_conns = true` under `[common]` will do the same for every new work connection between frpc and frps.
-
-#### Token Authentication
-
-When specifying `authentication_method = token` under `[common]` in `frpc.ini` and `frps.ini` - token based authentication will be used.
-
-Make sure to specify the same `token` in the `[common]` section in `frps.ini` and `frpc.ini` for frpc to pass frps validation
-
-#### OIDC Authentication
-
-When specifying `authentication_method = oidc` under `[common]` in `frpc.ini` and `frps.ini` - OIDC based authentication will be used.
-
-OIDC stands for OpenID Connect, and the flow used is called [Client Credentials Grant](https://tools.ietf.org/html/rfc6749#section-4.4).
-
-To use this authentication type - configure `frpc.ini` and `frps.ini` as follows:
-
-```ini
-# frps.ini
-[common]
-authentication_method = oidc
-oidc_issuer = https://example-oidc-issuer.com/
-oidc_audience = https://oidc-audience.com/.default
-```
-
-```ini
-# frpc.ini
-[common]
-authentication_method = oidc
-oidc_client_id = 98692467-37de-409a-9fac-bb2585826f18 # Replace with OIDC client ID
-oidc_client_secret = oidc_secret
-oidc_audience = https://oidc-audience.com/.default
-oidc_token_endpoint_url = https://example-oidc-endpoint.com/oauth2/v2.0/token
-```
-
-### Encryption and Compression
-
-The features are off by default. You can turn on encryption and/or compression:
-
-```ini
-# frpc.ini
-[ssh]
-type = tcp
-local_port = 22
-remote_port = 6000
-use_encryption = true
-use_compression = true
-```
-
-#### TLS
-
-frp supports the TLS protocol between `frpc` and `frps` since v0.25.0.
-
-For port multiplexing, frp sends a first byte `0x17` to dial a TLS connection.
-
-Configure `tls_enable = true` in the `[common]` section to `frpc.ini` to enable this feature.
-
-To **enforce** `frps` to only accept TLS connections - configure `tls_only = true` in the `[common]` section in `frps.ini`. **This is optional.**
-
-**`frpc` TLS settings (under the `[common]` section):**
-```ini
-tls_enable = true
-tls_cert_file = certificate.crt
-tls_key_file = certificate.key
-tls_trusted_ca_file = ca.crt
-```
-
-**`frps` TLS settings (under the `[common]` section):**
-```ini
-tls_only = true
-tls_enable = true
-tls_cert_file = certificate.crt
-tls_key_file = certificate.key
-tls_trusted_ca_file = ca.crt
-```
-
-You will need **a root CA cert** and **at least one SSL/TLS certificate**. It **can** be self-signed or regular (such as Let's Encrypt or another SSL/TLS certificate provider).
-
-If you using `frp` via IP address and not hostname, make sure to set the appropriate IP address in the Subject Alternative Name (SAN) area when generating SSL/TLS Certificates.
-
-Given an example:
-
-* Prepare openssl config file. It exists at `/etc/pki/tls/openssl.cnf` in Linux System and `/System/Library/OpenSSL/openssl.cnf` in MacOS, and you can copy it to current path, like `cp /etc/pki/tls/openssl.cnf ./my-openssl.cnf`. If not, you can build it by yourself, like:
-```
-cat > my-openssl.cnf << EOF
-[ ca ]
-default_ca = CA_default
-[ CA_default ]
-x509_extensions = usr_cert
-[ req ]
-default_bits = 2048
-default_md = sha256
-default_keyfile = privkey.pem
-distinguished_name = req_distinguished_name
-attributes = req_attributes
-x509_extensions = v3_ca
-string_mask = utf8only
-[ req_distinguished_name ]
-[ req_attributes ]
-[ usr_cert ]
-basicConstraints = CA:FALSE
-nsComment = "OpenSSL Generated Certificate"
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer
-[ v3_ca ]
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer
-basicConstraints = CA:true
-EOF
-```
-
-* build ca certificates:
-```
-openssl genrsa -out ca.key 2048
-openssl req -x509 -new -nodes -key ca.key -subj "/CN=example.ca.com" -days 5000 -out ca.crt
-```
-
-* build frps certificates:
-```
-openssl genrsa -out server.key 2048
-
-openssl req -new -sha256 -key server.key \
- -subj "/C=XX/ST=DEFAULT/L=DEFAULT/O=DEFAULT/CN=server.com" \
- -reqexts SAN \
- -config <(cat my-openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:localhost,IP:127.0.0.1,DNS:example.server.com")) \
- -out server.csr
-
-openssl x509 -req -days 365 -sha256 \
- -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
- -extfile <(printf "subjectAltName=DNS:localhost,IP:127.0.0.1,DNS:example.server.com") \
- -out server.crt
-```
-
-* build frpc certificates:
-```
-openssl genrsa -out client.key 2048
-openssl req -new -sha256 -key client.key \
- -subj "/C=XX/ST=DEFAULT/L=DEFAULT/O=DEFAULT/CN=client.com" \
- -reqexts SAN \
- -config <(cat my-openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:client.com,DNS:example.client.com")) \
- -out client.csr
-
-openssl x509 -req -days 365 -sha256 \
- -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
- -extfile <(printf "subjectAltName=DNS:client.com,DNS:example.client.com") \
- -out client.crt
-```
-
-### Hot-Reloading frpc configuration
-
-The `admin_addr` and `admin_port` fields are required for enabling HTTP API:
-
-```ini
-# frpc.ini
-[common]
-admin_addr = 127.0.0.1
-admin_port = 7400
-```
-
-Then run command `frpc reload -c ./frpc.ini` and wait for about 10 seconds to let `frpc` create or update or remove proxies.
-
-**Note that parameters in [common] section won't be modified except 'start'.**
-
-You can run command `frpc verify -c ./frpc.ini` before reloading to check if there are config errors.
-
-### Get proxy status from client
-
-Use `frpc status -c ./frpc.ini` to get status of all proxies. The `admin_addr` and `admin_port` fields are required for enabling HTTP API.
-
-### Only allowing certain ports on the server
-
-`allow_ports` in `frps.ini` is used to avoid abuse of ports:
-
-```ini
-# frps.ini
-[common]
-allow_ports = 2000-3000,3001,3003,4000-50000
-```
-
-`allow_ports` consists of specific ports or port ranges (lowest port number, dash `-`, highest port number), separated by comma `,`.
-
-### Port Reuse
-
-`vhost_http_port` and `vhost_https_port` in frps can use same port with `bind_port`. frps will detect the connection's protocol and handle it correspondingly.
-
-We would like to try to allow multiple proxies bind a same remote port with different protocols in the future.
-
-### Bandwidth Limit
-
-#### For Each Proxy
-
-```ini
-# frpc.ini
-[ssh]
-type = tcp
-local_port = 22
-remote_port = 6000
-bandwidth_limit = 1MB
-```
-
-Set `bandwidth_limit` in each proxy's configure to enable this feature. Supported units are `MB` and `KB`.
-
-Set `bandwidth_limit_mode` to `client` or `server` to limit bandwidth on the client or server side. Default is `client`.
-
-### TCP Stream Multiplexing
-
-frp supports tcp stream multiplexing since v0.10.0 like HTTP2 Multiplexing, in which case all logic connections to the same frpc are multiplexed into the same TCP connection.
-
-You can disable this feature by modify `frps.ini` and `frpc.ini`:
-
-```ini
-# frps.ini and frpc.ini, must be same
-[common]
-tcp_mux = false
-```
-
-### Support KCP Protocol
-
-KCP is a fast and reliable protocol that can achieve the transmission effect of a reduction of the average latency by 30% to 40% and reduction of the maximum delay by a factor of three, at the cost of 10% to 20% more bandwidth wasted than TCP.
-
-KCP mode uses UDP as the underlying transport. Using KCP in frp:
-
-1. Enable KCP in frps:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- # Specify a UDP port for KCP.
- kcp_bind_port = 7000
- ```
-
- The `kcp_bind_port` number can be the same number as `bind_port`, since `bind_port` field specifies a TCP port.
-
-2. Configure `frpc.ini` to use KCP to connect to frps:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- # Same as the 'kcp_bind_port' in frps.ini
- server_port = 7000
- protocol = kcp
- ```
-
-### Support QUIC Protocol
-
-QUIC is a new multiplexed transport built on top of UDP.
-
-Using QUIC in frp:
-
-1. Enable QUIC in frps:
-
- ```ini
- # frps.ini
- [common]
- bind_port = 7000
- # Specify a UDP port for QUIC.
- quic_bind_port = 7000
- ```
-
- The `quic_bind_port` number can be the same number as `bind_port`, since `bind_port` field specifies a TCP port.
-
-2. Configure `frpc.ini` to use QUIC to connect to frps:
-
- ```ini
- # frpc.ini
- [common]
- server_addr = x.x.x.x
- # Same as the 'quic_bind_port' in frps.ini
- server_port = 7000
- protocol = quic
- ```
-
-### Connection Pooling
-
-By default, frps creates a new frpc connection to the backend service upon a user request. With connection pooling, frps keeps a certain number of pre-established connections, reducing the time needed to establish a connection.
-
-This feature is suitable for a large number of short connections.
-
-1. Configure the limit of pool count each proxy can use in `frps.ini`:
-
- ```ini
- # frps.ini
- [common]
- max_pool_count = 5
- ```
-
-2. Enable and specify the number of connection pool:
-
- ```ini
- # frpc.ini
- [common]
- pool_count = 1
- ```
-
-### Load balancing
-
-Load balancing is supported by `group`.
-
-This feature is only available for types `tcp`, `http`, `tcpmux` now.
-
-```ini
-# frpc.ini
-[test1]
-type = tcp
-local_port = 8080
-remote_port = 80
-group = web
-group_key = 123
-
-[test2]
-type = tcp
-local_port = 8081
-remote_port = 80
-group = web
-group_key = 123
-```
-
-`group_key` is used for authentication.
-
-Connections to port 80 will be dispatched to proxies in the same group randomly.
-
-For type `tcp`, `remote_port` in the same group should be the same.
-
-For type `http`, `custom_domains`, `subdomain`, `locations` should be the same.
-
-### Service Health Check
-
-Health check feature can help you achieve high availability with load balancing.
-
-Add `health_check_type = tcp` or `health_check_type = http` to enable health check.
-
-With health check type **tcp**, the service port will be pinged (TCPing):
-
-```ini
-# frpc.ini
-[test1]
-type = tcp
-local_port = 22
-remote_port = 6000
-# Enable TCP health check
-health_check_type = tcp
-# TCPing timeout seconds
-health_check_timeout_s = 3
-# If health check failed 3 times in a row, the proxy will be removed from frps
-health_check_max_failed = 3
-# A health check every 10 seconds
-health_check_interval_s = 10
-```
-
-With health check type **http**, an HTTP request will be sent to the service and an HTTP 2xx OK response is expected:
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_ip = 127.0.0.1
-local_port = 80
-custom_domains = test.example.com
-# Enable HTTP health check
-health_check_type = http
-# frpc will send a GET request to '/status'
-# and expect an HTTP 2xx OK response
-health_check_url = /status
-health_check_timeout_s = 3
-health_check_max_failed = 3
-health_check_interval_s = 10
-```
-
-### Rewriting the HTTP Host Header
-
-By default frp does not modify the tunneled HTTP requests at all as it's a byte-for-byte copy.
-
-However, speaking of web servers and HTTP requests, your web server might rely on the `Host` HTTP header to determine the website to be accessed. frp can rewrite the `Host` header when forwarding the HTTP requests, with the `host_header_rewrite` field:
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_port = 80
-custom_domains = test.example.com
-host_header_rewrite = dev.example.com
-```
-
-The HTTP request will have the `Host` header rewritten to `Host: dev.example.com` when it reaches the actual web server, although the request from the browser probably has `Host: test.example.com`.
-
-### Setting other HTTP Headers
-
-Similar to `Host`, You can override other HTTP request headers with proxy type `http`.
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_port = 80
-custom_domains = test.example.com
-host_header_rewrite = dev.example.com
-header_X-From-Where = frp
-```
-
-Note that parameter(s) prefixed with `header_` will be added to HTTP request headers.
-
-In this example, it will set header `X-From-Where: frp` in the HTTP request.
-
-### Get Real IP
-
-#### HTTP X-Forwarded-For
-
-This feature is for http proxy only.
-
-You can get user's real IP from HTTP request headers `X-Forwarded-For`.
-
-#### Proxy Protocol
-
-frp supports Proxy Protocol to send user's real IP to local services. It support all types except UDP.
-
-Here is an example for https service:
-
-```ini
-# frpc.ini
-[web]
-type = https
-local_port = 443
-custom_domains = test.example.com
-
-# now v1 and v2 are supported
-proxy_protocol_version = v2
-```
-
-You can enable Proxy Protocol support in nginx to expose user's real IP in HTTP header `X-Real-IP`, and then read `X-Real-IP` header in your web service for the real IP.
-
-### Require HTTP Basic Auth (Password) for Web Services
-
-Anyone who can guess your tunnel URL can access your local web server unless you protect it with a password.
-
-This enforces HTTP Basic Auth on all requests with the username and password specified in frpc's configure file.
-
-It can only be enabled when proxy type is http.
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_port = 80
-custom_domains = test.example.com
-http_user = abc
-http_pwd = abc
-```
-
-Visit `http://test.example.com` in the browser and now you are prompted to enter the username and password.
-
-### Custom Subdomain Names
-
-It is convenient to use `subdomain` configure for http and https types when many people share one frps server.
-
-```ini
-# frps.ini
-subdomain_host = frps.com
-```
-
-Resolve `*.frps.com` to the frps server's IP. This is usually called a Wildcard DNS record.
-
-```ini
-# frpc.ini
-[web]
-type = http
-local_port = 80
-subdomain = test
-```
-
-Now you can visit your web service on `test.frps.com`.
-
-Note that if `subdomain_host` is not empty, `custom_domains` should not be the subdomain of `subdomain_host`.
-
-### URL Routing
-
-frp supports forwarding HTTP requests to different backend web services by url routing.
-
-`locations` specifies the prefix of URL used for routing. frps first searches for the most specific prefix location given by literal strings regardless of the listed order.
-
-```ini
-# frpc.ini
-[web01]
-type = http
-local_port = 80
-custom_domains = web.example.com
-locations = /
-
-[web02]
-type = http
-local_port = 81
-custom_domains = web.example.com
-locations = /news,/about
-```
-
-HTTP requests with URL prefix `/news` or `/about` will be forwarded to **web02** and other requests to **web01**.
-
-### TCP Port Multiplexing
-
-frp supports receiving TCP sockets directed to different proxies on a single port on frps, similar to `vhost_http_port` and `vhost_https_port`.
-
-The only supported TCP port multiplexing method available at the moment is `httpconnect` - HTTP CONNECT tunnel.
-
-When setting `tcpmux_httpconnect_port` to anything other than 0 in frps under `[common]`, frps will listen on this port for HTTP CONNECT requests.
-
-The host of the HTTP CONNECT request will be used to match the proxy in frps. Proxy hosts can be configured in frpc by configuring `custom_domain` and / or `subdomain` under `type = tcpmux` proxies, when `multiplexer = httpconnect`.
-
-For example:
-
-```ini
-# frps.ini
-[common]
-bind_port = 7000
-tcpmux_httpconnect_port = 1337
-```
-
-```ini
-# frpc.ini
-[common]
-server_addr = x.x.x.x
-server_port = 7000
-
-[proxy1]
-type = tcpmux
-multiplexer = httpconnect
-custom_domains = test1
-local_port = 80
-
-[proxy2]
-type = tcpmux
-multiplexer = httpconnect
-custom_domains = test2
-local_port = 8080
-```
-
-In the above configuration - frps can be contacted on port 1337 with a HTTP CONNECT header such as:
-
-```
-CONNECT test1 HTTP/1.1\r\n\r\n
-```
-and the connection will be routed to `proxy1`.
-
-### Connecting to frps via HTTP PROXY
-
-frpc can connect to frps using HTTP proxy if you set OS environment variable `HTTP_PROXY`, or if `http_proxy` is set in frpc.ini file.
-
-It only works when protocol is tcp.
-
-```ini
-# frpc.ini
-[common]
-server_addr = x.x.x.x
-server_port = 7000
-http_proxy = http://user:pwd@192.168.1.128:8080
-```
-
-### Range ports mapping
-
-Proxy with names that start with `range:` will support mapping range ports.
-
-```ini
-# frpc.ini
-[range:test_tcp]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 6000-6006,6007
-remote_port = 6000-6006,6007
-```
-
-frpc will generate 8 proxies like `test_tcp_0`, `test_tcp_1`, ..., `test_tcp_7`.
-
-### Client Plugins
-
-frpc only forwards requests to local TCP or UDP ports by default.
-
-Plugins are used for providing rich features. There are built-in plugins such as `unix_domain_socket`, `http_proxy`, `socks5`, `static_file`, `http2https`, `https2http`, `https2https` and you can see [example usage](#example-usage).
-
-Specify which plugin to use with the `plugin` parameter. Configuration parameters of plugin should be started with `plugin_`. `local_ip` and `local_port` are not used for plugin.
-
-Using plugin **http_proxy**:
-
-```ini
-# frpc.ini
-[http_proxy]
-type = tcp
-remote_port = 6000
-plugin = http_proxy
-plugin_http_user = abc
-plugin_http_passwd = abc
-```
-
-`plugin_http_user` and `plugin_http_passwd` are configuration parameters used in `http_proxy` plugin.
-
-### Server Manage Plugins
-
-Read the [document](/doc/server_plugin.md).
-
-Find more plugins in [gofrp/plugin](https://github.com/gofrp/plugin).
-
-## Development Plan
-
-* Log HTTP request information in frps.
-
-## Contributing
-
-Interested in getting involved? We would like to help you!
-
-* Take a look at our [issues list](https://github.com/fatedier/frp/issues) and consider sending a Pull Request to **dev branch**.
-* If you want to add a new feature, please create an issue first to describe the new feature, as well as the implementation approach. Once a proposal is accepted, create an implementation of the new features and submit it as a pull request.
-* Sorry for my poor English. Improvements for this document are welcome, even some typo fixes.
-* If you have great ideas, send an email to fatedier@gmail.com.
-
-**Note: We prefer you to give your advise in [issues](https://github.com/fatedier/frp/issues), so others with a same question can search it quickly and we don't need to answer them repeatedly.**
-
-## Donation
-
-If frp helps you a lot, you can support us by:
-
-### GitHub Sponsors
-
-Support us by [Github Sponsors](https://github.com/sponsors/fatedier).
-
-You can have your company's logo placed on README file of this project.
-
-### PayPal
-
-Donate money by [PayPal](https://www.paypal.me/fatedier) to my account **fatedier@gmail.com**.
-
diff --git a/apps/frps/data.yml b/apps/frps/data.yml
deleted file mode 100644
index b5a64ece..00000000
--- a/apps/frps/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: frps-frp 服务端
-tags:
- - 工具
-title: frp 是一种反向代理工具,常用于内网穿透(服务端)
-description: frp 是一种反向代理工具,常用于内网穿透(服务端)
-additionalProperties:
- key: frps
- name: frps-frp 服务端
- tags:
- - Tool
- shortDescZh: frp 是一种反向代理工具,常用于内网穿透(服务端)
- shortDescEn: frp is a reverse proxy tool that is commonly used for intranet penetration(Server)
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://github.com/fatedier/frp
- github: https://github.com/fatedier/frp
- document: https://github.com/fatedier/frp/blob/dev/README_zh.md
diff --git a/apps/frps/latest/.env.sample b/apps/frps/latest/.env.sample
deleted file mode 100644
index fa2ac786..00000000
--- a/apps/frps/latest/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="frps"
-SSL_FOLDER_PATH="./data/ssl"
\ No newline at end of file
diff --git a/apps/frps/latest/data.yml b/apps/frps/latest/data.yml
deleted file mode 100644
index a04a9f47..00000000
--- a/apps/frps/latest/data.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-additionalProperties:
- formFields:
- - default: ./data/frps.toml
- edit: true
- envKey: CONFIG_FILE_PATH
- labelEn: Configuration file path
- labelZh: 配置文件路径
- required: true
- type: text
- - default: 7000
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port (determined by the configuration file)
- labelZh: 端口 (由配置文件决定)
- required: true
- type: number
- - default: ./data/ssl
- edit: true
- envKey: SSL_FOLDER_PATH
- labelEn: Certificate folder path (corresponding to "/etc/frp/ssl" in container)
- labelZh: 证书文件夹路径 (对应容器内 "/etc/frp/ssl")
- required: true
- type: text
diff --git a/apps/frps/latest/data/frpc.ini b/apps/frps/latest/data/frpc.ini
deleted file mode 100644
index 13a8e5f6..00000000
--- a/apps/frps/latest/data/frpc.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[common]
-server_addr = 127.0.0.1
-server_port = 7000
-
-[ssh]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-remote_port = 6000
diff --git a/apps/frps/latest/data/frpc.toml b/apps/frps/latest/data/frpc.toml
deleted file mode 100644
index 9e64a124..00000000
--- a/apps/frps/latest/data/frpc.toml
+++ /dev/null
@@ -1,42 +0,0 @@
-# common
-serverAddr = "1.2.3.4"
-serverPort = 7000
-auth.method = "token"
-auth.token = "token123456"
-# supports tcp, kcp, quic, websocket and wss now, default is tcp
-transport.protocol = "tcp"
-
-# dashboard
-webServer.addr = "127.0.0.1"
-webServer.port = 6000
-webServer.user = "admin"
-webServer.password = "password123456"
-webServer.pprofEnable = false
-
-# setting
-loginFailExit = false
-transport.tcpMux = false
-transport.tls.enable = false
-# transport.tls.certFile = "client.crt"
-# transport.tls.keyFile = "client.key"
-# transport.tls.trustedCaFile = "ca.crt"
-# transport.tls.serverName = "example.com"
-
-# tls
-#transport.tls.certFile = "/etc/frp/ssl/client.crt"
-#transport.tls.keyFile = "/etc/frp/ssl/client.key"
-#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt"
-
-[[proxies]]
-name = "rdp_tcp"
-type = "tcp"
-localIP = "127.0.0.1"
-localPort = 3389
-remotePort = 13389
-
-[[proxies]]
-name = "rdp_udp"
-type = "udp"
-localIP = "127.0.0.1"
-localPort = 3389
-remotePort = 13389
\ No newline at end of file
diff --git a/apps/frps/latest/data/frpc_full.ini b/apps/frps/latest/data/frpc_full.ini
deleted file mode 100644
index 29f6bcab..00000000
--- a/apps/frps/latest/data/frpc_full.ini
+++ /dev/null
@@ -1,365 +0,0 @@
-# [common] is integral section
-[common]
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single "server_addr" field, no need square brackets, like "server_addr = ::".
-server_addr = 0.0.0.0
-server_port = 7000
-
-# The maximum amount of time a dial to server will wait for a connect to complete. Default value is 10 seconds.
-# dial_server_timeout = 10
-
-# dial_server_keepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# dial_server_keepalive = 7200
-
-# if you want to connect frps by http proxy or socks5 proxy or ntlm proxy, you can set http_proxy here or in global environment variables
-# it only works when protocol is tcp
-# http_proxy = http://user:passwd@192.168.1.128:8080
-# http_proxy = socks5://user:passwd@192.168.1.128:1080
-# http_proxy = ntlm://user:passwd@192.168.1.128:2080
-
-# console or real logFile path like ./frpc.log
-log_file = ./frpc.log
-
-# trace, debug, info, warn, error
-log_level = info
-
-log_max_days = 3
-
-# disable log colors when log_file is console, default is false
-disable_log_color = false
-
-# for authentication, should be same as your frps.ini
-# authenticate_heartbeats specifies whether to include authentication token in heartbeats sent to frps. By default, this value is false.
-authenticate_heartbeats = false
-
-# authenticate_new_work_conns specifies whether to include authentication token in new work connections sent to frps. By default, this value is false.
-authenticate_new_work_conns = false
-
-# auth token
-token = 12345678
-
-authentication_method =
-
-# oidc_client_id specifies the client ID to use to get a token in OIDC authentication if AuthenticationMethod == "oidc".
-# By default, this value is "".
-oidc_client_id =
-
-# oidc_client_secret specifies the client secret to use to get a token in OIDC authentication if AuthenticationMethod == "oidc".
-# By default, this value is "".
-oidc_client_secret =
-
-# oidc_audience specifies the audience of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "".
-oidc_audience =
-
-# oidc_scope specifies the permisssions of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "".
-oidc_scope =
-
-# oidc_token_endpoint_url specifies the URL which implements OIDC Token Endpoint.
-# It will be used to get an OIDC token if AuthenticationMethod == "oidc". By default, this value is "".
-oidc_token_endpoint_url =
-
-# oidc_additional_xxx specifies additional parameters to be sent to the OIDC Token Endpoint.
-# For example, if you want to specify the "audience" parameter, you can set as follow.
-# frp will add "audience=" "var1=" to the additional parameters.
-# oidc_additional_audience = https://dev.auth.com/api/v2/
-# oidc_additional_var1 = foobar
-
-# set admin address for control frpc's action by http api such as reload
-admin_addr = 127.0.0.1
-admin_port = 7400
-admin_user = admin
-admin_pwd = admin
-# Admin assets directory. By default, these assets are bundled with frpc.
-# assets_dir = ./static
-
-# connections will be established in advance, default value is zero
-pool_count = 5
-
-# if tcp stream multiplexing is used, default is true, it must be same with frps
-# tcp_mux = true
-
-# specify keep alive interval for tcp mux.
-# only valid if tcp_mux is true.
-# tcp_mux_keepalive_interval = 60
-
-# your proxy name will be changed to {user}.{proxy}
-user = your_name
-
-# decide if exit program when first login failed, otherwise continuous relogin to frps
-# default is true
-login_fail_exit = true
-
-# communication protocol used to connect to server
-# supports tcp, kcp, quic and websocket now, default is tcp
-protocol = tcp
-
-# set client binding ip when connect server, default is empty.
-# only when protocol = tcp or websocket, the value will be used.
-connect_server_local_ip = 0.0.0.0
-
-# quic protocol options
-# quic_keepalive_period = 10
-# quic_max_idle_timeout = 30
-# quic_max_incoming_streams = 100000
-
-# if tls_enable is true, frpc will connect frps by tls
-tls_enable = true
-
-# tls_cert_file = client.crt
-# tls_key_file = client.key
-# tls_trusted_ca_file = ca.crt
-# tls_server_name = example.com
-
-# specify a dns server, so frpc will use this instead of default one
-# dns_server = 8.8.8.8
-
-# proxy names you want to start separated by ','
-# default is empty, means all proxies
-# start = ssh,dns
-
-# heartbeat configure, it's not recommended to modify the default value
-# The default value of heartbeat_interval is 10 and heartbeat_timeout is 90. Set negative value
-# to disable it.
-# heartbeat_interval = 30
-# heartbeat_timeout = 90
-
-# additional meta info for client
-meta_var1 = 123
-meta_var2 = 234
-
-# specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udp_packet_size = 1500
-
-# include other config files for proxies.
-# includes = ./confd/*.ini
-
-# By default, frpc will connect frps with first custom byte if tls is enabled.
-# If DisableCustomTLSFirstByte is true, frpc will not send that custom byte.
-disable_custom_tls_first_byte = false
-
-# Enable golang pprof handlers in admin listener.
-# Admin port must be set first.
-pprof_enable = false
-
-# 'ssh' is the unique proxy name
-# if user in [common] section is not empty, it will be changed to {user}.{proxy} such as 'your_name.ssh'
-[ssh]
-# tcp | udp | http | https | stcp | xtcp, default is tcp
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-# limit bandwidth for this proxy, unit is KB and MB
-bandwidth_limit = 1MB
-# where to limit bandwidth, can be 'client' or 'server', default is 'client'
-bandwidth_limit_mode = client
-# true or false, if true, messages between frps and frpc will be encrypted, default is false
-use_encryption = false
-# if true, message will be compressed
-use_compression = false
-# remote port listen by frps
-remote_port = 6001
-# frps will load balancing connections for proxies in same group
-group = test_group
-# group should have same group key
-group_key = 123456
-# enable health check for the backend service, it support 'tcp' and 'http' now
-# frpc will connect local service's port to detect it's healthy status
-health_check_type = tcp
-# health check connection timeout
-health_check_timeout_s = 3
-# if continuous failed in 3 times, the proxy will be removed from frps
-health_check_max_failed = 3
-# every 10 seconds will do a health check
-health_check_interval_s = 10
-# additional meta info for each proxy
-meta_var1 = 123
-meta_var2 = 234
-
-[ssh_random]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 22
-# if remote_port is 0, frps will assign a random port for you
-remote_port = 0
-
-# if you want to expose multiple ports, add 'range:' prefix to the section name
-# frpc will generate multiple proxies such as 'tcp_port_6010', 'tcp_port_6011' and so on.
-[range:tcp_port]
-type = tcp
-local_ip = 127.0.0.1
-local_port = 6010-6020,6022,6024-6028
-remote_port = 6010-6020,6022,6024-6028
-use_encryption = false
-use_compression = false
-
-[dns]
-type = udp
-local_ip = 114.114.114.114
-local_port = 53
-remote_port = 6002
-use_encryption = false
-use_compression = false
-
-[range:udp_port]
-type = udp
-local_ip = 127.0.0.1
-local_port = 6010-6020
-remote_port = 6010-6020
-use_encryption = false
-use_compression = false
-
-# Resolve your domain names to [server_addr] so you can use http://web01.yourdomain.com to browse web01 and http://web02.yourdomain.com to browse web02
-[web01]
-type = http
-local_ip = 127.0.0.1
-local_port = 80
-use_encryption = false
-use_compression = true
-# http username and password are safety certification for http protocol
-# if not set, you can access this custom_domains without certification
-http_user = admin
-http_pwd = admin
-# if domain for frps is frps.com, then you can access [web01] proxy by URL http://web01.frps.com
-subdomain = web01
-custom_domains = web01.yourdomain.com
-# locations is only available for http type
-locations = /,/pic
-# route requests to this service if http basic auto user is abc
-# route_by_http_user = abc
-host_header_rewrite = example.com
-# params with prefix "header_" will be used to update http request headers
-header_X-From-Where = frp
-health_check_type = http
-# frpc will send a GET http request '/status' to local http service
-# http service is alive when it return 2xx http response code
-health_check_url = /status
-health_check_interval_s = 10
-health_check_max_failed = 3
-health_check_timeout_s = 3
-
-[web02]
-type = https
-local_ip = 127.0.0.1
-local_port = 8000
-use_encryption = false
-use_compression = false
-subdomain = web01
-custom_domains = web02.yourdomain.com
-# if not empty, frpc will use proxy protocol to transfer connection info to your local service
-# v1 or v2 or empty
-proxy_protocol_version = v2
-
-[plugin_unix_domain_socket]
-type = tcp
-remote_port = 6003
-# if plugin is defined, local_ip and local_port is useless
-# plugin will handle connections got from frps
-plugin = unix_domain_socket
-# params with prefix "plugin_" that plugin needed
-plugin_unix_path = /var/run/docker.sock
-
-[plugin_http_proxy]
-type = tcp
-remote_port = 6004
-plugin = http_proxy
-plugin_http_user = abc
-plugin_http_passwd = abc
-
-[plugin_socks5]
-type = tcp
-remote_port = 6005
-plugin = socks5
-plugin_user = abc
-plugin_passwd = abc
-
-[plugin_static_file]
-type = tcp
-remote_port = 6006
-plugin = static_file
-plugin_local_path = /var/www/blog
-plugin_strip_prefix = static
-plugin_http_user = abc
-plugin_http_passwd = abc
-
-[plugin_https2http]
-type = https
-custom_domains = test.yourdomain.com
-plugin = https2http
-plugin_local_addr = 127.0.0.1:80
-plugin_crt_path = ./server.crt
-plugin_key_path = ./server.key
-plugin_host_header_rewrite = 127.0.0.1
-plugin_header_X-From-Where = frp
-
-[plugin_https2https]
-type = https
-custom_domains = test.yourdomain.com
-plugin = https2https
-plugin_local_addr = 127.0.0.1:443
-plugin_crt_path = ./server.crt
-plugin_key_path = ./server.key
-plugin_host_header_rewrite = 127.0.0.1
-plugin_header_X-From-Where = frp
-
-[plugin_http2https]
-type = http
-custom_domains = test.yourdomain.com
-plugin = http2https
-plugin_local_addr = 127.0.0.1:443
-plugin_host_header_rewrite = 127.0.0.1
-plugin_header_X-From-Where = frp
-
-[secret_tcp]
-# If the type is secret tcp, remote_port is useless
-# Who want to connect local port should deploy another frpc with stcp proxy and role is visitor
-type = stcp
-# sk used for authentication for visitors
-sk = abcdefg
-local_ip = 127.0.0.1
-local_port = 22
-use_encryption = false
-use_compression = false
-
-# user of frpc should be same in both stcp server and stcp visitor
-[secret_tcp_visitor]
-# frpc role visitor -> frps -> frpc role server
-role = visitor
-type = stcp
-# the server name you want to visitor
-server_name = secret_tcp
-sk = abcdefg
-# connect this address to visitor stcp server
-bind_addr = 127.0.0.1
-bind_port = 9000
-use_encryption = false
-use_compression = false
-
-[p2p_tcp]
-type = xtcp
-sk = abcdefg
-local_ip = 127.0.0.1
-local_port = 22
-use_encryption = false
-use_compression = false
-
-[p2p_tcp_visitor]
-role = visitor
-type = xtcp
-server_name = p2p_tcp
-sk = abcdefg
-bind_addr = 127.0.0.1
-bind_port = 9001
-use_encryption = false
-use_compression = false
-
-[tcpmuxhttpconnect]
-type = tcpmux
-multiplexer = httpconnect
-local_ip = 127.0.0.1
-local_port = 10701
-custom_domains = tunnel1
-# route_by_http_user = user1
diff --git a/apps/frps/latest/data/frpc_full.toml b/apps/frps/latest/data/frpc_full.toml
deleted file mode 100644
index 67fd84ec..00000000
--- a/apps/frps/latest/data/frpc_full.toml
+++ /dev/null
@@ -1,366 +0,0 @@
-# This configuration file is for reference only. Please do not use this configuration directly to run the program as it may have various issues.
-
-# your proxy name will be changed to {user}.{proxy}
-user = "your_name"
-
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single serverAddr field, no need square brackets, like serverAddr = "::".
-serverAddr = "0.0.0.0"
-serverPort = 7000
-
-# STUN server to help penetrate NAT hole.
-# natHoleStunServer = "stun.easyvoip.com:3478"
-
-# Decide if exit program when first login failed, otherwise continuous relogin to frps
-# default is true
-loginFailExit = true
-
-# console or real logFile path like ./frpc.log
-log.to = "./frpc.log"
-# trace, debug, info, warn, error
-log.level = "info"
-log.maxDays = 3
-# disable log colors when log.to is console, default is false
-log.disablePrintColor = false
-
-auth.method = "token"
-# auth.additionalScopes specifies additional scopes to include authentication information.
-# Optional values are HeartBeats, NewWorkConns.
-# auth.additionalScopes = ["HeartBeats", "NewWorkConns"]
-
-# auth token
-auth.token = "12345678"
-
-# oidc.clientID specifies the client ID to use to get a token in OIDC authentication.
-# auth.oidc.clientID = ""
-# oidc.clientSecret specifies the client secret to use to get a token in OIDC authentication.
-# auth.oidc.clientSecret = ""
-# oidc.audience specifies the audience of the token in OIDC authentication.
-# auth.oidc.audience = ""
-# oidc.scope specifies the permissions of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "".
-# auth.oidc.scope = ""
-# oidc.tokenEndpointURL specifies the URL which implements OIDC Token Endpoint.
-# It will be used to get an OIDC token.
-# auth.oidc.tokenEndpointURL = ""
-
-# oidc.additionalEndpointParams specifies additional parameters to be sent to the OIDC Token Endpoint.
-# For example, if you want to specify the "audience" parameter, you can set as follow.
-# frp will add "audience=" "var1=" to the additional parameters.
-# auth.oidc.additionalEndpointParams.audience = "https://dev.auth.com/api/v2/"
-# auth.oidc.additionalEndpointParams.var1 = "foobar"
-
-# Set admin address for control frpc's action by http api such as reload
-webServer.addr = "127.0.0.1"
-webServer.port = 7400
-webServer.user = "admin"
-webServer.password = "admin"
-# Admin assets directory. By default, these assets are bundled with frpc.
-# webServer.assetsDir = "./static"
-
-# Enable golang pprof handlers in admin listener.
-webServer.pprofEnable = false
-
-# The maximum amount of time a dial to server will wait for a connect to complete. Default value is 10 seconds.
-# transport.dialServerTimeout = 10
-
-# dialServerKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# transport.dialServerKeepalive = 7200
-
-# connections will be established in advance, default value is zero
-transport.poolCount = 5
-
-# If tcp stream multiplexing is used, default is true, it must be same with frps
-# transport.tcpMux = true
-
-# Specify keep alive interval for tcp mux.
-# only valid if tcpMux is enabled.
-# transport.tcpMuxKeepaliveInterval = 60
-
-# Communication protocol used to connect to server
-# supports tcp, kcp, quic, websocket and wss now, default is tcp
-transport.protocol = "tcp"
-
-# set client binding ip when connect server, default is empty.
-# only when protocol = tcp or websocket, the value will be used.
-transport.connectServerLocalIP = "0.0.0.0"
-
-# if you want to connect frps by http proxy or socks5 proxy or ntlm proxy, you can set proxyURL here or in global environment variables
-# it only works when protocol is tcp
-# transport.proxyURL = "http://user:passwd@192.168.1.128:8080"
-# transport.proxyURL = "socks5://user:passwd@192.168.1.128:1080"
-# transport.proxyURL = "ntlm://user:passwd@192.168.1.128:2080"
-
-# quic protocol options
-# transport.quic.keepalivePeriod = 10
-# transport.quic.maxIdleTimeout = 30
-# transport.quic.maxIncomingStreams = 100000
-
-# If tls.enable is true, frpc will connect frps by tls.
-# Since v0.50.0, the default value has been changed to true, and tls is enabled by default.
-transport.tls.enable = true
-
-# transport.tls.certFile = "client.crt"
-# transport.tls.keyFile = "client.key"
-# transport.tls.trustedCaFile = "ca.crt"
-# transport.tls.serverName = "example.com"
-
-# If the disableCustomTLSFirstByte is set to false, frpc will establish a connection with frps using the
-# first custom byte when tls is enabled.
-# Since v0.50.0, the default value has been changed to true, and the first custom byte is disabled by default.
-# transport.tls.disableCustomTLSFirstByte = true
-
-# Heartbeat configure, it's not recommended to modify the default value.
-# The default value of heartbeatInterval is 10 and heartbeatTimeout is 90. Set negative value
-# to disable it.
-# transport.heartbeatInterval = 30
-# transport.heartbeatTimeout = 90
-
-# Specify a dns server, so frpc will use this instead of default one
-# dnsServer = "8.8.8.8"
-
-# Proxy names you want to start.
-# Default is empty, means all proxies.
-# start = ["ssh", "dns"]
-
-# Specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udpPacketSize = 1500
-
-# Additional metadatas for client.
-metadatas.var1 = "abc"
-metadatas.var2 = "123"
-
-# Include other config files for proxies.
-# includes = ["./confd/*.ini"]
-
-[[proxies]]
-# 'ssh' is the unique proxy name
-# If global user is not empty, it will be changed to {user}.{proxy} such as 'your_name.ssh'
-name = "ssh"
-type = "tcp"
-localIP = "127.0.0.1"
-localPort = 22
-# Limit bandwidth for this proxy, unit is KB and MB
-transport.bandwidthLimit = "1MB"
-# Where to limit bandwidth, can be 'client' or 'server', default is 'client'
-transport.bandwidthLimitMode = "client"
-# If true, traffic of this proxy will be encrypted, default is false
-transport.useEncryption = false
-# If true, traffic will be compressed
-transport.useCompression = false
-# Remote port listen by frps
-remotePort = 6001
-# frps will load balancing connections for proxies in same group
-loadBalancer.group = "test_group"
-# group should have same group key
-loadBalancer.groupKey = "123456"
-# Enable health check for the backend service, it supports 'tcp' and 'http' now.
-# frpc will connect local service's port to detect it's healthy status
-healthCheck.type = "tcp"
-# Health check connection timeout
-healthCheck.timeoutSeconds = 3
-# If continuous failed in 3 times, the proxy will be removed from frps
-healthCheck.maxFailed = 3
-# Every 10 seconds will do a health check
-healthCheck.intervalSeconds = 10
-# Additional meta info for each proxy. It will be passed to the server-side plugin for use.
-metadatas.var1 = "abc"
-metadatas.var2 = "123"
-# You can add some extra information to the proxy through annotations.
-# These annotations will be displayed on the frps dashboard.
-[proxies.annotations]
-key1 = "value1"
-"prefix/key2" = "value2"
-
-[[proxies]]
-name = "ssh_random"
-type = "tcp"
-localIP = "192.168.31.100"
-localPort = 22
-# If remotePort is 0, frps will assign a random port for you
-remotePort = 0
-
-[[proxies]]
-name = "dns"
-type = "udp"
-localIP = "114.114.114.114"
-localPort = 53
-remotePort = 6002
-
-# Resolve your domain names to [serverAddr] so you can use http://web01.yourdomain.com to browse web01 and http://web02.yourdomain.com to browse web02
-[[proxies]]
-name = "web01"
-type = "http"
-localIP = "127.0.0.1"
-localPort = 80
-# http username and password are safety certification for http protocol
-# if not set, you can access this customDomains without certification
-httpUser = "admin"
-httpPassword = "admin"
-# if domain for frps is frps.com, then you can access [web01] proxy by URL http://web01.frps.com
-subdomain = "web01"
-customDomains = ["web01.yourdomain.com"]
-# locations is only available for http type
-locations = ["/", "/pic"]
-# route requests to this service if http basic auto user is abc
-# routeByHTTPUser = abc
-hostHeaderRewrite = "example.com"
-requestHeaders.set.x-from-where = "frp"
-healthCheck.type = "http"
-# frpc will send a GET http request '/status' to local http service
-# http service is alive when it return 2xx http response code
-healthCheck.path = "/status"
-healthCheck.intervalSeconds = 10
-healthCheck.maxFailed = 3
-healthCheck.timeoutSeconds = 3
-
-[[proxies]]
-name = "web02"
-type = "https"
-localIP = "127.0.0.1"
-localPort = 8000
-subdomain = "web02"
-customDomains = ["web02.yourdomain.com"]
-# if not empty, frpc will use proxy protocol to transfer connection info to your local service
-# v1 or v2 or empty
-transport.proxyProtocolVersion = "v2"
-
-[[proxies]]
-name = "tcpmuxhttpconnect"
-type = "tcpmux"
-multiplexer = "httpconnect"
-localIP = "127.0.0.1"
-localPort = 10701
-customDomains = ["tunnel1"]
-# routeByHTTPUser = "user1"
-
-[[proxies]]
-name = "plugin_unix_domain_socket"
-type = "tcp"
-remotePort = 6003
-# if plugin is defined, localIP and localPort is useless
-# plugin will handle connections got from frps
-[proxies.plugin]
-type = "unix_domain_socket"
-unixPath = "/var/run/docker.sock"
-
-[[proxies]]
-name = "plugin_http_proxy"
-type = "tcp"
-remotePort = 6004
-[proxies.plugin]
-type = "http_proxy"
-httpUser = "abc"
-httpPassword = "abc"
-
-[[proxies]]
-name = "plugin_socks5"
-type = "tcp"
-remotePort = 6005
-[proxies.plugin]
-type = "socks5"
-username = "abc"
-password = "abc"
-
-[[proxies]]
-name = "plugin_static_file"
-type = "tcp"
-remotePort = 6006
-[proxies.plugin]
-type = "static_file"
-localPath = "/var/www/blog"
-stripPrefix = "static"
-httpUser = "abc"
-httpPassword = "abc"
-
-[[proxies]]
-name = "plugin_https2http"
-type = "https"
-customDomains = ["test.yourdomain.com"]
-[proxies.plugin]
-type = "https2http"
-localAddr = "127.0.0.1:80"
-crtPath = "./server.crt"
-keyPath = "./server.key"
-hostHeaderRewrite = "127.0.0.1"
-requestHeaders.set.x-from-where = "frp"
-
-[[proxies]]
-name = "plugin_https2https"
-type = "https"
-customDomains = ["test.yourdomain.com"]
-[proxies.plugin]
-type = "https2https"
-localAddr = "127.0.0.1:443"
-crtPath = "./server.crt"
-keyPath = "./server.key"
-hostHeaderRewrite = "127.0.0.1"
-requestHeaders.set.x-from-where = "frp"
-
-[[proxies]]
-name = "plugin_http2https"
-type = "http"
-customDomains = ["test.yourdomain.com"]
-[proxies.plugin]
-type = "http2https"
-localAddr = "127.0.0.1:443"
-hostHeaderRewrite = "127.0.0.1"
-requestHeaders.set.x-from-where = "frp"
-
-[[proxies]]
-name = "secret_tcp"
-# If the type is secret tcp, remotePort is useless
-# Who want to connect local port should deploy another frpc with stcp proxy and role is visitor
-type = "stcp"
-# secretKey is used for authentication for visitors
-secretKey = "abcdefg"
-localIP = "127.0.0.1"
-localPort = 22
-# If not empty, only visitors from specified users can connect.
-# Otherwise, visitors from same user can connect. '*' means allow all users.
-allowUsers = ["*"]
-
-[[proxies]]
-name = "p2p_tcp"
-type = "xtcp"
-secretKey = "abcdefg"
-localIP = "127.0.0.1"
-localPort = 22
-# If not empty, only visitors from specified users can connect.
-# Otherwise, visitors from same user can connect. '*' means allow all users.
-allowUsers = ["user1", "user2"]
-
-# frpc role visitor -> frps -> frpc role server
-[[visitors]]
-name = "secret_tcp_visitor"
-type = "stcp"
-# the server name you want to visitor
-serverName = "secret_tcp"
-secretKey = "abcdefg"
-# connect this address to visitor stcp server
-bindAddr = "127.0.0.1"
-# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from
-# other visitors. (This is not supported for SUDP now)
-bindPort = 9000
-
-[[visitors]]
-name = "p2p_tcp_visitor"
-type = "xtcp"
-# if the server user is not set, it defaults to the current user
-serverUser = "user1"
-serverName = "p2p_tcp"
-secretKey = "abcdefg"
-bindAddr = "127.0.0.1"
-# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from
-# other visitors. (This is not supported for SUDP now)
-bindPort = 9001
-# when automatic tunnel persistence is required, set it to true
-keepTunnelOpen = false
-# effective when keepTunnelOpen is set to true, the number of attempts to punch through per hour
-maxRetriesAnHour = 8
-minRetryInterval = 90
-# fallbackTo = "stcp_visitor"
-# fallbackTimeoutMs = 500
\ No newline at end of file
diff --git a/apps/frps/latest/data/frps.ini b/apps/frps/latest/data/frps.ini
deleted file mode 100644
index 229567a9..00000000
--- a/apps/frps/latest/data/frps.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[common]
-bind_port = 7000
diff --git a/apps/frps/latest/data/frps.toml b/apps/frps/latest/data/frps.toml
deleted file mode 100644
index cc3f831d..00000000
--- a/apps/frps/latest/data/frps.toml
+++ /dev/null
@@ -1,42 +0,0 @@
-# common
-bindAddr = "0.0.0.0"
-bindPort = 7000
-auth.method = "token"
-auth.token = "token123456"
-
-# udp by kcp
-kcpBindPort = 7000
-
-# udp by quic
-#quicBindPort = 7002
-#transport.quic.keepalivePeriod = 10
-#transport.quic.maxIdleTimeout = 30
-#transport.quic.maxIncomingStreams = 100000
-
-# web
-#vhostHTTPPort = 40480
-#vhostHTTPSPort = 40443
-#subDomainHost = "example.com"
-
-# tls
-transport.tls.force = true
-#tls.force = false # 版本0.52.0到0.55.0用这个
-#transport.tls.certFile = "/etc/frp/ssl/server.crt"
-#transport.tls.keyFile = "/etc/frp/ssl/server.key"
-#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt"
-
-# dashboard
-webServer.addr = "0.0.0.0"
-webServer.port = 7001
-webServer.user = "admin"
-webServer.password = "password123456"
-webServer.pprofEnable = false
-# webServer.tls.certFile = "server.crt"
-# webServer.tls.keyFile = "server.key"
-
-# setting
-transport.tcpMux = false
-enablePrometheus = true
-maxPortsPerClient = 0
-natholeAnalysisDataReserveHours = 168
-udpPacketSize = 1500
\ No newline at end of file
diff --git a/apps/frps/latest/data/frps_full.ini b/apps/frps/latest/data/frps_full.ini
deleted file mode 100644
index 2d5e08e1..00000000
--- a/apps/frps/latest/data/frps_full.ini
+++ /dev/null
@@ -1,168 +0,0 @@
-# [common] is integral section
-[common]
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single "bind_addr" field, no need square brackets, like "bind_addr = ::".
-bind_addr = 0.0.0.0
-bind_port = 7000
-
-# udp port to help make udp hole to penetrate nat
-bind_udp_port = 7001
-
-# udp port used for kcp protocol, it can be same with 'bind_port'.
-# if not set, kcp is disabled in frps.
-kcp_bind_port = 7000
-
-# udp port used for quic protocol.
-# if not set, quic is disabled in frps.
-# quic_bind_port = 7002
-# quic protocol options
-# quic_keepalive_period = 10
-# quic_max_idle_timeout = 30
-# quic_max_incoming_streams = 100000
-
-# specify which address proxy will listen for, default value is same with bind_addr
-# proxy_bind_addr = 127.0.0.1
-
-# if you want to support virtual host, you must set the http port for listening (optional)
-# Note: http port and https port can be same with bind_port
-vhost_http_port = 80
-vhost_https_port = 443
-
-# response header timeout(seconds) for vhost http server, default is 60s
-# vhost_http_timeout = 60
-
-# tcpmux_httpconnect_port specifies the port that the server listens for TCP
-# HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP
-# requests on one single port. If it's not - it will listen on this value for
-# HTTP CONNECT requests. By default, this value is 0.
-# tcpmux_httpconnect_port = 1337
-
-# If tcpmux_passthrough is true, frps won't do any update on traffic.
-# tcpmux_passthrough = false
-
-# set dashboard_addr and dashboard_port to view dashboard of frps
-# dashboard_addr's default value is same with bind_addr
-# dashboard is available only if dashboard_port is set
-dashboard_addr = 0.0.0.0
-dashboard_port = 7500
-
-# dashboard user and passwd for basic auth protect
-dashboard_user = admin
-dashboard_pwd = admin
-
-# dashboard TLS mode
-dashboard_tls_mode = false
-# dashboard_tls_cert_file = server.crt
-# dashboard_tls_key_file = server.key
-
-# enable_prometheus will export prometheus metrics on {dashboard_addr}:{dashboard_port} in /metrics api.
-enable_prometheus = true
-
-# dashboard assets directory(only for debug mode)
-# assets_dir = ./static
-
-# console or real logFile path like ./frps.log
-log_file = ./frps.log
-
-# trace, debug, info, warn, error
-log_level = info
-
-log_max_days = 3
-
-# disable log colors when log_file is console, default is false
-disable_log_color = false
-
-# DetailedErrorsToClient defines whether to send the specific error (with debug info) to frpc. By default, this value is true.
-detailed_errors_to_client = true
-
-# authentication_method specifies what authentication method to use authenticate frpc with frps.
-# If "token" is specified - token will be read into login message.
-# If "oidc" is specified - OIDC (Open ID Connect) token will be issued using OIDC settings. By default, this value is "token".
-authentication_method = token
-
-# authenticate_heartbeats specifies whether to include authentication token in heartbeats sent to frps. By default, this value is false.
-authenticate_heartbeats = false
-
-# AuthenticateNewWorkConns specifies whether to include authentication token in new work connections sent to frps. By default, this value is false.
-authenticate_new_work_conns = false
-
-# auth token
-token = 12345678
-
-# oidc_issuer specifies the issuer to verify OIDC tokens with.
-# By default, this value is "".
-oidc_issuer =
-
-# oidc_audience specifies the audience OIDC tokens should contain when validated.
-# By default, this value is "".
-oidc_audience =
-
-# oidc_skip_expiry_check specifies whether to skip checking if the OIDC token is expired.
-# By default, this value is false.
-oidc_skip_expiry_check = false
-
-# oidc_skip_issuer_check specifies whether to skip checking if the OIDC token's issuer claim matches the issuer specified in OidcIssuer.
-# By default, this value is false.
-oidc_skip_issuer_check = false
-
-# heartbeat configure, it's not recommended to modify the default value
-# the default value of heartbeat_timeout is 90. Set negative value to disable it.
-# heartbeat_timeout = 90
-
-# user_conn_timeout configure, it's not recommended to modify the default value
-# the default value of user_conn_timeout is 10
-# user_conn_timeout = 10
-
-# only allow frpc to bind ports you list, if you set nothing, there won't be any limit
-allow_ports = 2000-3000,3001,3003,4000-50000
-
-# pool_count in each proxy will change to max_pool_count if they exceed the maximum value
-max_pool_count = 5
-
-# max ports can be used for each client, default value is 0 means no limit
-max_ports_per_client = 0
-
-# tls_only specifies whether to only accept TLS-encrypted connections. By default, the value is false.
-tls_only = false
-
-# tls_cert_file = server.crt
-# tls_key_file = server.key
-# tls_trusted_ca_file = ca.crt
-
-# if subdomain_host is not empty, you can set subdomain when type is http or https in frpc's configure file
-# when subdomain is test, the host used by routing is test.frps.com
-subdomain_host = frps.com
-
-# if tcp stream multiplexing is used, default is true
-# tcp_mux = true
-
-# specify keep alive interval for tcp mux.
-# only valid if tcp_mux is true.
-# tcp_mux_keepalive_interval = 60
-
-# tcp_keepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# tcp_keepalive = 7200
-
-# custom 404 page for HTTP requests
-# custom_404_page = /path/to/404.html
-
-# specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udp_packet_size = 1500
-
-# Enable golang pprof handlers in dashboard listener.
-# Dashboard port must be set first
-pprof_enable = false
-
-[plugin.user-manager]
-addr = 127.0.0.1:9000
-path = /handler
-ops = Login
-
-[plugin.port-manager]
-addr = 127.0.0.1:9001
-path = /handler
-ops = NewProxy
diff --git a/apps/frps/latest/data/frps_full.toml b/apps/frps/latest/data/frps_full.toml
deleted file mode 100644
index f739d4d4..00000000
--- a/apps/frps/latest/data/frps_full.toml
+++ /dev/null
@@ -1,164 +0,0 @@
-# This configuration file is for reference only. Please do not use this configuration directly to run the program as it may have various issues.
-
-# A literal address or host name for IPv6 must be enclosed
-# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
-# For single "bindAddr" field, no need square brackets, like `bindAddr = "::"`.
-bindAddr = "0.0.0.0"
-bindPort = 7000
-
-# udp port used for kcp protocol, it can be same with 'bindPort'.
-# if not set, kcp is disabled in frps.
-kcpBindPort = 7000
-
-# udp port used for quic protocol.
-# if not set, quic is disabled in frps.
-# quicBindPort = 7002
-
-# Specify which address proxy will listen for, default value is same with bindAddr
-# proxyBindAddr = "127.0.0.1"
-
-# quic protocol options
-# transport.quic.keepalivePeriod = 10
-# transport.quic.maxIdleTimeout = 30
-# transport.quic.maxIncomingStreams = 100000
-
-# Heartbeat configure, it's not recommended to modify the default value
-# The default value of heartbeatTimeout is 90. Set negative value to disable it.
-# transport.heartbeatTimeout = 90
-
-# Pool count in each proxy will keep no more than maxPoolCount.
-transport.maxPoolCount = 5
-
-# If tcp stream multiplexing is used, default is true
-# transport.tcpMux = true
-
-# Specify keep alive interval for tcp mux.
-# only valid if tcpMux is true.
-# transport.tcpMuxKeepaliveInterval = 60
-
-# tcpKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
-# If negative, keep-alive probes are disabled.
-# transport.tcpKeepalive = 7200
-
-# transport.tls.force specifies whether to only accept TLS-encrypted connections. By default, the value is false.
-transport.tls.force = false
-
-# transport.tls.certFile = "server.crt"
-# transport.tls.keyFile = "server.key"
-# transport.tls.trustedCaFile = "ca.crt"
-
-# If you want to support virtual host, you must set the http port for listening (optional)
-# Note: http port and https port can be same with bindPort
-vhostHTTPPort = 80
-vhostHTTPSPort = 443
-
-# Response header timeout(seconds) for vhost http server, default is 60s
-# vhostHTTPTimeout = 60
-
-# tcpmuxHTTPConnectPort specifies the port that the server listens for TCP
-# HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP
-# requests on one single port. If it's not - it will listen on this value for
-# HTTP CONNECT requests. By default, this value is 0.
-# tcpmuxHTTPConnectPort = 1337
-
-# If tcpmuxPassthrough is true, frps won't do any update on traffic.
-# tcpmuxPassthrough = false
-
-# Configure the web server to enable the dashboard for frps.
-# dashboard is available only if webServer.port is set.
-webServer.addr = "127.0.0.1"
-webServer.port = 7500
-webServer.user = "admin"
-webServer.password = "admin"
-# webServer.tls.certFile = "server.crt"
-# webServer.tls.keyFile = "server.key"
-# dashboard assets directory(only for debug mode)
-# webServer.assetsDir = "./static"
-
-# Enable golang pprof handlers in dashboard listener.
-# Dashboard port must be set first
-webServer.pprofEnable = false
-
-# enablePrometheus will export prometheus metrics on webServer in /metrics api.
-enablePrometheus = true
-
-# console or real logFile path like ./frps.log
-log.to = "./frps.log"
-# trace, debug, info, warn, error
-log.level = "info"
-log.maxDays = 3
-# disable log colors when log.to is console, default is false
-log.disablePrintColor = false
-
-# DetailedErrorsToClient defines whether to send the specific error (with debug info) to frpc. By default, this value is true.
-detailedErrorsToClient = true
-
-# auth.method specifies what authentication method to use authenticate frpc with frps.
-# If "token" is specified - token will be read into login message.
-# If "oidc" is specified - OIDC (Open ID Connect) token will be issued using OIDC settings. By default, this value is "token".
-auth.method = "token"
-
-# auth.additionalScopes specifies additional scopes to include authentication information.
-# Optional values are HeartBeats, NewWorkConns.
-# auth.additionalScopes = ["HeartBeats", "NewWorkConns"]
-
-# auth token
-auth.token = "12345678"
-
-# oidc issuer specifies the issuer to verify OIDC tokens with.
-auth.oidc.issuer = ""
-# oidc audience specifies the audience OIDC tokens should contain when validated.
-auth.oidc.audience = ""
-# oidc skipExpiryCheck specifies whether to skip checking if the OIDC token is expired.
-auth.oidc.skipExpiryCheck = false
-# oidc skipIssuerCheck specifies whether to skip checking if the OIDC token's issuer claim matches the issuer specified in OidcIssuer.
-auth.oidc.skipIssuerCheck = false
-
-# userConnTimeout specifies the maximum time to wait for a work connection.
-# userConnTimeout = 10
-
-# Only allow frpc to bind ports you list. By default, there won't be any limit.
-allowPorts = [
- { start = 2000, end = 3000 },
- { single = 3001 },
- { single = 3003 },
- { start = 4000, end = 50000 }
-]
-
-# Max ports can be used for each client, default value is 0 means no limit
-maxPortsPerClient = 0
-
-# If subDomainHost is not empty, you can set subdomain when type is http or https in frpc's configure file
-# When subdomain is test, the host used by routing is test.frps.com
-subDomainHost = "frps.com"
-
-# custom 404 page for HTTP requests
-# custom404Page = "/path/to/404.html"
-
-# specify udp packet size, unit is byte. If not set, the default value is 1500.
-# This parameter should be same between client and server.
-# It affects the udp and sudp proxy.
-udpPacketSize = 1500
-
-# Retention time for NAT hole punching strategy data.
-natholeAnalysisDataReserveHours = 168
-
-# ssh tunnel gateway
-# If you want to enable this feature, the bindPort parameter is required, while others are optional.
-# By default, this feature is disabled. It will be enabled if bindPort is greater than 0.
-# sshTunnelGateway.bindPort = 2200
-# sshTunnelGateway.privateKeyFile = "/home/frp-user/.ssh/id_rsa"
-# sshTunnelGateway.autoGenPrivateKeyPath = ""
-# sshTunnelGateway.authorizedKeysFile = "/home/frp-user/.ssh/authorized_keys"
-
-[[httpPlugins]]
-name = "user-manager"
-addr = "127.0.0.1:9000"
-path = "/handler"
-ops = ["Login"]
-
-[[httpPlugins]]
-name = "port-manager"
-addr = "127.0.0.1:9001"
-path = "/handler"
-ops = ["NewProxy"]
\ No newline at end of file
diff --git a/apps/frps/latest/docker-compose.yml b/apps/frps/latest/docker-compose.yml
deleted file mode 100644
index 2fff05ba..00000000
--- a/apps/frps/latest/docker-compose.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-services:
- frps:
- container_name: ${CONTAINER_NAME}
- restart: always
- network_mode: "host"
- volumes:
- #- "${CONFIG_FILE_PATH}:/etc/frp/frps.ini" #截止5.1.3版本使用ini
- - "${CONFIG_FILE_PATH}:/etc/frp/frps.toml"
- - "${SSL_FOLDER_PATH}:/etc/frp/ssl"
- image: "snowdreamtech/frps:latest"
- labels:
- createdBy: "Apps"
diff --git a/apps/frps/logo.png b/apps/frps/logo.png
deleted file mode 100644
index 9cec3e62..00000000
Binary files a/apps/frps/logo.png and /dev/null differ
diff --git a/apps/glance/0.8.4/.env.sample b/apps/glance/0.8.4/.env.sample
deleted file mode 100644
index e8331432..00000000
--- a/apps/glance/0.8.4/.env.sample
+++ /dev/null
@@ -1,3 +0,0 @@
-CONTAINER_NAME="glance"
-GLANCE_CONFIG_PATH="./data/glance.yml"
-PANEL_APP_PORT_HTTP=40281
diff --git a/apps/glance/0.8.4/data.yml b/apps/glance/0.8.4/data.yml
deleted file mode 100644
index 43a79fa4..00000000
--- a/apps/glance/0.8.4/data.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-additionalProperties:
- formFields:
- - default: "40281"
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
- - default: "./data/glance.yml"
- disabled: true
- envKey: GLANCE_CONFIG_PATH
- labelEn: Glance Configuration Path
- labelZh: Glance 配置文件路径
- required: true
- type: text
diff --git a/apps/glance/0.8.4/data/glance.yml b/apps/glance/0.8.4/data/glance.yml
deleted file mode 100644
index 7cde96e9..00000000
--- a/apps/glance/0.8.4/data/glance.yml
+++ /dev/null
@@ -1,106 +0,0 @@
-theme:
- background-color: 225 14 15
- primary-color: 157 47 65
- contrast-multiplier: 1.1
-
-pages:
- - name: Home
- columns:
- - size: small
- widgets:
- - type: clock
- hour-format: 24h
- timezones:
- - timezone: Etc/UTC
- label: MapleStory Game Time
- - timezone: Asia/Shanghai
- label: Shanghai
- - timezone: America/New_York
- label: New York
-
- - type: calendar
-
- - type: twitch-channels
- channels:
- - theprimeagen
- - cohhcarnage
- - christitustech
- - blurbs
- - asmongold
- - jembawls
-
- - size: full
- widgets:
- - type: hacker-news
-
- - type: rss
- limit: 10
- collapse-after: 3
- cache: 3h
- style: detailed-list
- feeds:
- - url: https://supertechfans.com/cn/index.xml
- title: HackerNews
-
- - type: videos
- channels:
- - UCR-DXc1voovS8nhAvccRZhg # Jeff Geerling
- - UCv6J_jJa8GJqFwQNgNrMuww # ServeTheHome
- - UCOk-gHyjcWZNj3Br4oxwh0A # Techno Tim
- limit: 25
- collapse-after-rows: 2
- style: grid-cards
-
- - type: reddit
- subreddit: selfhosted
-
- - size: small
- widgets:
- - type: weather
- location: Beijing, China
-
- - type: bookmarks
- groups:
- - links:
- - title: Google
- url: https://google.com/
- - title: Github
- url: https://github.com/
- - title: Hostloc
- url: https://hostloc.com/
- - title: Nodeseek
- url: https://www.nodeseek.com/
- - title: Linuxdo
- url: https://linux.do/
- - title: V2ex
- url: https://www.v2ex.com/
- - title: Entertainment
- color: 10 70 50
- links:
- - title: Bilibli
- url: https://www.bilibili.com/
- - title: YouTube
- url: https://www.youtube.com/
- - title: Netflix
- url: https://www.netflix.com/
- - title: Disney+
- url: https://www.disneyplus.com/
-
- - type: markets
- markets:
- - symbol: SPY
- name: S&P 500
- - symbol: BTC-USD
- name: Bitcoin
- - symbol: NVDA
- name: NVIDIA
- - symbol: AAPL
- name: Apple
- - symbol: MSFT
- name: Microsoft
- - symbol: GOOGL
- name: Google
- - symbol: AMD
- name: AMD
- - symbol: RDDT
- name: Reddit
\ No newline at end of file
diff --git a/apps/glance/0.8.4/docker-compose.yml b/apps/glance/0.8.4/docker-compose.yml
deleted file mode 100644
index 7f0397fd..00000000
--- a/apps/glance/0.8.4/docker-compose.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-services:
- glance:
- image: "glanceapp/glance:v0.8.4"
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:8080"
- volumes:
- - ${GLANCE_CONFIG_PATH}:/app/glance.yml
- - /etc/timezone:/etc/timezone:ro
- - /etc/localtime:/etc/localtime:ro
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/glance/README.md b/apps/glance/README.md
deleted file mode 100644
index 09a5eb89..00000000
--- a/apps/glance/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-## 介绍
-Gotify 是一个用于通过 Web 套接字实时发送和接收消息的服务器。
diff --git a/apps/gotify/data.yml b/apps/gotify/data.yml
deleted file mode 100644
index e5dcdc96..00000000
--- a/apps/gotify/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Gotify
-tags:
- - 开发工具
-title: 自托管通知服务器
-description: 自托管通知服务器
-additionalProperties:
- key: gotify
- name: Gotify
- tags:
- - DevTool
- shortDescZh: 自托管通知服务器
- shortDescEn: Self-hosted notification server
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://gotify.net
- github: https://github.com/gotify/server
- document: https://gotify.net/docs/
diff --git a/apps/gotify/latest/.env.sample b/apps/gotify/latest/.env.sample
deleted file mode 100644
index 4efde397..00000000
--- a/apps/gotify/latest/.env.sample
+++ /dev/null
@@ -1,30 +0,0 @@
-CONTAINER_NAME='gotify'
-GOTIFY_DATABASE_CONNECTION='data/gotify.db'
-GOTIFY_DATABASE_DIALECT='sqlite3'
-GOTIFY_DEFAULTUSER_NAME='admin'
-GOTIFY_DEFAULTUSER_PASS='password_123456'
-GOTIFY_PASSSTRENGTH=10
-GOTIFY_PLUGINSDIR='data/plugins'
-GOTIFY_REGISTRATION='false'
-GOTIFY_SERVER_CORS_ALLOWHEADERS=''
-GOTIFY_SERVER_CORS_ALLOWMETHODS=''
-GOTIFY_SERVER_CORS_ALLOWORIGINS=''
-GOTIFY_SERVER_KEEPALIVEPERIODSECONDS=0
-GOTIFY_SERVER_LISTENADDR=''
-GOTIFY_SERVER_PORT=80
-GOTIFY_SERVER_RESPONSEHEADERS=''
-GOTIFY_SERVER_SSL_CERTFILE=''
-GOTIFY_SERVER_SSL_CERTKEY=''
-GOTIFY_SERVER_SSL_ENABLED='false'
-GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS='false'
-GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE='certs'
-GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED='false'
-GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS=''
-GOTIFY_SERVER_SSL_LISTENADDR=''
-GOTIFY_SERVER_SSL_PORT=443
-GOTIFY_SERVER_SSL_REDIRECTTOHTTPS='true'
-GOTIFY_SERVER_STREAM_ALLOWEDORIGINS=''
-GOTIFY_SERVER_STREAM_PINGPERIODSECONDS=45
-GOTIFY_UPLOADEDIMAGESDIR='data/images'
-PANEL_APP_PORT_HTTP=40266
-TIME_ZONE='Asia/Shanghai'
diff --git a/apps/gotify/latest/data.yml b/apps/gotify/latest/data.yml
deleted file mode 100644
index 36a2dbea..00000000
--- a/apps/gotify/latest/data.yml
+++ /dev/null
@@ -1,235 +0,0 @@
-additionalProperties:
- formFields:
- - default: "40266"
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
- - default: "Asia/Shanghai"
- edit: true
- envKey: TIME_ZONE
- labelEn: Time Zone
- labelZh: 时区
- required: true
- type: text
- - default: admin
- edit: true
- envKey: GOTIFY_DEFAULTUSER_NAME
- labelEn: Default User Name
- labelZh: 默认用户名
- required: true
- type: text
- - default: "password"
- edit: true
- envKey: GOTIFY_DEFAULTUSER_PASS
- labelEn: Default User Password
- labelZh: 默认用户密码
- required: false
- random: true
- rule: paramComplexity
- type: password
- - default: "false"
- edit: true
- envKey: GOTIFY_REGISTRATION
- labelEn: Enable Registration
- labelZh: 允许注册
- required: true
- type: select
- values:
- - label: "true"
- value: "true"
- - label: "false"
- value: "false"
- - default: 10
- edit: true
- envKey: GOTIFY_PASSSTRENGTH
- labelEn: Minimum Password Strength
- labelZh: 最低密码强度
- required: true
- type: number
- - default: "80"
- edit: true
- envKey: GOTIFY_SERVER_PORT
- labelEn: Internal Container Ports
- labelZh: 容器内部端口
- required: true
- rule: paramPort
- type: number
- - default: 0
- edit: true
- envKey: GOTIFY_SERVER_KEEPALIVEPERIODSECONDS
- labelEn: Keepalive Period (seconds)
- labelZh: 保持活跃时间(秒)
- required: true
- type: number
- - default: ""
- edit: true
- envKey: GOTIFY_SERVER_LISTENADDR
- labelEn: Listen Address
- labelZh: 监听地址
- required: false
- type: text
- - default: "false"
- edit: true
- envKey: GOTIFY_SERVER_SSL_ENABLED
- labelEn: Enable SSL
- labelZh: 启用 SSL
- required: true
- type: select
- values:
- - label: "true"
- value: "true"
- - label: "false"
- value: "false"
- - default: "true"
- edit: true
- envKey: GOTIFY_SERVER_SSL_REDIRECTTOHTTPS
- labelEn: Redirect to HTTPS
- labelZh: 重定向到 HTTPS
- required: true
- type: select
- values:
- - label: "true"
- value: "true"
- - label: "false"
- value: "false"
- - default: ""
- edit: true
- envKey: GOTIFY_SERVER_SSL_LISTENADDR
- labelEn: SSL Listen Address
- labelZh: SSL 监听地址
- required: false
- type: text
- - default: 443
- edit: true
- envKey: GOTIFY_SERVER_SSL_PORT
- labelEn: SSL Port
- labelZh: SSL 端口
- required: true
- rule: paramPort
- type: number
- - default: ""
- edit: true
- envKey: GOTIFY_SERVER_SSL_CERTFILE
- labelEn: SSL Certificate File (inside container)
- labelZh: SSL 证书文件 (容器内部)
- required: false
- type: text
- - default: ""
- edit: true
- envKey: GOTIFY_SERVER_SSL_CERTKEY
- labelEn: SSL Certificate Key (inside container)
- labelZh: SSL 证书密钥 (容器内部)
- required: false
- type: text
- - default: "false"
- edit: true
- envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED
- labelEn: Enable Let's Encrypt
- labelZh: 启用 Let's Encrypt
- required: true
- type: select
- values:
- - label: "true"
- value: "true"
- - label: "false"
- value: "false"
- - default: "false"
- edit: true
- envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS
- labelEn: Accept Let's Encrypt TOS
- labelZh: 接受 Let's Encrypt 条款
- required: true
- type: select
- values:
- - label: "true"
- value: "true"
- - label: "false"
- value: "false"
- - default: "certs"
- disabled: true
- envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE
- labelEn: Let's Encrypt Cache Directory
- labelZh: Let's Encrypt 缓存目录
- required: true
- type: text
- - default: ""
- edit: true
- envKey: GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS
- labelEn: Let's Encrypt Hosts
- labelZh: Let's Encrypt 域名
- required: false
- type: text
- - default: ""
- edit: true
- envKey: GOTIFY_SERVER_RESPONSEHEADERS
- labelEn: Response Headers
- labelZh: 响应头
- required: false
- type: text
- - default: ""
- edit: true
- envKey: GOTIFY_SERVER_CORS_ALLOWORIGINS
- labelEn: CORS Allow Origins
- labelZh: 允许跨域来源
- required: false
- type: text
- - default: ""
- edit: true
- envKey: GOTIFY_SERVER_CORS_ALLOWMETHODS
- labelEn: CORS Allow Methods
- labelZh: 允许跨域方法
- required: false
- type: text
- - default: ""
- edit: true
- envKey: GOTIFY_SERVER_CORS_ALLOWHEADERS
- labelEn: CORS Allow Headers
- labelZh: 允许跨域头
- required: false
- type: text
- - default: ""
- edit: true
- envKey: GOTIFY_SERVER_STREAM_ALLOWEDORIGINS
- labelEn: Allowed origins for websocket connections
- labelZh: Websocket 连接的允许来源
- required: false
- type: text
- - default: 45
- edit: true
- envKey: GOTIFY_SERVER_STREAM_PINGPERIODSECONDS
- labelEn: The interval in which websocket pings will be sent (seconds)
- labelZh: 发送 websocket ping 的时间间隔(秒)
- required: true
- type: number
- - default: sqlite3
- disabled: true
- envKey: GOTIFY_DATABASE_DIALECT
- labelEn: Database Dialect
- labelZh: 数据库方式
- required: true
- type: text
- - default: "data/gotify.db"
- disabled: true
- envKey: GOTIFY_DATABASE_CONNECTION
- labelEn: Database Connection
- labelZh: 数据库连接
- required: true
- type: text
- - default: "data/images"
- disabled: true
- envKey: GOTIFY_UPLOADEDIMAGESDIR
- labelEn: Uploaded Images Directory
- labelZh: 上传的图片目录
- required: true
- type: text
- - default: "data/plugins"
- disabled: true
- envKey: GOTIFY_PLUGINSDIR
- labelEn: Plugins Directory
- labelZh: 插件目录
- required: true
- type: text
diff --git a/apps/gotify/latest/docker-compose.yml b/apps/gotify/latest/docker-compose.yml
deleted file mode 100644
index 1d294027..00000000
--- a/apps/gotify/latest/docker-compose.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-services:
- gotify:
- image: "gotify/server:latest"
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:${GOTIFY_SERVER_PORT}"
- environment:
- - 'TZ=${TIME_ZONE}'
- - 'GOTIFY_SERVER_PORT=${GOTIFY_SERVER_PORT}'
- - 'GOTIFY_SERVER_KEEPALIVEPERIODSECONDS=${GOTIFY_SERVER_KEEPALIVEPERIODSECONDS}'
- - 'GOTIFY_SERVER_LISTENADDR=${GOTIFY_SERVER_LISTENADDR}'
- - 'GOTIFY_SERVER_SSL_ENABLED=${GOTIFY_SERVER_SSL_ENABLED}'
- - 'GOTIFY_SERVER_SSL_REDIRECTTOHTTPS=${GOTIFY_SERVER_SSL_REDIRECTTOHTTPS}'
- - 'GOTIFY_SERVER_SSL_LISTENADDR=${GOTIFY_SERVER_SSL_LISTENADDR}'
- - 'GOTIFY_SERVER_SSL_PORT=${GOTIFY_SERVER_SSL_PORT}'
- - 'GOTIFY_SERVER_SSL_CERTFILE=${GOTIFY_SERVER_SSL_CERTFILE}'
- - 'GOTIFY_SERVER_SSL_CERTKEY=${GOTIFY_SERVER_SSL_CERTKEY}'
- - 'GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED=${GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED}'
- - 'GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS=${GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS}'
- - 'GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE=${GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE}'
- - 'GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS=${GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS}'
- - 'GOTIFY_SERVER_RESPONSEHEADERS=${GOTIFY_SERVER_RESPONSEHEADERS}'
- - 'GOTIFY_SERVER_CORS_ALLOWORIGINS=${GOTIFY_SERVER_CORS_ALLOWORIGINS}'
- - 'GOTIFY_SERVER_CORS_ALLOWMETHODS=${GOTIFY_SERVER_CORS_ALLOWMETHODS}'
- - 'GOTIFY_SERVER_CORS_ALLOWHEADERS=${GOTIFY_SERVER_CORS_ALLOWHEADERS}'
- - 'GOTIFY_SERVER_STREAM_ALLOWEDORIGINS=${GOTIFY_SERVER_STREAM_ALLOWEDORIGINS}'
- - 'GOTIFY_SERVER_STREAM_PINGPERIODSECONDS=${GOTIFY_SERVER_STREAM_PINGPERIODSECONDS}'
- - 'GOTIFY_DATABASE_DIALECT=${GOTIFY_DATABASE_DIALECT}'
- - 'GOTIFY_DATABASE_CONNECTION=${GOTIFY_DATABASE_CONNECTION}'
- - 'GOTIFY_DEFAULTUSER_NAME=${GOTIFY_DEFAULTUSER_NAME}'
- - 'GOTIFY_DEFAULTUSER_PASS=${GOTIFY_DEFAULTUSER_PASS}'
- - 'GOTIFY_PASSSTRENGTH=${GOTIFY_PASSSTRENGTH}'
- - 'GOTIFY_UPLOADEDIMAGESDIR=${GOTIFY_UPLOADEDIMAGESDIR}'
- - 'GOTIFY_PLUGINSDIR=${GOTIFY_PLUGINSDIR}'
- - 'GOTIFY_REGISTRATION=${GOTIFY_REGISTRATION}'
- volumes:
- - ./data:/app/data
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/gotify/logo.png b/apps/gotify/logo.png
deleted file mode 100644
index 3876434c..00000000
Binary files a/apps/gotify/logo.png and /dev/null differ
diff --git a/apps/grafana/12.0.2/.env.sample b/apps/grafana/12.0.2/.env.sample
deleted file mode 100644
index a95e878a..00000000
--- a/apps/grafana/12.0.2/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="grafana"
-PANEL_APP_PORT_HTTP="40038"
\ No newline at end of file
diff --git a/apps/grafana/12.0.2/10.4.3/.env.sample b/apps/grafana/12.0.2/10.4.3/.env.sample
deleted file mode 100644
index a95e878a..00000000
--- a/apps/grafana/12.0.2/10.4.3/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="grafana"
-PANEL_APP_PORT_HTTP="40038"
\ No newline at end of file
diff --git a/apps/grafana/12.0.2/10.4.3/data.yml b/apps/grafana/12.0.2/10.4.3/data.yml
deleted file mode 100644
index 61cafff8..00000000
--- a/apps/grafana/12.0.2/10.4.3/data.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40038
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
diff --git a/apps/grafana/12.0.2/10.4.3/docker-compose.yml b/apps/grafana/12.0.2/10.4.3/docker-compose.yml
deleted file mode 100644
index ad507386..00000000
--- a/apps/grafana/12.0.2/10.4.3/docker-compose.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-services:
- grafana:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:3000"
- volumes:
- - ./data:/var/lib/grafana
- user: '0'
- image: grafana/grafana:12.0.2
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/grafana/12.0.2/data.yml b/apps/grafana/12.0.2/data.yml
deleted file mode 100644
index 61cafff8..00000000
--- a/apps/grafana/12.0.2/data.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40038
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
diff --git a/apps/grafana/12.0.2/docker-compose.yml b/apps/grafana/12.0.2/docker-compose.yml
deleted file mode 100644
index ad507386..00000000
--- a/apps/grafana/12.0.2/docker-compose.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-services:
- grafana:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:3000"
- volumes:
- - ./data:/var/lib/grafana
- user: '0'
- image: grafana/grafana:12.0.2
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/grafana/README.md b/apps/grafana/README.md
deleted file mode 100644
index 9de75ac9..00000000
--- a/apps/grafana/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 使用说明
-
-默认账户与密码
-```
-username:admin
-password:admin
-```
-
-# 原始相关
-
-
-
-The open-source platform for monitoring and observability
-
-[](LICENSE)
-[](https://drone.grafana.net/grafana/grafana)
-[](https://goreportcard.com/report/github.com/grafana/grafana)
-
-Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data-driven culture:
-
-- **Visualizations:** Fast and flexible client side graphs with a multitude of options. Panel plugins offer many different ways to visualize metrics and logs.
-- **Dynamic Dashboards:** Create dynamic & reusable dashboards with template variables that appear as dropdowns at the top of the dashboard.
-- **Explore Metrics:** Explore your data through ad-hoc queries and dynamic drilldown. Split view and compare different time ranges, queries and data sources side by side.
-- **Explore Logs:** Experience the magic of switching from metrics to logs with preserved label filters. Quickly search through all your logs or streaming them live.
-- **Alerting:** Visually define alert rules for your most important metrics. Grafana will continuously evaluate and send notifications to systems like Slack, PagerDuty, VictorOps, OpsGenie.
-- **Mixed Data Sources:** Mix different data sources in the same graph! You can specify a data source on a per-query basis. This works for even custom datasources.
-
-## Get started
-
-- [Get Grafana](https://grafana.com/get)
-- [Installation guides](https://grafana.com/docs/grafana/latest/setup-grafana/installation/)
-
-Unsure if Grafana is for you? Watch Grafana in action on [play.grafana.org](https://play.grafana.org/)!
-
-## Documentation
-
-The Grafana documentation is available at [grafana.com/docs](https://grafana.com/docs/).
-
-## Contributing
-
-If you're interested in contributing to the Grafana project:
-
-- Start by reading the [Contributing guide](https://github.com/grafana/grafana/blob/HEAD/CONTRIBUTING.md).
-- Learn how to set up your local environment, in our [Developer guide](https://github.com/grafana/grafana/blob/HEAD/contribute/developer-guide.md).
-- Explore our [beginner-friendly issues](https://github.com/grafana/grafana/issues?q=is%3Aopen+is%3Aissue+label%3A%22beginner+friendly%22).
-- Look through our [style guide and Storybook](https://developers.grafana.com/ui/latest/index.html).
-
-## Get involved
-
-- Follow [@grafana on Twitter](https://twitter.com/grafana/).
-- Read and subscribe to the [Grafana blog](https://grafana.com/blog/).
-- If you have a specific question, check out our [discussion forums](https://community.grafana.com/).
-- For general discussions, join us on the [official Slack](https://slack.grafana.com) team.
-
-This project is tested with [BrowserStack](https://www.browserstack.com/)
-
-## License
-
-Grafana is distributed under [AGPL-3.0-only](LICENSE). For Apache-2.0 exceptions, see [LICENSING.md](https://github.com/grafana/grafana/blob/HEAD/LICENSING.md).
diff --git a/apps/grafana/data.yml b/apps/grafana/data.yml
deleted file mode 100644
index 4a689330..00000000
--- a/apps/grafana/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Grafana
-tags:
- - 工具
-title: 用于监控和可观察性的开源平台
-description: 用于监控和可观察性的开源平台
-additionalProperties:
- key: grafana
- name: Grafana
- tags:
- - Tool
- shortDescZh: 用于监控和可观察性的开源平台
- shortDescEn: The open-source platform for monitoring and observability
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://grafana.com/
- github: https://github.com/grafana/grafana
- document: https://grafana.com/docs/grafana
diff --git a/apps/grafana/latest/.env.sample b/apps/grafana/latest/.env.sample
deleted file mode 100644
index a95e878a..00000000
--- a/apps/grafana/latest/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="grafana"
-PANEL_APP_PORT_HTTP="40038"
\ No newline at end of file
diff --git a/apps/grafana/latest/data.yml b/apps/grafana/latest/data.yml
deleted file mode 100644
index 61cafff8..00000000
--- a/apps/grafana/latest/data.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40038
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
diff --git a/apps/grafana/latest/docker-compose.yml b/apps/grafana/latest/docker-compose.yml
deleted file mode 100644
index faf015ef..00000000
--- a/apps/grafana/latest/docker-compose.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-services:
- grafana:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:3000"
- volumes:
- - ./data:/var/lib/grafana
- user: '0'
- image: grafana/grafana:latest
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/grafana/logo.png b/apps/grafana/logo.png
deleted file mode 100644
index e6f7ea05..00000000
Binary files a/apps/grafana/logo.png and /dev/null differ
diff --git a/apps/heimdall/2.7.6/.env.sample b/apps/heimdall/2.7.6/.env.sample
deleted file mode 100644
index b3db0e1c..00000000
--- a/apps/heimdall/2.7.6/.env.sample
+++ /dev/null
@@ -1,4 +0,0 @@
-CONTAINER_NAME="heimdall"
-PANEL_APP_PORT_HTTP="40049"
-PANEL_APP_PORT_HTTPS="40050"
-DATA_PATH="./data"
diff --git a/apps/heimdall/2.7.6/data.yml b/apps/heimdall/2.7.6/data.yml
deleted file mode 100644
index a4890cc8..00000000
--- a/apps/heimdall/2.7.6/data.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40049
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: HTTP Port
- labelZh: HTTP端口
- required: true
- rule: paramPort
- type: number
- - default: 40050
- edit: true
- envKey: PANEL_APP_PORT_HTTPS
- labelEn: HTTPS Port
- labelZh: HTTPS端口
- 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/heimdall/2.7.6/docker-compose.yml b/apps/heimdall/2.7.6/docker-compose.yml
deleted file mode 100644
index 246b5b47..00000000
--- a/apps/heimdall/2.7.6/docker-compose.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-services:
- heimdall:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:80"
- - "${PANEL_APP_PORT_HTTPS}:443"
- volumes:
- - "${DATA_PATH}:/config"
- environment:
- - PUID=1000
- - PGID=1000
- - TZ=Asia/Shanghai
- image: linuxserver/heimdall:2.7.6
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/heimdall/README.md b/apps/heimdall/README.md
deleted file mode 100644
index e94a8a7e..00000000
--- a/apps/heimdall/README.md
+++ /dev/null
@@ -1,219 +0,0 @@
-# Heimdall
-
-[](https://heimdall.site)
-
-[](https://discord.gg/CCjHKn4)
-[](https://hub.docker.com/r/linuxserver/heimdall/)
-[](https://www.firsttimersonly.com/)
-[](https://www.paypal.me/heimdall)
-
-___
-
-Visit the website - https://heimdall.site
-___
-
-## About
-As the name suggests Heimdall Application Dashboard is a dashboard for all your web applications. It doesn't need to be limited to applications though, you can add links to anything you like.
-
-Heimdall is an elegant solution to organise all your web applications. It’s dedicated to this purpose so you won’t lose your links in a sea of bookmarks.
-
-Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo.
-
-
-
-## Video
-If you want to see a quick video of it in use, go to https://youtu.be/GXnnMAxPzMc
-
-## Supported applications
-You can use the app to link to any site or application, but Foundation apps will auto fill in the icon for the app and supply a default color for the tile. In addition Enhanced apps allow you provide details to an apps API, allowing you to view live stats directly on the dashboad. For example, the NZBGet and Sabnzbd Enhanced apps will display the queue size and download speed while something is downloading.
-
-Supported applications are recognized by the title of the application as entered in the title field when adding an application. For example, to add a link to pfSense, begin by typing "p" in the title field and then select "pfSense" from the list of supported applications.
-
-[](https://apps.heimdall.site/applications/enhanced)
-
-[](https://apps.heimdall.site/applications/foundation)
-
-## Installing
-Apart from the Laravel 8 dependencies, namely PHP >= 7.4.32, BCMath PHP Extension, INTL PHP Extension, Ctype PHP Extension, Fileinfo PHP extension, JSON PHP Extension, Mbstring PHP Extension, OpenSSL PHP Extension, PDO PHP Extension, Tokenizer PHP Extension, XML PHP Extension, the only other thing Heimdall needs is sqlite support and zip support (php-zip).
-
-If you find you can't change the background make sure `php_fileinfo` is enabled in your php.ini. I believe it should be by default, but one user came across the issue on a windows system.
-
-Installation is as simple as cloning the repository somewhere, or downloading and extracting the zip/tar and pointing your httpd document root to the `/public` folder then creating the .env file and generating an encryption key (this is all taken care of for you with the docker).
-
-```
-cd /path/to/heimdall
-cp .env.example .env
-php artisan key:generate
-```
-
-For simple testing you could just go to the folder and type `php artisan serve`
-
-There is also a multi-arch Docker which supports x86-64, armhf and arm64, instructions on how to use them at
-
-- https://hub.docker.com/r/linuxserver/heimdall/
-
-## Updating
-To update your instance, simply clone this repository or download the zip/tar file with the new version and copy it over the old installation.
-
-## Search Providers
-v2.3.0 added the ability for users to customise the search options.
-
-Options are stored in `/storage/app/searchproviders.yaml` (`/config/www/searchproviders.yaml` on docker installs), feel free to rearrange the options, add new ones, delete ones you don't use, etc.
-
-Consider contributing to https://github.com/linuxserver/Heimdall/discussions/categories/search-providers to help others add new ones.
-
-The item at the top of the list `Tiles` allows you to search for apps on your dashboard by name, helpful when you have lots of icons.
-
-## New background image not being set
-If you are using the docker image or a default php install you may find images over 2MB wont get set as the background image, you just need to change the `upload_max_filesize` in the php.ini.
-
-If you are using the linuxserver.io docker image simply edit `/path/to/config/php/php-local.ini` and add `upload_max_filesize = 30M` to the end.
-
-## Docker and enhanced apps
-If you are running the docker and the EnhancedApps you are using are also in dockers, you may need to use the docker networking addresses to communicate with them.
-
-You can do this by using `http(s)://docker_name:port` in the config section. Instead of the name you can use the internal docker ip, this usually starts with `172.`
-
-## Languages
-The app has been translated into several languages; however, the quality of the translations could do with work. If you would like to improve them, or help with other translations, they are stored in `/resources/lang/`.
-
-To create a new language translation, make a new folder with the ISO 3166-1 alpha-2 code as the name, copy `app.php` from `/resources/lang/en/app.php` into your new folder and replace the English strings.
-
-When you are finished, create a pull request.
-
-Currently added languages are
-
-- Breton
-- Chinese
-- Danish
-- Dutch
-- English
-- Finnish
-- French
-- German
-- Greek
-- Hungarian
-- Italian
-- Japanese
-- Korean
-- Lombard
-- Norwegian
-- Polish
-- Portuguese
-- Russian
-- Slovenian
-- Spanish
-- Swedish
-- Turkish
-
-## Web Server Configuration
-
-### Apache
-A `.htaccess` file ships with the app, however, a lot of apache installations disallow `.htaccess` files by default.
-You will notice this due to some links not working like `/settings`.
-In addition mod-rewrite needs to be enabled if it isn't already.
-
-#### Fixes & work around options
-##### - Apache global allow .htaccess
-Find the `AllowOverride None` line in your apache configuration and change this to `AllowOverride All`
-
-##### - Apache vhost configuration allow .htaccess
-In the apache vhost configuration in the `` block add `AllowOverride All`
-
-##### - Add .htaccess content in apache configuration
-You can add the full `.htaccess` into your apache configuration, this way you do not need to allow `.htaccess` files.
-You can even shorten the content of the `.htaccess` when inserting it into the apache configuration to:
-```
-Options +FollowSymLinks
-RewriteEngine On
-
-RewriteCond %{REQUEST_FILENAME} !-d
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteRule ^ index.php [L]
-```
-#### More info
-More info about `AllowOverride` can be found here:
-https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride
-
-
-
-### Nginx
-If you are using Nginx, the following directive in your site configuration will direct all requests to the `index.php` front controller:
-
-```
-location / {
- try_files $uri $uri/ /index.php?$query_string;
-}
-```
-Someone was using the same nginx setup to both run this and reverse proxy Plex, Plex is served from `/web` so their location was interfering with the `/webfonts`.
-
-Therefore, if your fonts aren't showing because you have a location for `/web`, add the following
-```
-location /webfonts {
- try_files $uri $uri/;
-}
-```
-If there are any other locations which might interfere with any of the folders in the `/public` folder, you might have to do the same for those as well, but it's a super fringe case.
-
-### Reverse proxy
-If you'd like to reverse proxy this app, we recommend using our letsencrypt/nginx docker image: [SWAG - Secure Web Application Gateway](https://hub.docker.com/r/linuxserver/swag)
-You can either reverse proxy from the root location, or from a subdomain (subfolder method is currently not supported). For HTTPS proxy, make sure you use the HTTPS port of Heimdall webserver, otherwise some links may break. You can add security through `.htpasswd`
-
-```
-location / {
- auth_basic "Restricted";
- auth_basic_user_file /config/nginx/.htpasswd;
- include /config/nginx/proxy.conf;
- proxy_set_header X-Forwarded-Proto https;
- proxy_pass http://heimdall;
-}
-```
-
-### Self-signed certificates and local CAs
-Per default Heimdall uses the standard certificate bundle file (`ca-certificates.crt`) to verify HTTPS sites and will ignore additional certificates placed in `/etc/ssl/certs`. If you wish to use enhanced apps with HTTPS sites that use a self-signed certificate or certs signed with your own local CA, you can override the default bundle:
-
-- Create a unified certificate `.pem` file that contains all CAs and certificates that Heimdall has to verify. For example, if you use both LetsEncrypt and a local CA for your internal apps, concatenate the LetsEncrypt intermediate CA (export via browser) and your local CA `cert.pem` (or any number of self-signed certs) into one `heimdall.pem` file.
-- Place the `heimdall.pem` into the container (if you use Docker), for example by placing it in the path that you mapped to `/config`. Make sure that the Heimdall user has read access (`chmod a+r`).
-- Set the `openssl.cafile` setting in `/config/php/php-local.ini` to your cert bundle:
-
-```
-# /config/php/php-local.ini
-openssl.cafile = /config/heimdall.pem
-```
-
-Restart the container and the enhanced apps should now be able to access your local HTTP websites. This configuration will survive updating or recreating the Heimdall container.
-
-## Running offline
-The apps list is hosted on github, you have a couple of options if you want to run without a connection to the outside world:
-1) Clone the repository and host it yourself, look at the .github actions file to see how to generate the apps list.
-2) Download the apps list and store it as a json accessible to heimdall named `list.json`
-
-With both options all you need to do is add the following to your `.env`
-`APP_SOURCE=http://localhost/` Where `http://localhost/` is the path to the apps list without the name of the file, so if your file is stored at `https://heimdall.local/list.json` you would put `APP_SOURCE=https://heimdall.local/`
-
-## Support
-https://discord.gg/CCjHKn4 or through GitHub issues
-
-## Donate
-If you would like to show your appreciation, feel free to use the link below.
-
-[](https://www.paypal.me/heimdall)
-
-## Credits
-- PHP Framework - [Laravel](https://laravel.com/)
-- Icons - [FontAwesome 5](https://fontawesome.com/)
-- JavaScript - [jQuery](https://jquery.com/)
-- Colour picker - [Huebee](http://huebee.buzz/)
-- Background image - [pexels](https://www.pexels.com)
-- Trianglify library - [Trianglify](https://github.com/qrohlf/trianglify)
-- Everyone at Linuxserver.io that has helped with the app and let's not forget IronicBadger for the following question that started it all:
-```
-you know, i would love something like this landing page for all my servers apps
-that gives me the ability to pin favourites
-and / or search
-@Stark @Kode do either of you think you'd be able to rustle something like this up ?
-```
-
-## License
-
-This app is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
diff --git a/apps/heimdall/data.yml b/apps/heimdall/data.yml
deleted file mode 100644
index 25e75100..00000000
--- a/apps/heimdall/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Heimdall
-tags:
- - 工具
-title: 应用程序仪表板和启动器
-description: 应用程序仪表板和启动器
-additionalProperties:
- key: heimdall
- name: Heimdall
- tags:
- - Tool
- shortDescZh: 应用程序仪表板和启动器
- shortDescEn: An Application dashboard and launcher
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://heimdall.site/
- github: https://github.com/linuxserver/Heimdall
- document: https://github.com/linuxserver/Heimdall
diff --git a/apps/heimdall/latest/.env.sample b/apps/heimdall/latest/.env.sample
deleted file mode 100644
index b3db0e1c..00000000
--- a/apps/heimdall/latest/.env.sample
+++ /dev/null
@@ -1,4 +0,0 @@
-CONTAINER_NAME="heimdall"
-PANEL_APP_PORT_HTTP="40049"
-PANEL_APP_PORT_HTTPS="40050"
-DATA_PATH="./data"
diff --git a/apps/heimdall/latest/data.yml b/apps/heimdall/latest/data.yml
deleted file mode 100644
index a4890cc8..00000000
--- a/apps/heimdall/latest/data.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40049
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: HTTP Port
- labelZh: HTTP端口
- required: true
- rule: paramPort
- type: number
- - default: 40050
- edit: true
- envKey: PANEL_APP_PORT_HTTPS
- labelEn: HTTPS Port
- labelZh: HTTPS端口
- 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/heimdall/latest/docker-compose.yml b/apps/heimdall/latest/docker-compose.yml
deleted file mode 100644
index ba8edcb3..00000000
--- a/apps/heimdall/latest/docker-compose.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-services:
- heimdall:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:80"
- - "${PANEL_APP_PORT_HTTPS}:443"
- volumes:
- - "${DATA_PATH}:/config"
- environment:
- - PUID=1000
- - PGID=1000
- - TZ=Asia/Shanghai
- image: linuxserver/heimdall:latest
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/heimdall/logo.png b/apps/heimdall/logo.png
deleted file mode 100644
index a2004654..00000000
Binary files a/apps/heimdall/logo.png and /dev/null differ
diff --git a/apps/home-assistant/2023.8.0.dev20230723/.env.sample b/apps/home-assistant/2023.8.0.dev20230723/.env.sample
deleted file mode 100644
index 78ccb2f2..00000000
--- a/apps/home-assistant/2023.8.0.dev20230723/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="homeassistant"
-DATA_PATH="./data"
diff --git a/apps/home-assistant/2023.8.0.dev20230723/data.yml b/apps/home-assistant/2023.8.0.dev20230723/data.yml
deleted file mode 100644
index a0ed67dc..00000000
--- a/apps/home-assistant/2023.8.0.dev20230723/data.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-additionalProperties:
- formFields:
- - default: ./data
- edit: true
- envKey: DATA_PATH
- labelEn: Data folder path
- labelZh: 数据文件夹路径
- required: true
- type: text
diff --git a/apps/home-assistant/2023.8.0.dev20230723/docker-compose.yml b/apps/home-assistant/2023.8.0.dev20230723/docker-compose.yml
deleted file mode 100644
index 718b77e4..00000000
--- a/apps/home-assistant/2023.8.0.dev20230723/docker-compose.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-services:
- homeassistant:
- container_name: ${CONTAINER_NAME}
- restart: always
- network_mode: "host"
- volumes:
- - "${DATA_PATH}:/config"
- environment:
- - TZ=Asia/Shanghai
- image: homeassistant/home-assistant:2023.8.0.dev20230723
- labels:
- createdBy: "Apps"
diff --git a/apps/home-assistant/README.md b/apps/home-assistant/README.md
deleted file mode 100644
index 1e199104..00000000
--- a/apps/home-assistant/README.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# 使用说明
-
-- 默认访问地址
-```
-IP:8123
-```
-
-# 原始相关
-
-# Home Assistant [](https://www.home-assistant.io/join-chat/)
-
-Open source home automation that puts local control and privacy first.
-Powered by a worldwide community of tinkerers and DIY enthusiasts.
-Perfect to run on a Raspberry Pi or a local server.
-
-Check out [home-assistant.io](https://home-assistant.io) for [ademo](https://demo.home-assistant.io), [installation instructions](https://home-assistant.io/getting-started/),[tutorials](https://home-assistant.io/getting-started/automation/) and [documentation](https://home-assistant.io/docs/).
-
-[](https://demo.home-assistant.io)
-
-## Featured integrations
-
-[](https://home-assistant.io/integrations/)
-
-The system is built using a modular approach so support for other
-devices or actions can be implemented easily. See also the [section on
-architecture](https://developers.home-assistant.io/docs/architecture_index/)
-and the [section on creating your own
-components](https://developers.home-assistant.io/docs/creating_component_index/).
-
-If you run into issues while using Home Assistant or during development
-of a component, check the [Home Assistant help
-section](https://home-assistant.io/help/) of our website for further
-help and information.
diff --git a/apps/home-assistant/data.yml b/apps/home-assistant/data.yml
deleted file mode 100644
index 722d8e3b..00000000
--- a/apps/home-assistant/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Home Assistant
-tags:
- - 工具
-title: 开源家庭自动化,将本地控制和隐私放在首位。
-description: 开源家庭自动化,将本地控制和隐私放在首位。
-additionalProperties:
- key: home-assistant
- name: Home Assistant
- tags:
- - Tool
- shortDescZh: 开源家庭自动化,将本地控制和隐私放在首位。
- shortDescEn: Open source home automation that puts local control and privacy first.
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://www.home-assistant.io/
- github: https://github.com/home-assistant/core
- document: https://www.home-assistant.io/docs/
diff --git a/apps/home-assistant/latest/.env.sample b/apps/home-assistant/latest/.env.sample
deleted file mode 100644
index 78ccb2f2..00000000
--- a/apps/home-assistant/latest/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="homeassistant"
-DATA_PATH="./data"
diff --git a/apps/home-assistant/latest/data.yml b/apps/home-assistant/latest/data.yml
deleted file mode 100644
index a0ed67dc..00000000
--- a/apps/home-assistant/latest/data.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-additionalProperties:
- formFields:
- - default: ./data
- edit: true
- envKey: DATA_PATH
- labelEn: Data folder path
- labelZh: 数据文件夹路径
- required: true
- type: text
diff --git a/apps/home-assistant/latest/docker-compose.yml b/apps/home-assistant/latest/docker-compose.yml
deleted file mode 100644
index 34d540b4..00000000
--- a/apps/home-assistant/latest/docker-compose.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-services:
- homeassistant:
- container_name: ${CONTAINER_NAME}
- restart: always
- network_mode: "host"
- volumes:
- - "${DATA_PATH}:/config"
- environment:
- - TZ=Asia/Shanghai
- image: homeassistant/home-assistant:latest
- labels:
- createdBy: "Apps"
diff --git a/apps/home-assistant/logo.png b/apps/home-assistant/logo.png
deleted file mode 100644
index c6224471..00000000
Binary files a/apps/home-assistant/logo.png and /dev/null differ
diff --git a/apps/homepage/1.3.2/.env.sample b/apps/homepage/1.3.2/.env.sample
deleted file mode 100644
index e9c6d957..00000000
--- a/apps/homepage/1.3.2/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="homepage"
-PANEL_APP_PORT_HTTP="40207"
diff --git a/apps/homepage/1.3.2/data.yml b/apps/homepage/1.3.2/data.yml
deleted file mode 100644
index 2117bc24..00000000
--- a/apps/homepage/1.3.2/data.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40207
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
diff --git a/apps/homepage/1.3.2/docker-compose.yml b/apps/homepage/1.3.2/docker-compose.yml
deleted file mode 100644
index ff3ea203..00000000
--- a/apps/homepage/1.3.2/docker-compose.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-services:
- homepage:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:3000"
- volumes:
- - ./data/config:/app/config
- - /var/run/docker.sock:/var/run/docker.sock:ro
- environment:
- - PUID=1000
- - PGID=1000
- image: ghcr.io/gethomepage/homepage:v1.3.2
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/homepage/1.3.2/scripts/init.sh b/apps/homepage/1.3.2/scripts/init.sh
deleted file mode 100644
index 4e811c86..00000000
--- a/apps/homepage/1.3.2/scripts/init.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-chown -R 1000:1000 data
\ No newline at end of file
diff --git a/apps/homepage/README.md b/apps/homepage/README.md
deleted file mode 100644
index 895a17fe..00000000
--- a/apps/homepage/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
- A modern, fully static, fast, secure fully proxied, highly customizable application dashboard with integrations for over 100 services and translations into multiple languages. Easily configured via YAML files or through docker label discovery.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Features
-
-With features like quick search, bookmarks, weather support, a wide range of integrations and widgets, an elegant and modern design, and a focus on performance, Homepage is your ideal start to the day and a handy companion throughout it.
-
-- **Fast** - The site is statically generated at build time for instant load times.
-- **Secure** - All API requests to backend services are proxied, keeping your API keys hidden. Constantly reviewed for security by the community.
-- **For Everyone** - Images built for AMD64, ARM64, ARMv7, and ARMv6.
-- **Full i18n** - Support for over 40 languages.
-- **Service & Web Bookmarks** - Add custom links to the homepage.
-- **Docker Integration** - Container status and stats. Automatic service discovery via labels.
-- **Service Integration** - Over 100 service integrations, including popular starr and self-hosted apps.
-- **Information & Utility Widgets** - Weather, time, date, search, and more.
-- **And much more...**
diff --git a/apps/homepage/data.yml b/apps/homepage/data.yml
deleted file mode 100644
index 3c167664..00000000
--- a/apps/homepage/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Homepage
-tags:
- - 工具
-title: 一个现代的、完全静态的、快速的、安全的、完全代理的、高度可定制的应用程序仪表板
-description: 一个现代的、完全静态的、快速的、安全的、完全代理的、高度可定制的应用程序仪表板
-additionalProperties:
- key: homepage
- name: Homepage
- tags:
- - Tool
- shortDescZh: 一个现代的、完全静态的、快速的、安全的、完全代理的、高度可定制的应用程序仪表板
- shortDescEn: A modern, fully static, fast, secure fully proxied, highly customizable application dashboard
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://gethomepage.dev
- github: https://github.com/gethomepage/homepage
- document: https://gethomepage.dev
diff --git a/apps/homepage/latest/.env.sample b/apps/homepage/latest/.env.sample
deleted file mode 100644
index e9c6d957..00000000
--- a/apps/homepage/latest/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="homepage"
-PANEL_APP_PORT_HTTP="40207"
diff --git a/apps/homepage/latest/data.yml b/apps/homepage/latest/data.yml
deleted file mode 100644
index 2117bc24..00000000
--- a/apps/homepage/latest/data.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40207
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
diff --git a/apps/homepage/latest/docker-compose.yml b/apps/homepage/latest/docker-compose.yml
deleted file mode 100644
index fd38b093..00000000
--- a/apps/homepage/latest/docker-compose.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-services:
- homepage:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:3000"
- volumes:
- - ./data/config:/app/config
- - /var/run/docker.sock:/var/run/docker.sock:ro
- environment:
- - PUID=1000
- - PGID=1000
- image: ghcr.io/gethomepage/homepage:latest
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/homepage/latest/scripts/init.sh b/apps/homepage/latest/scripts/init.sh
deleted file mode 100644
index 4e811c86..00000000
--- a/apps/homepage/latest/scripts/init.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-chown -R 1000:1000 data
\ No newline at end of file
diff --git a/apps/homepage/logo.png b/apps/homepage/logo.png
deleted file mode 100644
index f891fcd8..00000000
Binary files a/apps/homepage/logo.png and /dev/null differ
diff --git a/apps/it-tools/2024.10.22-7ca5933/.env.sample b/apps/it-tools/2024.10.22-7ca5933/.env.sample
deleted file mode 100644
index 42ad887c..00000000
--- a/apps/it-tools/2024.10.22-7ca5933/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="it-tools"
-PANEL_APP_PORT_HTTP="40116"
diff --git a/apps/it-tools/2024.10.22-7ca5933/data.yml b/apps/it-tools/2024.10.22-7ca5933/data.yml
deleted file mode 100644
index b1ac61dd..00000000
--- a/apps/it-tools/2024.10.22-7ca5933/data.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40116
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
diff --git a/apps/it-tools/2024.10.22-7ca5933/docker-compose.yml b/apps/it-tools/2024.10.22-7ca5933/docker-compose.yml
deleted file mode 100644
index c996c7b8..00000000
--- a/apps/it-tools/2024.10.22-7ca5933/docker-compose.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-services:
- it-tools:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:80"
- image: corentinth/it-tools:2024.10.22-7ca5933
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/it-tools/README.md b/apps/it-tools/README.md
deleted file mode 100644
index 828f8309..00000000
--- a/apps/it-tools/README.md
+++ /dev/null
@@ -1,120 +0,0 @@
-
-
-Useful tools for developer and people working in IT. [Have a look !](https://it-tools.tech).
-
-## Functionalities and roadmap
-
-Please check the [issues](https://github.com/CorentinTh/it-tools/issues) to see if some feature listed to be implemented.
-
-You have an idea of a tool? Submit a [feature request](https://github.com/CorentinTh/it-tools/issues/new/choose)!
-
-## Self host
-
-Self host solutions for your homelab
-
-**From docker hub:**
-
-```sh
-docker run -d --name it-tools --restart unless-stopped -p 8080:80 corentinth/it-tools:latest
-```
-
-**From github packages:**
-
-```sh
-docker run -d --name it-tools --restart unless-stopped -p 8080:80 ghcr.io/corentinth/it-tools:latest
-```
-
-**Other solutions:**
-
-- [Tipi](https://www.runtipi.io/docs/apps-available)
-- [Unraid](https://unraid.net/community/apps?q=it-tools)
-
-## Contribute
-
-### Recommended IDE Setup
-
-[VSCode](https://code.visualstudio.com/) with the following extensions:
-- [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur)
-- [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
-- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
-- [i18n Ally](https://marketplace.visualstudio.com/items?itemName=lokalise.i18n-ally)
-
-with the following settings:
-
-```json5
-{
- "editor.formatOnSave": false,
- "editor.codeActionsOnSave": {
- "source.fixAll.eslint": true
- },
- "i18n-ally.localesPaths": [
- "locales",
- "src/tools/*/locales"
- ],
- "i18n-ally.keystyle": "nested"
-}
-```
-
-### Type Support for `.vue` Imports in TS
-
-TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.
-
-If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:
-
-1. Disable the built-in TypeScript Extension
- 1. Run `Extensions: Show Built-in Extensions` from VSCode's command palette
- 2. Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
-2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.
-
-### Project Setup
-
-```sh
-pnpm install
-```
-
-### Compile and Hot-Reload for Development
-
-```sh
-pnpm dev
-```
-
-### Type-Check, Compile and Minify for Production
-
-```sh
-pnpm build
-```
-
-### Run Unit Tests with [Vitest](https://vitest.dev/)
-
-```sh
-pnpm test
-```
-
-### Lint with [ESLint](https://eslint.org/)
-
-```sh
-pnpm lint
-```
-
-### Create a new tool
-
-To create a new tool, there is a script that generate the boilerplate of the new tool, simply run:
-
-```sh
-pnpm run script:create-new-tool my-tool-name
-```
-
-It will create a directory in `src/tools` with the correct files, and a the import in `src/tools/index.ts`. You will just need to add the imported tool in the proper category and develop the tool.
-
-## Credits
-
-Coded with ❤️ by [Corentin Thomasset](https://corentin-thomasset.fr/).
-
-This project is continuously deployed using [vercel.com](https://vercel.com).
-
-
-
-
-## License
-
-This project is under the [GNU GPLv3](https://github.com/CorentinTh/it-tools/blob/main/LICENSE).
diff --git a/apps/it-tools/data.yml b/apps/it-tools/data.yml
deleted file mode 100644
index 14426b60..00000000
--- a/apps/it-tools/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: IT-Tools
-tags:
- - 开发工具
-title: 为开发人员提供方便的在线工具集合,具有出色的用户体验
-description: 为开发人员提供方便的在线工具集合,具有出色的用户体验
-additionalProperties:
- key: it-tools
- name: IT-Tools
- tags:
- - DevTool
- shortDescZh: 为开发人员提供方便的在线工具集合,具有出色的用户体验
- shortDescEn: Collection of handy online tools for developers, with great UX
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://it-tools.tech
- github: https://github.com/CorentinTh/it-tools
- document: https://github.com/CorentinTh/it-tools
diff --git a/apps/it-tools/latest/.env.sample b/apps/it-tools/latest/.env.sample
deleted file mode 100644
index 42ad887c..00000000
--- a/apps/it-tools/latest/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="it-tools"
-PANEL_APP_PORT_HTTP="40116"
diff --git a/apps/it-tools/latest/data.yml b/apps/it-tools/latest/data.yml
deleted file mode 100644
index b1ac61dd..00000000
--- a/apps/it-tools/latest/data.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40116
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
diff --git a/apps/it-tools/latest/docker-compose.yml b/apps/it-tools/latest/docker-compose.yml
deleted file mode 100644
index 3d64426a..00000000
--- a/apps/it-tools/latest/docker-compose.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-services:
- it-tools:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:80"
- image: corentinth/it-tools:latest
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/it-tools/logo.png b/apps/it-tools/logo.png
deleted file mode 100644
index 7ac104d0..00000000
Binary files a/apps/it-tools/logo.png and /dev/null differ
diff --git a/apps/jellyfin/10.10.7/.env.sample b/apps/jellyfin/10.10.7/.env.sample
deleted file mode 100644
index 7bc696a4..00000000
--- a/apps/jellyfin/10.10.7/.env.sample
+++ /dev/null
@@ -1,4 +0,0 @@
-CONTAINER_NAME=jellyfin
-PANEL_APP_PORT_HTTP=8096
-CACHE_FOLDER_PATH="./data/media"
-MEDIA_FOLDER_PATH="./data/cache"
\ No newline at end of file
diff --git a/apps/jellyfin/10.10.7/data.yml b/apps/jellyfin/10.10.7/data.yml
deleted file mode 100644
index dfe440e3..00000000
--- a/apps/jellyfin/10.10.7/data.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-additionalProperties:
- formFields:
- - default: 8096
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: WebUI Port
- labelZh: 网页端口
- required: true
- rule: paramPort
- type: number
- - default: ./data/media
- edit: true
- envKey: MEDIA_FOLDER_PATH
- labelEn: Media folder path
- labelZh: 媒体文件夹路径
- required: true
- type: text
- - default: ./data/cache
- edit: true
- envKey: CACHE_FOLDER_PATH
- labelEn: Cache folder path
- labelZh: 缓存文件夹路径
- required: true
- type: text
diff --git a/apps/jellyfin/10.10.7/docker-compose.yml b/apps/jellyfin/10.10.7/docker-compose.yml
deleted file mode 100644
index 09b6b15b..00000000
--- a/apps/jellyfin/10.10.7/docker-compose.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-services:
- jellyfin:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:8096"
- volumes:
- - "./data/config:/config"
- - "${CACHE_FOLDER_PATH}:/cache"
- - "${MEDIA_FOLDER_PATH}:/media/media"
- devices:
- - /dev/dri:/dev/dri # VAAPI/NVDEC/NVENC render nodes
- #- /dev/vchiq:/dev/vchiq # MMAL/OMX on Raspberry Pi
- image: "jellyfin/jellyfin:10.10.7"
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
\ No newline at end of file
diff --git a/apps/jellyfin/README.md b/apps/jellyfin/README.md
deleted file mode 100644
index 2362741b..00000000
--- a/apps/jellyfin/README.md
+++ /dev/null
@@ -1,176 +0,0 @@
-
-
----
-
-Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. We welcome anyone who is interested in joining us in our quest!
-
-For further details, please see [our documentation page](https://jellyfin.org/docs/). To receive the latest updates, get help with Jellyfin, and join the community, please visit [one of our communication channels](https://jellyfin.org/docs/general/getting-help). For more information about the project, please see our [about page](https://jellyfin.org/docs/general/about).
-
-Want to get started?
-Check out our downloads page or our installation guide, then see our quick start guide. You can also build from source.
-
-Something not working right?
-Open an Issue on GitHub.
-
-Want to contribute?
-Check out our contributing choose-your-own-adventure to see where you can help, then see our contributing guide and our community standards.
-
-New idea or improvement?
-Check out our feature request hub.
-
-Don't see Jellyfin in your language?
-Check out our Weblate instance to help translate Jellyfin and its subprojects.
-
-
-
-
-
----
-
-## Jellyfin Server
-
-This repository contains the code for Jellyfin's backend server. Note that this is only one of many projects under the Jellyfin GitHub [organization](https://github.com/jellyfin/) on GitHub. If you want to contribute, you can start by checking out our [documentation](https://jellyfin.org/docs/general/contributing/index.html) to see what to work on.
-
-## Server Development
-
-These instructions will help you get set up with a local development environment in order to contribute to this repository. Before you start, please be sure to completely read our [guidelines on development contributions](https://jellyfin.org/docs/general/contributing/development.html). Note that this project is supported on all major operating systems except FreeBSD, which is still incompatible.
-
-### Prerequisites
-
-Before the project can be built, you must first install the [.NET 7.0 SDK](https://dotnet.microsoft.com/download/dotnet) on your system.
-
-Instructions to run this project from the command line are included here, but you will also need to install an IDE if you want to debug the server while it is running. Any IDE that supports .NET 6 development will work, but two options are recent versions of [Visual Studio](https://visualstudio.microsoft.com/downloads/) (at least 2022) and [Visual Studio Code](https://code.visualstudio.com/Download).
-
-[ffmpeg](https://github.com/jellyfin/jellyfin-ffmpeg) will also need to be installed.
-
-### Cloning the Repository
-
-After dependencies are installed you will need to clone a local copy of this repository. If you just want to run the server from source you can clone this repository directly, but if you are intending to contribute code changes to the project, you should [set up your own fork](https://jellyfin.org/docs/general/contributing/development.html#set-up-your-copy-of-the-repo) of the repository. The following example shows how you can clone the repository directly over HTTPS.
-
-```bash
-git clone https://github.com/jellyfin/jellyfin.git
-```
-
-### Installing the Web Client
-
-The server is configured to host the static files required for the [web client](https://github.com/jellyfin/jellyfin-web) in addition to serving the backend by default. Before you can run the server, you will need to get a copy of the web client since they are not included in this repository directly.
-
-Note that it is also possible to [host the web client separately](#hosting-the-web-client-separately) from the web server with some additional configuration, in which case you can skip this step.
-
-There are three options to get the files for the web client.
-
-1. Download one of the finished builds from the [Azure DevOps pipeline](https://dev.azure.com/jellyfin-project/jellyfin/_build?definitionId=27). You can download the build for a specific release by looking at the [branches tab](https://dev.azure.com/jellyfin-project/jellyfin/_build?definitionId=27&_a=summary&repositoryFilter=6&view=branches) of the pipelines page.
-2. Build them from source following the instructions on the [jellyfin-web repository](https://github.com/jellyfin/jellyfin-web)
-3. Get the pre-built files from an existing installation of the server. For example, with a Windows server installation the client files are located at `C:\Program Files\Jellyfin\Server\jellyfin-web`
-
-### Running The Server
-
-The following instructions will help you get the project up and running via the command line, or your preferred IDE.
-
-#### Running With Visual Studio
-
-To run the project with Visual Studio you can open the Solution (`.sln`) file and then press `F5` to run the server.
-
-#### Running With Visual Studio Code
-
-To run the project with Visual Studio Code you will first need to open the repository directory with Visual Studio Code using the `Open Folder...` option.
-
-Second, you need to [install the recommended extensions for the workspace](https://code.visualstudio.com/docs/editor/extension-gallery#_recommended-extensions). Note that extension recommendations are classified as either "Workspace Recommendations" or "Other Recommendations", but only the "Workspace Recommendations" are required.
-
-After the required extensions are installed, you can run the server by pressing `F5`.
-
-#### Running From The Command Line
-
-To run the server from the command line you can use the `dotnet run` command. The example below shows how to do this if you have cloned the repository into a directory named `jellyfin` (the default directory name) and should work on all operating systems.
-
-```bash
-cd jellyfin # Move into the repository directory
-dotnet run --project Jellyfin.Server --webdir /absolute/path/to/jellyfin-web/dist # Run the server startup project
-```
-
-A second option is to build the project and then run the resulting executable file directly. When running the executable directly you can easily add command line options. Add the `--help` flag to list details on all the supported command line options.
-
-1. Build the project
-
-```bash
-dotnet build # Build the project
-cd Jellyfin.Server/bin/Debug/net7.0 # Change into the build output directory
-```
-
-2. Execute the build output. On Linux, Mac, etc. use `./jellyfin` and on Windows use `jellyfin.exe`.
-
-### Running The Tests
-
-This repository also includes unit tests that are used to validate functionality as part of a CI pipeline on Azure. There are several ways to run these tests.
-
-1. Run tests from the command line using `dotnet test`
-2. Run tests in Visual Studio using the [Test Explorer](https://docs.microsoft.com/en-us/visualstudio/test/run-unit-tests-with-test-explorer)
-3. Run individual tests in Visual Studio Code using the associated [CodeLens annotation](https://github.com/OmniSharp/omnisharp-vscode/wiki/How-to-run-and-debug-unit-tests)
-
-### Advanced Configuration
-
-The following sections describe some more advanced scenarios for running the server from source that build upon the standard instructions above.
-
-#### Hosting The Web Client Separately
-
-It is not necessary to host the frontend web client as part of the backend server. Hosting these two components separately may be useful for frontend developers who would prefer to host the client in a separate webpack development server for a tighter development loop. See the [jellyfin-web](https://github.com/jellyfin/jellyfin-web#getting-started) repo for instructions on how to do this.
-
-To instruct the server not to host the web content, there is a `nowebclient` configuration flag that must be set. This can specified using the command line
-switch `--nowebclient` or the environment variable `JELLYFIN_NOWEBCONTENT=true`.
-
-Since this is a common scenario, there is also a separate launch profile defined for Visual Studio called `Jellyfin.Server (nowebcontent)` that can be selected from the 'Start Debugging' dropdown in the main toolbar.
-
-**NOTE:** The setup wizard can not be run if the web client is hosted separately.
-
----
-
-
-This project comes as a pre-built docker image that enables you to easily forward to your websites
-running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt.
-
-- [Quick Setup](#quick-setup)
-- [Full Setup](https://nginxproxymanager.com/setup/)
-- [Screenshots](https://nginxproxymanager.com/screenshots/)
-
-## Project Goal
-
-I created this project to fill a personal need to provide users with a easy way to accomplish reverse
-proxying hosts with SSL termination and it had to be so easy that a monkey could do it. This goal hasn't changed.
-While there might be advanced options they are optional and the project should be as simple as possible
-so that the barrier for entry here is low.
-
-
-
-
-## Features
-
-- Beautiful and Secure Admin Interface based on [Tabler](https://tabler.github.io/)
-- Easily create forwarding domains, redirections, streams and 404 hosts without knowing anything about Nginx
-- Free SSL using Let's Encrypt or provide your own custom SSL certificates
-- Access Lists and basic HTTP Authentication for your hosts
-- Advanced Nginx configuration available for super users
-- User management, permissions and audit log
-
-
-## Hosting your home network
-
-I won't go in to too much detail here but here are the basics for someone new to this self-hosted world.
-
-1. Your home router will have a Port Forwarding section somewhere. Log in and find it
-2. Add port forwarding for port 80 and 443 to the server hosting this project
-3. Configure your domain name details to point to your home, either with a static ip or a service like DuckDNS or [Amazon Route53](https://github.com/jc21/route53-ddns)
-4. Use the Nginx Proxy Manager as your gateway to forward to your other web based services
-
-## Quick Setup
-
-1. Install Docker and Docker-Compose
-
-- [Docker Install documentation](https://docs.docker.com/install/)
-- [Docker-Compose Install documentation](https://docs.docker.com/compose/install/)
-
-2. Create a docker-compose.yml file similar to this:
-
-```yml
-version: '3.8'
-services:
- app:
- image: 'jc21/nginx-proxy-manager:latest'
- restart: unless-stopped
- ports:
- - '80:80'
- - '81:81'
- - '443:443'
- volumes:
- - ./data:/data
- - ./letsencrypt:/etc/letsencrypt
-```
-
-This is the bare minimum configuration required. See the [documentation](https://nginxproxymanager.com/setup/) for more.
-
-3. Bring up your stack by running
-
-```bash
-docker-compose up -d
-
-# If using docker-compose-plugin
-docker compose up -d
-
-```
-
-4. Log in to the Admin UI
-
-When your docker container is running, connect to it on port `81` for the admin interface.
-Sometimes this can take a little bit because of the entropy of keys.
-
-[http://127.0.0.1:81](http://127.0.0.1:81)
-
-Default Admin User:
-```
-Email: admin@example.com
-Password: changeme
-```
-
-Immediately after logging in with this default user you will be asked to modify your details and change your password.
-
-
-## Contributors
-
-Special thanks to [all of our contributors](https://github.com/NginxProxyManager/nginx-proxy-manager/graphs/contributors).
-
-
-## Getting Support
-
-1. [Found a bug?](https://github.com/NginxProxyManager/nginx-proxy-manager/issues)
-2. [Discussions](https://github.com/NginxProxyManager/nginx-proxy-manager/discussions)
-3. [Development Gitter](https://gitter.im/nginx-proxy-manager/community)
-4. [Reddit](https://reddit.com/r/nginxproxymanager)
diff --git a/apps/nginx-proxy-manager/data.yml b/apps/nginx-proxy-manager/data.yml
deleted file mode 100644
index 91ada694..00000000
--- a/apps/nginx-proxy-manager/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: NginxProxyManager
-tags:
- - 工具
-title: 使用简单、强大的界面管理 Nginx 代理主机
-description: 使用简单、强大的界面管理 Nginx 代理主机
-additionalProperties:
- key: nginx-proxy-manager
- name: NginxProxyManager
- tags:
- - Tool
- shortDescZh: 使用简单、强大的界面管理 Nginx 代理主机
- shortDescEn: managing Nginx proxy hosts with a simple, powerful interface
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://nginxproxymanager.com/
- github: https://github.com/NginxProxyManager/nginx-proxy-manager
- document: https://nginxproxymanager.com/guide/
diff --git a/apps/nginx-proxy-manager/github-pr-3281/.env.sample b/apps/nginx-proxy-manager/github-pr-3281/.env.sample
deleted file mode 100644
index d861c039..00000000
--- a/apps/nginx-proxy-manager/github-pr-3281/.env.sample
+++ /dev/null
@@ -1,6 +0,0 @@
-CONTAINER_NAME="nginx-proxy-manager"
-PANEL_APP_PORT_HTTP1="30081"
-PANEL_APP_PORT_HTTP2="30443"
-PANEL_APP_PORT_HTTP="30080"
-SSL_PATH="./data/ssl"
-DATA_PATH="./data/data"
diff --git a/apps/nginx-proxy-manager/github-pr-3281/data.yml b/apps/nginx-proxy-manager/github-pr-3281/data.yml
deleted file mode 100644
index b4e038e9..00000000
--- a/apps/nginx-proxy-manager/github-pr-3281/data.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-additionalProperties:
- formFields:
- - default: 30080
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: HTTP Port
- labelZh: HTTP端口
- required: true
- rule: paramPort
- type: number
- - default: 30081
- edit: true
- envKey: PANEL_APP_PORT_HTTP1
- labelEn: Console Port
- labelZh: 控制台端口
- required: true
- rule: paramPort
- type: number
- - default: 30443
- edit: true
- envKey: PANEL_APP_PORT_HTTP2
- labelEn: HTTPS Port
- labelZh: HTTPS端口
- required: true
- rule: paramPort
- type: number
- - default: ./data/data
- edit: true
- envKey: DATA_PATH
- labelEn: Data folder path
- labelZh: 数据文件夹路径
- required: true
- type: text
- - default: ./data/ssl
- edit: true
- envKey: SSL_PATH
- labelEn: SSL folder path
- labelZh: 证书文件夹路径
- required: true
- type: text
diff --git a/apps/nginx-proxy-manager/github-pr-3281/docker-compose.yml b/apps/nginx-proxy-manager/github-pr-3281/docker-compose.yml
deleted file mode 100644
index c988cac9..00000000
--- a/apps/nginx-proxy-manager/github-pr-3281/docker-compose.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-services:
- nginxpm:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:80"
- - "${PANEL_APP_PORT_HTTP1}:81"
- - "${PANEL_APP_PORT_HTTP2}:443"
- volumes:
- - "${DATA_PATH}:/data"
- - "${SSL_PATH}:/etc/letsencrypt"
- image: jc21/nginx-proxy-manager:github-pr-3281
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/nginx-proxy-manager/latest/.env.sample b/apps/nginx-proxy-manager/latest/.env.sample
deleted file mode 100644
index d861c039..00000000
--- a/apps/nginx-proxy-manager/latest/.env.sample
+++ /dev/null
@@ -1,6 +0,0 @@
-CONTAINER_NAME="nginx-proxy-manager"
-PANEL_APP_PORT_HTTP1="30081"
-PANEL_APP_PORT_HTTP2="30443"
-PANEL_APP_PORT_HTTP="30080"
-SSL_PATH="./data/ssl"
-DATA_PATH="./data/data"
diff --git a/apps/nginx-proxy-manager/latest/data.yml b/apps/nginx-proxy-manager/latest/data.yml
deleted file mode 100644
index b4e038e9..00000000
--- a/apps/nginx-proxy-manager/latest/data.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-additionalProperties:
- formFields:
- - default: 30080
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: HTTP Port
- labelZh: HTTP端口
- required: true
- rule: paramPort
- type: number
- - default: 30081
- edit: true
- envKey: PANEL_APP_PORT_HTTP1
- labelEn: Console Port
- labelZh: 控制台端口
- required: true
- rule: paramPort
- type: number
- - default: 30443
- edit: true
- envKey: PANEL_APP_PORT_HTTP2
- labelEn: HTTPS Port
- labelZh: HTTPS端口
- required: true
- rule: paramPort
- type: number
- - default: ./data/data
- edit: true
- envKey: DATA_PATH
- labelEn: Data folder path
- labelZh: 数据文件夹路径
- required: true
- type: text
- - default: ./data/ssl
- edit: true
- envKey: SSL_PATH
- labelEn: SSL folder path
- labelZh: 证书文件夹路径
- required: true
- type: text
diff --git a/apps/nginx-proxy-manager/latest/docker-compose.yml b/apps/nginx-proxy-manager/latest/docker-compose.yml
deleted file mode 100644
index 39981bd8..00000000
--- a/apps/nginx-proxy-manager/latest/docker-compose.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-services:
- nginxpm:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:80"
- - "${PANEL_APP_PORT_HTTP1}:81"
- - "${PANEL_APP_PORT_HTTP2}:443"
- volumes:
- - "${DATA_PATH}:/data"
- - "${SSL_PATH}:/etc/letsencrypt"
- image: jc21/nginx-proxy-manager:latest
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/nginx-proxy-manager/logo.png b/apps/nginx-proxy-manager/logo.png
deleted file mode 100644
index 3a472c93..00000000
Binary files a/apps/nginx-proxy-manager/logo.png and /dev/null differ
diff --git a/apps/nginx-proxy-manager/zh-latest/.env.sample b/apps/nginx-proxy-manager/zh-latest/.env.sample
deleted file mode 100644
index d861c039..00000000
--- a/apps/nginx-proxy-manager/zh-latest/.env.sample
+++ /dev/null
@@ -1,6 +0,0 @@
-CONTAINER_NAME="nginx-proxy-manager"
-PANEL_APP_PORT_HTTP1="30081"
-PANEL_APP_PORT_HTTP2="30443"
-PANEL_APP_PORT_HTTP="30080"
-SSL_PATH="./data/ssl"
-DATA_PATH="./data/data"
diff --git a/apps/nginx-proxy-manager/zh-latest/data.yml b/apps/nginx-proxy-manager/zh-latest/data.yml
deleted file mode 100644
index b4e038e9..00000000
--- a/apps/nginx-proxy-manager/zh-latest/data.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-additionalProperties:
- formFields:
- - default: 30080
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: HTTP Port
- labelZh: HTTP端口
- required: true
- rule: paramPort
- type: number
- - default: 30081
- edit: true
- envKey: PANEL_APP_PORT_HTTP1
- labelEn: Console Port
- labelZh: 控制台端口
- required: true
- rule: paramPort
- type: number
- - default: 30443
- edit: true
- envKey: PANEL_APP_PORT_HTTP2
- labelEn: HTTPS Port
- labelZh: HTTPS端口
- required: true
- rule: paramPort
- type: number
- - default: ./data/data
- edit: true
- envKey: DATA_PATH
- labelEn: Data folder path
- labelZh: 数据文件夹路径
- required: true
- type: text
- - default: ./data/ssl
- edit: true
- envKey: SSL_PATH
- labelEn: SSL folder path
- labelZh: 证书文件夹路径
- required: true
- type: text
diff --git a/apps/nginx-proxy-manager/zh-latest/docker-compose.yml b/apps/nginx-proxy-manager/zh-latest/docker-compose.yml
deleted file mode 100644
index 8a90aaa3..00000000
--- a/apps/nginx-proxy-manager/zh-latest/docker-compose.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-services:
- nginxpm:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:80"
- - "${PANEL_APP_PORT_HTTP1}:81"
- - "${PANEL_APP_PORT_HTTP2}:443"
- volumes:
- - "${DATA_PATH}:/data"
- - "${SSL_PATH}:/etc/letsencrypt"
- image: chishin/nginx-proxy-manager-zh:release
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/nodebb/2.8/.env.sample b/apps/nodebb/2.8/.env.sample
deleted file mode 100644
index d2482cea..00000000
--- a/apps/nodebb/2.8/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="nodebb"
-PANEL_APP_PORT_HTTP="40202"
diff --git a/apps/nodebb/2.8/data.yml b/apps/nodebb/2.8/data.yml
deleted file mode 100644
index 230402f9..00000000
--- a/apps/nodebb/2.8/data.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40202
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
diff --git a/apps/nodebb/2.8/data/.gitkeep b/apps/nodebb/2.8/data/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/apps/nodebb/2.8/docker-compose.yml b/apps/nodebb/2.8/docker-compose.yml
deleted file mode 100644
index bbf32878..00000000
--- a/apps/nodebb/2.8/docker-compose.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-services:
- nodebb:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:4567"
- volumes:
- - ./data:/usr/src/app/public/uploads
- image: nodebb/docker:2.8
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/nodebb/2.8/scripts/init.sh b/apps/nodebb/2.8/scripts/init.sh
deleted file mode 100644
index 2ffd123d..00000000
--- a/apps/nodebb/2.8/scripts/init.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-chmod 777 data
\ No newline at end of file
diff --git a/apps/nodebb/README.md b/apps/nodebb/README.md
deleted file mode 100644
index d873723b..00000000
--- a/apps/nodebb/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# 介绍
-
-NodeBB 是一款由 Node.js 开发的、开源的、现代化的论坛程序
-
-
-## 数据库连接问题
-
-需要新建数据库再进行安装
-
-本机`PostgreSQL`数据库连接信息,具体查看面板数据库页面来获取,例如
-```
-PostgreSQL:5432
-```
diff --git a/apps/nodebb/data.yml b/apps/nodebb/data.yml
deleted file mode 100644
index cda40d10..00000000
--- a/apps/nodebb/data.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-name: NodeBB
-tags:
- - 建站
-title: 基于 Node.js 的现代化论坛程序
-description: 基于 Node.js 的现代化论坛程序
-additionalProperties:
- key: nodebb
- name: NodeBB
- tags:
- - Website
- shortDescZh: 基于 Node.js 的现代化论坛程序
- shortDescEn: Open source Forum Powered by Node.js
- type: website
- crossVersionUpdate: true
- limit: 0
- website: https://nodebb.org/
- github: https://github.com/NodeBB/NodeBB
- document: https://docs.nodebb.org/
diff --git a/apps/nodebb/latest/.env.sample b/apps/nodebb/latest/.env.sample
deleted file mode 100644
index d2482cea..00000000
--- a/apps/nodebb/latest/.env.sample
+++ /dev/null
@@ -1,2 +0,0 @@
-CONTAINER_NAME="nodebb"
-PANEL_APP_PORT_HTTP="40202"
diff --git a/apps/nodebb/latest/data.yml b/apps/nodebb/latest/data.yml
deleted file mode 100644
index 230402f9..00000000
--- a/apps/nodebb/latest/data.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40202
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
diff --git a/apps/nodebb/latest/data/.gitkeep b/apps/nodebb/latest/data/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/apps/nodebb/latest/docker-compose.yml b/apps/nodebb/latest/docker-compose.yml
deleted file mode 100644
index 22fc1ec4..00000000
--- a/apps/nodebb/latest/docker-compose.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-services:
- nodebb:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:4567"
- volumes:
- - ./data:/usr/src/app/public/uploads
- image: nodebb/docker:latest
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/nodebb/latest/scripts/init.sh b/apps/nodebb/latest/scripts/init.sh
deleted file mode 100644
index 2ffd123d..00000000
--- a/apps/nodebb/latest/scripts/init.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-chmod 777 data
\ No newline at end of file
diff --git a/apps/nodebb/logo.png b/apps/nodebb/logo.png
deleted file mode 100644
index 25bee1b0..00000000
Binary files a/apps/nodebb/logo.png and /dev/null differ
diff --git a/apps/ntfy/2.12.0/.env.sample b/apps/ntfy/2.12.0/.env.sample
deleted file mode 100644
index a36385e5..00000000
--- a/apps/ntfy/2.12.0/.env.sample
+++ /dev/null
@@ -1,6 +0,0 @@
-CONTAINER_NAME="ntfy"
-PANEL_APP_PORT_HTTP=40265
-APP_PORT_INTERNAL=80
-PGID=1000
-PUID=1000
-TIME_ZONE="Asia/Shanghai"
diff --git a/apps/ntfy/2.12.0/data.yml b/apps/ntfy/2.12.0/data.yml
deleted file mode 100644
index 5332a75f..00000000
--- a/apps/ntfy/2.12.0/data.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-additionalProperties:
- formFields:
- - default: "40265"
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
- - default: "80"
- edit: true
- envKey: APP_PORT_INTERNAL
- labelEn: Internal Container Ports
- labelZh: 容器内部端口
- required: true
- rule: paramPort
- type: number
- - default: "Asia/Shanghai"
- edit: true
- envKey: TIME_ZONE
- labelEn: Time Zone
- labelZh: 时区
- required: true
- type: text
- - default: "1000"
- edit: true
- envKey: PUID
- labelEn: User ID
- labelZh: 用户 ID
- required: true
- type: number
- - default: "1000"
- edit: true
- envKey: PGID
- labelEn: Group ID
- labelZh: 组 ID
- required: true
- type: number
diff --git a/apps/ntfy/2.12.0/data/ntfy/server.yml.sample b/apps/ntfy/2.12.0/data/ntfy/server.yml.sample
deleted file mode 100644
index 4b48828c..00000000
--- a/apps/ntfy/2.12.0/data/ntfy/server.yml.sample
+++ /dev/null
@@ -1,372 +0,0 @@
-# ntfy server config file
-#
-# Please refer to the documentation at https://ntfy.sh/docs/config/ for details.
-# All options also support underscores (_) instead of dashes (-) to comply with the YAML spec.
-
-# Public facing base URL of the service (e.g. https://ntfy.sh or https://ntfy.example.com)
-#
-# This setting is required for any of the following features:
-# - attachments (to return a download URL)
-# - e-mail sending (for the topic URL in the email footer)
-# - iOS push notifications for self-hosted servers (to calculate the Firebase poll_request topic)
-# - Matrix Push Gateway (to validate that the pushkey is correct)
-#
-# base-url:
-
-# Listen address for the HTTP & HTTPS web server. If "listen-https" is set, you must also
-# set "key-file" and "cert-file". Format: []:, e.g. "1.2.3.4:8080".
-#
-# To listen on all interfaces, you may omit the IP address, e.g. ":443".
-# To disable HTTP, set "listen-http" to "-".
-#
-# listen-http: ":80"
-# listen-https:
-
-# Listen on a Unix socket, e.g. /var/lib/ntfy/ntfy.sock
-# This can be useful to avoid port issues on local systems, and to simplify permissions.
-#
-# listen-unix:
-# listen-unix-mode:
-
-# Path to the private key & cert file for the HTTPS web server. Not used if "listen-https" is not set.
-#
-# key-file:
-# cert-file:
-
-# If set, also publish messages to a Firebase Cloud Messaging (FCM) topic for your app.
-# This is optional and only required to save battery when using the Android app.
-#
-# firebase-key-file:
-
-# If "cache-file" is set, messages are cached in a local SQLite database instead of only in-memory.
-# This allows for service restarts without losing messages in support of the since= parameter.
-#
-# The "cache-duration" parameter defines the duration for which messages will be buffered
-# before they are deleted. This is required to support the "since=..." and "poll=1" parameter.
-# To disable the cache entirely (on-disk/in-memory), set "cache-duration" to 0.
-# The cache file is created automatically, provided that the correct permissions are set.
-#
-# The "cache-startup-queries" parameter allows you to run commands when the database is initialized,
-# e.g. to enable WAL mode (see https://phiresky.github.io/blog/2020/sqlite-performance-tuning/)).
-# Example:
-# cache-startup-queries: |
-# pragma journal_mode = WAL;
-# pragma synchronous = normal;
-# pragma temp_store = memory;
-# pragma busy_timeout = 15000;
-# vacuum;
-#
-# The "cache-batch-size" and "cache-batch-timeout" parameter allow enabling async batch writing
-# of messages. If set, messages will be queued and written to the database in batches of the given
-# size, or after the given timeout. This is only required for high volume servers.
-#
-# Debian/RPM package users:
-# Use /var/cache/ntfy/cache.db as cache file to avoid permission issues. The package
-# creates this folder for you.
-#
-# Check your permissions:
-# If you are running ntfy with systemd, make sure this cache file is owned by the
-# ntfy user and group by running: chown ntfy.ntfy .
-#
-# cache-file:
-# cache-duration: "12h"
-# cache-startup-queries:
-# cache-batch-size: 0
-# cache-batch-timeout: "0ms"
-
-# If set, access to the ntfy server and API can be controlled on a granular level using
-# the 'ntfy user' and 'ntfy access' commands. See the --help pages for details, or check the docs.
-#
-# - auth-file is the SQLite user/access database; it is created automatically if it doesn't already exist
-# - auth-default-access defines the default/fallback access if no access control entry is found; it can be
-# set to "read-write" (default), "read-only", "write-only" or "deny-all".
-# - auth-startup-queries allows you to run commands when the database is initialized, e.g. to enable
-# WAL mode. This is similar to cache-startup-queries. See above for details.
-#
-# Debian/RPM package users:
-# Use /var/lib/ntfy/user.db as user database to avoid permission issues. The package
-# creates this folder for you.
-#
-# Check your permissions:
-# If you are running ntfy with systemd, make sure this user database file is owned by the
-# ntfy user and group by running: chown ntfy.ntfy .
-#
-# auth-file:
-# auth-default-access: "read-write"
-# auth-startup-queries:
-
-# If set, the X-Forwarded-For header is used to determine the visitor IP address
-# instead of the remote address of the connection.
-#
-# WARNING: If you are behind a proxy, you must set this, otherwise all visitors are rate limited
-# as if they are one.
-#
-# behind-proxy: false
-
-# If enabled, clients can attach files to notifications as attachments. Minimum settings to enable attachments
-# are "attachment-cache-dir" and "base-url".
-#
-# - attachment-cache-dir is the cache directory for attached files
-# - attachment-total-size-limit is the limit of the on-disk attachment cache directory (total size)
-# - attachment-file-size-limit is the per-file attachment size limit (e.g. 300k, 2M, 100M)
-# - attachment-expiry-duration is the duration after which uploaded attachments will be deleted (e.g. 3h, 20h)
-#
-# attachment-cache-dir:
-# attachment-total-size-limit: "5G"
-# attachment-file-size-limit: "15M"
-# attachment-expiry-duration: "3h"
-
-# If enabled, allow outgoing e-mail notifications via the 'X-Email' header. If this header is set,
-# messages will additionally be sent out as e-mail using an external SMTP server.
-#
-# As of today, only SMTP servers with plain text auth (or no auth at all), and STARTLS are supported.
-# Please also refer to the rate limiting settings below (visitor-email-limit-burst & visitor-email-limit-burst).
-#
-# - smtp-sender-addr is the hostname:port of the SMTP server
-# - smtp-sender-from is the e-mail address of the sender
-# - smtp-sender-user/smtp-sender-pass are the username and password of the SMTP user (leave blank for no auth)
-#
-# smtp-sender-addr:
-# smtp-sender-from:
-# smtp-sender-user:
-# smtp-sender-pass:
-
-# If enabled, ntfy will launch a lightweight SMTP server for incoming messages. Once configured, users can send
-# emails to a topic e-mail address to publish messages to a topic.
-#
-# - smtp-server-listen defines the IP address and port the SMTP server will listen on, e.g. :25 or 1.2.3.4:25
-# - smtp-server-domain is the e-mail domain, e.g. ntfy.sh
-# - smtp-server-addr-prefix is an optional prefix for the e-mail addresses to prevent spam. If set to "ntfy-",
-# for instance, only e-mails to ntfy-$topic@ntfy.sh will be accepted. If this is not set, all emails to
-# $topic@ntfy.sh will be accepted (which may obviously be a spam problem).
-#
-# smtp-server-listen:
-# smtp-server-domain:
-# smtp-server-addr-prefix:
-
-# Web Push support (background notifications for browsers)
-#
-# If enabled, allows ntfy to receive push notifications, even when the ntfy web app is closed. When enabled, users
-# can enable background notifications in the web app. Once enabled, ntfy will forward published messages to the push
-# endpoint, which will then forward it to the browser.
-#
-# You must configure web-push-public/private key, web-push-file, and web-push-email-address below to enable Web Push.
-# Run "ntfy webpush keys" to generate the keys.
-#
-# - web-push-public-key is the generated VAPID public key, e.g. AA1234BBCCddvveekaabcdfqwertyuiopasdfghjklzxcvbnm1234567890
-# - web-push-private-key is the generated VAPID private key, e.g. AA2BB1234567890abcdefzxcvbnm1234567890
-# - web-push-file is a database file to keep track of browser subscription endpoints, e.g. `/var/cache/ntfy/webpush.db`
-# - web-push-email-address is the admin email address send to the push provider, e.g. `sysadmin@example.com`
-# - web-push-startup-queries is an optional list of queries to run on startup`
-#
-# web-push-public-key:
-# web-push-private-key:
-# web-push-file:
-# web-push-email-address:
-# web-push-startup-queries:
-
-# If enabled, ntfy can perform voice calls via Twilio via the "X-Call" header.
-#
-# - twilio-account is the Twilio account SID
-# - twilio-auth-token is the Twilio auth token, e.g. affebeef258625862586258625862586
-# - twilio-phone-number is the outgoing phone number you purchased, e.g. +18775132586
-# - twilio-verify-service is the Twilio Verify service SID, e.g. VA12345beefbeef67890beefbeef122586
-#
-# twilio-account:
-# twilio-auth-token:
-# twilio-phone-number:
-# twilio-verify-service:
-
-# Interval in which keepalive messages are sent to the client. This is to prevent
-# intermediaries closing the connection for inactivity.
-#
-# Note that the Android app has a hardcoded timeout at 77s, so it should be less than that.
-#
-# keepalive-interval: "45s"
-
-# Interval in which the manager prunes old messages, deletes topics
-# and prints the stats.
-#
-# manager-interval: "1m"
-
-# Defines topic names that are not allowed, because they are otherwise used. There are a few default topics
-# that cannot be used (e.g. app, account, settings, ...). To extend the default list, define them here.
-#
-# Example:
-# disallowed-topics:
-# - about
-# - pricing
-# - contact
-#
-# disallowed-topics:
-
-# Defines the root path of the web app, or disables the web app entirely.
-#
-# Can be any simple path, e.g. "/", "/app", or "/ntfy". For backwards-compatibility reasons,
-# the values "app" (maps to "/"), "home" (maps to "/app"), or "disable" (maps to "") to disable
-# the web app entirely.
-#
-# web-root: /
-
-# Various feature flags used to control the web app, and API access, mainly around user and
-# account management.
-#
-# - enable-signup allows users to sign up via the web app, or API
-# - enable-login allows users to log in via the web app, or API
-# - enable-reservations allows users to reserve topics (if their tier allows it)
-#
-# enable-signup: false
-# enable-login: false
-# enable-reservations: false
-
-# Server URL of a Firebase/APNS-connected ntfy server (likely "https://ntfy.sh").
-#
-# iOS users:
-# If you use the iOS ntfy app, you MUST configure this to receive timely notifications. You'll like want this:
-# upstream-base-url: "https://ntfy.sh"
-#
-# If set, all incoming messages will publish a "poll_request" message to the configured upstream server, containing
-# the message ID of the original message, instructing the iOS app to poll this server for the actual message contents.
-# This is to prevent the upstream server and Firebase/APNS from being able to read the message.
-#
-# - upstream-base-url is the base URL of the upstream server. Should be "https://ntfy.sh".
-# - upstream-access-token is the token used to authenticate with the upstream server. This is only required
-# if you exceed the upstream rate limits, or the uptream server requires authentication.
-#
-# upstream-base-url:
-# upstream-access-token:
-
-# Configures message-specific limits
-#
-# - message-size-limit defines the max size of a message body. Please note message sizes >4K are NOT RECOMMENDED,
-# and largely untested. If FCM and/or APNS is used, the limit should stay 4K, because their limits are around that size.
-# If you increase this size limit regardless, FCM and APNS will NOT work for large messages.
-# - message-delay-limit defines the max delay of a message when using the "Delay" header.
-#
-# message-size-limit: "4k"
-# message-delay-limit: "3d"
-
-# Rate limiting: Total number of topics before the server rejects new topics.
-#
-# global-topic-limit: 15000
-
-# Rate limiting: Number of subscriptions per visitor (IP address)
-#
-# visitor-subscription-limit: 30
-
-# Rate limiting: Allowed GET/PUT/POST requests per second, per visitor:
-# - visitor-request-limit-burst is the initial bucket of requests each visitor has
-# - visitor-request-limit-replenish is the rate at which the bucket is refilled
-# - visitor-request-limit-exempt-hosts is a comma-separated list of hostnames, IPs or CIDRs to be
-# exempt from request rate limiting. Hostnames are resolved at the time the server is started.
-# Example: "1.2.3.4,ntfy.example.com,8.7.6.0/24"
-#
-# visitor-request-limit-burst: 60
-# visitor-request-limit-replenish: "5s"
-# visitor-request-limit-exempt-hosts: ""
-
-# Rate limiting: Hard daily limit of messages per visitor and day. The limit is reset
-# every day at midnight UTC. If the limit is not set (or set to zero), the request
-# limit (see above) governs the upper limit.
-#
-# visitor-message-daily-limit: 0
-
-# Rate limiting: Allowed emails per visitor:
-# - visitor-email-limit-burst is the initial bucket of emails each visitor has
-# - visitor-email-limit-replenish is the rate at which the bucket is refilled
-#
-# visitor-email-limit-burst: 16
-# visitor-email-limit-replenish: "1h"
-
-# Rate limiting: Attachment size and bandwidth limits per visitor:
-# - visitor-attachment-total-size-limit is the total storage limit used for attachments per visitor
-# - visitor-attachment-daily-bandwidth-limit is the total daily attachment download/upload traffic limit per visitor
-#
-# visitor-attachment-total-size-limit: "100M"
-# visitor-attachment-daily-bandwidth-limit: "500M"
-
-# Rate limiting: Enable subscriber-based rate limiting (mostly used for UnifiedPush)
-#
-# If subscriber-based rate limiting is enabled, messages published on UnifiedPush topics** (topics starting with "up")
-# will be counted towards the "rate visitor" of the topic. A "rate visitor" is the first subscriber to the topic.
-#
-# Once enabled, a client subscribing to UnifiedPush topics via HTTP stream, or websockets, will be automatically registered as
-# a "rate visitor", i.e. the visitor whose rate limits will be used when publishing on this topic. Note that setting the rate visitor
-# requires **read-write permission** on the topic.
-#
-# If this setting is enabled, publishing to UnifiedPush topics will lead to a HTTP 507 response if
-# no "rate visitor" has been previously registered. This is to avoid burning the publisher's "visitor-message-daily-limit".
-#
-# visitor-subscriber-rate-limiting: false
-
-# Payments integration via Stripe
-#
-# - stripe-secret-key is the key used for the Stripe API communication. Setting this values
-# enables payments in the ntfy web app (e.g. Upgrade dialog). See https://dashboard.stripe.com/apikeys.
-# - stripe-webhook-key is the key required to validate the authenticity of incoming webhooks from Stripe.
-# Webhooks are essential up keep the local database in sync with the payment provider. See https://dashboard.stripe.com/webhooks.
-# - billing-contact is an email address or website displayed in the "Upgrade tier" dialog to let people reach
-# out with billing questions. If unset, nothing will be displayed.
-#
-# stripe-secret-key:
-# stripe-webhook-key:
-# billing-contact:
-
-# Metrics
-#
-# ntfy can expose Prometheus-style metrics via a /metrics endpoint, or on a dedicated listen IP/port.
-# Metrics may be considered sensitive information, so before you enable them, be sure you know what you are
-# doing, and/or secure access to the endpoint in your reverse proxy.
-#
-# - enable-metrics enables the /metrics endpoint for the default ntfy server (i.e. HTTP, HTTPS and/or Unix socket)
-# - metrics-listen-http exposes the metrics endpoint via a dedicated [IP]:port. If set, this option implicitly
-# enables metrics as well, e.g. "10.0.1.1:9090" or ":9090"
-#
-# enable-metrics: false
-# metrics-listen-http:
-
-# Profiling
-#
-# ntfy can expose Go's net/http/pprof endpoints to support profiling of the ntfy server. If enabled, ntfy will listen
-# on a dedicated listen IP/port, which can be accessed via the web browser on http://:/debug/pprof/.
-# This can be helpful to expose bottlenecks, and visualize call flows. See https://pkg.go.dev/net/http/pprof for details.
-#
-# profile-listen-http:
-
-# Logging options
-#
-# By default, ntfy logs to the console (stderr), with an "info" log level, and in a human-readable text format.
-# ntfy supports five different log levels, can also write to a file, log as JSON, and even supports granular
-# log level overrides for easier debugging. Some options (log-level and log-level-overrides) can be hot reloaded
-# by calling "kill -HUP $pid" or "systemctl reload ntfy".
-#
-# - log-format defines the output format, can be "text" (default) or "json"
-# - log-file is a filename to write logs to. If this is not set, ntfy logs to stderr.
-# - log-level defines the default log level, can be one of "trace", "debug", "info" (default), "warn" or "error".
-# Be aware that "debug" (and particularly "trace") can be VERY CHATTY. Only turn them on briefly for debugging purposes.
-# - log-level-overrides lets you override the log level if certain fields match. This is incredibly powerful
-# for debugging certain parts of the system (e.g. only the account management, or only a certain visitor).
-# This is an array of strings in the format:
-# - "field=value -> level" to match a value exactly, e.g. "tag=manager -> trace"
-# - "field -> level" to match any value, e.g. "time_taken_ms -> debug"
-# Warning: Using log-level-overrides has a performance penalty. Only use it for temporary debugging.
-#
-# Check your permissions:
-# If you are running ntfy with systemd, make sure this log file is owned by the
-# ntfy user and group by running: chown ntfy.ntfy .
-#
-# Example (good for production):
-# log-level: info
-# log-format: json
-# log-file: /var/log/ntfy.log
-#
-# Example level overrides (for debugging, only use temporarily):
-# log-level-overrides:
-# - "tag=manager -> trace"
-# - "visitor_ip=1.2.3.4 -> debug"
-# - "time_taken_ms -> debug"
-#
-# log-level: info
-# log-level-overrides:
-# log-format: text
-# log-file:
diff --git a/apps/ntfy/2.12.0/docker-compose.yml b/apps/ntfy/2.12.0/docker-compose.yml
deleted file mode 100644
index bf20cb54..00000000
--- a/apps/ntfy/2.12.0/docker-compose.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-services:
- ntfy:
- image: "binwiederhier/ntfy:v2.12.0"
- container_name: ${CONTAINER_NAME}
- command:
- - serve
- environment:
- - TZ=${TIME_ZONE}
- user: ${PUID}:${PGID}
- volumes:
- - ./data/cache/ntfy:/var/cache/ntfy
- - ./data/ntfy:/etc/ntfy
- ports:
- - "${PANEL_APP_PORT_HTTP}:${APP_PORT_INTERNAL}"
- restart: always
- networks:
- - 1panel-network
- healthcheck:
- test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:${APP_PORT_INTERNAL}/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"]
- interval: 60s
- timeout: 10s
- retries: 3
- start_period: 40s
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/ntfy/README.md b/apps/ntfy/README.md
deleted file mode 100644
index 5061e182..00000000
--- a/apps/ntfy/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-# ntfy.sh
-## 通过 PUT/POST 发送推送通知到你的手机或桌面
-[](https://github.com/binwiederhier/ntfy/releases/latest)
-[](https://pkg.go.dev/heckel.io/ntfy/v2)
-[](https://github.com/binwiederhier/ntfy/actions)
-[](https://goreportcard.com/report/github.com/binwiederhier/ntfy)
-[](https://codecov.io/gh/binwiederhier/ntfy)
-[](https://discord.gg/cT7ECsZj9w)
-[](https://matrix.to/#/#ntfy:matrix.org)
-[](https://matrix.to/#/#ntfy-space:matrix.org)
-[](https://ntfy.statuspage.io/)
-[](https://gitpod.io/#https://github.com/binwiederhier/ntfy)
-
-**ntfy**(发音为 "*notify*")是一个简单的基于 HTTP 的[发布-订阅](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern)通知服务。通过 ntfy,你可以**通过脚本从任何计算机发送通知到你的手机或桌面**,**无需注册或支付任何费用**。如果你想运行自己的服务实例,你可以很容易地做到,因为 ntfy 是开源的。
-
-你可以通过 **[ntfy.sh](https://ntfy.sh)** 访问免费的 ntfy 服务。这里还有一个[开源的 Android 应用](https://github.com/binwiederhier/ntfy-android),可以在[Google Play](https://play.google.com/store/apps/details?id=io.heckel.ntfy) 或 [F-Droid](https://f-droid.org/en/packages/io.heckel.ntfy/) 上找到,还有一个[开源的 iOS 应用](https://github.com/binwiederhier/ntfy-ios),可以在[App Store](https://apps.apple.com/us/app/ntfy/id1625396347) 上找到。
-
-## 使用说明
-
-可以通过修改配置文件来自定义设置,文件路径如下,按需修改,将`server.yml.sample`修改为`server.yml`,
-
-然后自定义修改内容即可。
-
-```
-/opt/1panel/apps/local/ntfy/ntfy/data/ntfy/server.yml.sample
-```
\ No newline at end of file
diff --git a/apps/ntfy/data.yml b/apps/ntfy/data.yml
deleted file mode 100644
index 8e92b7d1..00000000
--- a/apps/ntfy/data.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: ntfy
-tags:
- - 开发工具
-title: 基于 HTTP 的简单 pub-sub 通知服务
-description: 基于 HTTP 的简单 pub-sub 通知服务
-additionalProperties:
- key: ntfy
- name: ntfy
- tags:
- - DevTool
- shortDescZh: 基于 HTTP 的简单 pub-sub 通知服务
- shortDescEn: A simple HTTP-based pub-sub notification service
- type: tool
- crossVersionUpdate: true
- limit: 0
- recommend: 0
- website: https://ntfy.sh/
- github: https://github.com/binwiederhier/ntfy
- document: https://ntfy.sh/docs
diff --git a/apps/ntfy/latest/.env.sample b/apps/ntfy/latest/.env.sample
deleted file mode 100644
index a36385e5..00000000
--- a/apps/ntfy/latest/.env.sample
+++ /dev/null
@@ -1,6 +0,0 @@
-CONTAINER_NAME="ntfy"
-PANEL_APP_PORT_HTTP=40265
-APP_PORT_INTERNAL=80
-PGID=1000
-PUID=1000
-TIME_ZONE="Asia/Shanghai"
diff --git a/apps/ntfy/latest/data.yml b/apps/ntfy/latest/data.yml
deleted file mode 100644
index 5332a75f..00000000
--- a/apps/ntfy/latest/data.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-additionalProperties:
- formFields:
- - default: "40265"
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
- - default: "80"
- edit: true
- envKey: APP_PORT_INTERNAL
- labelEn: Internal Container Ports
- labelZh: 容器内部端口
- required: true
- rule: paramPort
- type: number
- - default: "Asia/Shanghai"
- edit: true
- envKey: TIME_ZONE
- labelEn: Time Zone
- labelZh: 时区
- required: true
- type: text
- - default: "1000"
- edit: true
- envKey: PUID
- labelEn: User ID
- labelZh: 用户 ID
- required: true
- type: number
- - default: "1000"
- edit: true
- envKey: PGID
- labelEn: Group ID
- labelZh: 组 ID
- required: true
- type: number
diff --git a/apps/ntfy/latest/data/ntfy/server.yml.sample b/apps/ntfy/latest/data/ntfy/server.yml.sample
deleted file mode 100644
index 4b48828c..00000000
--- a/apps/ntfy/latest/data/ntfy/server.yml.sample
+++ /dev/null
@@ -1,372 +0,0 @@
-# ntfy server config file
-#
-# Please refer to the documentation at https://ntfy.sh/docs/config/ for details.
-# All options also support underscores (_) instead of dashes (-) to comply with the YAML spec.
-
-# Public facing base URL of the service (e.g. https://ntfy.sh or https://ntfy.example.com)
-#
-# This setting is required for any of the following features:
-# - attachments (to return a download URL)
-# - e-mail sending (for the topic URL in the email footer)
-# - iOS push notifications for self-hosted servers (to calculate the Firebase poll_request topic)
-# - Matrix Push Gateway (to validate that the pushkey is correct)
-#
-# base-url:
-
-# Listen address for the HTTP & HTTPS web server. If "listen-https" is set, you must also
-# set "key-file" and "cert-file". Format: []:, e.g. "1.2.3.4:8080".
-#
-# To listen on all interfaces, you may omit the IP address, e.g. ":443".
-# To disable HTTP, set "listen-http" to "-".
-#
-# listen-http: ":80"
-# listen-https:
-
-# Listen on a Unix socket, e.g. /var/lib/ntfy/ntfy.sock
-# This can be useful to avoid port issues on local systems, and to simplify permissions.
-#
-# listen-unix:
-# listen-unix-mode:
-
-# Path to the private key & cert file for the HTTPS web server. Not used if "listen-https" is not set.
-#
-# key-file:
-# cert-file:
-
-# If set, also publish messages to a Firebase Cloud Messaging (FCM) topic for your app.
-# This is optional and only required to save battery when using the Android app.
-#
-# firebase-key-file:
-
-# If "cache-file" is set, messages are cached in a local SQLite database instead of only in-memory.
-# This allows for service restarts without losing messages in support of the since= parameter.
-#
-# The "cache-duration" parameter defines the duration for which messages will be buffered
-# before they are deleted. This is required to support the "since=..." and "poll=1" parameter.
-# To disable the cache entirely (on-disk/in-memory), set "cache-duration" to 0.
-# The cache file is created automatically, provided that the correct permissions are set.
-#
-# The "cache-startup-queries" parameter allows you to run commands when the database is initialized,
-# e.g. to enable WAL mode (see https://phiresky.github.io/blog/2020/sqlite-performance-tuning/)).
-# Example:
-# cache-startup-queries: |
-# pragma journal_mode = WAL;
-# pragma synchronous = normal;
-# pragma temp_store = memory;
-# pragma busy_timeout = 15000;
-# vacuum;
-#
-# The "cache-batch-size" and "cache-batch-timeout" parameter allow enabling async batch writing
-# of messages. If set, messages will be queued and written to the database in batches of the given
-# size, or after the given timeout. This is only required for high volume servers.
-#
-# Debian/RPM package users:
-# Use /var/cache/ntfy/cache.db as cache file to avoid permission issues. The package
-# creates this folder for you.
-#
-# Check your permissions:
-# If you are running ntfy with systemd, make sure this cache file is owned by the
-# ntfy user and group by running: chown ntfy.ntfy .
-#
-# cache-file:
-# cache-duration: "12h"
-# cache-startup-queries:
-# cache-batch-size: 0
-# cache-batch-timeout: "0ms"
-
-# If set, access to the ntfy server and API can be controlled on a granular level using
-# the 'ntfy user' and 'ntfy access' commands. See the --help pages for details, or check the docs.
-#
-# - auth-file is the SQLite user/access database; it is created automatically if it doesn't already exist
-# - auth-default-access defines the default/fallback access if no access control entry is found; it can be
-# set to "read-write" (default), "read-only", "write-only" or "deny-all".
-# - auth-startup-queries allows you to run commands when the database is initialized, e.g. to enable
-# WAL mode. This is similar to cache-startup-queries. See above for details.
-#
-# Debian/RPM package users:
-# Use /var/lib/ntfy/user.db as user database to avoid permission issues. The package
-# creates this folder for you.
-#
-# Check your permissions:
-# If you are running ntfy with systemd, make sure this user database file is owned by the
-# ntfy user and group by running: chown ntfy.ntfy .
-#
-# auth-file:
-# auth-default-access: "read-write"
-# auth-startup-queries:
-
-# If set, the X-Forwarded-For header is used to determine the visitor IP address
-# instead of the remote address of the connection.
-#
-# WARNING: If you are behind a proxy, you must set this, otherwise all visitors are rate limited
-# as if they are one.
-#
-# behind-proxy: false
-
-# If enabled, clients can attach files to notifications as attachments. Minimum settings to enable attachments
-# are "attachment-cache-dir" and "base-url".
-#
-# - attachment-cache-dir is the cache directory for attached files
-# - attachment-total-size-limit is the limit of the on-disk attachment cache directory (total size)
-# - attachment-file-size-limit is the per-file attachment size limit (e.g. 300k, 2M, 100M)
-# - attachment-expiry-duration is the duration after which uploaded attachments will be deleted (e.g. 3h, 20h)
-#
-# attachment-cache-dir:
-# attachment-total-size-limit: "5G"
-# attachment-file-size-limit: "15M"
-# attachment-expiry-duration: "3h"
-
-# If enabled, allow outgoing e-mail notifications via the 'X-Email' header. If this header is set,
-# messages will additionally be sent out as e-mail using an external SMTP server.
-#
-# As of today, only SMTP servers with plain text auth (or no auth at all), and STARTLS are supported.
-# Please also refer to the rate limiting settings below (visitor-email-limit-burst & visitor-email-limit-burst).
-#
-# - smtp-sender-addr is the hostname:port of the SMTP server
-# - smtp-sender-from is the e-mail address of the sender
-# - smtp-sender-user/smtp-sender-pass are the username and password of the SMTP user (leave blank for no auth)
-#
-# smtp-sender-addr:
-# smtp-sender-from:
-# smtp-sender-user:
-# smtp-sender-pass:
-
-# If enabled, ntfy will launch a lightweight SMTP server for incoming messages. Once configured, users can send
-# emails to a topic e-mail address to publish messages to a topic.
-#
-# - smtp-server-listen defines the IP address and port the SMTP server will listen on, e.g. :25 or 1.2.3.4:25
-# - smtp-server-domain is the e-mail domain, e.g. ntfy.sh
-# - smtp-server-addr-prefix is an optional prefix for the e-mail addresses to prevent spam. If set to "ntfy-",
-# for instance, only e-mails to ntfy-$topic@ntfy.sh will be accepted. If this is not set, all emails to
-# $topic@ntfy.sh will be accepted (which may obviously be a spam problem).
-#
-# smtp-server-listen:
-# smtp-server-domain:
-# smtp-server-addr-prefix:
-
-# Web Push support (background notifications for browsers)
-#
-# If enabled, allows ntfy to receive push notifications, even when the ntfy web app is closed. When enabled, users
-# can enable background notifications in the web app. Once enabled, ntfy will forward published messages to the push
-# endpoint, which will then forward it to the browser.
-#
-# You must configure web-push-public/private key, web-push-file, and web-push-email-address below to enable Web Push.
-# Run "ntfy webpush keys" to generate the keys.
-#
-# - web-push-public-key is the generated VAPID public key, e.g. AA1234BBCCddvveekaabcdfqwertyuiopasdfghjklzxcvbnm1234567890
-# - web-push-private-key is the generated VAPID private key, e.g. AA2BB1234567890abcdefzxcvbnm1234567890
-# - web-push-file is a database file to keep track of browser subscription endpoints, e.g. `/var/cache/ntfy/webpush.db`
-# - web-push-email-address is the admin email address send to the push provider, e.g. `sysadmin@example.com`
-# - web-push-startup-queries is an optional list of queries to run on startup`
-#
-# web-push-public-key:
-# web-push-private-key:
-# web-push-file:
-# web-push-email-address:
-# web-push-startup-queries:
-
-# If enabled, ntfy can perform voice calls via Twilio via the "X-Call" header.
-#
-# - twilio-account is the Twilio account SID
-# - twilio-auth-token is the Twilio auth token, e.g. affebeef258625862586258625862586
-# - twilio-phone-number is the outgoing phone number you purchased, e.g. +18775132586
-# - twilio-verify-service is the Twilio Verify service SID, e.g. VA12345beefbeef67890beefbeef122586
-#
-# twilio-account:
-# twilio-auth-token:
-# twilio-phone-number:
-# twilio-verify-service:
-
-# Interval in which keepalive messages are sent to the client. This is to prevent
-# intermediaries closing the connection for inactivity.
-#
-# Note that the Android app has a hardcoded timeout at 77s, so it should be less than that.
-#
-# keepalive-interval: "45s"
-
-# Interval in which the manager prunes old messages, deletes topics
-# and prints the stats.
-#
-# manager-interval: "1m"
-
-# Defines topic names that are not allowed, because they are otherwise used. There are a few default topics
-# that cannot be used (e.g. app, account, settings, ...). To extend the default list, define them here.
-#
-# Example:
-# disallowed-topics:
-# - about
-# - pricing
-# - contact
-#
-# disallowed-topics:
-
-# Defines the root path of the web app, or disables the web app entirely.
-#
-# Can be any simple path, e.g. "/", "/app", or "/ntfy". For backwards-compatibility reasons,
-# the values "app" (maps to "/"), "home" (maps to "/app"), or "disable" (maps to "") to disable
-# the web app entirely.
-#
-# web-root: /
-
-# Various feature flags used to control the web app, and API access, mainly around user and
-# account management.
-#
-# - enable-signup allows users to sign up via the web app, or API
-# - enable-login allows users to log in via the web app, or API
-# - enable-reservations allows users to reserve topics (if their tier allows it)
-#
-# enable-signup: false
-# enable-login: false
-# enable-reservations: false
-
-# Server URL of a Firebase/APNS-connected ntfy server (likely "https://ntfy.sh").
-#
-# iOS users:
-# If you use the iOS ntfy app, you MUST configure this to receive timely notifications. You'll like want this:
-# upstream-base-url: "https://ntfy.sh"
-#
-# If set, all incoming messages will publish a "poll_request" message to the configured upstream server, containing
-# the message ID of the original message, instructing the iOS app to poll this server for the actual message contents.
-# This is to prevent the upstream server and Firebase/APNS from being able to read the message.
-#
-# - upstream-base-url is the base URL of the upstream server. Should be "https://ntfy.sh".
-# - upstream-access-token is the token used to authenticate with the upstream server. This is only required
-# if you exceed the upstream rate limits, or the uptream server requires authentication.
-#
-# upstream-base-url:
-# upstream-access-token:
-
-# Configures message-specific limits
-#
-# - message-size-limit defines the max size of a message body. Please note message sizes >4K are NOT RECOMMENDED,
-# and largely untested. If FCM and/or APNS is used, the limit should stay 4K, because their limits are around that size.
-# If you increase this size limit regardless, FCM and APNS will NOT work for large messages.
-# - message-delay-limit defines the max delay of a message when using the "Delay" header.
-#
-# message-size-limit: "4k"
-# message-delay-limit: "3d"
-
-# Rate limiting: Total number of topics before the server rejects new topics.
-#
-# global-topic-limit: 15000
-
-# Rate limiting: Number of subscriptions per visitor (IP address)
-#
-# visitor-subscription-limit: 30
-
-# Rate limiting: Allowed GET/PUT/POST requests per second, per visitor:
-# - visitor-request-limit-burst is the initial bucket of requests each visitor has
-# - visitor-request-limit-replenish is the rate at which the bucket is refilled
-# - visitor-request-limit-exempt-hosts is a comma-separated list of hostnames, IPs or CIDRs to be
-# exempt from request rate limiting. Hostnames are resolved at the time the server is started.
-# Example: "1.2.3.4,ntfy.example.com,8.7.6.0/24"
-#
-# visitor-request-limit-burst: 60
-# visitor-request-limit-replenish: "5s"
-# visitor-request-limit-exempt-hosts: ""
-
-# Rate limiting: Hard daily limit of messages per visitor and day. The limit is reset
-# every day at midnight UTC. If the limit is not set (or set to zero), the request
-# limit (see above) governs the upper limit.
-#
-# visitor-message-daily-limit: 0
-
-# Rate limiting: Allowed emails per visitor:
-# - visitor-email-limit-burst is the initial bucket of emails each visitor has
-# - visitor-email-limit-replenish is the rate at which the bucket is refilled
-#
-# visitor-email-limit-burst: 16
-# visitor-email-limit-replenish: "1h"
-
-# Rate limiting: Attachment size and bandwidth limits per visitor:
-# - visitor-attachment-total-size-limit is the total storage limit used for attachments per visitor
-# - visitor-attachment-daily-bandwidth-limit is the total daily attachment download/upload traffic limit per visitor
-#
-# visitor-attachment-total-size-limit: "100M"
-# visitor-attachment-daily-bandwidth-limit: "500M"
-
-# Rate limiting: Enable subscriber-based rate limiting (mostly used for UnifiedPush)
-#
-# If subscriber-based rate limiting is enabled, messages published on UnifiedPush topics** (topics starting with "up")
-# will be counted towards the "rate visitor" of the topic. A "rate visitor" is the first subscriber to the topic.
-#
-# Once enabled, a client subscribing to UnifiedPush topics via HTTP stream, or websockets, will be automatically registered as
-# a "rate visitor", i.e. the visitor whose rate limits will be used when publishing on this topic. Note that setting the rate visitor
-# requires **read-write permission** on the topic.
-#
-# If this setting is enabled, publishing to UnifiedPush topics will lead to a HTTP 507 response if
-# no "rate visitor" has been previously registered. This is to avoid burning the publisher's "visitor-message-daily-limit".
-#
-# visitor-subscriber-rate-limiting: false
-
-# Payments integration via Stripe
-#
-# - stripe-secret-key is the key used for the Stripe API communication. Setting this values
-# enables payments in the ntfy web app (e.g. Upgrade dialog). See https://dashboard.stripe.com/apikeys.
-# - stripe-webhook-key is the key required to validate the authenticity of incoming webhooks from Stripe.
-# Webhooks are essential up keep the local database in sync with the payment provider. See https://dashboard.stripe.com/webhooks.
-# - billing-contact is an email address or website displayed in the "Upgrade tier" dialog to let people reach
-# out with billing questions. If unset, nothing will be displayed.
-#
-# stripe-secret-key:
-# stripe-webhook-key:
-# billing-contact:
-
-# Metrics
-#
-# ntfy can expose Prometheus-style metrics via a /metrics endpoint, or on a dedicated listen IP/port.
-# Metrics may be considered sensitive information, so before you enable them, be sure you know what you are
-# doing, and/or secure access to the endpoint in your reverse proxy.
-#
-# - enable-metrics enables the /metrics endpoint for the default ntfy server (i.e. HTTP, HTTPS and/or Unix socket)
-# - metrics-listen-http exposes the metrics endpoint via a dedicated [IP]:port. If set, this option implicitly
-# enables metrics as well, e.g. "10.0.1.1:9090" or ":9090"
-#
-# enable-metrics: false
-# metrics-listen-http:
-
-# Profiling
-#
-# ntfy can expose Go's net/http/pprof endpoints to support profiling of the ntfy server. If enabled, ntfy will listen
-# on a dedicated listen IP/port, which can be accessed via the web browser on http://:/debug/pprof/.
-# This can be helpful to expose bottlenecks, and visualize call flows. See https://pkg.go.dev/net/http/pprof for details.
-#
-# profile-listen-http:
-
-# Logging options
-#
-# By default, ntfy logs to the console (stderr), with an "info" log level, and in a human-readable text format.
-# ntfy supports five different log levels, can also write to a file, log as JSON, and even supports granular
-# log level overrides for easier debugging. Some options (log-level and log-level-overrides) can be hot reloaded
-# by calling "kill -HUP $pid" or "systemctl reload ntfy".
-#
-# - log-format defines the output format, can be "text" (default) or "json"
-# - log-file is a filename to write logs to. If this is not set, ntfy logs to stderr.
-# - log-level defines the default log level, can be one of "trace", "debug", "info" (default), "warn" or "error".
-# Be aware that "debug" (and particularly "trace") can be VERY CHATTY. Only turn them on briefly for debugging purposes.
-# - log-level-overrides lets you override the log level if certain fields match. This is incredibly powerful
-# for debugging certain parts of the system (e.g. only the account management, or only a certain visitor).
-# This is an array of strings in the format:
-# - "field=value -> level" to match a value exactly, e.g. "tag=manager -> trace"
-# - "field -> level" to match any value, e.g. "time_taken_ms -> debug"
-# Warning: Using log-level-overrides has a performance penalty. Only use it for temporary debugging.
-#
-# Check your permissions:
-# If you are running ntfy with systemd, make sure this log file is owned by the
-# ntfy user and group by running: chown ntfy.ntfy .
-#
-# Example (good for production):
-# log-level: info
-# log-format: json
-# log-file: /var/log/ntfy.log
-#
-# Example level overrides (for debugging, only use temporarily):
-# log-level-overrides:
-# - "tag=manager -> trace"
-# - "visitor_ip=1.2.3.4 -> debug"
-# - "time_taken_ms -> debug"
-#
-# log-level: info
-# log-level-overrides:
-# log-format: text
-# log-file:
diff --git a/apps/ntfy/latest/docker-compose.yml b/apps/ntfy/latest/docker-compose.yml
deleted file mode 100644
index 1106017d..00000000
--- a/apps/ntfy/latest/docker-compose.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-services:
- ntfy:
- image: "binwiederhier/ntfy:latest"
- container_name: ${CONTAINER_NAME}
- command:
- - serve
- environment:
- - TZ=${TIME_ZONE}
- user: ${PUID}:${PGID}
- volumes:
- - ./data/cache/ntfy:/var/cache/ntfy
- - ./data/ntfy:/etc/ntfy
- ports:
- - "${PANEL_APP_PORT_HTTP}:${APP_PORT_INTERNAL}"
- restart: always
- networks:
- - 1panel-network
- healthcheck:
- test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:${APP_PORT_INTERNAL}/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"]
- interval: 60s
- timeout: 10s
- retries: 3
- start_period: 40s
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/ntfy/logo.png b/apps/ntfy/logo.png
deleted file mode 100644
index cf4c9c3b..00000000
Binary files a/apps/ntfy/logo.png and /dev/null differ
diff --git a/apps/onedev/14.1.1/.env.sample b/apps/onedev/14.1.1/.env.sample
deleted file mode 100644
index 4c476a86..00000000
--- a/apps/onedev/14.1.1/.env.sample
+++ /dev/null
@@ -1,4 +0,0 @@
-CONTAINER_NAME="onedev"
-DATA_PATH="./data"
-SSH_PORT="40086"
-PANEL_APP_PORT_HTTP="40085"
diff --git a/apps/onedev/14.1.1/data.yml b/apps/onedev/14.1.1/data.yml
deleted file mode 100644
index 0d8b03b1..00000000
--- a/apps/onedev/14.1.1/data.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-additionalProperties:
- formFields:
- - default: 40085
- edit: true
- envKey: PANEL_APP_PORT_HTTP
- labelEn: Port
- labelZh: 端口
- required: true
- rule: paramPort
- type: number
- - default: 40086
- edit: true
- envKey: SSH_PORT
- labelEn: SSH Port
- labelZh: SSH端口
- 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/onedev/14.1.1/docker-compose.yml b/apps/onedev/14.1.1/docker-compose.yml
deleted file mode 100644
index eb0bf5b5..00000000
--- a/apps/onedev/14.1.1/docker-compose.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-services:
- onedev:
- container_name: ${CONTAINER_NAME}
- restart: always
- networks:
- - 1panel-network
- ports:
- - "${PANEL_APP_PORT_HTTP}:6610"
- - "${SSH_PORT}:6611"
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock
- - "${DATA_PATH}:/opt/onedev"
- image: 1dev/server:14.1.1
- labels:
- createdBy: "Apps"
-
-networks:
- 1panel-network:
- external: true
diff --git a/apps/onedev/README.md b/apps/onedev/README.md
deleted file mode 100644
index b74c10d1..00000000
--- a/apps/onedev/README.md
+++ /dev/null
@@ -1,140 +0,0 @@
-
-
-> **Note**
-> 1. Do not worry about security advisories above. They are fixed as soon as discovered and published to notify users
-> 2. We develop OneDev at code.onedev.io for sake of dogfooding. All issues and pull requests should be submitted there
-
-
-
-## Quick Start
-
-With watchtower you can update the running version of your containerized app simply by pushing a new image to the Docker Hub or your own image registry.
-
-Watchtower will pull down your new image, gracefully shut down your existing container and restart it with the same options that were used when it was deployed initially. Run the watchtower container with the following command:
-
-```
-$ docker run --detach \
- --name watchtower \
- --volume /var/run/docker.sock:/var/run/docker.sock \
- containrrr/watchtower
-```
-
-## Documentation
-The full documentation is available at https://containrrr.dev/watchtower.
-
-## Contributors
-
-Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
-
-
-
-
-
-
-Comprehensive, on-demand open source intelligence for any website
-
-🌐 web-check.xyz
-
-
-
----
-
-## About
-Get an insight into the inner-workings of a given website: uncover potential attack vectors, analyse server architecture, view security configurations, and learn what technologies a site is using.
-
-Currently the dashboard will show: IP info, SSL chain, DNS records, cookies, headers, domain info, search crawl rules, page map, server location, redirect ledger, open ports, traceroute, DNS security extensions, site performance, trackers, associated hostnames, carbon footprint. Stay tuned, as I'll add more soon!
-
-The aim is to help you easily understand, optimize and secure your website.
-
-### Screenshot
-[](https://web-check.as93.net/)
-
-### Live Demo
-A hosted version can be accessed at: **[web-check.as93.net](https://web-check.as93.net)**
-
-### Mirror
-The source for this repo is mirrored to CodeBerg, available at: **[codeberg.org/alicia/web-check](https://codeberg.org/alicia/web-check)**
-
-### Motivation
-Often when you're looking into a website, there's several things you always initially check.
-Think: Whois, SSL chain, DNS records, tech stack, security protocols, crawl rules, sitemap, redirects, basic performance, open ports, server info, etc.
-None of this is hard to find with a series of basic curl commands, or a combination of online tools. But it's just so much easier to have everything presented clearly and visible in one place :)
-
-### Features
-
-
-