del:删除与官方商店重合的应用

This commit is contained in:
BakaCookie520 2026-02-20 17:19:54 +08:00
parent c8337afad9
commit 89bd23ee5d
925 changed files with 0 additions and 38262 deletions

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:6.0.0"
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,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.12
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.63
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,529 +0,0 @@
 
<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,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/

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -1,3 +0,0 @@
CONTAINER_NAME="answer"
PANEL_APP_PORT_HTTP="40065"
DATA_PATH="./data"

View File

@ -1,17 +0,0 @@
additionalProperties:
formFields:
- default: 40065
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

View File

@ -1,17 +0,0 @@
services:
answer:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:80"
volumes:
- "${DATA_PATH}:/data"
image: answerdev/answer:1.2.0
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,39 +0,0 @@
<a href="https://answer.dev">
<img alt="logo" src="https://github.com/answerdev/answer/raw/main/docs/img/logo.svg" height="99px">
</a>
# Answer - 构建问答社区
一款问答形式的知识社区开源软件,你可以使用它快速建立你的问答社区,用于产品技术支持、客户支持、用户交流等。
了解更多关于该项目的内容,请访问 [answer.dev](https://answer.dev).
[![LICENSE](https://img.shields.io/github/license/answerdev/answer)](https://github.com/answerdev/answer/blob/main/LICENSE)
[![Language](https://img.shields.io/badge/language-go-blue.svg)](https://golang.org/)
[![Language](https://img.shields.io/badge/language-react-blue.svg)](https://reactjs.org/)
[![Go Report Card](https://goreportcard.com/badge/github.com/answerdev/answer)](https://goreportcard.com/report/github.com/answerdev/answer)
[![Discord](https://img.shields.io/badge/discord-chat-5865f2?logo=discord&logoColor=f5f5f5)](https://discord.gg/Jm7Y4cbUej)
## 截图
![screenshot](https://github.com/answerdev/answer/raw/main/docs/img/screenshot.png)
## 快速开始
### 使用 docker 快速搭建
```bash
docker run -d -p 9080:80 -v answer-data:/data --name answer answerdev/answer:latest
```
其他安装配置细节请参考 [Installation](https://answer.dev/docs/installation)
## 贡献
我们随时欢迎你的贡献!
参考 [CONTRIBUTING](https://answer.dev/docs/development/contributing/) 开始贡献。
## License
[Apache License 2.0](https://github.com/answerdev/answer/blob/main/LICENSE)

View File

@ -1,19 +0,0 @@
name: Answer
tags:
- 建站
title: 一款适合任何团队的问答平台软件
description: 一款适合任何团队的问答平台软件
additionalProperties:
key: answer
name: Answer
tags:
- Website
shortDescZh: 一款适合任何团队的问答平台软件
shortDescEn: A Q&A platform software for teams at any scales
type: website
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://answer.dev/
github: https://github.com/answerdev/answer
document: https://answer.dev/zh-CN/docs

View File

@ -1,3 +0,0 @@
CONTAINER_NAME="answer"
PANEL_APP_PORT_HTTP="40065"
DATA_PATH="./data"

View File

@ -1,17 +0,0 @@
additionalProperties:
formFields:
- default: 40065
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

View File

@ -1,17 +0,0 @@
services:
answer:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:80"
volumes:
- "${DATA_PATH}:/data"
image: answerdev/answer:latest
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -1,3 +0,0 @@
CONTAINER_NAME="artalk"
PANEL_APP_PORT_HTTP="40159"
DATA_PATH="./data"

View File

@ -1,17 +0,0 @@
additionalProperties:
formFields:
- default: 40159
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

View File

@ -1,17 +0,0 @@
services:
artalk:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:23366"
volumes:
- "${DATA_PATH}:/data"
image: artalk/artalk-go:2.9.1
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,82 +0,0 @@
# 使用说明
## Artalk 设置账号密码
以下两种方式相同。
### 1. 宿主机
```
docker exec -it artalk artalk admin
```
- 修改`artalk`改为容器名
- 如 `1Panel-localartalk-tYWg`
- 更改后
```
docker exec -it 1Panel-localartalk-tYWg artalk admin
```
### 2. 面板执行
面板`容器`界面,连接容器终端,执行以下命令
```
artalk admin
```
# 原始相关
<p align="center">
<img src="https://user-images.githubusercontent.com/22412567/171680920-6e74b77c-c565-487b-bff1-4f94976ecbe7.png" alt="Artalk" width="100%">
</p>
# Artalk
[![](https://img.shields.io/npm/v/artalk.svg?style=flat-square)](https://www.npmjs.com/package/artalk)
[![](https://img.shields.io/npm/dt/artalk.svg?style=flat-square)](https://www.npmjs.com/package/artalk)
[![](https://badgen.net/bundlephobia/minzip/artalk?style=flat-square)](https://bundlephobia.com/package/artalk)
[![Docker Pulls](https://img.shields.io/docker/pulls/artalk/artalk-go?style=flat-square)](https://hub.docker.com/r/artalk/artalk-go)
[![CircleCI](https://circleci.com/gh/ArtalkJS/Artalk/tree/master.svg?style=svg)](https://circleci.com/gh/ArtalkJS/Artalk/tree/master)
> 🌌 Golang 自托管评论系统
[English](https://github.com/ArtalkJS/Artalk/blob/master/README.en.md) / [官方文档](https://artalk.js.org) / [最新版本](https://github.com/ArtalkJS/Artalk/releases)
---
- 🍃 轻量 (~30kB)
- 👨‍👧‍👦 安全 (自托管)
- 🐳 易上手 (防脱发)
- 🍱 Golang 后端 (快速 / 跨平台)
- 🌊 Vanilla × TypeScript × Vite (纯天然 / 无依赖)
## 特性
- 侧 边 栏 :支持多站点集中化管理
- 通知中心:红点的标记 / 提及列表
- 身份验证:徽标自定义 / 密码验证
- 评论审核:反垃圾检测 / 频率限制
- 表情符号:插入表情包 / 快速导入
- 邮件提醒:模版自定义 / 多管理员
- 站点隔离:管理员分配 / 多个站点
- 页面管理:标题可显示 / 快速跳转
- 图片上传:上传到本地 / 多种图床
- 多元推送:支持 钉钉 飞书 TG
- 无限层级:可切换为平铺模式
- 评论投票:赞同还是反对评论
- 评论排序:按热度或时间排序
- 评论置顶:重要消息置顶显示
- 只看作者:仅显示作者的评论
- 说说模式:仅自己可发布评论
- 异步处理:发送评论无需等待
- 滚动加载:评论内容分页处置
- 自动保存:用户输入防丢功能
- 自动填充:用户链接自动填充
- 实时预览:评论内容实时预览
- 夜间模式:防止眼部疾病伤害
- 评论折叠:这个不打算给你康
- 数据备份:防止评论数据丢失
- 数据迁移:快速切换评论系统
- Markdown默认支持 MD 语法
- 支持 Latex提供集成 Katex 插件
- 使用 [Vite](https://github.com/vitejs/vite):属于开发者的极致体验
更多内容请查看:[“**介绍文档**”](https://artalk.js.org/guide/intro.html)

View File

@ -1,19 +0,0 @@
name: Artalk
tags:
- 工具
title: 一款简洁的自托管评论系统
description: 一款简洁的自托管评论系统
additionalProperties:
key: artalk
name: Artalk
tags:
- Tool
shortDescZh: 一款简洁的自托管评论系统
shortDescEn: A concise self hosted comment system
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://artalk.js.org
github: https://github.com/ArtalkJS/Artalk
document: https://artalk.js.org/guide/intro.html

View File

@ -1,3 +0,0 @@
CONTAINER_NAME="artalk"
PANEL_APP_PORT_HTTP="40159"
DATA_PATH="./data"

View File

@ -1,17 +0,0 @@
additionalProperties:
formFields:
- default: 40159
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

View File

@ -1,17 +0,0 @@
services:
artalk:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:23366"
volumes:
- "${DATA_PATH}:/data"
image: artalk/artalk-go:latest
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -1,6 +0,0 @@
CONTAINER_NAME="audiobookshelf"
DATA_PATH1="./data/audiobooks"
DATA_PATH2="./data/podcasts"
DATA_PATH3="./data/metadata"
DATA_PATH="./data/config"
PANEL_APP_PORT_HTTP="40096"

View File

@ -1,38 +0,0 @@
additionalProperties:
formFields:
- default: 40096
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ./data/config
edit: true
envKey: DATA_PATH
labelEn: Data folder path
labelZh: 数据文件夹路径
required: true
type: text
- default: ./data/audiobooks
edit: true
envKey: DATA_PATH1
labelEn: audiobooks folder path
labelZh: audiobooks 文件夹路径
required: true
type: text
- default: ./data/podcasts
edit: true
envKey: DATA_PATH2
labelEn: podcasts folder path
labelZh: podcasts 文件夹路径
required: true
type: text
- default: ./data/metadata
edit: true
envKey: DATA_PATH3
labelEn: metadata folder path
labelZh: metadata 文件夹路径
required: true
type: text

View File

@ -1,20 +0,0 @@
services:
audiobookshelf:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:80"
volumes:
- "${DATA_PATH1}:/audiobooks"
- "${DATA_PATH2}:/podcasts"
- "${DATA_PATH}:/config"
- "${DATA_PATH3}:/metadata"
image: advplyr/audiobookshelf:2.25.1
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,308 +0,0 @@
<br />
<div align="center">
<img alt="Audiobookshelf Banner" src="https://github.com/advplyr/audiobookshelf/raw/master/images/banner.svg" width="600">
<p align="center">
<br />
<a href="https://audiobookshelf.org/docs">Documentation</a>
·
<a href="https://audiobookshelf.org/guides">User Guides</a>
·
<a href="https://audiobookshelf.org/support">Support</a>
</p>
</div>
# About
Audiobookshelf is a self-hosted audiobook and podcast server.
### Features
* Fully **open-source**, including the [android & iOS app](https://github.com/advplyr/audiobookshelf-app) *(in beta)*
* Stream all audio formats on the fly
* Search and add podcasts to download episodes w/ auto-download
* Multi-user support w/ custom permissions
* Keeps progress per user and syncs across devices
* Auto-detects library updates, no need to re-scan
* Upload books and podcasts w/ bulk upload drag and drop folders
* Backup your metadata + automated daily backups
* Progressive Web App (PWA)
* Chromecast support on the web app and android app
* Fetch metadata and cover art from several sources
* Chapter editor and chapter lookup (using [Audnexus API](https://audnex.us/))
* Merge your audio files into a single m4b
* Embed metadata and cover image into your audio files (using [Tone](https://github.com/sandreas/tone))
* Basic ebook support and ereader
* Epub, pdf, cbr, cbz
* Send ebook to device (i.e. Kindle)
* Open RSS feeds for podcasts and audiobooks
Is there a feature you are looking for? [Suggest it](https://github.com/advplyr/audiobookshelf/issues/new/choose)
Join us on [Discord](https://discord.gg/pJsjuNCKRq) or [Matrix](https://matrix.to/#/#audiobookshelf:matrix.org)
### Android App (beta)
Try it out on the [Google Play Store](https://play.google.com/store/apps/details?id=com.audiobookshelf.app)
### iOS App (beta)
Available using Test Flight: https://testflight.apple.com/join/wiic7QIW - [Join the discussion](https://github.com/advplyr/audiobookshelf-app/discussions/60)
### Build your own tools & clients
Check out the [API documentation](https://api.audiobookshelf.org/)
<br />
<img alt="Library Screenshot" src="https://github.com/advplyr/audiobookshelf/raw/master/images/DemoLibrary.png" />
<br />
# Organizing your audiobooks
#### Directory structure and folder names are important to Audiobookshelf!
See [documentation](https://audiobookshelf.org/docs#book-directory-structure) for supported directory structure, folder naming conventions, and audio file metadata usage.
<br />
# Installation
See [install docs](https://www.audiobookshelf.org/docs)
<br />
# Reverse Proxy Set Up
#### Important! Audiobookshelf requires a websocket connection.
#### Note: Subfolder paths (e.g. /audiobooks) are not supported yet. See [issue](https://github.com/advplyr/audiobookshelf/issues/385)
### NGINX Proxy Manager
Toggle websockets support.
<img alt="NGINX Web socket" src="https://user-images.githubusercontent.com/67830747/153679106-b2a7f5b9-0702-48c6-9740-b26b401986e9.png" />
### NGINX Reverse Proxy
Add this to the site config file on your nginx server after you have changed the relevant parts in the <> brackets, and inserted your certificate paths.
```bash
server
{
listen 443 ssl;
server_name <sub>.<domain>.<tld>;
access_log /var/log/nginx/audiobookshelf.access.log;
error_log /var/log/nginx/audiobookshelf.error.log;
ssl_certificate /path/to/certificate;
ssl_certificate_key /path/to/key;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_pass http://<URL_to_forward_to>;
proxy_redirect http:// https://;
}
}
```
### Apache Reverse Proxy
Add this to the site config file on your Apache server after you have changed the relevant parts in the <> brackets, and inserted your certificate paths.
For this to work you must enable at least the following mods using `a2enmod`:
- `ssl`
- `proxy`
- `proxy_http`
- `proxy_balancer`
- `proxy_wstunnel`
- `rewrite`
```bash
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName <sub>.<domain>.<tld>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPreserveHost On
ProxyPass / http://localhost:<audiobookshelf_port>/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://localhost:<audiobookshelf_port>/$1" [P,L]
# unless you're doing something special this should be generated by a
# tool like certbot by let's encrypt
SSLCertificateFile /path/to/cert/file
SSLCertificateKeyFile /path/to/key/file
</VirtualHost>
</IfModule>
```
Some SSL certificates like those signed by Let's Encrypt require ACME validation. To allow Let's Encrypt to write and confirm
the ACME challenge, edit your VirtualHost definition to prevent proxying traffic that queries `/.well-known` and instead
serve that directly:
```bash
<VirtualHost *:443>
# ...
# create the directory structure /.well-known/acme-challenges
# within DocumentRoot and give the HTTP user recursive write
# access to it.
DocumentRoot /path/to/local/directory
ProxyPreserveHost On
ProxyPass /.well-known !
ProxyPass / http://localhost:<audiobookshelf_port>/
# ...
</VirtualHost>
```
### SWAG Reverse Proxy
[See LinuxServer.io config sample](https://github.com/linuxserver/reverse-proxy-confs/blob/master/audiobookshelf.subdomain.conf.sample)
### Synology Reverse Proxy
1. Open Control Panel > Application Portal
2. Change to the Reverse Proxy tab
3. Select the proxy rule for which you want to enable Websockets and click on Edit
4. Change to the "Custom Header" tab
5. Click Create > WebSocket
6. Click Save
[from @silentArtifact](https://github.com/advplyr/audiobookshelf/issues/241#issuecomment-1036732329)
### [Traefik Reverse Proxy](https://doc.traefik.io/traefik/)
Middleware relating to CORS will cause the app to report Unknown Error when logging in. To prevent this don't apply any of the following headers to the router for this site:
<ul>
<li>accessControlAllowMethods</li>
<li>accessControlAllowOriginList</li>
<li>accessControlMaxAge</li>
</ul>
From [@Dondochaka](https://discord.com/channels/942908292873723984/942914154254176257/945074590374318170) and [@BeastleeUK](https://discord.com/channels/942908292873723984/942914154254176257/970366039294611506)
<br />
### Example Caddyfile - [Caddy Reverse Proxy](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy)
```
subdomain.domain.com {
encode gzip zstd
reverse_proxy <LOCAL_IP>:<PORT>
}
```
# Run from source
# Contributing
This application is built using [NodeJs](https://nodejs.org/).
### Dev Container Setup
The easiest way to begin developing this project is to use a dev container. An introduction to dev containers in VSCode can be found [here](https://code.visualstudio.com/docs/devcontainers/containers).
Required Software:
* [Docker Desktop](https://www.docker.com/products/docker-desktop/)
* [VSCode](https://code.visualstudio.com/download)
*Note, it is possible to use other container software than Docker and IDEs other than VSCode. However, this setup is more complicated and not covered here.*
<div>
<details>
<summary>Install the required software on Windows with <a href=(https://docs.microsoft.com/en-us/windows/package-manager/winget/#production-recommended)>winget</a></summary>
<p>
Note: This requires a PowerShell prompt with winget installed. You should be able to copy and paste the code block to install. If you use an elevated PowerShell prompt, UAC will not pop up during the installs.
```PowerShell
winget install -e --id Docker.DockerDesktop; `
winget install -e --id Microsoft.VisualStudioCode
```
</p>
</details>
</div>
<div>
<details>
<summary>Install the required software on MacOS with <a href=(https://snapcraft.io/)>homebrew</a></summary>
<p>
```sh
brew install --cask docker visual-studio-code
```
</p>
</details>
</div>
<div style="padding-bottom: 1em">
<details>
<summary>Install the required software on Linux with <a href=(https://brew.sh/)>snap</a></summary>
<p>
```sh
sudo snap install docker; \
sudo snap install code --classic
```
</p>
</details>
</div>
After installing these packages, you can now install the [Remote Development](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack) extension for VSCode. After installing this extension open the command pallet (`ctrl+shift+p` or `cmd+shift+p`) and select the command `>Dev Containers: Rebuild and Reopen in Container`. This will cause the development environment container to be built and launched.
You are now ready to start development!
### Manual Environment Setup
If you don't want to use the dev container, you can still develop this project. First, you will need to install [NodeJs](https://nodejs.org/) (version 16) and [FFmpeg](https://ffmpeg.org/).
Next you will need to create a `dev.js` file in the project's root directory. This contains configuration information and paths unique to your development environment. You can find an example of this file in `.devcontainer/dev.js`.
You are now ready to build the client:
```sh
npm ci
cd client
npm ci
npm run generate
cd ..
```
### Development Commands
After setting up your development environment, either using the dev container or using your own custom environment, the following commands will help you run the server and client.
To run the server, you can use the command `npm run dev`. This will use the client that was built when you ran `npm run generate` in the client directory or when you started the dev container. If you make changes to the server, you will need to restart the server. If you make changes to the client, you will need to run the command `(cd client; npm run generate)` and then restart the server. By default the client runs at `localhost:3333`, though the port can be configured in `dev.js`.
You can also build a version of the client that supports live reloading. To do this, start the server, then run the command `(cd client; npm run dev)`. This will run a separate instance of the client at `localhost:3000` that will be automatically updated as you make changes to the client.
If you are using VSCode, this project includes a couple of pre-defined targets to speed up this process. First, if you build the project (`ctrl+shift+b` or `cmd+shift+b`) it will automatically generate the client. Next, there are debug commands for running the server and client. You can view these targets using the debug panel (bring it up with (`ctrl+shift+d` or `cmd+shift+d`):
* `Debug server`—Run the server.
* `Debug client (nuxt)`—Run the client with live reload.
* `Debug server and client (nuxt)`—Runs both the preceding two debug targets.
# How to Support
[See the incomplete "How to Support" page](https://www.audiobookshelf.org/support)

View File

@ -1,19 +0,0 @@
name: Audiobookshelf
tags:
- 多媒体
type: 工具
description: 一个自托管有声读物和播客服务器
additionalProperties:
key: audiobookshelf
name: Audiobookshelf
tags:
- Media
shortDescZh: 一个自托管有声读物和播客服务器
shortDescEn: A Self-hosted audiobook and podcast server
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://www.audiobookshelf.org/
github: https://github.com/advplyr/audiobookshelf
document: https://www.audiobookshelf.org/docs

View File

@ -1,6 +0,0 @@
CONTAINER_NAME="audiobookshelf"
DATA_PATH1="./data/audiobooks"
DATA_PATH2="./data/podcasts"
DATA_PATH3="./data/metadata"
DATA_PATH="./data/config"
PANEL_APP_PORT_HTTP="40096"

View File

@ -1,38 +0,0 @@
additionalProperties:
formFields:
- default: 40096
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ./data/config
edit: true
envKey: DATA_PATH
labelEn: Data folder path
labelZh: 数据文件夹路径
required: true
type: text
- default: ./data/audiobooks
edit: true
envKey: DATA_PATH1
labelEn: audiobooks folder path
labelZh: audiobooks 文件夹路径
required: true
type: text
- default: ./data/podcasts
edit: true
envKey: DATA_PATH2
labelEn: podcasts folder path
labelZh: podcasts 文件夹路径
required: true
type: text
- default: ./data/metadata
edit: true
envKey: DATA_PATH3
labelEn: metadata folder path
labelZh: metadata 文件夹路径
required: true
type: text

View File

@ -1,20 +0,0 @@
services:
audiobookshelf:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:80"
volumes:
- "${DATA_PATH1}:/audiobooks"
- "${DATA_PATH2}:/podcasts"
- "${DATA_PATH}:/config"
- "${DATA_PATH3}:/metadata"
image: advplyr/audiobookshelf:latest
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -1,3 +0,0 @@
CONTAINER_NAME="beszel"
DATA_PATH="./data"
PANEL_APP_PORT_HTTP=40331

View File

@ -1,17 +0,0 @@
additionalProperties:
formFields:
- default: "40331"
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: "./data"
edit: true
envKey: DATA_PATH
labelEn: Data Path
labelZh: 数据路径
required: true
type: text

View File

@ -1,17 +0,0 @@
services:
beszel:
image: "henrygd/beszel:0.11.1"
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:8090"
volumes:
- ${DATA_PATH}:/beszel_data
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,14 +0,0 @@
# Beszel
Beszel 是一个轻量级的服务器资源监控中心提供历史数据、Docker 容器统计和警报功能。
## 特性
- **轻量级**:比其他主流解决方案更小巧,资源消耗更低。
- **简单**:易于设置,无需公开暴露于互联网。
- **Docker 统计**:跟踪每个容器的 CPU、内存和网络使用历史。
- **警报功能**:支持针对 CPU、内存、磁盘、带宽、温度和系统状态的可配置警报。
- **多用户支持**:每个用户可以管理自己的系统,管理员可以跨用户共享系统。
- **OAuth / OIDC 支持**:支持多个 OAuth2 提供商,密码认证可以禁用。
- **自动备份**:可以将数据保存到本地磁盘或 S3 兼容的存储,并支持恢复。
- **REST API**:通过 API 使用或更新数据,方便集成到自定义脚本和应用程序中。

View File

@ -1,19 +0,0 @@
name: Beszel
tags:
- 实用工具
title: 一个轻量级服务器资源监控工具
description: 一个轻量级服务器资源监控工具
additionalProperties:
key: beszel
name: Beszel
tags:
- Tool
shortDescZh: 一个轻量级服务器资源监控工具
shortDescEn: A lightweight server resource monitoring hub
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://github.com/henrygd/beszel
github: https://github.com/henrygd/beszel
document: https://github.com/henrygd/beszel

View File

@ -1,3 +0,0 @@
CONTAINER_NAME="beszel"
DATA_PATH="./data"
PANEL_APP_PORT_HTTP=40331

View File

@ -1,17 +0,0 @@
additionalProperties:
formFields:
- default: "40331"
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: "./data"
edit: true
envKey: DATA_PATH
labelEn: Data Path
labelZh: 数据路径
required: true
type: text

View File

@ -1,17 +0,0 @@
services:
beszel:
image: "henrygd/beszel:latest"
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:8090"
volumes:
- ${DATA_PATH}:/beszel_data
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,3 +0,0 @@
CONTAINER_NAME="bililive-go"
PANEL_APP_PORT_HTTP="40079"
DATA_PATH="./data"

View File

@ -1,17 +0,0 @@
additionalProperties:
formFields:
- default: 40079
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

View File

@ -1,17 +0,0 @@
services:
bililive-go:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:8080"
volumes:
- "${DATA_PATH}:/srv/bililive"
image: chigusa/bililive-go:v0.7.34
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,209 +0,0 @@
# Bililive-go
[![CI](https://github.com/hr3lxphr6j/bililive-go/actions/workflows/tests.yaml/badge.svg?branch=master)](https://github.com/hr3lxphr6j/bililive-go/actions/workflows/tests.yaml)
[![Go Report Card](https://goreportcard.com/badge/github.com/hr3lxphr6j/bililive-go)](https://goreportcard.com/report/github.com/hr3lxphr6j/bililive-go)
[![Github release](https://img.shields.io/github/release/hr3lxphr6j/bililive-go.svg)](https://github.com/hr3lxphr6j/bililive-go/releases/latest)
[![Docker Pulls](https://img.shields.io/docker/pulls/chigusa/bililive-go.svg)](https://hub.docker.com/r/chigusa/bililive-go/)
[![Bilibili](https://img.shields.io/badge/%E5%93%94%E5%93%A9%E5%93%94%E5%93%A9-%E6%9C%AA%E6%9D%A5%E7%A7%91%E6%8A%80%E7%8E%8B%E8%80%81%E8%8F%8A%E5%BD%95%E6%92%AD%E7%BB%84-ebb8d0.svg)](https://space.bilibili.com/18578203/)
Bililive-go是一个支持多种直播平台的直播录制工具
![image](https://github.com/hr3lxphr6j/bililive-go/raw/master/docs/screenshot.webp)
## 支持网站
<table>
<tr align="center">
<th>站点</th>
<th>url</th>
<th>支持情况</th>
<th>cookie</th>
</tr>
<tr align="center">
<td>Acfun直播</td>
<td>live.acfun.cn</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>哔哩哔哩直播</td>
<td>live.bilibili.com</td>
<td>滋瓷</td>
<td>滋瓷</td>
</tr>
<tr align="center">
<td>战旗直播</td>
<td>www.zhanqi.tv</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>斗鱼直播</td>
<td>www.douyu.com</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>火猫直播</td>
<td>www.huomao.com</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>龙珠直播</td>
<td>longzhu.com</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>虎牙直播</td>
<td>www.huya.com</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>CC直播</td>
<td>cc.163.com</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>一直播</td>
<td>www.yizhibo.com</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>twitch</td>
<td>www.twitch.tv</td>
<td>TODO</td>
<td></td>
</tr>
<tr align="center">
<td>OPENREC</td>
<td>www.openrec.tv</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>企鹅电竞</td>
<td>egame.qq.com</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>浪live</td>
<td>play.lang.live & www.lang.live</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>花椒</td>
<td>www.huajiao.com</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>抖音直播</td>
<td>live.douyin.com</td>
<td>滋瓷</td>
<td>滋瓷</td>
</tr>
<tr align="center">
<td>猫耳</td>
<td>fm.missevan.com</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>克拉克拉</td>
<td>www.hongdoufm.com</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>快手</td>
<td>live.kuaishou.com</td>
<td>滋瓷</td>
<td>滋瓷</td>
</tr>
<tr align="center">
<td>YY直播</td>
<td>www.yy.com</td>
<td>滋瓷</td>
<td></td>
</tr>
<tr align="center">
<td>微博直播</td>
<td>weibo.com</td>
<td>滋瓷</td>
<td></td>
</tr>
</table>
### cookie 在 config.yml 中的设置方法
cookie的设置以域名为单位。比如想在录制抖音直播时使用 cookie那么 config.yml 中可以像下面这样写:
```
cookies:
live.douyin.com: __ac_nonce=123456789012345678903;name=value
```
## Grafana 面板
> 请自行部署 prometheus 和 grafana
![image](https://github.com/hr3lxphr6j/bililive-go/raw/master/docs/dashboard.webp)
## 依赖
* [ffmpeg](https://ffmpeg.org/)
## 使用例子
- 本地
```
./bililive-go -i https://live.bilibili.com/1030 -i https://www.douyu.com/6655
```
- docker
```
docker run --restart=always -v ~/Videos:/srv/bililive -p 8080:8080 -d chigusa/bililive-go
```
## 开发环境搭建linux系统
```
一、环境准备
1. 前端环境
1前往https://nodejs.org/zh-cn/下载当前版本node18.12.1
2命令行运行 node -v 若控制台输出版本号则前端环境搭建成功
2.后端环境
1)下载golang安装 版本号1.19
国际: https://golang.org/dl/
国内: https://golang.google.cn/dl/
2)命令行运行 go 若控制台输出各类提示命令 则安装成功 输入 go version 确认版本
3.安装 ffmpeg (以centos7为例)
1) yum install -y epel-release rpm
2) rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
3) yum repolist
4) rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
5) rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
6) yum repolist
7) yum install -y ffmpeg
二、克隆代码并编译(linux环境)
1. git clone https://github.com/hr3lxphr6j/bililive-go.git
2. cd bililive-go
3. make build-web
4. make
三、linux编译其他环境(以windows 为例)
1. GOOS=windows GOARCH=amd64 CGO_ENABLED=0 UPX_ENABLE=0 TAGS=dev ./src/hack/build.sh bililive
2.如果不需要调试,可以改成
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 UPX_ENABLE=0 TAGS=release ./src/hack/build.sh bililive
```
## Wiki
[Wiki](https://github.com/hr3lxphr6j/bililive-go/wiki)
## API
[API doc](https://github.com/hr3lxphr6j/bililive-go/blob/master/docs/API.md)
## 参考
- [you-get](https://github.com/soimort/you-get)
- [ykdl](https://github.com/zhangn1985/ykdl)
- [youtube-dl](https://github.com/ytdl-org/youtube-dl)

View File

@ -1,19 +0,0 @@
name: Bililive-go
tags:
- 工具
title: 一个支持多种直播平台的直播录制工具
description: 一个支持多种直播平台的直播录制工具
additionalProperties:
key: bililive-go
name: Bililive-go
tags:
- Tool
shortDescZh: 一个支持多种直播平台的直播录制工具
shortDescEn: A live recording tool that supports multiple live streaming platforms
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://github.com/hr3lxphr6j/bililive-go
github: https://github.com/hr3lxphr6j/bililive-go
document: https://github.com/hr3lxphr6j/bililive-go/wiki

View File

@ -1,3 +0,0 @@
CONTAINER_NAME="bililive-go"
PANEL_APP_PORT_HTTP="40079"
DATA_PATH="./data"

View File

@ -1,17 +0,0 @@
additionalProperties:
formFields:
- default: 40079
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

View File

@ -1,17 +0,0 @@
services:
bililive-go:
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:8080"
volumes:
- "${DATA_PATH}:/srv/bililive"
image: chigusa/bililive-go:latest
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -1,7 +0,0 @@
ADMIN_TOKEN=""
CONTAINER_NAME="bitwarden"
DATA_PATH="./data"
INVITATIONS_ALLOWED="true"
PANEL_APP_PORT_HTTP=40031
SIGNUPS_ALLOWED="true"
WEBSOCKET_ENABLED="false"

View File

@ -1,60 +0,0 @@
additionalProperties:
formFields:
- default: "40031"
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: "true"
edit: true
envKey: SIGNUPS_ALLOWED
labelEn: Allow Signups
labelZh: 允许注册
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: "true"
edit: true
envKey: INVITATIONS_ALLOWED
labelEn: Allow Invitations
labelZh: 允许邀请
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: "false"
edit: true
envKey: WEBSOCKET_ENABLED
labelEn: WebSocket Enabled
labelZh: 启用 WebSocket
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: ""
edit: true
envKey: ADMIN_TOKEN
labelEn: Admin Token
labelZh: 管理员令牌
required: false
type: password

View File

@ -1,21 +0,0 @@
services:
bitwarden:
image: "vaultwarden/server:1.35.2-alpine"
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:80"
volumes:
- "${DATA_PATH}:/data"
environment:
- SIGNUPS_ALLOWED=${SIGNUPS_ALLOWED}
- INVITATIONS_ALLOWED=${INVITATIONS_ALLOWED}
- WEBSOCKET_ENABLED=${WEBSOCKET_ENABLED}
- ADMIN_TOKEN=${ADMIN_TOKEN}
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,40 +0,0 @@
#!/bin/bash
# 检查 .env 文件是否存在
if [[ -f ./.env ]]; then
# 检查并添加 ADMIN_TOKEN 参数
if ! grep -q '^ADMIN_TOKEN=' ./.env; then
echo 'ADMIN_TOKEN=""' >> ./.env
echo "已添加 ADMIN_TOKEN="
else
echo "ADMIN_TOKEN 参数已存在"
fi
# 检查并添加 INVITATIONS_ALLOWED 参数
if ! grep -q '^INVITATIONS_ALLOWED=' ./.env; then
echo 'INVITATIONS_ALLOWED="true"' >> ./.env
echo "已添加 INVITATIONS_ALLOWED=true"
else
echo "INVITATIONS_ALLOWED 参数已存在"
fi
# 检查并添加 SIGNUPS_ALLOWED 参数
if ! grep -q '^SIGNUPS_ALLOWED=' ./.env; then
echo 'SIGNUPS_ALLOWED="true"' >> ./.env
echo "已添加 SIGNUPS_ALLOWED=true"
else
echo "SIGNUPS_ALLOWED 参数已存在"
fi
# 检查并添加 WEBSOCKET_ENABLED 参数
if ! grep -q '^WEBSOCKET_ENABLED=' ./.env; then
echo 'WEBSOCKET_ENABLED="false"' >> ./.env
echo "已添加 WEBSOCKET_ENABLED=false"
else
echo "WEBSOCKET_ENABLED 参数已存在"
fi
else
echo ".env 文件不存在"
fi

View File

@ -1,3 +0,0 @@
# Vaultwarden
Vaultwarden 是 Bitwarden 客户端 API 的替代服务器实现,使用 Rust 编写,兼容 [官方 Bitwarden 客户端](https://bitwarden.com/download/)(详见 [免责声明](https://github.com/dani-garcia/vaultwarden/blob/main/README.md#disclaimer))。它非常适合在需要自托管的环境中部署,尤其是在官方服务资源消耗较大的情况下提供了更轻量的解决方案。

View File

@ -1,19 +0,0 @@
name: Bitwarden
tags:
- 安全
title: 一个开源的密码管理服务
description: 一个开源的密码管理服务
additionalProperties:
key: bitwarden
name: Bitwarden
tags:
- Security
shortDescZh: 一个开源的密码管理服务
shortDescEn: An open source password management service
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://bitwarden.com/
github: https://github.com/dani-garcia/vaultwarden
document: https://github.com/dani-garcia/vaultwarden/wiki

View File

@ -1,7 +0,0 @@
ADMIN_TOKEN=""
CONTAINER_NAME="bitwarden"
DATA_PATH="./data"
INVITATIONS_ALLOWED="true"
PANEL_APP_PORT_HTTP=40031
SIGNUPS_ALLOWED="true"
WEBSOCKET_ENABLED="false"

View File

@ -1,60 +0,0 @@
additionalProperties:
formFields:
- default: "40031"
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: "true"
edit: true
envKey: SIGNUPS_ALLOWED
labelEn: Allow Signups
labelZh: 允许注册
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: "true"
edit: true
envKey: INVITATIONS_ALLOWED
labelEn: Allow Invitations
labelZh: 允许邀请
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: "false"
edit: true
envKey: WEBSOCKET_ENABLED
labelEn: WebSocket Enabled
labelZh: 启用 WebSocket
required: true
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
- default: ""
edit: true
envKey: ADMIN_TOKEN
labelEn: Admin Token
labelZh: 管理员令牌
required: false
type: password

View File

@ -1,21 +0,0 @@
services:
bitwarden:
image: "vaultwarden/server:latest"
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:80"
volumes:
- "${DATA_PATH}:/data"
environment:
- SIGNUPS_ALLOWED=${SIGNUPS_ALLOWED}
- INVITATIONS_ALLOWED=${INVITATIONS_ALLOWED}
- WEBSOCKET_ENABLED=${WEBSOCKET_ENABLED}
- ADMIN_TOKEN=${ADMIN_TOKEN}
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -1,40 +0,0 @@
#!/bin/bash
# 检查 .env 文件是否存在
if [[ -f ./.env ]]; then
# 检查并添加 ADMIN_TOKEN 参数
if ! grep -q '^ADMIN_TOKEN=' ./.env; then
echo 'ADMIN_TOKEN=""' >> ./.env
echo "已添加 ADMIN_TOKEN="
else
echo "ADMIN_TOKEN 参数已存在"
fi
# 检查并添加 INVITATIONS_ALLOWED 参数
if ! grep -q '^INVITATIONS_ALLOWED=' ./.env; then
echo 'INVITATIONS_ALLOWED="true"' >> ./.env
echo "已添加 INVITATIONS_ALLOWED=true"
else
echo "INVITATIONS_ALLOWED 参数已存在"
fi
# 检查并添加 SIGNUPS_ALLOWED 参数
if ! grep -q '^SIGNUPS_ALLOWED=' ./.env; then
echo 'SIGNUPS_ALLOWED="true"' >> ./.env
echo "已添加 SIGNUPS_ALLOWED=true"
else
echo "SIGNUPS_ALLOWED 参数已存在"
fi
# 检查并添加 WEBSOCKET_ENABLED 参数
if ! grep -q '^WEBSOCKET_ENABLED=' ./.env; then
echo 'WEBSOCKET_ENABLED="false"' >> ./.env
echo "已添加 WEBSOCKET_ENABLED=false"
else
echo "WEBSOCKET_ENABLED 参数已存在"
fi
else
echo ".env 文件不存在"
fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -1,8 +0,0 @@
CONTAINER_NAME="bytebase"
PANEL_APP_PORT_HTTP="40171"
PANEL_DB_NAME="bytebase"
POSTGRES_HOST="postgres"
PANEL_DB_USER_PASSWORD="password_xxJdZD"
POSTGRES_PORT="5432"
PANEL_DB_USER="postgres"
DATA_PATH="./data"

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