1
0
Fork 0

Initial Config Branch

This commit is contained in:
pooneyy 2025-06-16 16:26:56 +08:00
parent be08a5b4b7
commit 5eb35ca97d
3338 changed files with 288 additions and 853662 deletions

View File

@ -0,0 +1,53 @@
name: "⏰为应用催更"
description: "报告缺陷来帮助我们完善。 / Create a report to help us improve"
title: "[需要更新应用] 哪个应用需要更新? / Which app needs an update?"
labels:
- Update Needed
body:
- type: markdown
attributes:
value: |
## Welcome!
- type: input
attributes:
label: 应用名称 / App Name
description:
于此填入待更新的应用所在的文件夹(例如`gitlab-jh`)。
Enter the folder name of the app that needs an update (for example, `gitlab-jh`).
placeholder: (e.g. gitlab-jh)
validations:
required: true
- type: input
attributes:
label: 应用版本 / App Version
description:
有些应用有`latest`版和带版本号的版本,于此填入需要更新的版本所在的文件夹(例如`18.0.1-jh.0`
Some apps have `latest` and versioned versions, enter the folder name of the version that needs an update here (for example, `18.0.1-jh.0`).
placeholder: (e.g. 18.0.1-jh.0)
validations:
required: true
- type: textarea
attributes:
label: 应用镜像当前的版本 / App's Image Current Version
description:
于此填入当前版本完整的镜像名 (例如`registry.gitlab.cn/omnibus/gitlab-jh:18.0.1-jh.0`
Enter the full image name of the current version here (for example, `registry.gitlab.cn/omnibus/gitlab-jh:18.0.1-jh.0`).
placeholder: |
(e.g. registry.gitlab.cn/omnibus/gitlab-jh:18.0.1-jh.0)
validations:
required: true
- type: textarea
attributes:
label: 应用镜像最新的版本 / App's Image Latest Version
description: 于此填入最新版本完整的镜像名(例如`registry.gitlab.cn/omnibus/gitlab-jh:18.0.2-jh.0` / Enter the full image name of the latest version here (for example, `registry.gitlab.cn/omnibus/gitlab-jh:18.0.2-jh.0`).
placeholder: |
(e.g. registry.gitlab.cn/omnibus/gitlab-jh:18.0.2-jh.0)
validations:
required: false

View File

@ -0,0 +1,51 @@
name: "📝提交新应用 / Add New App"
description: "报告缺陷来帮助我们完善。 / Create a report to help us improve"
title: "[需要增加应用] 需要增加哪个应用? / Which app needs to be added?"
labels:
- Add New App
body:
- type: markdown
attributes:
value: |
## Welcome!
- type: input
attributes:
label: 应用名称 / App Name
description:
想要添加哪个应用?请填于此。
Which app do you want to add? Please fill in here.
placeholder: (e.g. gitlab-jh)
validations:
required: true
- type: textarea
attributes:
label: 想要添加的应用有官方的 Docker 镜像吗?/ Do the app you want to add have official Docker images?
description:
没有官方镜像的应用将不能被添加。
Apps without official Docker images will not be added.
placeholder: (e.g. registry.gitlab.cn/omnibus/gitlab-jh:18.0.1-jh.0:18.0.1-jh.0)
validations:
required: true
- type: textarea
attributes:
label: 该应用文档的URL / The URL of the app's documentation
description:
该应用文档的URL最好能定位到使用 Docker Compose 安装的部分。例如 https://gitlab.cn/docs/jh/install/docker.html#%E4%BD%BF%E7%94%A8-docker-compose-%E5%AE%89%E8%A3%85%E6%9E%81%E7%8B%90gitlab
placeholder: |
(e.g. https://gitlab.cn/docs/jh/install/docker.html#%E4%BD%BF%E7%94%A8-docker-compose-%E5%AE%89%E8%A3%85%E6%9E%81%E7%8B%90gitlab)
validations:
required: true
- type: textarea
attributes:
label: 该应用的 Logo / The app's logo
description:
应用无水印 logo , 以正方形为佳,最好是 180 * 180 px复制图片后粘贴到此处。
The app's logo without watermark, it's best to be square, preferably 180 * 180 px, copy the image and paste it here.
validations:
required: false

2
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,2 @@
blank_issues_enabled: false
contact_links: []

40
.github/workflows/merge-prs.yml vendored Normal file
View File

@ -0,0 +1,40 @@
name: Auto Merge Open PRs
on:
schedule:
- cron: 0 0 3/3 * *
workflow_dispatch:
jobs:
merge-prs:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: 登录到 GitHub CLI
run: gh auth login --with-token <<< "${{ github.token }}"
- name: 获取可合并的 PR
id: get-prs
run: |
pr_list=$( gh pr list --state open --json number,mergeable --limit 1000 --jq 'sort_by(.number) | .[] | .number' )
pr_list=$(echo "$pr_list" | tr '\n' ' ')
echo "PRs to merge: $pr_list"
echo "pr_list=$pr_list" >> $GITHUB_OUTPUT
- name: 合并 PR
run: |
for pr in ${{ steps.get-prs.outputs.pr_list }}; do
if ! gh pr merge $pr --merge --delete-branch --body ""; then
echo "⚠️ 合并 PR #$pr 失败"
else
echo "✅ 合并 PR #$pr 成功"
fi
sleep 3
done

View File

@ -9,18 +9,29 @@ docker_compose_files=$(find apps/$app_name/$old_version -name docker-compose.yml
for docker_compose_file in $docker_compose_files
do
# Assuming that the app version will be from the first docker image
first_service=$(yq '.services | keys | .[0]' $docker_compose_file)
# Assuming that the app version will be from the first docker image
first_service=$(yq '.services | keys | .[0]' $docker_compose_file)
echo "第一个服务是: $first_service"
image=$(yq .services.$first_service.image $docker_compose_file)
image=$(yq .services.$first_service.image $docker_compose_file)
echo "该服务的镜像: $image"
# Only apply changes if the format is <image>:<version>
if [[ "$image" == *":"* ]]; then
version=$(cut -d ":" -f2- <<< "$image")
# Only apply changes if the format is <image>:<version>
if [[ "$image" == *":"* ]]; then
version=$(cut -d ":" -f2- <<< "$image")
echo "版本号: $version"
# Trim the "v" prefix
trimmed_version=${version/#"v"}
mv apps/$app_name/$old_version apps/$app_name/$trimmed_version
# Trim the "v" prefix
trimmed_version=${version/#"v"}
echo "Trimmed version: $trimmed_version"
if [ "$old_version" != "$trimmed_version" ]; then
echo "将 apps/$app_name/$old_version 重命名为 apps/$app_name/$trimmed_version"
if [ ! -d "apps/$app_name/$trimmed_version" ]; then
mv apps/$app_name/$old_version apps/$app_name/$trimmed_version
else
echo "apps/$app_name/$trimmed_version 文件夹已存在"
exit 1
fi
fi
fi
done

View File

@ -11,6 +11,8 @@ on:
jobs:
update-app-version:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4

View File

@ -3,9 +3,6 @@ name: Renovate
on:
schedule:
- cron: "0 0 * * *"
push:
branches:
- localApps
workflow_dispatch:
inputs:
manual-trigger:
@ -19,7 +16,7 @@ jobs:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Run Renovate
uses: renovatebot/github-action@v41.0.6
uses: renovatebot/github-action@87c405b9750f1b6affae06311395b50e3882d54f # v42.0.6
with:
useSlim: false
token: ${{ secrets.GITHUBTOKEN }}
token: ${{ github.token }}

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.bat

View File

@ -1,17 +1,9 @@
[中文](https://github.com/okxlin/appstore/blob/localApps/README.md) | English
***
## Contribution Link
[**Click here to contribute with AFDIAN**](https://afdian.com/a/dockerapps)
[![**Click here to contribute with AFDIAN**](https://github.com/okxlin/appstore/raw/localApps/docs/afdian-logo.png)](https://afdian.com/a/dockerapps)
[中文](https://github.com/pooneyy/1Panel-appstore/blob/localApps/README.md) | English
* * *
## Table of Contents
- [Contribution Link](#contribution-link)
- [Table of Contents](#table-of-contents)
- [Disclaimer](#disclaimer)
- [1. Image Container Adaptation](#1-image-container-adaptation)
@ -53,12 +45,6 @@ These are some configurations of docker applications adapted for the `1Panel` st
Dedicated to running various Docker applications with just one click. Enjoy convenience and efficiency without complex configurations.
### 1Panel Third-Party App Store Categories and Introduction
- https://1p.131.gs
**Special thanks to the author [@baozishu](https://github.com/baozishu)**
## 2. Usage
The default installation path of `1Panel` is `/opt/`, which can be modified as needed.
@ -74,7 +60,7 @@ The default installation path of `1Panel` is `/opt/`, which can be modified as n
In the `Shell Script` task type in the `1Panel` scheduled tasks, add and execute the following command, or run the following command in the terminal:
```shell
git clone -b localApps https://ghp.ci/https://github.com/okxlin/appstore /opt/1panel/resource/apps/local/appstore-localApps
git clone -b localApps https://ghp.ci/https://github.com/pooneyy/1Panel-appstore /opt/1panel/resource/apps/local/appstore-localApps
cp -rf /opt/1panel/resource/apps/local/appstore-localApps/apps/* /opt/1panel/resource/apps/local/
@ -88,7 +74,7 @@ Then refresh the local applications in the app store.
In the `Shell Script` task type in the `1Panel` scheduled tasks, add and execute the following command, or run the following command in the terminal:
```shell
wget -P /opt/1panel/resource/apps/local https://ghp.ci/https://github.com/okxlin/appstore/archive/refs/heads/localApps.zip
wget -P /opt/1panel/resource/apps/local https://ghp.ci/https://github.com/pooneyy/1Panel-appstore/archive/refs/heads/localApps.zip
unzip -o -d /opt/1panel/resource/apps/local/ /opt/1panel/resource/apps/local/localApps.zip
@ -108,7 +94,7 @@ Then refresh the local applications in the app store.
In the `Shell Script` task type in the `1Panel` scheduled tasks, add and execute the following command, or run the following command in the terminal:
```shell
git clone -b localApps https://github.com/okxlin/appstore /opt/1panel/resource/apps/local/appstore-localApps
git clone -b localApps https://github.com/pooneyy/1Panel-appstore /opt/1panel/resource/apps/local/appstore-localApps
cp -rf /opt/1panel/resource/apps/local/appstore-localApps/apps/* /opt/1panel/resource/apps/local/
@ -122,7 +108,7 @@ Then refresh the local applications in the app store.
In the `Shell Script` task type in the `1Panel` scheduled tasks, add and execute the following command, or run the following command in the terminal:
```shell
wget -P /opt/1panel/resource/apps/local https://github.com/okxlin/appstore/archive/refs/heads/localApps.zip
wget -P /opt/1panel/resource/apps/local https://github.com/pooneyy/1Panel-appstore/archive/refs/heads/localApps.zip
unzip -o -d /opt/1panel/resource/apps/local/ /opt/1panel/resource/apps/local/localApps.zip
@ -165,4 +151,4 @@ cat ./data/hbbs/id_ed25519.pub
## 4. App Overview
![](https://github.com/okxlin/appstore/raw/localApps/docs/app-list.png)
![](https://github.com/pooneyy/1Panel-appstore/raw/localApps/docs/app-list.png)

View File

@ -1,16 +1,8 @@
中文 | [English](https://github.com/okxlin/appstore/blob/localApps/README-en.md)
***
## 打赏链接
[**点我打赏,用爱发电**](https://afdian.com/a/dockerapps)
[![**点我打赏,用爱发电**](https://github.com/okxlin/appstore/raw/localApps/docs/afdian-logo.png)](https://afdian.com/a/dockerapps)
中文 | [English](https://github.com/pooneyy/1Panel-appstore/blob/localApps/README-en.md)
* * *
## 目录
- [打赏链接](#打赏链接)
- [目录](#目录)
- [免责声明](#免责声明)
- [1. 镜像容器适配](#1-镜像容器适配)
@ -52,11 +44,11 @@
致力于一键运行各种 Docker 应用。无需复杂配置,享受便利和高效。
### 1Panel第三方应用商店应用分类合集与介绍
- https://1p.131.gs
**感谢作者[@包子叔](https://github.com/baozishu)**
### 本仓库分支说明
- `localApps`:主分支
- `config`:配置文件分支,专门用于编辑本仓库的配置文件
- `patch/*`:用于编辑时的临时分支
- `renovate/*`:机器人产生的临时分支
## 2. 使用方式
@ -72,7 +64,7 @@
`1Panel`计划任务类型`Shell 脚本`的计划任务框里,添加并执行以下命令,或者终端运行以下命令,
```shell
git clone -b localApps https://ghp.ci/https://github.com/okxlin/appstore /opt/1panel/resource/apps/local/appstore-localApps
git clone -b localApps https://ghp.ci/https://github.com/pooneyy/1Panel-appstore /opt/1panel/resource/apps/local/appstore-localApps
cp -rf /opt/1panel/resource/apps/local/appstore-localApps/apps/* /opt/1panel/resource/apps/local/
@ -85,7 +77,7 @@ rm -rf /opt/1panel/resource/apps/local/appstore-localApps
`1Panel`计划任务类型`Shell 脚本`的计划任务框里,添加并执行以下命令,或者终端运行以下命令,
```shell
wget -P /opt/1panel/resource/apps/local https://ghp.ci/https://github.com/okxlin/appstore/archive/refs/heads/localApps.zip
wget -P /opt/1panel/resource/apps/local https://ghp.ci/https://github.com/pooneyy/1Panel-appstore/archive/refs/heads/localApps.zip
unzip -o -d /opt/1panel/resource/apps/local/ /opt/1panel/resource/apps/local/localApps.zip
@ -104,7 +96,7 @@ rm -rf /opt/1panel/resource/apps/local/localApps.zip
`1Panel`计划任务类型`Shell 脚本`的计划任务框里,添加并执行以下命令,或者终端运行以下命令,
```shell
git clone -b localApps https://github.com/okxlin/appstore /opt/1panel/resource/apps/local/appstore-localApps
git clone -b localApps https://github.com/pooneyy/1Panel-appstore /opt/1panel/resource/apps/local/appstore-localApps
cp -rf /opt/1panel/resource/apps/local/appstore-localApps/apps/* /opt/1panel/resource/apps/local/
@ -117,7 +109,7 @@ rm -rf /opt/1panel/resource/apps/local/appstore-localApps
`1Panel`计划任务类型`Shell 脚本`的计划任务框里,添加并执行以下命令,或者终端运行以下命令,
```shell
wget -P /opt/1panel/resource/apps/local https://github.com/okxlin/appstore/archive/refs/heads/localApps.zip
wget -P /opt/1panel/resource/apps/local https://github.com/pooneyy/1Panel-appstore/archive/refs/heads/localApps.zip
unzip -o -d /opt/1panel/resource/apps/local/ /opt/1panel/resource/apps/local/localApps.zip
@ -161,4 +153,4 @@ cat ./data/hbbs/id_ed25519.pub
## 4. 应用一览图
![](https://github.com/okxlin/appstore/raw/localApps/docs/app-list.png)
![](https://github.com/pooneyy/1Panel-appstore/raw/localApps/docs/app-list.png)

View File

@ -1,72 +0,0 @@
# 115网盘Linux版本的Docker封装
[![Docker Automated build](https://img.shields.io/docker/automated/jlesage/baseimage-gui.svg)](https://hub.docker.com/r/funcman/115pc/)
## 紧急提示
我发现在使用一段时间后,会出现无法继续使用的问题。
最近终于抽出时间仔细看了一下临时的解决方法就是把Web浏览器中的115pc相关的Cookie清除掉。
操作方法比如:<https://support.google.com/chrome/answer/95647>
## 拉取镜像
```shell
docker pull funcman/115pc:latest
```
## 创建容器
```shell
docker create --name=115pc \
-p 11580:5800 \
-p 11591:5900 \
-v <YourConfigDir>:/config \
-v <YourDownloadDir>:/Downloads/115download \
--restart always \
funcman/115pc:latest
```
## 启停
```shell
docker start 115pc
docker stop 115pc
```
*启动之后,可通过 `http://<ip>:11580`进行访问*
## 参数
|名称 |说明 |
|:- |:- |
|`APP_NAME` |应用名称默认115pc |
|`APP_VERSION` |指定115客户端版本号默认2.0.5.5 |
|`USER_ID` |指定容器内的用户ID默认root |
|`GROUP_ID` |指定容器内的组ID默认root |
|`ENABLE_CJK_FONT` |默认1不建议修改 |
|`DISPLAY_WIDTH` |应用界面宽度默认1920 |
|`DISPLAY_HEIGHT` |应用界面高度默认1080 |
|`APT_SOURCE_HOST` |Apt更新源地址默认为科技大镜像mirrors.ustc.edu.cn |
*更多参数设置,请参考:<https://github.com/jlesage/docker-baseimage-gui>*
## 注意事项
1. 考虑到Docker运行的特殊性在每次容器启动时都会改回***下载路径***设置,以达到固化路径的作用。
2. 同时由于v1.0.6.7这个版本后期版本未特别验证至少到v2.0.5.5依然如此115客户端默认的设置中下载路径有多余的换行符亦使用强制改回配置的方式实现。
3. 副作用是其他设置也会被一并改回,若有特殊需求,请自行修改代码。
4. 由于`jlesage/baseimage-gui`默认情况下,在容器内使用`app`用户运行程序会造成115客户端无权限使用默认下载路径。
5. 采用修改参数`USER_ID`和`GROUP_ID`为`root`的手法解决了事项4的问题目前没找到更好的方法。
6. 由于默认使用了`root`用户导致115客户端下载的文件的权限在其他用户面前为只读所以尽量使用115客户端删除下载文件。
7. **不支持**115客户端的在线升级主要是因为升级过程中需要输入115所在主机系统的登录密码但是输入设置的密码会提示密码不正确。
## 感谢
* [jlesage/baseimage-gui](https://hub.docker.com/r/jlesage/baseimage-gui)提供的X图形应用容器基础镜像使用它可以轻松将Linux图形应用程序以Web和VNC的方式使用。
* CALTyang制作的[115pc-docker](https://github.com/CALTyang/115pc-docker)我这里fork了他的代码并进一步折腾解决了一些小问题收获很多。

View File

@ -1,19 +0,0 @@
name: 115网盘
tags:
- 工具
title: 115网盘是115科技推出的云存储服务
description: 115网盘是115科技推出的云存储服务
additionalProperties:
key: 115pc
name: 115网盘
tags:
- Tool
shortDescZh: 115网盘是115科技推出的云存储服务
shortDescEn: 115 network disk is a cloud storage service launched by 115 Technology
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://115.com
github: https://www.github.com/funcman/docker_115pc
document: https://www.github.com/funcman/docker_115pc

View File

@ -1,8 +0,0 @@
CONTAINER_NAME="115pc"
APT_SOURCE="mirrors.ustc.edu.cn"
CONFIG_PATH="./data/config"
DOWNLOAD_PATH="./data/downloads"
PANEL_APP_PORT_HTTP="40088"
VNC_DISPLAY_HEIGHT="1080"
VNC_DISPLAY_WIDTH="1920"
VNC_PASSWORD="VNCPassword"

View File

@ -1,54 +0,0 @@
additionalProperties:
formFields:
- default: 40088
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: WebUI Port
labelZh: 网页端口
required: true
rule: paramPort
type: number
- default: VNCPassword
edit: true
envKey: VNC_PASSWORD
labelEn: Access Password
labelZh: 访问密码
random: false
required: true
rule: paramComplexity
type: password
- default: ./data/config
edit: true
envKey: CONFIG_PATH
labelEn: Config file path
labelZh: 配置文件所在路径
required: true
type: text
- default: ./data/downloads
edit: true
envKey: DOWNLOAD_PATH
labelEn: Download folder path
labelZh: 下载文件夹路径
required: true
type: text
- default: mirrors.ustc.edu.cn
edit: true
envKey: APT_SOURCE
labelEn: apt source
labelZh: apt 源
required: true
type: text
- default: 1920
edit: true
envKey: VNC_DISPLAY_WIDTH
labelEn: VNC display width
labelZh: VNC显示宽度
required: true
type: number
- default: 1080
edit: true
envKey: VNC_DISPLAY_HEIGHT
labelEn: VNC display height
labelZh: VNC显示高度
required: true
type: number

View File

@ -1,25 +0,0 @@
services:
115pc:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
environment:
- "TZ=Asia/Shanghai"
- "VNC_PASSWORD=${VNC_PASSWORD}"
- "DISPLAY_WIDTH=${VNC_DISPLAY_WIDTH}"
- "DISPLAY_HEIGHT=${VNC_DISPLAY_HEIGHT}"
- "ENABLE_CJK_FONT=1"
- "APT_SOURCE_HOST=${APT_SOURCE}"
ports:
- "${PANEL_APP_PORT_HTTP}:5800"
volumes:
- "${CONFIG_PATH}:/config"
- "${DOWNLOAD_PATH}:/Downloads/115download"
image: funcman/115pc:latest
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -1,13 +0,0 @@
# 1Panel Apps
这是一款适配 1Panel 应用商店的通用应用模板,
旨在简化 Docker 应用的快速适配过程,让用户轻松将所需应用集成至 1Panel 应用商店。
它能够有效解决非商店应用无法使用 1Panel 快照和应用备份功能的问题。
## 使用说明
- 可以按需修改安装界面的参数
- 也可以直接忽视安装界面提供的参数,然后勾选`“高级设置”`,勾选`“编辑compose文件”`,使用自定义的 `docker-compose.yml`文件

View File

@ -1,9 +0,0 @@
CONTAINER_NAME="1panel-apps"
DATA_PATH="./data"
DATA_PATH_INTERNAL="/data"
ENV1=""
IMAGE=""
PANEL_APP_PORT_HTTP=40329
PANEL_APP_PORT_HTTP_INTERNAL=40329
RESTART_POLICY="always"
TIME_ZONE="Asia/Shanghai"

View File

@ -1,69 +0,0 @@
additionalProperties:
formFields:
- default: ""
edit: true
envKey: IMAGE
labelEn: Docker Image
labelZh: Docker 镜像
required: true
type: text
- default: "always"
edit: true
envKey: RESTART_POLICY
labelEn: Restart Policy
labelZh: 重启策略
required: true
type: select
values:
- label: "Always"
value: "always"
- label: "Unless Stopped"
value: "unless-stopped"
- label: "On Failure"
value: "on-failure"
- label: "No"
value: "no"
- default: "40329"
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: "40329"
edit: true
envKey: PANEL_APP_PORT_HTTP_INTERNAL
labelEn: Internal Port
labelZh: 内部端口
required: true
rule: paramPort
type: number
- default: "./data"
edit: true
envKey: DATA_PATH
labelEn: Data Path
labelZh: 数据路径
required: true
type: text
- default: "/data"
edit: true
envKey: DATA_PATH_INTERNAL
labelEn: Internal Data Path
labelZh: 内部数据路径
required: true
type: text
- default: "Asia/Shanghai"
edit: true
envKey: TIME_ZONE
labelEn: Time Zone
labelZh: 时区
required: true
type: text
- default: ""
edit: true
envKey: ENV1
labelEn: Environment Variable 1 (Edit to remove comments in compose.yml to take effect)
labelZh: 环境变量 1 (编辑去除compose.yml里的注释生效)
required: false
type: text

View File

@ -1,22 +0,0 @@
services:
1panel-apps:
image: ${IMAGE}
container_name: ${CONTAINER_NAME}
restart: ${RESTART_POLICY}
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP_INTERNAL}"
volumes:
- "${DATA_PATH}:${DATA_PATH_INTERNAL}"
environment:
# 环境参数按需修改 (Modify the environment parameters as required)
- TZ=${TIME_ZONE}
# 删除以下行前的#号表示启用 (Delete the # sign in front of the following lines to indicate enablement)
# - ${ENV1}=${ENV1}
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,19 +0,0 @@
name: 1Panel Apps
tags:
- 建站
title: 适配 1Panel 应用商店的通用应用模板
description: 适配 1Panel 应用商店的通用应用模板
additionalProperties:
key: 1panel-apps
name: 1Panel Apps
tags:
- Website
shortDescZh: 适配 1Panel 应用商店的通用应用模板
shortDescEn: Universal app template for the 1Panel App Store
type: website
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://github.com/okxlin/appstore
github: https://github.com/okxlin/appstore
document: https://github.com/okxlin/appstore

View File

@ -1,8 +0,0 @@
CONTAINER_NAME="1panel-apps"
DATA_PATH="./data"
DATA_PATH_INTERNAL="/data"
ENV1=""
IMAGE=""
PANEL_APP_PORT_HTTP=40329
RESTART_POLICY="always"
TIME_ZONE="Asia/Shanghai"

View File

@ -1,61 +0,0 @@
additionalProperties:
formFields:
- default: ""
edit: true
envKey: IMAGE
labelEn: Docker Image
labelZh: Docker 镜像
required: true
type: text
- default: "always"
edit: true
envKey: RESTART_POLICY
labelEn: Restart Policy
labelZh: 重启策略
required: true
type: select
values:
- label: "Always"
value: "always"
- label: "Unless Stopped"
value: "unless-stopped"
- label: "On Failure"
value: "on-failure"
- label: "No"
value: "no"
- default: "40329"
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port (determined by the Docker application itself)
labelZh: 端口 (由 Docker 应用自身决定)
required: true
rule: paramPort
type: number
- default: "./data"
edit: true
envKey: DATA_PATH
labelEn: Data Path
labelZh: 数据路径
required: true
type: text
- default: "/data"
edit: true
envKey: DATA_PATH_INTERNAL
labelEn: Internal Data Path
labelZh: 内部数据路径
required: true
type: text
- default: "Asia/Shanghai"
edit: true
envKey: TIME_ZONE
labelEn: Time Zone
labelZh: 时区
required: true
type: text
- default: ""
edit: true
envKey: ENV1
labelEn: Environment Variable 1 (Edit to remove comments in compose.yml to take effect)
labelZh: 环境变量 1 (编辑去除compose.yml里的注释生效)
required: false
type: text

View File

@ -1,15 +0,0 @@
services:
1panel-apps:
image: ${IMAGE}
container_name: ${CONTAINER_NAME}
restart: ${RESTART_POLICY}
network_mode: host
volumes:
- "${DATA_PATH}:${DATA_PATH_INTERNAL}"
environment:
# 环境参数按需修改 (Modify the environment parameters as required)
- TZ=${TIME_ZONE}
# 删除以下行前的#号表示启用 (Delete the # sign in front of the following lines to indicate enablement)
# - ${ENV1}=${ENV1}
labels:
createdBy: "Apps"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -1,4 +0,0 @@
CONTAINER_NAME="1panel"
PANEL_APP_PORT_HTTP="10086"
DATA_PATH="./data"
TIME_ZONE="Asia/Shanghai"

View File

@ -1,24 +0,0 @@
additionalProperties:
formFields:
- default: 10086
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port (determined by the listening port)
labelZh: 端口 (由监听端口决定)
required: true
rule: paramPort
type: number
- default: /opt
disabled: true
envKey: DATA_PATH
labelEn: Data storage folder
labelZh: 数据存放文件夹
required: true
type: text
- default: Asia/Shanghai
edit: true
envKey: TIME_ZONE
labelEn: Time zone
labelZh: 时区
required: true
type: text

View File

@ -1,15 +0,0 @@
services:
1panel:
container_name: ${CONTAINER_NAME}
restart: always
network_mode: "host"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
- ${DATA_PATH}:/opt
- /root:/root
environment:
- TZ=${TIME_ZONE}
image: moelin/1panel:v1.10.29-lts
labels:
createdBy: "Apps"

View File

@ -1,117 +0,0 @@
# 使用说明
### 镜像 Githubhttps://github.com/okxlin/docker-1panel
### 镜像 Docker Hubhttps://hub.docker.com/r/moelin/1panel
如果更新了更高版本的镜像,实际是更新了对应版本的二进制程序,面板显示的相关版本还需要手动更新,具体操作可以查看[**Github**](https://github.com/okxlin/docker-1panel)。
**不要点击容器化部署的 `1Panel` 右下角进行更新,应该拉取新镜像再更新**
***
- 默认端口:`10086`
- 默认账户:`1panel`
- 默认密码:`1panel_password`
- 默认入口:`entrance`
***
- 不可调整参数
- `/var/run/docker.sock`的相关映射
***
- 可调整参数
> **推荐使用/opt路径否则有些调用本地文件的应用可能出现异常**
- `/opt:/opt` 文件存储映射
- `/root:/root` 文件存储映射
- `TZ=Asia/Shanghai` 时区设置
- `1panel` 容器名
- `/var/lib/docker/volumes:/var/lib/docker/volumes` 存储卷映射
***
**架构平台对应镜像**
- amd64
- arm64
- armv7
- ppc64le
- s390x
> 2023年9月3日已经更新单标签多镜像
```
docker pull moelin/1panel:latest
```
# 原始相关
***
<p align="center"><a href="https://1panel.cn"><img src="http://1panel.oss-cn-hangzhou.aliyuncs.com/img/1panel-logo.png" alt="1Panel" width="300" /></a></p>
<p align="center"><b>现代化、开源的 Linux 服务器运维管理面板</b></p>
<p align="center">
<a href="https://www.gnu.org/licenses/gpl-3.0.html"><img src="https://shields.io/github/license/1Panel-dev/1Panel?color=%231890FF" alt="License: GPL v3"></a>
<a href="https://app.codacy.com/gh/1Panel-dev/1Panel?utm_source=github.com&utm_medium=referral&utm_content=1Panel-dev/1Panel&utm_campaign=Badge_Grade_Dashboard"><img src="https://app.codacy.com/project/badge/Grade/da67574fd82b473992781d1386b937ef" alt="Codacy"></a>
<a href="https://github.com/1Panel-dev/1Panel/releases"><img src="https://img.shields.io/github/v/release/1Panel-dev/1Panel" alt="GitHub release"></a>
<a href="https://github.com/1Panel-dev/1Panel"><img src="https://img.shields.io/github/stars/1Panel-dev/1Panel?color=%231890FF&style=flat-square" alt="Stars"></a>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2F1Panel-dev%2F1Panel?ref=badge_shield"><img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2F1Panel-dev%2F1Panel.svg?type=shield" alt="FOSSA Status"></a><br>
[<a href="https://github.com/1Panel-dev/1Panel/blob/dev/docs/README_TW.md">中文(繁體)</a>] | [<a href="https://github.com/1Panel-dev/1Panel/blob/dev/docs/README_EN.md">English</a>] | [<a href="https://github.com/1Panel-dev/1Panel/blob/dev/docs/README_JP.md">日本語</a>]
</p>
------------------------------
1Panel 是新一代的 Linux 服务器运维管理面板。
- **高效管理**:用户可以通过 Web 图形界面轻松管理 Linux 服务器,实现主机监控、文件管理、数据库管理、容器管理等功能;
- **快速建站**:深度集成开源建站软件 WordPress 和 [Halo](https://github.com/halo-dev/halo/)域名绑定、SSL 证书配置等操作一键搞定;
- **应用商店**:精选上架各类高质量的开源工具和应用软件,协助用户轻松安装并升级;
- **安全可靠**:基于容器管理并部署应用,实现最小的漏洞暴露面,同时提供防火墙和日志审计等功能;
- **一键备份**:支持一键备份和恢复,用户可以将数据备份到各类云端存储介质,永不丢失。
1Panel 三分钟速览https://www.bilibili.com/video/BV1Mt421n7LZ/
## UI 展示
![UI展示](https://resource.fit2cloud.com/1panel/img/overview.png)
## 快速开始
**在线体验**
- 环境地址:<https://demo.1panel.cn/>
- 用户名demo
- 密码1panel
**一键安装**
执行如下命令一键安装 1Panel:
```sh
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
```
**学习资料**
- [在线文档](https://1panel.cn/docs/)
- [教学视频](https://space.bilibili.com/510493147/channel/collectiondetail?sid=1199760)
- [社区论坛](https://bbs.fit2cloud.com/c/1p/7)
**加入微信交流群**
<img src="https://1panel.cn/img/wechat-group.jpg" width="156" height="156"/>
## 安全说明
如果您在使用过程中发现任何安全问题,请通过以下方式直接联系我们:
- 邮箱support@fit2cloud.com
- 电话400-052-0755
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=1Panel-dev/1Panel&type=Date)](https://star-history.com/#1Panel-dev/1Panel&Date)
## FOSSA Status
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2F1Panel-dev%2F1Panel.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2F1Panel-dev%2F1Panel?ref=badge_large)
## License
Copyright (c) 2014-2023 [FIT2CLOUD 飞致云](https://fit2cloud.com/), All rights reserved.
Licensed under The GNU General Public License version 3 (GPLv3) (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
<https://www.gnu.org/licenses/gpl-3.0.html>
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

View File

@ -1,19 +0,0 @@
name: 1Panel
tags:
- 工具
title: 现代化、开源的 Linux 服务器运维管理面板
description: 现代化、开源的 Linux 服务器运维管理面板
additionalProperties:
key: 1panel
name: 1Panel
tags:
- Tool
shortDescZh: 现代化、开源的 Linux 服务器运维管理面板
shortDescEn: Modern and Open-Source Linux Server Operation and Management Panel
type: tool
crossVersionUpdate: true
limit: 1
recommend: 0
website: https://1panel.cn
github: https://github.com/1Panel-dev/1Panel
document: https://1panel.cn/docs

View File

@ -1,4 +0,0 @@
CONTAINER_NAME="1panel"
PANEL_APP_PORT_HTTP="10086"
DATA_PATH="./data"
TIME_ZONE="Asia/Shanghai"

View File

@ -1,24 +0,0 @@
additionalProperties:
formFields:
- default: 10086
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port (determined by the listening port)
labelZh: 端口 (由监听端口决定)
required: true
rule: paramPort
type: number
- default: /opt
disabled: true
envKey: DATA_PATH
labelEn: Data storage folder
labelZh: 数据存放文件夹
required: true
type: text
- default: Asia/Shanghai
edit: true
envKey: TIME_ZONE
labelEn: Time zone
labelZh: 时区
required: true
type: text

View File

@ -1,15 +0,0 @@
services:
1panel:
container_name: ${CONTAINER_NAME}
restart: always
network_mode: "host"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
- ${DATA_PATH}:/opt
- /root:/root
environment:
- TZ=${TIME_ZONE}
image: moelin/1panel:latest
labels:
createdBy: "Apps"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -1,54 +0,0 @@
APP_DEBUG="false"
APP_ENV="local"
APP_KEY="yuBiR9dlyokasPeguSPl8oPRLpHiqAbr"
APP_NAME="2FAuth"
APP_TIMEZONE="Asia/Shanghai"
APP_URL="http://192.168.123.9:40273"
AUTHENTICATION_GUARD="web-guard"
AUTHENTICATION_LOG_RETENTION=365
AUTH_PROXY_HEADER_FOR_EMAIL=""
AUTH_PROXY_HEADER_FOR_USER=""
BROADCAST_DRIVER="log"
CACHE_DRIVER="file"
CONTAINER_NAME="2fauth"
DB_DATABASE="/srv/database/database.sqlite"
GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""
IS_DEMO_APP="false"
LOGIN_THROTTLE=5
LOG_CHANNEL="daily"
LOG_LEVEL="notice"
MAIL_ENCRYPTION=""
MAIL_FROM_ADDRESS=""
MAIL_FROM_NAME=""
MAIL_HOST=""
MAIL_MAILER="log"
MAIL_PASSWORD=""
MAIL_PORT=""
MAIL_USERNAME=""
MAIL_VERIFY_SSL_PEER="true"
MIX_ENV="local"
OPENID_AUTHORIZE_URL=""
OPENID_CLIENT_ID=""
OPENID_CLIENT_SECRET=""
OPENID_TOKEN_URL=""
OPENID_USERINFO_URL=""
PANEL_APP_PORT_HTTP=40273
PANEL_REDIS_ROOT_PASSWORD="redis_password"
PROXY_FOR_OUTGOING_REQUESTS=""
PROXY_LOGOUT_URL=""
PUSHER_APP_CLUSTER="mt1"
PUSHER_APP_ID=""
PUSHER_APP_KEY=""
PUSHER_APP_SECRET=""
QUEUE_DRIVER="sync"
REDIS_HOST="redis"
REDIS_PORT=6379
SESSION_DRIVER="file"
SESSION_LIFETIME=120
SITE_OWNER="admin@localhost.com"
THROTTLE_API=60
TRUSTED_PROXIES=""
WEBAUTHN_ID=""
WEBAUTHN_NAME="2FAuth"
WEBAUTHN_USER_VERIFICATION="preferred"

View File

@ -1,426 +0,0 @@
additionalProperties:
formFields:
- default: "40273"
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: "2FAuth"
edit: true
envKey: APP_NAME
labelEn: App Name
labelZh: 应用名
required: true
type: text
- default: "local"
edit: true
envKey: APP_ENV
labelEn: App Environment
labelZh: 应用环境
required: true
type: select
values:
- label: "local"
value: "local"
- label: "production"
value: "production"
- default: "Asia/Shanghai"
edit: true
envKey: APP_TIMEZONE
labelEn: Timezone
labelZh: 时区
required: true
type: text
- default: "false"
edit: true
envKey: APP_DEBUG
labelEn: Debug Mode
labelZh: 调试模式
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: "admin@localhost.com"
edit: true
envKey: SITE_OWNER
labelEn: Site Owner
labelZh: 站点拥有者
required: true
type: text
- default: "yuBiR9dlyokasPeguSPl8oPRLpHiqAbr"
edit: true
envKey: APP_KEY
labelEn: App Key (32 characters)
labelZh: 应用密钥 (32 位字符)
required: true
type: text
- default: "http://localhost:40273"
edit: true
envKey: APP_URL
labelEn: App URL (External URL)
labelZh: 应用网址 (外部访问地址)
required: true
rule: paramExtUrl
type: text
- default: "false"
edit: true
envKey: IS_DEMO_APP
labelEn: Demo Mode
labelZh: 演示模式
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: "daily"
edit: true
envKey: LOG_CHANNEL
labelEn: Log Channel
labelZh: 日志通道
required: true
type: text
- default: "notice"
edit: true
envKey: LOG_LEVEL
labelEn: Log Level
labelZh: 日志级别
required: true
type: select
values:
- label: "debug"
value: "debug"
- label: "info"
value: "info"
- label: "notice"
value: "notice"
- label: "warning"
value: "warning"
- label: "error"
value: "error"
- label: "critical"
value: "critical"
- label: "alert"
value: "alert"
- label: "emergency"
value: "emergency"
- default: "/srv/database/database.sqlite"
disabled: true
envKey: DB_DATABASE
labelEn: Database Path
labelZh: 数据库路径
required: true
type: text
- default: "file"
disabled: true
envKey: CACHE_DRIVER
labelEn: Cache Driver
labelZh: 缓存驱动
required: true
type: text
- default: "file"
disabled: true
envKey: SESSION_DRIVER
labelEn: Session Driver
labelZh: 会话驱动
required: true
type: text
- default: "log"
edit: true
envKey: MAIL_MAILER
labelEn: Mailer
labelZh: 邮件发送方式
required: true
type: text
- default: ""
edit: true
envKey: MAIL_HOST
labelEn: Mail Host
labelZh: 邮件服务器
required: false
type: text
- default: ""
edit: true
envKey: MAIL_PORT
labelEn: Mail Port
labelZh: 邮件端口
required: false
type: number
- default: ""
edit: true
envKey: MAIL_USERNAME
labelEn: Mail Username
labelZh: 邮件用户名
required: false
type: text
- default: ""
edit: true
envKey: MAIL_PASSWORD
labelEn: Mail Password
labelZh: 邮件密码
required: false
type: password
- default: ""
edit: true
envKey: MAIL_ENCRYPTION
labelEn: Mail Encryption
labelZh: 邮件加密方式
required: false
type: text
- default: ""
edit: true
envKey: MAIL_FROM_NAME
labelEn: Mail From Name
labelZh: 邮件发件人姓名
required: false
type: text
- default: ""
edit: true
envKey: MAIL_FROM_ADDRESS
labelEn: Mail From Address
labelZh: 邮件发件人地址
required: false
type: text
- default: "true"
edit: true
envKey: MAIL_VERIFY_SSL_PEER
labelEn: Mail Verify SSL Peer
labelZh: 邮件验证 SSL 证书
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: "60"
edit: true
envKey: THROTTLE_API
labelEn: API Throttle
labelZh: API 限制
required: true
type: number
- default: "5"
edit: true
envKey: LOGIN_THROTTLE
labelEn: Login Throttle
labelZh: 登录限制
required: true
type: number
- default: "web-guard"
edit: true
envKey: AUTHENTICATION_GUARD
labelEn: Authentication Guard
labelZh: 认证保护
required: true
type: select
values:
- label: "web-guard"
value: "web-guard"
- label: "reverse-proxy-guard"
value: "reverse-proxy-guard"
- default: "365"
edit: true
envKey: AUTHENTICATION_LOG_RETENTION
labelEn: Authentication Log Retention
labelZh: 认证日志保留
required: true
type: number
- default: ""
edit: true
envKey: AUTH_PROXY_HEADER_FOR_USER
labelEn: Authentication Proxy Header for User
labelZh: 用户认证代理头
required: false
type: text
- default: ""
edit: true
envKey: AUTH_PROXY_HEADER_FOR_EMAIL
labelEn: Authentication Proxy Header for Email
labelZh: 邮箱认证代理头
required: false
type: text
- default: ""
edit: true
envKey: PROXY_LOGOUT_URL
labelEn: Proxy Logout URL
labelZh: 代理注销网址
required: false
type: text
- default: "2FAuth"
edit: true
envKey: WEBAUTHN_NAME
labelEn: WebAuthn Name
labelZh: WebAuthn 名称
required: true
type: text
- default: ""
edit: true
envKey: WEBAUTHN_ID
labelEn: WebAuthn ID
labelZh: WebAuthn ID
required: false
type: text
- default: "preferred"
edit: true
envKey: WEBAUTHN_USER_VERIFICATION
labelEn: WebAuthn User Verification
labelZh: WebAuthn 用户验证
required: true
type: select
values:
- label: "Preferred"
value: "preferred"
- label: "Required"
value: "required"
- label: "Discouraged"
value: "discouraged"
- default: ""
edit: true
envKey: TRUSTED_PROXIES
labelEn: Trusted Proxies
labelZh: 信任代理
required: false
type: text
- default: ""
edit: true
envKey: PROXY_FOR_OUTGOING_REQUESTS
labelEn: Proxy for Outgoing Requests
labelZh: 出站请求代理
required: false
type: text
- default: "log"
edit: true
envKey: BROADCAST_DRIVER
labelEn: Broadcast Driver
labelZh: 广播驱动
required: true
type: text
- default: "sync"
edit: true
envKey: QUEUE_DRIVER
labelEn: Queue Driver
labelZh: 队列驱动
required: true
type: text
- default: "120"
edit: true
envKey: SESSION_LIFETIME
labelEn: Session Lifetime
labelZh: 会话有效期
required: true
type: number
- default: ""
edit: true
envKey: REDIS_HOST
key: redis
labelEn: Redis Service
labelZh: Redis服务
required: true
type: service
- default: "6379"
edit: true
envKey: REDIS_PORT
labelEn: Redis Service Port
labelZh: Redis服务端口
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: PANEL_REDIS_ROOT_PASSWORD
labelEn: Redis Password
labelZh: Redis 密码
required: true
type: password
- default: ""
edit: true
envKey: PUSHER_APP_ID
labelEn: Pusher App ID
labelZh: Pusher 应用 ID
required: false
type: text
- default: ""
edit: true
envKey: PUSHER_APP_KEY
labelEn: Pusher App Key
labelZh: Pusher 应用密钥
required: false
type: text
- default: ""
edit: true
envKey: PUSHER_APP_SECRET
labelEn: Pusher App Secret
labelZh: Pusher 应用密钥
required: false
type: password
- default: "mt1"
edit: true
envKey: PUSHER_APP_CLUSTER
labelEn: Pusher App Cluster
labelZh: Pusher 应用集群
required: true
type: text
- default: "local"
edit: true
envKey: MIX_ENV
labelEn: Mix Environment
labelZh: Mix 环境
required: true
type: text
- default: ""
edit: true
envKey: OPENID_AUTHORIZE_URL
labelEn: OpenID Authorize URL (Edit to remove comments in compose.yml to take effect)
labelZh: OpenID 授权 URL (编辑去除compose.yml里的注释生效)
required: false
type: text
- default: ""
edit: true
envKey: OPENID_TOKEN_URL
labelEn: OpenID Token URL (Edit to remove comments in compose.yml to take effect)
labelZh: OpenID 令牌 URL (编辑去除compose.yml里的注释生效)
required: false
type: text
- default: ""
edit: true
envKey: OPENID_USERINFO_URL
labelEn: OpenID Userinfo URL (Edit to remove comments in compose.yml to take effect)
labelZh: OpenID 用户信息 URL (编辑去除compose.yml里的注释生效)
required: false
type: text
- default: ""
edit: true
envKey: OPENID_CLIENT_ID
labelEn: OpenID Client ID (Edit to remove comments in compose.yml to take effect)
labelZh: OpenID 客户端 ID (编辑去除compose.yml里的注释生效)
required: false
type: text
- default: ""
edit: true
envKey: OPENID_CLIENT_SECRET
labelEn: OpenID Client Secret (Edit to remove comments in compose.yml to take effect)
labelZh: OpenID 客户端密钥 (编辑去除compose.yml里的注释生效)
required: false
type: password
- default: ""
edit: true
envKey: GITHUB_CLIENT_ID
labelEn: GitHub Client ID (Edit to remove comments in compose.yml to take effect)
labelZh: GitHub 客户端 ID (编辑去除compose.yml里的注释生效)
required: false
type: text
- default: ""
edit: true
envKey: GITHUB_CLIENT_SECRET
labelEn: GitHub Client Secret (Edit to remove comments in compose.yml to take effect)
labelZh: GitHub 客户端密钥 (编辑去除compose.yml里的注释生效)
required: false
type: password

View File

@ -1,73 +0,0 @@
services:
2fauth:
image: "2fauth/2fauth:5.5.2"
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:8000/tcp
volumes:
- ./data:/2fauth
environment:
- APP_NAME=${APP_NAME}
- APP_ENV=${APP_ENV}
- APP_TIMEZONE=${APP_TIMEZONE}
- APP_DEBUG=${APP_DEBUG}
- SITE_OWNER=${SITE_OWNER}
- APP_KEY=${APP_KEY}
- APP_URL=${APP_URL}
- IS_DEMO_APP=${IS_DEMO_APP}
- LOG_CHANNEL=${LOG_CHANNEL}
- LOG_LEVEL=${LOG_LEVEL}
- DB_DATABASE=${DB_DATABASE}
- CACHE_DRIVER=${CACHE_DRIVER}
- SESSION_DRIVER=${SESSION_DRIVER}
- MAIL_MAILER=${MAIL_MAILER}
- MAIL_HOST=${MAIL_HOST}
- MAIL_PORT=${MAIL_PORT}
- MAIL_USERNAME=${MAIL_USERNAME}
- MAIL_PASSWORD=${MAIL_PASSWORD}
- MAIL_ENCRYPTION=${MAIL_ENCRYPTION}
- MAIL_FROM_NAME=${MAIL_FROM_NAME}
- MAIL_FROM_ADDRESS=${MAIL_FROM_ADDRESS}
- MAIL_VERIFY_SSL_PEER=${MAIL_VERIFY_SSL_PEER}
- THROTTLE_API=${THROTTLE_API}
- LOGIN_THROTTLE=${LOGIN_THROTTLE}
- AUTHENTICATION_GUARD=${AUTHENTICATION_GUARD}
- AUTHENTICATION_LOG_RETENTION=${AUTHENTICATION_LOG_RETENTION}
- AUTH_PROXY_HEADER_FOR_USER=${AUTH_PROXY_HEADER_FOR_USER}
- AUTH_PROXY_HEADER_FOR_EMAIL=${AUTH_PROXY_HEADER_FOR_EMAIL}
- PROXY_LOGOUT_URL=${PROXY_LOGOUT_URL}
- WEBAUTHN_NAME=${WEBAUTHN_NAME}
- WEBAUTHN_ID=${WEBAUTHN_ID}
- WEBAUTHN_USER_VERIFICATION=${WEBAUTHN_USER_VERIFICATION}
- TRUSTED_PROXIES=${TRUSTED_PROXIES}
- PROXY_FOR_OUTGOING_REQUESTS=${PROXY_FOR_OUTGOING_REQUESTS}
- BROADCAST_DRIVER=${BROADCAST_DRIVER}
- QUEUE_DRIVER=${QUEUE_DRIVER}
- SESSION_LIFETIME=${SESSION_LIFETIME}
- REDIS_HOST=${REDIS_HOST}
- REDIS_PASSWORD=${PANEL_REDIS_ROOT_PASSWORD}
- REDIS_PORT=${REDIS_PORT}
- PUSHER_APP_ID=${PUSHER_APP_ID}
- PUSHER_APP_KEY=${PUSHER_APP_KEY}
- PUSHER_APP_SECRET=${PUSHER_APP_SECRET}
- PUSHER_APP_CLUSTER=${PUSHER_APP_CLUSTER}
- VITE_PUSHER_APP_KEY=${PUSHER_APP_KEY}
- VITE_PUSHER_APP_CLUSTER=${PUSHER_APP_CLUSTER}
- MIX_ENV=${MIX_ENV}
# 删除以下行前的#号表示启用
#- OPENID_AUTHORIZE_URL=${OPENID_AUTHORIZE_URL}
#- OPENID_TOKEN_URL=${OPENID_TOKEN_URL}
#- OPENID_USERINFO_URL=${OPENID_USERINFO_URL}
#- OPENID_CLIENT_ID=${OPENID_CLIENT_ID}
#- OPENID_CLIENT_SECRET=${OPENID_CLIENT_SECRET}
#- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}
#- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,3 +0,0 @@
#!/bin/bash
chown -R 1000:1000 data

View File

@ -1,7 +0,0 @@
# 2FAuth
![Docker build status](https://img.shields.io/github/actions/workflow/status/bubka/2fauth/ci-docker-test.yml?branch=master&style=flat-square)
![https://codecov.io/gh/Bubka/2FAuth](https://img.shields.io/codecov/c/github/Bubka/2FAuth?style=flat-square)
![https://github.com/Bubka/2FAuth/blob/master/LICENSE](https://img.shields.io/github/license/Bubka/2FAuth.svg?style=flat-square)
管理双因素身份验证2FA账户并生成其安全代码的网络应用程序。

View File

@ -1,19 +0,0 @@
name: 2FAuth
tags:
- 安全
title: 开源双因素认证管理器
description: 开源双因素认证管理器
additionalProperties:
key: 2fauth
name: 2FAuth
tags:
- Security
shortDescZh: 开源双因素认证管理器
shortDescEn: Open-source two-factor authentication manager
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://docs.2fauth.app
github: https://github.com/Bubka/2FAuth
document: https://docs.2fauth.app

View File

@ -1,54 +0,0 @@
APP_DEBUG="false"
APP_ENV="local"
APP_KEY="yuBiR9dlyokasPeguSPl8oPRLpHiqAbr"
APP_NAME="2FAuth"
APP_TIMEZONE="Asia/Shanghai"
APP_URL="http://192.168.123.9:40273"
AUTHENTICATION_GUARD="web-guard"
AUTHENTICATION_LOG_RETENTION=365
AUTH_PROXY_HEADER_FOR_EMAIL=""
AUTH_PROXY_HEADER_FOR_USER=""
BROADCAST_DRIVER="log"
CACHE_DRIVER="file"
CONTAINER_NAME="2fauth"
DB_DATABASE="/srv/database/database.sqlite"
GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""
IS_DEMO_APP="false"
LOGIN_THROTTLE=5
LOG_CHANNEL="daily"
LOG_LEVEL="notice"
MAIL_ENCRYPTION=""
MAIL_FROM_ADDRESS=""
MAIL_FROM_NAME=""
MAIL_HOST=""
MAIL_MAILER="log"
MAIL_PASSWORD=""
MAIL_PORT=""
MAIL_USERNAME=""
MAIL_VERIFY_SSL_PEER="true"
MIX_ENV="local"
OPENID_AUTHORIZE_URL=""
OPENID_CLIENT_ID=""
OPENID_CLIENT_SECRET=""
OPENID_TOKEN_URL=""
OPENID_USERINFO_URL=""
PANEL_APP_PORT_HTTP=40273
PANEL_REDIS_ROOT_PASSWORD="redis_password"
PROXY_FOR_OUTGOING_REQUESTS=""
PROXY_LOGOUT_URL=""
PUSHER_APP_CLUSTER="mt1"
PUSHER_APP_ID=""
PUSHER_APP_KEY=""
PUSHER_APP_SECRET=""
QUEUE_DRIVER="sync"
REDIS_HOST="redis"
REDIS_PORT=6379
SESSION_DRIVER="file"
SESSION_LIFETIME=120
SITE_OWNER="admin@localhost.com"
THROTTLE_API=60
TRUSTED_PROXIES=""
WEBAUTHN_ID=""
WEBAUTHN_NAME="2FAuth"
WEBAUTHN_USER_VERIFICATION="preferred"

View File

@ -1,426 +0,0 @@
additionalProperties:
formFields:
- default: "40273"
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: "2FAuth"
edit: true
envKey: APP_NAME
labelEn: App Name
labelZh: 应用名
required: true
type: text
- default: "local"
edit: true
envKey: APP_ENV
labelEn: App Environment
labelZh: 应用环境
required: true
type: select
values:
- label: "local"
value: "local"
- label: "production"
value: "production"
- default: "Asia/Shanghai"
edit: true
envKey: APP_TIMEZONE
labelEn: Timezone
labelZh: 时区
required: true
type: text
- default: "false"
edit: true
envKey: APP_DEBUG
labelEn: Debug Mode
labelZh: 调试模式
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: "admin@localhost.com"
edit: true
envKey: SITE_OWNER
labelEn: Site Owner
labelZh: 站点拥有者
required: true
type: text
- default: "yuBiR9dlyokasPeguSPl8oPRLpHiqAbr"
edit: true
envKey: APP_KEY
labelEn: App Key (32 characters)
labelZh: 应用密钥 (32 位字符)
required: true
type: text
- default: "http://localhost:40273"
edit: true
envKey: APP_URL
labelEn: App URL (External URL)
labelZh: 应用网址 (外部访问地址)
required: true
rule: paramExtUrl
type: text
- default: "false"
edit: true
envKey: IS_DEMO_APP
labelEn: Demo Mode
labelZh: 演示模式
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: "daily"
edit: true
envKey: LOG_CHANNEL
labelEn: Log Channel
labelZh: 日志通道
required: true
type: text
- default: "notice"
edit: true
envKey: LOG_LEVEL
labelEn: Log Level
labelZh: 日志级别
required: true
type: select
values:
- label: "debug"
value: "debug"
- label: "info"
value: "info"
- label: "notice"
value: "notice"
- label: "warning"
value: "warning"
- label: "error"
value: "error"
- label: "critical"
value: "critical"
- label: "alert"
value: "alert"
- label: "emergency"
value: "emergency"
- default: "/srv/database/database.sqlite"
disabled: true
envKey: DB_DATABASE
labelEn: Database Path
labelZh: 数据库路径
required: true
type: text
- default: "file"
disabled: true
envKey: CACHE_DRIVER
labelEn: Cache Driver
labelZh: 缓存驱动
required: true
type: text
- default: "file"
disabled: true
envKey: SESSION_DRIVER
labelEn: Session Driver
labelZh: 会话驱动
required: true
type: text
- default: "log"
edit: true
envKey: MAIL_MAILER
labelEn: Mailer
labelZh: 邮件发送方式
required: true
type: text
- default: ""
edit: true
envKey: MAIL_HOST
labelEn: Mail Host
labelZh: 邮件服务器
required: false
type: text
- default: ""
edit: true
envKey: MAIL_PORT
labelEn: Mail Port
labelZh: 邮件端口
required: false
type: number
- default: ""
edit: true
envKey: MAIL_USERNAME
labelEn: Mail Username
labelZh: 邮件用户名
required: false
type: text
- default: ""
edit: true
envKey: MAIL_PASSWORD
labelEn: Mail Password
labelZh: 邮件密码
required: false
type: password
- default: ""
edit: true
envKey: MAIL_ENCRYPTION
labelEn: Mail Encryption
labelZh: 邮件加密方式
required: false
type: text
- default: ""
edit: true
envKey: MAIL_FROM_NAME
labelEn: Mail From Name
labelZh: 邮件发件人姓名
required: false
type: text
- default: ""
edit: true
envKey: MAIL_FROM_ADDRESS
labelEn: Mail From Address
labelZh: 邮件发件人地址
required: false
type: text
- default: "true"
edit: true
envKey: MAIL_VERIFY_SSL_PEER
labelEn: Mail Verify SSL Peer
labelZh: 邮件验证 SSL 证书
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: "60"
edit: true
envKey: THROTTLE_API
labelEn: API Throttle
labelZh: API 限制
required: true
type: number
- default: "5"
edit: true
envKey: LOGIN_THROTTLE
labelEn: Login Throttle
labelZh: 登录限制
required: true
type: number
- default: "web-guard"
edit: true
envKey: AUTHENTICATION_GUARD
labelEn: Authentication Guard
labelZh: 认证保护
required: true
type: select
values:
- label: "web-guard"
value: "web-guard"
- label: "reverse-proxy-guard"
value: "reverse-proxy-guard"
- default: "365"
edit: true
envKey: AUTHENTICATION_LOG_RETENTION
labelEn: Authentication Log Retention
labelZh: 认证日志保留
required: true
type: number
- default: ""
edit: true
envKey: AUTH_PROXY_HEADER_FOR_USER
labelEn: Authentication Proxy Header for User
labelZh: 用户认证代理头
required: false
type: text
- default: ""
edit: true
envKey: AUTH_PROXY_HEADER_FOR_EMAIL
labelEn: Authentication Proxy Header for Email
labelZh: 邮箱认证代理头
required: false
type: text
- default: ""
edit: true
envKey: PROXY_LOGOUT_URL
labelEn: Proxy Logout URL
labelZh: 代理注销网址
required: false
type: text
- default: "2FAuth"
edit: true
envKey: WEBAUTHN_NAME
labelEn: WebAuthn Name
labelZh: WebAuthn 名称
required: true
type: text
- default: ""
edit: true
envKey: WEBAUTHN_ID
labelEn: WebAuthn ID
labelZh: WebAuthn ID
required: false
type: text
- default: "preferred"
edit: true
envKey: WEBAUTHN_USER_VERIFICATION
labelEn: WebAuthn User Verification
labelZh: WebAuthn 用户验证
required: true
type: select
values:
- label: "Preferred"
value: "preferred"
- label: "Required"
value: "required"
- label: "Discouraged"
value: "discouraged"
- default: ""
edit: true
envKey: TRUSTED_PROXIES
labelEn: Trusted Proxies
labelZh: 信任代理
required: false
type: text
- default: ""
edit: true
envKey: PROXY_FOR_OUTGOING_REQUESTS
labelEn: Proxy for Outgoing Requests
labelZh: 出站请求代理
required: false
type: text
- default: "log"
edit: true
envKey: BROADCAST_DRIVER
labelEn: Broadcast Driver
labelZh: 广播驱动
required: true
type: text
- default: "sync"
edit: true
envKey: QUEUE_DRIVER
labelEn: Queue Driver
labelZh: 队列驱动
required: true
type: text
- default: "120"
edit: true
envKey: SESSION_LIFETIME
labelEn: Session Lifetime
labelZh: 会话有效期
required: true
type: number
- default: ""
edit: true
envKey: REDIS_HOST
key: redis
labelEn: Redis Service
labelZh: Redis服务
required: true
type: service
- default: "6379"
edit: true
envKey: REDIS_PORT
labelEn: Redis Service Port
labelZh: Redis服务端口
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: PANEL_REDIS_ROOT_PASSWORD
labelEn: Redis Password
labelZh: Redis 密码
required: true
type: password
- default: ""
edit: true
envKey: PUSHER_APP_ID
labelEn: Pusher App ID
labelZh: Pusher 应用 ID
required: false
type: text
- default: ""
edit: true
envKey: PUSHER_APP_KEY
labelEn: Pusher App Key
labelZh: Pusher 应用密钥
required: false
type: text
- default: ""
edit: true
envKey: PUSHER_APP_SECRET
labelEn: Pusher App Secret
labelZh: Pusher 应用密钥
required: false
type: password
- default: "mt1"
edit: true
envKey: PUSHER_APP_CLUSTER
labelEn: Pusher App Cluster
labelZh: Pusher 应用集群
required: true
type: text
- default: "local"
edit: true
envKey: MIX_ENV
labelEn: Mix Environment
labelZh: Mix 环境
required: true
type: text
- default: ""
edit: true
envKey: OPENID_AUTHORIZE_URL
labelEn: OpenID Authorize URL (Edit to remove comments in compose.yml to take effect)
labelZh: OpenID 授权 URL (编辑去除compose.yml里的注释生效)
required: false
type: text
- default: ""
edit: true
envKey: OPENID_TOKEN_URL
labelEn: OpenID Token URL (Edit to remove comments in compose.yml to take effect)
labelZh: OpenID 令牌 URL (编辑去除compose.yml里的注释生效)
required: false
type: text
- default: ""
edit: true
envKey: OPENID_USERINFO_URL
labelEn: OpenID Userinfo URL (Edit to remove comments in compose.yml to take effect)
labelZh: OpenID 用户信息 URL (编辑去除compose.yml里的注释生效)
required: false
type: text
- default: ""
edit: true
envKey: OPENID_CLIENT_ID
labelEn: OpenID Client ID (Edit to remove comments in compose.yml to take effect)
labelZh: OpenID 客户端 ID (编辑去除compose.yml里的注释生效)
required: false
type: text
- default: ""
edit: true
envKey: OPENID_CLIENT_SECRET
labelEn: OpenID Client Secret (Edit to remove comments in compose.yml to take effect)
labelZh: OpenID 客户端密钥 (编辑去除compose.yml里的注释生效)
required: false
type: password
- default: ""
edit: true
envKey: GITHUB_CLIENT_ID
labelEn: GitHub Client ID (Edit to remove comments in compose.yml to take effect)
labelZh: GitHub 客户端 ID (编辑去除compose.yml里的注释生效)
required: false
type: text
- default: ""
edit: true
envKey: GITHUB_CLIENT_SECRET
labelEn: GitHub Client Secret (Edit to remove comments in compose.yml to take effect)
labelZh: GitHub 客户端密钥 (编辑去除compose.yml里的注释生效)
required: false
type: password

View File

@ -1,73 +0,0 @@
services:
2fauth:
image: "2fauth/2fauth:latest"
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:8000/tcp
volumes:
- ./data:/2fauth
environment:
- APP_NAME=${APP_NAME}
- APP_ENV=${APP_ENV}
- APP_TIMEZONE=${APP_TIMEZONE}
- APP_DEBUG=${APP_DEBUG}
- SITE_OWNER=${SITE_OWNER}
- APP_KEY=${APP_KEY}
- APP_URL=${APP_URL}
- IS_DEMO_APP=${IS_DEMO_APP}
- LOG_CHANNEL=${LOG_CHANNEL}
- LOG_LEVEL=${LOG_LEVEL}
- DB_DATABASE=${DB_DATABASE}
- CACHE_DRIVER=${CACHE_DRIVER}
- SESSION_DRIVER=${SESSION_DRIVER}
- MAIL_MAILER=${MAIL_MAILER}
- MAIL_HOST=${MAIL_HOST}
- MAIL_PORT=${MAIL_PORT}
- MAIL_USERNAME=${MAIL_USERNAME}
- MAIL_PASSWORD=${MAIL_PASSWORD}
- MAIL_ENCRYPTION=${MAIL_ENCRYPTION}
- MAIL_FROM_NAME=${MAIL_FROM_NAME}
- MAIL_FROM_ADDRESS=${MAIL_FROM_ADDRESS}
- MAIL_VERIFY_SSL_PEER=${MAIL_VERIFY_SSL_PEER}
- THROTTLE_API=${THROTTLE_API}
- LOGIN_THROTTLE=${LOGIN_THROTTLE}
- AUTHENTICATION_GUARD=${AUTHENTICATION_GUARD}
- AUTHENTICATION_LOG_RETENTION=${AUTHENTICATION_LOG_RETENTION}
- AUTH_PROXY_HEADER_FOR_USER=${AUTH_PROXY_HEADER_FOR_USER}
- AUTH_PROXY_HEADER_FOR_EMAIL=${AUTH_PROXY_HEADER_FOR_EMAIL}
- PROXY_LOGOUT_URL=${PROXY_LOGOUT_URL}
- WEBAUTHN_NAME=${WEBAUTHN_NAME}
- WEBAUTHN_ID=${WEBAUTHN_ID}
- WEBAUTHN_USER_VERIFICATION=${WEBAUTHN_USER_VERIFICATION}
- TRUSTED_PROXIES=${TRUSTED_PROXIES}
- PROXY_FOR_OUTGOING_REQUESTS=${PROXY_FOR_OUTGOING_REQUESTS}
- BROADCAST_DRIVER=${BROADCAST_DRIVER}
- QUEUE_DRIVER=${QUEUE_DRIVER}
- SESSION_LIFETIME=${SESSION_LIFETIME}
- REDIS_HOST=${REDIS_HOST}
- REDIS_PASSWORD=${PANEL_REDIS_ROOT_PASSWORD}
- REDIS_PORT=${REDIS_PORT}
- PUSHER_APP_ID=${PUSHER_APP_ID}
- PUSHER_APP_KEY=${PUSHER_APP_KEY}
- PUSHER_APP_SECRET=${PUSHER_APP_SECRET}
- PUSHER_APP_CLUSTER=${PUSHER_APP_CLUSTER}
- VITE_PUSHER_APP_KEY=${PUSHER_APP_KEY}
- VITE_PUSHER_APP_CLUSTER=${PUSHER_APP_CLUSTER}
- MIX_ENV=${MIX_ENV}
# 删除以下行前的#号表示启用
#- OPENID_AUTHORIZE_URL=${OPENID_AUTHORIZE_URL}
#- OPENID_TOKEN_URL=${OPENID_TOKEN_URL}
#- OPENID_USERINFO_URL=${OPENID_USERINFO_URL}
#- OPENID_CLIENT_ID=${OPENID_CLIENT_ID}
#- OPENID_CLIENT_SECRET=${OPENID_CLIENT_SECRET}
#- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}
#- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,3 +0,0 @@
#!/bin/bash
chown -R 1000:1000 data

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,58 +0,0 @@
# 使用说明
这是个民间制作的`aaPanel`的`1Panel`商店版本应用;
- WebUI入口`http://IP地址:面板端口/aapanel`
- 默认账号:`aapanel`
- 密码:`aapanel123`
- 容器内root密码`aapanel123`
> 容器内数据
- 网站目录:`/www/wwwroot`
- MySQL目录:`/www/server/data`
- 域名数据:`/www/server/panel/vhost`
> 原作者项目相关
>> - https://hub.docker.com/r/aapanel/aapanel
>> - https://github.com/aaPanel/aaPanel
- 提示:为数据持久化运行,相关数据以存储卷方式存储。
# 原项目介绍
* 宝塔面板的国际版
* 在GitHub开源的版本
# aaPanel Docker Deployment
The docker image is officially released by aaPanel
Maintained by: [aaPanel](https://www.aapanel.com)
##How to use
`$docker run -d -p 8886:8888 -p 22:21 -p 443:443 -p 80:80 -p 889:888 -v ~/website_data:/www/wwwroot -v ~/mysql_data:/www/server/data -v ~/vhost:/www/server/panel/vhost aapanel/aapanel:lib`
Now you can access aaPanel at http://youripaddress:8886/ from your host system.
Default username:`aapanel`
Default password:`aapanel123`
####Port usage analysis
Control Panel : 8888
Phpmyadmin : 888
####Dir usage analysis
Website data : /www/wwwroot
Mysql data : /www/server/data
Vhost file : /www/server/panel/vhost
**Note: after the deployment is complete, please immediately modify the user name and password in the panel settings and add the installation entry**

View File

@ -1,19 +0,0 @@
name: aaPanel
tags:
- 工具
title: 宝塔面板国际版开源的Linux面板
description: 宝塔面板国际版开源的Linux面板
additionalProperties:
key: aaPanel
name: aaPanel
tags:
- Tool
shortDescZh: 宝塔面板国际版开源的Linux面板
shortDescEn: BT-Panel International Edition, the open source Linux panel
type: tool
crossVersionUpdate: false
limit: 0
recommend: 0
website: https://www.aapanel.com/new/index.html
github: https://github.com/aaPanel/aaPanel
document: https://github.com/aaPanel/aaPanel

View File

@ -1,7 +0,0 @@
CONTAINER_NAME="aapanel"
PANEL_APP_PORT_HTTP="7200"
HTTP_PORT="10080"
HTTPS_PORT="10443"
PHPMYADMIN_PORT="10888"
SSH_PORT="20022"
FTP_PORT="20021"

View File

@ -1,50 +0,0 @@
additionalProperties:
formFields:
- default: 7200
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Web Panel Port
labelZh: 面板端口
required: true
rule: paramPort
type: number
- default: 10080
edit: true
envKey: HTTP_PORT
labelEn: HTTP Port
labelZh: HTTP端口
required: true
rule: paramPort
type: number
- default: 10443
edit: true
envKey: HTTPS_PORT
labelEn: HTTPS Port
labelZh: HTTPS端口
required: true
rule: paramPort
type: number
- default: 10888
edit: true
envKey: PHPMYADMIN_PORT
labelEn: phpMyAdmin Port
labelZh: phpMyAdmin端口
required: true
rule: paramPort
type: number
- default: 20022
edit: true
envKey: SSH_PORT
labelEn: SSH Port
labelZh: 面板内SSH端口
required: true
rule: paramPort
type: number
- default: 20021
edit: true
envKey: FTP_PORT
labelEn: SSH Port
labelZh: 面板内FTP端口
required: true
rule: paramPort
type: number

View File

@ -1,23 +0,0 @@
services:
aapanel:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:7800"
- "${HTTP_PORT}:80"
- "${HTTPS_PORT}:443"
- "${PHPMYADMIN_PORT}:888"
- "${SSH_PORT}:22"
- "${FTP_PORT}:21"
volumes:
- aapanel:/www
image: "aapanel/aapanel:lib"
labels:
createdBy: "Apps"
volumes:
aapanel:
networks:
1panel-network:
external: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -1,6 +0,0 @@
CONTAINER_NAME="act_runner"
DATA_PATH="./data"
GITEA_INSTANCE_URL="http://1.2.3.4:567"
RUNNER_REGISTRATION_TOKEN="xxx"
RUNNER_NAME="xxx"
RUNNER_LABELS="xxx"

View File

@ -1,38 +0,0 @@
additionalProperties:
formFields:
- default: ./data
edit: true
envKey: DATA_PATH
labelEn: Data folder path
labelZh: 数据文件夹路径
required: true
type: text
- default: http://1.2.3.4:567
edit: true
envKey: GITEA_INSTANCE_URL
labelEn: Gitea instance URL
labelZh: Gitea 实例 URL
required: true
rule: paramExtUrl
type: text
- default: ''
edit: true
envKey: RUNNER_REGISTRATION_TOKEN
labelEn: Gitea runner REGISTRATION TOKEN
labelZh: Gitea runner REGISTRATION TOKEN
required: true
type: text
- default: ''
edit: true
envKey: RUNNER_NAME
labelEn: Gitea runner name
labelZh: Gitea runner name
required: true
type: text
- default: ''
edit: true
envKey: RUNNER_LABELS
labelEn: Gitea runner labels
labelZh: Gitea runner labels
required: true
type: text

View File

@ -1,23 +0,0 @@
services:
act_runner:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
volumes:
#- ${DATA_PATH}/config.yaml:/config.yaml # 可选配置
- ${DATA_PATH}/data:/data
- /var/run/docker.sock:/var/run/docker.sock
environment:
#- CONFIG_FILE=/config.yaml
- GITEA_INSTANCE_URL=${GITEA_INSTANCE_URL}
- GITEA_RUNNER_REGISTRATION_TOKEN=${RUNNER_REGISTRATION_TOKEN}
- GITEA_RUNNER_NAME=${RUNNER_NAME}
- GITEA_RUNNER_LABELS=${RUNNER_LABELS}
image: gitea/act_runner:0.2.11
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,3 +0,0 @@
# act runner
Act runner是一个基于[Gitea fork](https://gitea.com/gitea/act)的[Gitea](https://github.com/nektos/act)上的运行器。

View File

@ -1,19 +0,0 @@
name: Act runner
tags:
- DevOps
title: Gitea Actions 的 Runner
description: Gitea Actions 的 Runner
additionalProperties:
key: act_runner
name: Act runner
tags:
- DevOps
shortDescZh: Gitea Actions 的 Runner
shortDescEn: A runner for Gitea based on Gitea fork of act
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://gitea.com/gitea/act_runner
github: https://gitea.com/gitea/act_runner
document: https://docs.gitea.com/next/usage/actions/act-runner

View File

@ -1,6 +0,0 @@
CONTAINER_NAME="act_runner"
DATA_PATH="./data"
GITEA_INSTANCE_URL="http://1.2.3.4:567"
RUNNER_REGISTRATION_TOKEN="xxx"
RUNNER_NAME="xxx"
RUNNER_LABELS="xxx"

View File

@ -1,38 +0,0 @@
additionalProperties:
formFields:
- default: ./data
edit: true
envKey: DATA_PATH
labelEn: Data folder path
labelZh: 数据文件夹路径
required: true
type: text
- default: http://1.2.3.4:567
edit: true
envKey: GITEA_INSTANCE_URL
labelEn: Gitea instance URL
labelZh: Gitea 实例 URL
required: true
rule: paramExtUrl
type: text
- default: ''
edit: true
envKey: RUNNER_REGISTRATION_TOKEN
labelEn: Gitea runner REGISTRATION TOKEN
labelZh: Gitea runner REGISTRATION TOKEN
required: true
type: text
- default: ''
edit: true
envKey: RUNNER_NAME
labelEn: Gitea runner name
labelZh: Gitea runner name
required: true
type: text
- default: ''
edit: true
envKey: RUNNER_LABELS
labelEn: Gitea runner labels
labelZh: Gitea runner labels
required: true
type: text

View File

@ -1,23 +0,0 @@
services:
act_runner:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
volumes:
#- ${DATA_PATH}/config.yaml:/config.yaml # 可选配置
- ${DATA_PATH}/data:/data
- /var/run/docker.sock:/var/run/docker.sock
environment:
#- CONFIG_FILE=/config.yaml
- GITEA_INSTANCE_URL=${GITEA_INSTANCE_URL}
- GITEA_RUNNER_REGISTRATION_TOKEN=${RUNNER_REGISTRATION_TOKEN}
- GITEA_RUNNER_NAME=${RUNNER_NAME}
- GITEA_RUNNER_LABELS=${RUNNER_LABELS}
image: gitea/act_runner:latest
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

View File

@ -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"

View File

@ -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

View File

@ -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:v0.107.60
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,529 +0,0 @@
&nbsp;
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="doc/adguard_home_darkmode.svg">
<img alt="AdGuard Home" src="https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/doc/adguard_home_lightmode.svg" width="300px">
</picture>
</p>
<h3 align="center">Privacy protection center for you and your devices</h3>
<p align="center">
Free and open source, powerful network-wide ads & trackers blocking DNS
server.
</p>
<p align="center">
<a href="https://adguard.com/">AdGuard.com</a> |
<a href="https://github.com/AdguardTeam/AdGuardHome/wiki">Wiki</a> |
<a href="https://reddit.com/r/Adguard">Reddit</a> |
<a href="https://twitter.com/AdGuard">Twitter</a> |
<a href="https://t.me/adguard_en">Telegram</a>
<br/><br/>
<a href="https://codecov.io/github/AdguardTeam/AdGuardHome?branch=master">
<img src="https://img.shields.io/codecov/c/github/AdguardTeam/AdGuardHome/master.svg" alt="Code Coverage"/>
</a>
<a href="https://goreportcard.com/report/AdguardTeam/AdGuardHome">
<img src="https://goreportcard.com/badge/github.com/AdguardTeam/AdGuardHome" alt="Go Report Card"/>
</a>
<a href="https://hub.docker.com/r/adguard/adguardhome">
<img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/adguard/adguardhome.svg?maxAge=604800"/>
</a>
<br/>
<a href="https://github.com/AdguardTeam/AdGuardHome/releases">
<img src="https://img.shields.io/github/release/AdguardTeam/AdGuardHome/all.svg" alt="Latest release"/>
</a>
<a href="https://snapcraft.io/adguard-home">
<img alt="adguard-home" src="https://snapcraft.io/adguard-home/badge.svg"/>
</a>
</p>
<br/>
<p align="center">
<img src="https://cdn.adtidy.org/public/Adguard/Common/adguard_home.gif" width="800"/>
</p>
<hr/>
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)
## <a href="#getting-started" id="getting-started" name="getting-started">Getting Started</a>
### <a href="#automated-install-linux-and-mac" id="automated-install-linux-and-mac" name="automated-install-linux-and-mac">Automated install (Unix)</a>
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 <channel>` 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.
### <a href="#alternative-methods" id="alternative-methods" name="alternative-methods">Alternative methods</a>
#### <a href="#manual-installation" id="manual-installation" name="manual-installation">Manual installation</a>
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.
#### <a href="#docker" id="docker" name="docker">Docker</a>
You can use our official Docker image on [Docker Hub].
#### <a href="#snap-store" id="snap-store" name="snap-store">Snap Store</a>
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
### <a href="#guides" id="guides" name="guides">Guides</a>
See our [Wiki][wiki].
[wiki]: https://github.com/AdguardTeam/AdGuardHome/wiki
### <a href="#api" id="api" name="api">API</a>
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/
## <a href="#comparison" id="comparison" name="comparison">Comparing AdGuard Home to other solutions</a>
### <a href="#comparison-adguard-dns" id="comparison-adguard-dns" name="comparison-adguard-dns">How is this different from public AdGuard DNS servers?</a>
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.**
### <a href="#comparison-pi-hole" id="comparison-pi-hole" name="comparison-pi-hole">How does AdGuard Home compare to Pi-Hole</a>
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.
<aside>
We're not going to stop here. DNS sinkholing is not a bad starting point, but
this is just the beginning.
</aside>
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&nbsp;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
### <a href="#comparison-adblock" id="comparison-adblock" name="comparison-adblock">How does AdGuard Home compare to traditional ad blockers</a>
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).
### <a href="#comparison-limitations" id="comparison-limitations" name="comparison-limitations">Known limitations</a>
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
## <a href="#how-to-build" id="how-to-build" name="how-to-build">How to build from source</a>
### <a href="#prerequisites" id="prerequisites" name="prerequisites">Prerequisites</a>
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.
### <a href="#building" id="building" name="building">Building</a>
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.
#### <a href="#building-cross" id="building-cross" name="building-cross">Building for a different platform</a>
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'
```
#### <a href="#preparing-releases" id="preparing-releases" name="preparing-releases">Preparing releases</a>
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].
#### <a href="#docker-image" id="docker-image" name="docker-image">Docker image</a>
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].
#### <a href="#debugging-the-frontend" id="debugging-the-frontend" name="debugging-the-frontend">Debugging the frontend</a>
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
## <a href="#contributing" id="contributing" name="contributing">Contributing</a>
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
### <a href="#test-unstable-versions" id="test-unstable-versions" name="test-unstable-versions">Test unstable versions</a>
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
### <a href="#reporting-issues" id="reporting-issues" name="reporting-issues">Report issues</a>
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
### <a href="#translate" id="translate" name="translate">Help with translations</a>
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
### <a href="#help-other" id="help-other" name="help-other">Other</a>
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
## <a href="#uses" id="uses" name="uses">Projects that use AdGuard Home</a>
<!--
TODO(a.garipov): Use reference links.
-->
* [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/).
## <a href="#acknowledgments" id="acknowledgments" name="acknowledgments">Acknowledgments</a>
<!--
TODO(a.garipov): Use reference links.
-->
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
## <a href="#privacy" id="privacy" name="privacy">Privacy</a>
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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

View File

@ -1,22 +0,0 @@
AIS_DB_PORT="3306"
AIS_PLATFORM="mysql"
ALI_ACCESS_ID=""
ALI_ACCESS_SECRET=""
ALI_SMS_PERMIT=""
ALI_SMS_SIGN=""
ALI_SMS_TEMPLATE=""
CONTAINER_NAME="ais-ninja"
EMAIL_SENDER=""
GOOGLE_CLIENT_ID=""
PANEL_APP_PORT_HTTP="40043"
PANEL_DB_HOST="mysql"
PANEL_DB_NAME="ais-ninja_Nk3BFS"
PANEL_DB_USER="ais-ninja_XpfeJ6"
PANEL_DB_USER_PASSWORD="ais-ninja_ZECQzW"
REDIS_HOST="redis"
REDIS_PASS="REDIS_PASSWORD"
REDIS_PORT=6379
SMTP_HOST=""
SMTP_PASSWORD=""
SMTP_PORT="587"
SMTP_USER=""

View File

@ -1,163 +0,0 @@
additionalProperties:
formFields:
- child:
default: ""
envKey: PANEL_DB_HOST
labelEn: Database Service
labelZh: 数据库服务
required: true
type: service
default: mysql
envKey: AIS_PLATFORM
labelEn: Database Service
labelZh: 数据库服务
params:
- envKey: AIS_DB_PORT
key: mysql
type: param
value: "3306"
- envKey: AIS_DB_PORT
key: postgresql
type: param
value: "5432"
required: true
type: apps
values:
- label: MySQL
value: mysql
- default: ais-ninja
envKey: PANEL_DB_NAME
labelEn: Database
labelZh: 数据库名
random: true
required: true
rule: paramCommon
type: text
- default: ais-ninja
envKey: PANEL_DB_USER
labelEn: User
labelZh: 数据库用户
random: true
required: true
rule: paramCommon
type: text
- default: ais-ninja
envKey: PANEL_DB_USER_PASSWORD
labelEn: Password
labelZh: 数据库用户密码
random: true
required: true
rule: paramComplexity
type: password
- default: ""
edit: true
envKey: REDIS_HOST
key: redis
labelEn: Redis Service
labelZh: Redis服务
required: true
type: service
- default: "6379"
edit: true
envKey: REDIS_PORT
labelEn: Redis Service Port
labelZh: Redis服务端口
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: REDIS_PASS
labelEn: Redis Service Password
labelZh: Redis服务密码
required: true
rule: paramCommon
type: password
- default: 40043
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: SMTP_HOST
labelEn: SMTP HOST
labelZh: SMTP 主机
required: false
rule: paramExtUrl
type: text
- default: "587"
edit: true
envKey: SMTP_PORT
labelEn: SMTP Port
labelZh: SMTP 端口
required: false
rule: paramPort
type: number
- default: ""
edit: true
envKey: EMAIL_SENDER
labelEn: Email service sender email address
labelZh: 邮箱服务发送方邮箱地址
required: false
type: text
- default: ""
edit: true
envKey: SMTP_USER
labelEn: Email service user name
labelZh: 邮箱服务用户名
required: false
type: text
- default: ""
edit: true
envKey: SMTP_PASSWORD
labelEn: Email service password
labelZh: 邮箱服务密码
required: false
rule: paramCommon
type: password
- default: ""
edit: true
envKey: GOOGLE_CLIENT_ID
labelEn: Google login client_id
labelZh: 谷歌登录的client_id
required: false
type: text
- default: ""
edit: true
envKey: ALI_ACCESS_ID
labelEn: Alibaba Cloud accessKey ID
labelZh: 阿里云accessKey ID
required: false
type: text
- default: ""
edit: true
envKey: ALI_ACCESS_SECRET
labelEn: Alibaba Cloud accessKeySecret
labelZh: 阿里云 accessKeySecret
required: false
type: text
- default: ""
edit: true
envKey: ALI_SMS_PERMIT
labelEn: Enable mobile sign-in registration (true or false)
labelZh: 启用手机登录注册(true or false)
required: false
type: text
- default: ""
edit: true
envKey: ALI_SMS_SIGN
labelEn: Alibaba Cloud SMS verification code service signature
labelZh: 阿里云短信验证码服务签名
required: false
type: text
- default: ""
edit: true
envKey: ALI_SMS_TEMPLATE
labelEn: Alibaba Cloud verification code SMS template, which must include {code}
labelZh: 阿里云验证码短信模板,需要包含 {code}
required: false
type: text

View File

@ -1,34 +0,0 @@
services:
ais-ninja:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:80"
environment:
DATABASE_NAME: ${PANEL_DB_NAME}
DATABASE_PORT: ${AIS_DB_PORT}
DATABASE_HOST: ${PANEL_DB_HOST}
DATABASE_USER: ${PANEL_DB_USER}
DATABASE_PASSWORD: ${PANEL_DB_USER_PASSWORD}
DATABASE_SYNC: 'true'
REDIS_URL: redis://:${REDIS_PASS}@${REDIS_HOST}:${REDIS_PORT}/0
EMAIL_HOST: ${SMTP_HOST}
EMAIL_PORT: ${SMTP_PORT}
EMAIL_FROM: ${EMAIL_SENDER}
EMAIL_AUTH_USER: ${SMTP_USER}
EMAIL_AUTH_PASS: ${SMTP_PASSWORD}
SOCIAL_GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID}
ALI_ACCESS_KEY_ID: ${ALI_ACCESS_ID}
ALI_ACCESS_KEY_SECRET: ${ALI_ACCESS_SECRET}
ALI_SMS_ENABLE: ${ALI_SMS_PERMIT}
ALI_SMS_SIGN_NAME: ${ALI_SMS_SIGN}
ALI_SMS_TEMPLATE_CODE: ${ALI_SMS_TEMPLATE}
image: jarvis2f/ais-ninja:v1.0.8
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,200 +0,0 @@
# 使用说明
- 管理员账户密码请通过查看容器日志获取;
- 访问地址加`/admin`即是管理员面板。
# 原始相关
# ais-ninja
[English README]([README_en.md](https://github.com/jarvis2f/ais-ninja/blob/main/README_en.md))
## 介绍
![intro.gif](https://github.com/jarvis2f/ais-ninja/raw/main/doc%2Fintro.gif)
ais-ninja 是一个基于 chatgpt 的 Web 应用程序。它基于 [ChatGpt-Web](https://github.com/79E/ChatGpt-Web).
* 重构了后端代码。
* 多语言支持。
* 支持插件系统。
## 插件列表
> 欢迎贡献你开发的插件,如何开发可以查看 [插件开发文档](#插件开发)。
| 插件名称 | 插件介绍 |
|----------------------------------------|-------------------|
| [Baidu Search](plugins%2Fbaidu-search) | 百度搜索 |
| [DuckDuckGo](plugins%2FDuckDuckGo) | DuckDuckGo 搜索 |
| [Google Search](plugins%2Fgoogle) | 谷歌搜索 |
| [imdb](plugins%2Fimdb) | IMDB电影搜索API需要付费 |
| [internet](plugins%2Finternet) | 联网插件 |
| [ipinfo.io](plugins%2Fipinfo.io) | ip 信息查询 |
| [newsdata.io](plugins%2Fnewsdata.io) | 新闻查询 |
| [seniverse](plugins%2Fseniverse) | 天气查询 |
| [themoviedb](plugins%2Fthemoviedb) | 电影信息查询 |
## 部署
### docker
```shell
docker run -d \
--name ais-ninja \
--hostname ais-ninja \
-p 6789:80 \
-e PUID=0 \
-e DATABASE_NAME=ais_ninja \
-e DATABASE_PORT=3306 \
-e DATABASE_HOST=host \
-e DATABASE_USER=root \
-e DATABASE_PASSWORD=123456 \
-e DATABASE_SYNC='true' \
-e REDIS_URL=redis://${url}:6379/0 \
jarvis2f/ais-ninja:v1.0.2
```
### docker-compose
1. 创建文件夹 `ais_ninja` 创建 `docker-compose.yml` 文件.
```shell
mkdir ais.ninja && cd ais.ninja
touch docker-compose.yml
```
2. 复制 [docker-compose.yml](https://github.com/jarvis2f/ais-ninja/blob/main/deploy/docker-compose.yml) 到 `docker-compose.yml` 文件中
3. 修改 `docker-compose.yml` 中的环境变量
4. 运行 `docker-compose up -d` 启动服务
运行 `docker logs ais-ninja-app` 查看日志。如果看到如下日志,则说明服务启动成功。首次启动会生成默认管理员帐户和密码。
```shell
[12:47:52.887] INFO (43): Logger initialized: info
[12:47:57.798] INFO (config/43): Config file path: /app/server/config.json
[12:47:58.308] INFO (db/43): Database connected
[12:47:58.822] INFO (db/43): Database synced
[12:47:58.832] INFO (redis/43): Redis connected
[12:47:58.851] WARN (openai/43): No OpenAI tokens provided
[12:47:58.851] INFO (app/43): OpenAI clients initialized
[12:47:58.860] INFO (app/43): Server running on port 5174
[12:47:58.861] INFO (db/43): Administrator initialized: ${administrator account} ${administrator password}
```
后台地址:`http://localhost:6789/admin`
### 环境变量
> 本项目中的大部分配置项都是通过环境变量来设置的。
>
> 你也可以修改 `config.json` 文件去设置环境变量。
> 然后运行 `docker run -d --name ais-ninja -v /path/to/config.json:/app/server/config.json jarvis2f/ais-ninja:1.0.0`
> 启动服务.
| Environment Variable | Description |
|---------------------------|---------------------------------------------------------------------------|
| `DATABASE_NAME` | 数据库名称 |
| `DATABASE_PORT` | 数据库端口 |
| `DATABASE_HOST` | 数据库地址 |
| `DATABASE_USER` | 数据库用户名 |
| `DATABASE_PASSWORD` | 数据库密码 |
| `DATABASE_SYNC` | 项目启动是否自动同步数据库表结构。 true or false |
| `REDIS_URL` | Redis 地址,格式: redis[s]://[[username][:password]@][host][:port][/db-number] |
| `EMAIL_ENABLE` | 启用邮箱登录注册 true or false |
| `EMAIL_HOST` | 邮箱服务地址 |
| `EMAIL_PORT` | 邮箱服务端口 |
| `EMAIL_FROM` | 邮箱服务发送方邮箱地址 |
| `EMAIL_AUTH_USER` | 邮箱服务用户名 |
| `EMAIL_AUTH_PASS` | 邮箱服务密码 |
| `SOCIAL_GOOGLE_CLIENT_ID` | 谷歌登录的client_id |
| `ALI_ACCESS_KEY_ID` | 阿里云 accessKeyId |
| `ALI_ACCESS_KEY_SECRET` | 阿里云 accessKeySecret |
| `ALI_SMS_ENABLE` | 启用手机登录注册 true or false |
| `ALI_SMS_SIGN_NAME` | 阿里云短信验证码服务签名 |
| `ALI_SMS_TEMPLATE_CODE` | 阿里云验证码短信模板,需要包含 {code} |
## 插件开发
项目启动之后可以到后台 -> 系统配置中填写仓库地址:`https://github.com/jarvis2f/ais-ninja.git`
导入本仓库 [plugins](https://github.com/jarvis2f/ais-ninja/blob/main/plugins) 下的插件。
### 创建对话插件
可以先看下[ OpenAI 的文档](https://platform.openai.com/docs/guides/gpt/function-calling)。
对话中会将插件中的方法以下方这种格式传递给 ChatGPT 的接口ChatGPT 会返回需要调用的插件方法名称和参数。
```json
{
"functions": [
{
"name": "search_weather",
"description": "Query china real time weather information from seniverse.com",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "China Pinyin Location name, e.g. beijing"
}
},
"required": [
"location"
]
}
}
]
}
```
系统中一个插件可以有多个 function, 用户安装一个插件之后会把插件中的所有 function 传递给 ChatGPT。
插件使用 JavaScript 编写,可以参考 [plugins](https://github.com/jarvis2f/ais-ninja/blob/main/plugins)中的代码。
可以使用的库:
* [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch) 发起网络请求
* [dayjs](https://day.js.org/) 时间处理
* [lodash](https://lodash.com/) 工具库
* [jsdom](https://github.com/jsdom/jsdom) 操作 DOM
* [puppeteer-core](https://www.npmjs.com/package/puppeteer-core) 模拟浏览器
* ais ais_ninja 提供的一些函数
* ais.createCompletion 调用 OpenAI 的 Completion API
* ais.createChatCompletion 调用 OpenAI 的 Chat Completion API
* ais_progress(content:string) 不需要 require,返回给用户当前方法的调用进度
[plugins](./plugins) 目录格式:
* `plugins/${plugin_name}/index.js` 插件代码
* `plugins/${plugin_name}/desc.md` 插件介绍
* `plugins/${plugin_name}/plugin.json` 插件信息
### 插件变量
可以将一些私有的 key 设为插件变量,这样就不会暴露在代码中。在 plugin.json 中的 variables 字段中定义变量。
```json
{
"name": "weather",
"description": "Query china real time weather information from seniverse.com",
"variables": {
"SENIVERSE_KEY": "Your API Key"
}
}
```
在前台插件编辑中编写变量保存,然后就可以在代码中使用 `process.env.SENIVERSE_KEY` 获取变量。
### 查看插件日志
可以使用 `console.log` 打印日志。在插件页面中打开调试按钮,会将日志输出到浏览器的 console 中。
```
📣📣📣function_call - [心知天气](search_weather)(ae9bc196-4bfe-43a9-8060-2d2e2ec601c5)
{
"name": "10000__search_weather",
"arguments": "{\n\"location\": \"shanghai\"\n}"
}
📣📣📣function_response - []()(ae9bc196-4bfe-43a9-8060-2d2e2ec601c5)
{
"status": "The API key is invalid.",
"status_code": "AP010003"
}
```

View File

@ -1,19 +0,0 @@
name: ais-ninja
tags:
- AI / 大模型
title: 基于 ChatGPT 的 Web 应用程序
description: 基于 ChatGPT 的 Web 应用程序
additionalProperties:
key: ais-ninja
name: ais-ninja
tags:
- AI
shortDescZh: 基于 ChatGPT 的 Web 应用程序
shortDescEn: ChatGPT-based web applications
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://github.com/jarvis2f/ais-ninja
github: https://github.com/jarvis2f/ais-ninja
document: https://github.com/jarvis2f/ais-ninja

View File

@ -1,22 +0,0 @@
AIS_DB_PORT="3306"
AIS_PLATFORM="mysql"
ALI_ACCESS_ID=""
ALI_ACCESS_SECRET=""
ALI_SMS_PERMIT=""
ALI_SMS_SIGN=""
ALI_SMS_TEMPLATE=""
CONTAINER_NAME="ais-ninja"
EMAIL_SENDER=""
GOOGLE_CLIENT_ID=""
PANEL_APP_PORT_HTTP="40043"
PANEL_DB_HOST="mysql"
PANEL_DB_NAME="ais-ninja_Nk3BFS"
PANEL_DB_USER="ais-ninja_XpfeJ6"
PANEL_DB_USER_PASSWORD="ais-ninja_ZECQzW"
REDIS_HOST="redis"
REDIS_PASS="REDIS_PASSWORD"
REDIS_PORT=6379
SMTP_HOST=""
SMTP_PASSWORD=""
SMTP_PORT="587"
SMTP_USER=""

View File

@ -1,163 +0,0 @@
additionalProperties:
formFields:
- child:
default: ""
envKey: PANEL_DB_HOST
labelEn: Database Service
labelZh: 数据库服务
required: true
type: service
default: mysql
envKey: AIS_PLATFORM
labelEn: Database Service
labelZh: 数据库服务
params:
- envKey: AIS_DB_PORT
key: mysql
type: param
value: "3306"
- envKey: AIS_DB_PORT
key: postgresql
type: param
value: "5432"
required: true
type: apps
values:
- label: MySQL
value: mysql
- default: ais-ninja
envKey: PANEL_DB_NAME
labelEn: Database
labelZh: 数据库名
random: true
required: true
rule: paramCommon
type: text
- default: ais-ninja
envKey: PANEL_DB_USER
labelEn: User
labelZh: 数据库用户
random: true
required: true
rule: paramCommon
type: text
- default: ais-ninja
envKey: PANEL_DB_USER_PASSWORD
labelEn: Password
labelZh: 数据库用户密码
random: true
required: true
rule: paramComplexity
type: password
- default: ""
edit: true
envKey: REDIS_HOST
key: redis
labelEn: Redis Service
labelZh: Redis服务
required: true
type: service
- default: "6379"
edit: true
envKey: REDIS_PORT
labelEn: Redis Service Port
labelZh: Redis服务端口
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: REDIS_PASS
labelEn: Redis Service Password
labelZh: Redis服务密码
required: true
rule: paramCommon
type: password
- default: 40043
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: SMTP_HOST
labelEn: SMTP HOST
labelZh: SMTP 主机
required: false
rule: paramExtUrl
type: text
- default: "587"
edit: true
envKey: SMTP_PORT
labelEn: SMTP Port
labelZh: SMTP 端口
required: false
rule: paramPort
type: number
- default: ""
edit: true
envKey: EMAIL_SENDER
labelEn: Email service sender email address
labelZh: 邮箱服务发送方邮箱地址
required: false
type: text
- default: ""
edit: true
envKey: SMTP_USER
labelEn: Email service user name
labelZh: 邮箱服务用户名
required: false
type: text
- default: ""
edit: true
envKey: SMTP_PASSWORD
labelEn: Email service password
labelZh: 邮箱服务密码
required: false
rule: paramCommon
type: password
- default: ""
edit: true
envKey: GOOGLE_CLIENT_ID
labelEn: Google login client_id
labelZh: 谷歌登录的client_id
required: false
type: text
- default: ""
edit: true
envKey: ALI_ACCESS_ID
labelEn: Alibaba Cloud accessKey ID
labelZh: 阿里云accessKey ID
required: false
type: text
- default: ""
edit: true
envKey: ALI_ACCESS_SECRET
labelEn: Alibaba Cloud accessKeySecret
labelZh: 阿里云 accessKeySecret
required: false
type: text
- default: ""
edit: true
envKey: ALI_SMS_PERMIT
labelEn: Enable mobile sign-in registration (true or false)
labelZh: 启用手机登录注册(true or false)
required: false
type: text
- default: ""
edit: true
envKey: ALI_SMS_SIGN
labelEn: Alibaba Cloud SMS verification code service signature
labelZh: 阿里云短信验证码服务签名
required: false
type: text
- default: ""
edit: true
envKey: ALI_SMS_TEMPLATE
labelEn: Alibaba Cloud verification code SMS template, which must include {code}
labelZh: 阿里云验证码短信模板,需要包含 {code}
required: false
type: text

View File

@ -1,34 +0,0 @@
services:
ais-ninja:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:80"
environment:
DATABASE_NAME: ${PANEL_DB_NAME}
DATABASE_PORT: ${AIS_DB_PORT}
DATABASE_HOST: ${PANEL_DB_HOST}
DATABASE_USER: ${PANEL_DB_USER}
DATABASE_PASSWORD: ${PANEL_DB_USER_PASSWORD}
DATABASE_SYNC: 'true'
REDIS_URL: redis://:${REDIS_PASS}@${REDIS_HOST}:${REDIS_PORT}/0
EMAIL_HOST: ${SMTP_HOST}
EMAIL_PORT: ${SMTP_PORT}
EMAIL_FROM: ${EMAIL_SENDER}
EMAIL_AUTH_USER: ${SMTP_USER}
EMAIL_AUTH_PASS: ${SMTP_PASSWORD}
SOCIAL_GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID}
ALI_ACCESS_KEY_ID: ${ALI_ACCESS_ID}
ALI_ACCESS_KEY_SECRET: ${ALI_ACCESS_SECRET}
ALI_SMS_ENABLE: ${ALI_SMS_PERMIT}
ALI_SMS_SIGN_NAME: ${ALI_SMS_SIGN}
ALI_SMS_TEMPLATE_CODE: ${ALI_SMS_TEMPLATE}
image: jarvis2f/ais-ninja:latest
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -1,23 +0,0 @@
# Alist-encrypt
这个项目主要是对 alist 的服务进行代理,提供 webdav 的加解密功能。支持 alist 网页在线播放加密的视频,查看加密的图片等功能,同时在 webdav 下的操作透明,自动实现文件资源的加解密。
## 使用说明
启动后就打开代理服务器地址 `http://ip:端口/public/index.html` 即可进入配置页面,`账号 admin密码默认 123456`。
配置后之后,打开`http://ip:端口` 即可访问到 alist 的服务了。
对于路径的设置,目前是支持正则表达式的,推荐表达式例如: movie_encrypt/\* ,这样的话所有的 movie_encrypt 目录的文件都会被加密传输。
## 需求背景
AList 是一个支持多种存储、云网盘,支持网页浏览和提供 WebDAV 服务的应用程序。最近的阿里云盘很火,因为不限速,所以不少人使用阿里云盘配合 alist 当做个人的影院,随时在线观看视频。
国内的云盘有很多,除了阿里云盘还有天翼云盘也是不限速的,但是几乎都存在一个问题,敏感资源会被删除,相信很多人经历文件被删除掉的噩梦。那么有没有什么办法可以避免这样的问题呢,最简单的方案就是加密后上传。那么就有大局限性,不能实时在线播放视频,当然也有一些方案可以做到。加密后的文件分享也存在一定的不方便(密码不方便对外提供,本项目会有密码替身可以提供外部使用)。
Alist-encrypt 就是为了解决这个问题,它可以在网页中上传文件,也可以结合 webdav 服务器进行使用。在文件上传的时候进行加密,文件下载的时候进行解密,由于使用的是流加密方案,所以可以很轻松实现在线播放已加密的视频,浏览图片、文件等。目前主流的方案都是使用 alist 来实现网盘 webdav 的服务,所以 Alist-encrypt 支持 alist 服务,并且优先支持它的适配,支持网页版在线播放视频等功能。
关于这个项目的使用场景,对文件安全隐私有一定的需求,防止云盘扫描删除,有实时播放视频和下载的需求。

View File

@ -1,5 +0,0 @@
CONTAINER_NAME="alist-encrypt"
PANEL_APP_PORT_HTTP="40218"
DATA_PATH="./data"
ALIST_HOST="192.168.31.254:5254"
TIME_ZONE="Asia/Shanghai"

View File

@ -1,31 +0,0 @@
additionalProperties:
formFields:
- default: 40218
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
- default: '192.168.31.254:5254'
edit: true
envKey: ALIST_HOST
labelEn: Alist Service Address
labelZh: Alist 服务地址
required: true
type: text
- default: Asia/Shanghai
edit: true
envKey: TIME_ZONE
labelEn: Time zone
labelZh: 时区
required: true
type: text

View File

@ -1,20 +0,0 @@
services:
alist-encrypt:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:5344"
volumes:
- "${DATA_PATH}:/node-proxy/conf"
environment:
- TZ=${TIME_ZONE}
- ALIST_HOST=${ALIST_HOST}
image: prophet310/alist-encrypt:beta
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,19 +0,0 @@
name: Alist-encrypt
tags:
- 工具
title: 对 Alist 的服务提供 webdav 的加解密功能
description: 对 Alist 的服务提供 webdav 的加解密功能
additionalProperties:
key: alist-encrypt
name: Alist-encrypt
tags:
- Tool
shortDescZh: 对 Alist 的服务提供 webdav 的加解密功能
shortDescEn: Provides webdav encryption and decryption for Alist's services
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://github.com/traceless/alist-encrypt
github: https://github.com/traceless/alist-encrypt
document: https://github.com/traceless/alist-encrypt

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,289 +0,0 @@
# 使用说明
**默认用户名:`admin` 密码:`admin`**
# 原始相关
***
# AList-TvBox
AList代理支持xiaoya版AList界面管理。
## 简明教程
1. 准备工作安装Docker
2. 安装AList-TvBox
```bash
sudo bash -c "$(curl -fsSL https://d.har01d.cn/update_xiaoya.sh)"
```
3. 打开管理界面http://your-ip:4567/#/accounts
默认用户名admin 密码admin
4. 获取并填写阿里token、开放token
5. 将订阅地址[http://your-ip:4567/sub/0](http://your-ip:4567/sub/0) 输入到TvBox配置
## 功能
- 管理界面
- 海报墙
- 多个AList站点
- 多个阿里云盘账号
- 挂载我的云盘
- 自动签到
- 自动刷新阿里Token
- 自定义TvBox配置
- 安全订阅配置
- TvBox配置聚合
- 添加阿里云盘分享
- 添加PikPak分享
- 支持BiliBili
- 管理AList服务
- 小雅配置文件管理
- 构建索引
- 在线日志
## 安装
### 一键安装
#### 小雅集成版
不需要再安装小雅版Docker。
如果找不到bash就替换为sh。
如果找不到sudo就用root账号登录去掉sudo后运行。
```bash
sudo bash -c "$(curl -fsSL https://d.har01d.cn/update_xiaoya.sh)"
```
使用其它配置目录:
```bash
sudo bash -c "$(curl -fsSL https://d.har01d.cn/update_xiaoya.sh)" -s /home/user/atv
```
使用其它端口:
- 第一个参数是挂载的数据目录,默认是/etc/xiaoya。
- 第二个参数是管理界面端口默认是4567。
- 第三个参数是小雅AList端口默认是5344。
```bash
sudo bash -c "$(curl -fsSL https://d.har01d.cn/update_xiaoya.sh)" -s /home/alist 8080
sudo bash -c "$(curl -fsSL https://d.har01d.cn/update_xiaoya.sh)" -s /home/alist 8080 5544
```
OpenWrt去掉sudo或者已经是root账号
```bash
bash -c "$(curl -fsSL https://d.har01d.cn/update_xiaoya.sh)"
```
如果没有安装curl:
```bash
wget https://d.har01d.cn/update_xiaoya.sh; sh ./update_xiaoya.sh
```
#### 内存优化版
目前仅支持Linux x86_64平台。
```bash
wget https://d.har01d.cn/update_xiaoya.sh -O update_xiaoya.sh && sh ./update_xiaoya.sh -t native
```
#### host网络模式
使用host网络模式运行
```bash
sudo bash -c "$(curl -fsSL https://d.har01d.cn/update_hostmode.sh)"
```
使用的端口:
6789 - nginx
5233 - httpd
5234 - AList
4567 - 管理应用
#### NAS
对于群辉等NAS系统请挂载Docker的/data目录到群辉文件系统否则数据不会保留。
### 海报展示
#### 浏览目录
![浏览目录](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/poster1.jpg)
#### 搜索界面
![搜索界面](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/poster2.jpg)
#### 播放界面
![播放界面](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/poster3.jpg)
## 管理
打开管理网页http://your-ip:4567/
默认用户名admin 密码admin
点击右上角菜单,进入用户界面修改用户名和密码。
### 站点
![站点列表](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_sites.png)
小雅版默认添加了站点:`http://localhost`,如果配置有域名,自行修改地址。
为什么是`http://localhost` 因为小雅用80端口代理了容器内的AList 5244端口。
管理程序运行在同一个容器内能够直接访问80端口。
访问AList请加端口http://your-ip:5344/ 。使用Docker映射的端口默认是5344.
自己可以添加三方站点取代了xiaoya的套娃。会自动识别版本如果不能正确识别请手动配置版本。
![添加站点](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_site_config.png)
如果AList开启了强制登录会自动填写认证token。
![站点数据](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_site_data.png)
### 账号
![账号列表](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_account.png)
第一次启动会自动读取/data/mytoken.txt,/data/myopentoken.txt,/data/temp_transfer_folder_id.txt里面的内容以后这些文件不再生效。
![账号详情](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_account_detail.png)
#### 转存文件夹ID
在阿里网盘网页版上创建一个转存目录比如“temp”.
然后点击目录,浏览器显示的 URL
https://www.aliyundrive.com/drive/folder/640xxxxxxxxxxxxxxxxxxxca8a 最后一串就是。
### 订阅
tvbox/my.json和juhe.json不能在TvBox直接使用请使用订阅地址
![订阅列表](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_sub.png)
![添加订阅](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_sub_config.png)
添加订阅支持多个URL用逗号隔开。定制部分基本和TvBox的配置json一致添加了站点白名单`sites-whitelist`和黑名单`sites-blacklist`。
定制属于高级功能不懂TvBox配置格式不要轻易改动。
站点`key`是必须的其它字段可选。对于livesrulesparsesdoh类型`name`字段是必须的。
站点名称可以加前缀通过订阅URL前面加前缀使用`@`分割。比如:`饭@http://饭太硬.top/tv,菜@https://tvbox.cainisi.cf`
替换功能:
在配置页面->高级设置里面找到阿里Token地址然后在订阅-定制里面自替换token。
```json
{
"sites-blacklist": ["说明1","说明2", "说明3","说明4","公告", "ext_live_protocol", "cc"],
"sites": [
]
}
```
![订阅预览](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_sub_data.png)
### 资源
第一次启动会自动读取/data/alishare_list.txt文件里面的分享内容并保存到数据库以后这个文件就不再生效。
可以在界面批量导入文件里面的分享内容,批量删除分享。
添加资源如果路径以/开头就会创建在根目录下。否则在/🈴我的阿里分享/下面。
![分享列表](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_shares.png)
### 海报墙模式
![海报](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_poster.jpg)
![海报1](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_poster1.jpg)
添加一个小雅站点并打开搜索功能。
![](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_source.jpg)
可以自定义类别。在文件管理界面,添加一个文件/data/category.txt内容是要显示的小雅目录。
可以自定义名称,冒号后面是自定义的名字。 在分类下面可以加子目录作为筛选条件,用两个空格开始。
<pre>
每日更新
电视剧/国产剧
电视剧/美剧
美剧(已刮削):美剧ℹ
</pre>
[示例文件](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/category.txt)
![类别](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_category.png)
![filter](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_filter.jpg)
### BiliBili
目前只有影视TV支持高清高速的DASH格式视频。
拖动行可以改变顺序,需要点击保存按钮才能生效。
打开、关闭显示开关后,需要点击保存按钮才能生效。
![BiliBili](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_bilibili.png)
登录后才能使用TvBox第三个站源。
![扫码登录](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_bilibili_login.png)
或者使用已有的cookie登录。
打开上报播放记录B站才能看到播放记录。
![配置](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_bilibili_config.png)
添加搜索关键词作为一级分类:
![搜索](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_bilibili_search.png)
添加频道作为一级分类:
![频道](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_bilibili_channel.png)
### 配置
![配置页面](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_config.png)
开启安全订阅在订阅URL、点播API、播放API加上Token防止被别人扫描。
强制登录AList后连接webdav需要使用下面的用户名和密码。
如果打开了挂载我的云盘功能每次启动会消耗两次开放token请求。60分钟内只能请求10次超过后需要等待60分钟后才能操作。
可以换IP绕开限制。或者更换开放token的认证URL。配置页面->高级设置 选择一个认证URL。
- https://api-cf.nn.ci/alist/ali_open/token
- https://api.xhofe.top/alist/ali_open/token
- https://api.nn.ci/alist/ali_open/token
### 索引
对于阿里云盘资源,建议使用文件数量少的路径,并限速,防止被封号。
![索引页面](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_index.png)
![索引模板](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_index_template.png)
### 别名
把一些路径合并成一个路径。
![别名页面](https://raw.githubusercontent.com/power721/alist-tvbox/master/doc/atv_alias.png)
### 日志
Nginx代理/logs
```text
location /logs {
proxy_pass http://127.0.0.1:4567;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
proxy_redirect off;
proxy_hide_header Cache-Control;
}
```
### 其它
不再生效的文件可以保留,以后删除数据库后可以恢复。
guestpass.txt和guestlogin.txt第一次启动时加载以后不再生效请在界面配置。
show_my_ali.txt第一次启动时加载以后不再生效请在界面配置是否加载阿里云盘。
docker_address.txt不再生效使用订阅链接会自动识别。
alist_list.txt第一次启动时加载以后不再生效请在界面添加站点。
proxy.txt、tv.txt、my.json、iptv.m3u还是生效的可以在文件页面编辑。

View File

@ -1,19 +0,0 @@
name: Alist-TVBox
tags:
- 工具
title: AList 代理,支持 xiaoya 版 AList 界面管理
description: AList 代理,支持 xiaoya 版 AList 界面管理
additionalProperties:
key: alist-tvbox
name: Alist-TVBox
tags:
- Tool
shortDescZh: AList 代理,支持 xiaoya 版 AList 界面管理
shortDescEn: AList proxy server for TvBox, support playlist and search
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://github.com/power721/alist-tvbox
github: https://github.com/power721/alist-tvbox
document: https://github.com/power721/alist-tvbox

View File

@ -1,4 +0,0 @@
CONTAINER_NAME="alist-tvbox"
PANEL_APP_PORT_HTTP="40161"
PANEL_APP_PORT_XIAOYA="40162"
DATA_PATH="./data"

View File

@ -1,25 +0,0 @@
additionalProperties:
formFields:
- default: 40161
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: 40162
edit: true
envKey: PANEL_APP_PORT_XIAOYA
labelEn: xiaoya Alist Port
labelZh: 小雅 Alist 端口
required: true
rule: paramPort
type: number
- default: ./data
edit: true
envKey: DATA_PATH
labelEn: Data folder path
labelZh: 数据文件夹路径
required: true
type: text

View File

@ -1,20 +0,0 @@
services:
alist-tvbox:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:4567"
- "${PANEL_APP_PORT_XIAOYA}:80"
volumes:
- "${DATA_PATH}:/data"
environment:
- ALIST_PORT=${PANEL_APP_PORT_XIAOYA}
image: haroldli/xiaoya-tvbox:latest
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

View File

@ -1,4 +0,0 @@
CONTAINER_NAME="alist"
PANEL_APP_PORT_HTTP="40034"
DATA_PATH="./data/data"
MOUNT_PATH="./data/mnt"

View File

@ -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

View File

@ -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

View File

@ -1,144 +0,0 @@
# 使用说明
- 账户与密码
查看容器日志,或者容器功能界面找到`alist`的容器,点击终端连接到容器内部, 运行
```
./alist admin
```
# 原始相关
<div align="center">
<a href="https://alist.nn.ci"><img height="100px" alt="logo" src="https://cdn.jsdelivr.net/gh/alist-org/logo@main/logo.svg"/></a>
<p><em>🗂一个支持多存储的文件列表程序,使用 Gin 和 Solidjs。</em></p>
<div>
<a href="https://goreportcard.com/report/github.com/alist-org/alist/v3">
<img src="https://goreportcard.com/badge/github.com/alist-org/alist/v3" alt="latest version" />
</a>
<a href="https://github.com/Xhofe/alist/blob/main/LICENSE">
<img src="https://img.shields.io/github/license/Xhofe/alist" alt="License" />
</a>
<a href="https://github.com/Xhofe/alist/actions?query=workflow%3ABuild">
<img src="https://img.shields.io/github/actions/workflow/status/Xhofe/alist/build.yml?branch=main" alt="Build status" />
</a>
<a href="https://github.com/Xhofe/alist/releases">
<img src="https://img.shields.io/github/release/Xhofe/alist" alt="latest version" />
</a>
<a title="Crowdin" target="_blank" href="https://crwd.in/alist">
<img src="https://badges.crowdin.net/alist/localized.svg">
</a>
</div>
<div>
<a href="https://github.com/Xhofe/alist/discussions">
<img src="https://img.shields.io/github/discussions/Xhofe/alist?color=%23ED8936" alt="discussions" />
</a>
<a href="https://discord.gg/F4ymsH4xv2">
<img src="https://img.shields.io/discord/1018870125102895134?logo=discord" alt="discussions" />
</a>
<a href="https://github.com/Xhofe/alist/releases">
<img src="https://img.shields.io/github/downloads/Xhofe/alist/total?color=%239F7AEA&logo=github" alt="Downloads" />
</a>
<a href="https://hub.docker.com/r/xhofe/alist">
<img src="https://img.shields.io/docker/pulls/xhofe/alist?color=%2348BB78&logo=docker&label=pulls" alt="Downloads" />
</a>
<a href="https://alist.nn.ci/zh/guide/sponsor.html">
<img src="https://img.shields.io/badge/%24-sponsor-F87171.svg" alt="sponsor" />
</a>
</div>
</div>
---
[English](./README.md) | 中文 | [Contributing](./CONTRIBUTING.md) | [CODE_OF_CONDUCT](./CODE_OF_CONDUCT.md)
## 功能
- [x] 多种存储
- [x] 本地存储
- [x] [阿里云盘](https://www.aliyundrive.com/)
- [x] OneDrive / Sharepoint[国际版](https://www.office.com/), [世纪互联](https://portal.partner.microsoftonline.cn),de,us
- [x] [天翼云盘](https://cloud.189.cn) (个人云, 家庭云)
- [x] [GoogleDrive](https://drive.google.com/)
- [x] [123云盘](https://www.123pan.com/)
- [x] FTP / SFTP
- [x] [PikPak](https://www.mypikpak.com/)
- [x] [S3](https://aws.amazon.com/cn/s3/)
- [x] [Seafile](https://seafile.com/)
- [x] [又拍云对象存储](https://www.upyun.com/products/file-storage)
- [x] WebDav(支持无API的OneDrive/SharePoint)
- [x] Teambition[中国](https://www.teambition.com/ )[国际](https://us.teambition.com/ )
- [x] [分秒帧](https://www.mediatrack.cn/)
- [x] [和彩云](https://yun.139.com/) (个人云, 家庭云)
- [x] [Yandex.Disk](https://disk.yandex.com/)
- [x] [百度网盘](http://pan.baidu.com/)
- [x] [夸克网盘](https://pan.quark.cn)
- [x] [迅雷网盘](https://pan.xunlei.com)
- [x] [蓝奏云](https://www.lanzou.com/)
- [x] [阿里云盘分享](https://www.aliyundrive.com/)
- [x] [谷歌相册](https://photos.google.com/)
- [x] [Mega.nz](https://mega.nz)
- [x] [一刻相册](https://photo.baidu.com/)
- [x] SMB
- [x] [115](https://115.com/)
- [X] Cloudreve
- [x] 部署方便,开箱即用
- [x] 文件预览PDF、markdown、代码、纯文本……
- [x] 画廊模式下的图像预览
- [x] 视频和音频预览,支持歌词和字幕
- [x] Office 文档预览docx、pptx、xlsx、...
- [x] `README.md` 预览渲染
- [x] 文件永久链接复制和直接文件下载
- [x] 黑暗模式
- [x] 国际化
- [x] 受保护的路由(密码保护和身份验证)
- [x] WebDav (具体见 https://alist.nn.ci/zh/guide/webdav.html)
- [x] [Docker 部署](https://hub.docker.com/r/xhofe/alist)
- [x] Cloudflare workers 中转
- [x] 文件/文件夹打包下载
- [x] 网页上传(可以允许访客上传),删除,新建文件夹,重命名,移动,复制
- [x] 离线下载
- [x] 跨存储复制文件
## 文档
<https://alist.nn.ci/zh/>
## Demo
<https://al.nn.ci>
## 讨论
一般问题请到[讨论论坛](https://github.com/Xhofe/alist/discussions) **issue仅针对错误报告和功能请求。**
## 赞助
AList 是一个开源软件如果你碰巧喜欢这个项目并希望我继续下去请考虑赞助我或提供一个单一的捐款感谢所有的爱和支持https://alist.nn.ci/zh/guide/sponsor.html
### 特别赞助
- [找资源 - 阿里云盘资源搜索引擎](https://zhaoziyuan.la/)
- [KinhDown 百度云盘不限速下载永久免费已稳定运行3年非常可靠Q群 -> 786799372](https://kinhdown.com)
- [JetBrains: Essential tools for software developers and teams](https://www.jetbrains.com/)
## 贡献者
Thanks goes to these wonderful people:
[![Contributors](http://contributors.nn.ci/api?repo=alist-org/alist&repo=alist-org/alist-web&repo=alist-org/docs)](https://github.com/alist-org/alist/graphs/contributors)
## 许可
`AList` 是在 AGPL-3.0 许可下许可的开源软件。
## 免责声明
- 本程序为免费开源项目旨在分享网盘文件方便下载以及学习golang使用时请遵守相关法律法规请勿滥用
- 本程序通过调用官方sdk/接口实现,无破坏官方接口行为;
- 本程序仅做302重定向/流量转发,不拦截、存储、篡改任何用户数据;
- 在使用本程序之前你应了解并承担相应的风险包括但不限于账号被ban下载限速等与本程序无关
- 如有侵权,请通过[邮件](mailto:i@nn.ci)与我联系,会及时处理。
---
> [@博客](https://nn.ci/) · [@GitHub](https://github.com/Xhofe) · [@Telegram群](https://t.me/alist_chat) · [@Discord](https://discord.gg/F4ymsH4xv2)

View File

@ -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

View File

@ -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-aria2:latest
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,4 +0,0 @@
CONTAINER_NAME="alist"
PANEL_APP_PORT_HTTP="40034"
DATA_PATH="./data/data"
MOUNT_PATH="./data/mnt"

View File

@ -1,19 +0,0 @@
name: Alist
tags:
- 工具
title: 一个支持多存储的文件列表程序
description: 一个支持多存储的文件列表程序
additionalProperties:
key: alist
name: Alist
tags:
- Tool
shortDescZh: 一个支持多存储的文件列表程序
shortDescEn: A file list program that supports multiple storage
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://github.com/alist-org/alist
github: https://github.com/alist-org/alist
document: https://alist.nn.ci/zh/

Some files were not shown because too many files have changed in this diff Show More