更新 独角数卡

This commit is contained in:
2026-04-04 13:55:28 +08:00
parent 180a1af93e
commit 80baebdb71
42 changed files with 3 additions and 1743 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ old_version=$2
# 定义关联数组,将应用名称与其对应的 keys 关联起来
declare -A app_keys
app_keys=(["immich"]="immich-server immich-machine-learning" ["immich-no-machine"]="immich-server" ["stream-rec"]="stream-rec-backend stream-rec-frontend" ["rsshub"]="rsshub" ["dujiaonext"]="dujiaonext-api dujiaonext-admin dujiaonext-user")
app_keys=(["immich"]="immich-server immich-machine-learning" ["immich-no-machine"]="immich-server" ["stream-rec"]="stream-rec-backend stream-rec-frontend" ["rsshub"]="rsshub")
# 定义保留alpine版本的应用名称
app_alpine_names=("postgresql")
@@ -1,128 +0,0 @@
server:
host: 0.0.0.0
port: 8080
mode: debug
log:
dir: ""
filename: app.log
max_size_mb: 100
max_backups: 7
max_age_days: 30
compress: true
database:
driver: sqlite
dsn: ./db/dujiao.db?_busy_timeout=5000&_journal_mode=WAL&_synchronous=NORMAL
pool:
max_open_conns: 1
max_idle_conns: 1
conn_max_lifetime_seconds: 0
conn_max_idle_time_seconds: 0
jwt:
secret: "dev-admin-jwt-secret-change-me-please-32chars"
expire_hours: 24
user_jwt:
secret: "dev-user-jwt-secret-change-me-please-32chars"
expire_hours: 24
remember_me_expire_hours: 168
bootstrap:
default_admin_username: ""
default_admin_password: ""
redis:
enabled: true
host: 127.0.0.1
port: 6379
password: ""
db: 0
prefix: "dj"
queue:
enabled: true
host: 127.0.0.1
port: 6379
password: ""
db: 1
concurrency: 10
queues:
default: 10
critical: 5
upload:
max_size: 10485760
allowed_types:
- image/jpeg
- image/png
- image/gif
- image/webp
allowed_extensions:
- .jpg
- .jpeg
- .png
- .gif
- .webp
max_width: 4096
max_height: 4096
cors:
allowed_origins:
- "*"
allowed_methods:
- GET
- POST
- PUT
- PATCH
- DELETE
- OPTIONS
allowed_headers:
- Content-Type
- Content-Length
- Accept-Encoding
- Authorization
- Cache-Control
- X-Requested-With
- X-CSRF-Token
allow_credentials: true
max_age: 600
security:
login_rate_limit:
window_seconds: 300
max_attempts: 5
block_seconds: 900
password_policy:
min_length: 8
require_upper: true
require_lower: true
require_number: true
require_special: false
telegram_auth:
enabled: false
bot_username: ""
bot_token: ""
login_expire_seconds: 300
replay_ttl_seconds: 300
email:
enabled: true
host: smtp.xxx.com
port: 465
username: your-username
password: your-password
from: your-email
from_name: your-name
use_tls: false
use_ssl: true
verify_code:
expire_minutes: 10
send_interval_seconds: 60
max_attempts: 5
length: 6
order:
payment_expire_minutes: 15
-96
View File
@@ -1,96 +0,0 @@
additionalProperties:
formFields:
- child:
default: ""
envKey: PANEL_REDIS_SERVICE
required: true
type: service
default: redis
envKey: PANEL_REDIS_TYPE
labelZh: Redis 服务 (前置检查)
labelEn: Redis Service (Pre-check)
required: true
type: apps
values:
- label: Redis
value: redis
- default: "/home/dujiaonext"
edit: true
envKey: DUJIAONEXT_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 8080
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: 8081
edit: true
envKey: PANEL_APP_PORT_ADMIN
labelZh: WebUI 后台端口
labelEn: WebUI Admin Port
required: true
rule: paramPort
type: number
- default: 8082
edit: true
envKey: PANEL_APP_PORT_API
labelZh: API 端口
labelEn: API Port
required: true
rule: paramPort
type: number
- default: "admin"
edit: true
envKey: DJ_DEFAULT_ADMIN_USERNAME
labelZh: 管理员用户名
labelEn: Admin Username
required: true
type: text
- default: ""
edit: true
envKey: DJ_DEFAULT_ADMIN_PASSWORD
labelZh: 管理员密码
labelEn: Admin Password
required: true
type: password
- default: "efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f"
edit: true
envKey: JWT_SECRET
labelZh: JWT 密钥
labelEn: JWT Secret
required: true
type: text
- default: "d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20"
edit: true
envKey: USER_JWT_SECRET
labelZh: 用户 JWT 密钥
labelEn: User JWT Secret
required: true
type: text
- default: "127.0.0.1"
edit: true
envKey: REDIS_HOST
labelZh: Redis 主机
labelEn: Redis Host
required: true
type: text
- default: 6379
edit: true
envKey: REDIS_PORT
labelZh: Redis 端口
labelEn: Redis Port
required: true
type: number
- default: ""
edit: true
envKey: REDIS_PASSWORD
labelZh: Redis 连接密码
labelEn: Redis Connection Password
required: false
type: password
@@ -1,63 +0,0 @@
networks:
1panel-network:
external: true
dujiao-net:
driver: bridge
services:
dujiaonext-api:
image: dujiaonext/api:v1.0.0
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_API}:8080
env_file:
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
- ${ENV_FILE:-/etc/1panel/envs/default.env}
volumes:
- ${DUJIAONEXT_ROOT_PATH}/config/config.yml:/app/config.yml:ro
- ${DUJIAONEXT_ROOT_PATH}/data/db:/app/db
- ${DUJIAONEXT_ROOT_PATH}/data/uploads:/app/uploads
- ${DUJIAONEXT_ROOT_PATH}/data/logs:/app/logs
environment:
- TZ=Asia/Shanghai
- QUEUE_HOST=${REDIS_HOST:-}
- QUEUE_PORT=${REDIS_PORT:-}
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
healthcheck:
test: [ "CMD", "wget", "-qO-", "http://127.0.0.1:8080/health" ]
interval: 10s
timeout: 3s
retries: 10
dujiaonext-admin:
depends_on:
dujiaonext-api:
condition: service_healthy
image: dujiaonext/admin:v1.0.0
container_name: admin-${CONTAINER_NAME}
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_ADMIN}:80
environment:
- TZ=Asia/Shanghai
dujiaonext-user:
depends_on:
dujiaonext-api:
condition: service_healthy
image: dujiaonext/user:v0.1.7
container_name: user-${CONTAINER_NAME}
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_HTTP}:80
environment:
- TZ=Asia/Shanghai
@@ -1,2 +0,0 @@
# copyright© 2024 XinJiang Ms Studio
ENV_FILE=.env
@@ -1,2 +0,0 @@
# copyright© 2024 XinJiang Ms Studio
TZ=Asia/Shanghai
@@ -1,30 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
mkdir -p "$DUJIAONEXT_ROOT_PATH"
mkdir -p "$DUJIAONEXT_ROOT_PATH/config"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/db"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/uploads"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/logs"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/redis"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/postgres"
cp ./config/config.yml "$DUJIAONEXT_ROOT_PATH/config/config.yml"
chmod -R 0777 "$DUJIAONEXT_ROOT_PATH"
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -1,10 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -1,17 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
-128
View File
@@ -1,128 +0,0 @@
server:
host: 0.0.0.0
port: 8080
mode: debug
log:
dir: ""
filename: app.log
max_size_mb: 100
max_backups: 7
max_age_days: 30
compress: true
database:
driver: sqlite
dsn: ./db/dujiao.db?_busy_timeout=5000&_journal_mode=WAL&_synchronous=NORMAL
pool:
max_open_conns: 1
max_idle_conns: 1
conn_max_lifetime_seconds: 0
conn_max_idle_time_seconds: 0
jwt:
secret: "dev-admin-jwt-secret-change-me-please-32chars"
expire_hours: 24
user_jwt:
secret: "dev-user-jwt-secret-change-me-please-32chars"
expire_hours: 24
remember_me_expire_hours: 168
bootstrap:
default_admin_username: ""
default_admin_password: ""
redis:
enabled: true
host: 127.0.0.1
port: 6379
password: ""
db: 0
prefix: "dj"
queue:
enabled: true
host: 127.0.0.1
port: 6379
password: ""
db: 1
concurrency: 10
queues:
default: 10
critical: 5
upload:
max_size: 10485760
allowed_types:
- image/jpeg
- image/png
- image/gif
- image/webp
allowed_extensions:
- .jpg
- .jpeg
- .png
- .gif
- .webp
max_width: 4096
max_height: 4096
cors:
allowed_origins:
- "*"
allowed_methods:
- GET
- POST
- PUT
- PATCH
- DELETE
- OPTIONS
allowed_headers:
- Content-Type
- Content-Length
- Accept-Encoding
- Authorization
- Cache-Control
- X-Requested-With
- X-CSRF-Token
allow_credentials: true
max_age: 600
security:
login_rate_limit:
window_seconds: 300
max_attempts: 5
block_seconds: 900
password_policy:
min_length: 8
require_upper: true
require_lower: true
require_number: true
require_special: false
telegram_auth:
enabled: false
bot_username: ""
bot_token: ""
login_expire_seconds: 300
replay_ttl_seconds: 300
email:
enabled: true
host: smtp.xxx.com
port: 465
username: your-username
password: your-password
from: your-email
from_name: your-name
use_tls: false
use_ssl: true
verify_code:
expire_minutes: 10
send_interval_seconds: 60
max_attempts: 5
length: 6
order:
payment_expire_minutes: 15
-96
View File
@@ -1,96 +0,0 @@
additionalProperties:
formFields:
- child:
default: ""
envKey: PANEL_REDIS_SERVICE
required: true
type: service
default: redis
envKey: PANEL_REDIS_TYPE
labelZh: Redis 服务 (前置检查)
labelEn: Redis Service (Pre-check)
required: true
type: apps
values:
- label: Redis
value: redis
- default: "/home/dujiaonext"
edit: true
envKey: DUJIAONEXT_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 8080
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: 8081
edit: true
envKey: PANEL_APP_PORT_ADMIN
labelZh: WebUI 后台端口
labelEn: WebUI Admin Port
required: true
rule: paramPort
type: number
- default: 8082
edit: true
envKey: PANEL_APP_PORT_API
labelZh: API 端口
labelEn: API Port
required: true
rule: paramPort
type: number
- default: "admin"
edit: true
envKey: DJ_DEFAULT_ADMIN_USERNAME
labelZh: 管理员用户名
labelEn: Admin Username
required: true
type: text
- default: ""
edit: true
envKey: DJ_DEFAULT_ADMIN_PASSWORD
labelZh: 管理员密码
labelEn: Admin Password
required: true
type: password
- default: "efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f"
edit: true
envKey: JWT_SECRET
labelZh: JWT 密钥
labelEn: JWT Secret
required: true
type: text
- default: "d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20"
edit: true
envKey: USER_JWT_SECRET
labelZh: 用户 JWT 密钥
labelEn: User JWT Secret
required: true
type: text
- default: "127.0.0.1"
edit: true
envKey: REDIS_HOST
labelZh: Redis 主机
labelEn: Redis Host
required: true
type: text
- default: 6379
edit: true
envKey: REDIS_PORT
labelZh: Redis 端口
labelEn: Redis Port
required: true
type: number
- default: ""
edit: true
envKey: REDIS_PASSWORD
labelZh: Redis 连接密码
labelEn: Redis Connection Password
required: false
type: password
-63
View File
@@ -1,63 +0,0 @@
networks:
1panel-network:
external: true
dujiao-net:
driver: bridge
services:
dujiaonext-api:
image: dujiaonext/api:v1.0.0
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_API}:8080
env_file:
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
- ${ENV_FILE:-/etc/1panel/envs/default.env}
volumes:
- ${DUJIAONEXT_ROOT_PATH}/config/config.yml:/app/config.yml:ro
- ${DUJIAONEXT_ROOT_PATH}/data/db:/app/db
- ${DUJIAONEXT_ROOT_PATH}/data/uploads:/app/uploads
- ${DUJIAONEXT_ROOT_PATH}/data/logs:/app/logs
environment:
- TZ=Asia/Shanghai
- QUEUE_HOST=${REDIS_HOST:-}
- QUEUE_PORT=${REDIS_PORT:-}
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
healthcheck:
test: [ "CMD", "wget", "-qO-", "http://127.0.0.1:8080/health" ]
interval: 10s
timeout: 3s
retries: 10
dujiaonext-admin:
depends_on:
dujiaonext-api:
condition: service_healthy
image: dujiaonext/admin:v1.0.0
container_name: admin-${CONTAINER_NAME}
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_ADMIN}:80
environment:
- TZ=Asia/Shanghai
dujiaonext-user:
depends_on:
dujiaonext-api:
condition: service_healthy
image: dujiaonext/user:v0.1.5
container_name: user-${CONTAINER_NAME}
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_HTTP}:80
environment:
- TZ=Asia/Shanghai
-2
View File
@@ -1,2 +0,0 @@
# copyright© 2024 XinJiang Ms Studio
ENV_FILE=.env
-2
View File
@@ -1,2 +0,0 @@
# copyright© 2024 XinJiang Ms Studio
TZ=Asia/Shanghai
-30
View File
@@ -1,30 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
mkdir -p "$DUJIAONEXT_ROOT_PATH"
mkdir -p "$DUJIAONEXT_ROOT_PATH/config"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/db"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/uploads"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/logs"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/redis"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/postgres"
cp ./config/config.yml "$DUJIAONEXT_ROOT_PATH/config/config.yml"
chmod -R 0777 "$DUJIAONEXT_ROOT_PATH"
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -1,10 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
-17
View File
@@ -1,17 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -1,128 +0,0 @@
server:
host: 0.0.0.0
port: 8080
mode: debug
log:
dir: ""
filename: app.log
max_size_mb: 100
max_backups: 7
max_age_days: 30
compress: true
database:
driver: sqlite
dsn: ./db/dujiao.db?_busy_timeout=5000&_journal_mode=WAL&_synchronous=NORMAL
pool:
max_open_conns: 1
max_idle_conns: 1
conn_max_lifetime_seconds: 0
conn_max_idle_time_seconds: 0
jwt:
secret: "dev-admin-jwt-secret-change-me-please-32chars"
expire_hours: 24
user_jwt:
secret: "dev-user-jwt-secret-change-me-please-32chars"
expire_hours: 24
remember_me_expire_hours: 168
bootstrap:
default_admin_username: ""
default_admin_password: ""
redis:
enabled: true
host: 127.0.0.1
port: 6379
password: ""
db: 0
prefix: "dj"
queue:
enabled: true
host: 127.0.0.1
port: 6379
password: ""
db: 1
concurrency: 10
queues:
default: 10
critical: 5
upload:
max_size: 10485760
allowed_types:
- image/jpeg
- image/png
- image/gif
- image/webp
allowed_extensions:
- .jpg
- .jpeg
- .png
- .gif
- .webp
max_width: 4096
max_height: 4096
cors:
allowed_origins:
- "*"
allowed_methods:
- GET
- POST
- PUT
- PATCH
- DELETE
- OPTIONS
allowed_headers:
- Content-Type
- Content-Length
- Accept-Encoding
- Authorization
- Cache-Control
- X-Requested-With
- X-CSRF-Token
allow_credentials: true
max_age: 600
security:
login_rate_limit:
window_seconds: 300
max_attempts: 5
block_seconds: 900
password_policy:
min_length: 8
require_upper: true
require_lower: true
require_number: true
require_special: false
telegram_auth:
enabled: false
bot_username: ""
bot_token: ""
login_expire_seconds: 300
replay_ttl_seconds: 300
email:
enabled: true
host: smtp.xxx.com
port: 465
username: your-username
password: your-password
from: your-email
from_name: your-name
use_tls: false
use_ssl: true
verify_code:
expire_minutes: 10
send_interval_seconds: 60
max_attempts: 5
length: 6
order:
payment_expire_minutes: 15
@@ -1,96 +0,0 @@
additionalProperties:
formFields:
- child:
default: ""
envKey: PANEL_REDIS_SERVICE
required: true
type: service
default: redis
envKey: PANEL_REDIS_TYPE
labelZh: Redis 服务 (前置检查)
labelEn: Redis Service (Pre-check)
required: true
type: apps
values:
- label: Redis
value: redis
- default: "/home/dujiaonext"
edit: true
envKey: DUJIAONEXT_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 8080
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: 8081
edit: true
envKey: PANEL_APP_PORT_ADMIN
labelZh: WebUI 后台端口
labelEn: WebUI Admin Port
required: true
rule: paramPort
type: number
- default: 8082
edit: true
envKey: PANEL_APP_PORT_API
labelZh: API 端口
labelEn: API Port
required: true
rule: paramPort
type: number
- default: "admin"
edit: true
envKey: DJ_DEFAULT_ADMIN_USERNAME
labelZh: 管理员用户名
labelEn: Admin Username
required: true
type: text
- default: ""
edit: true
envKey: DJ_DEFAULT_ADMIN_PASSWORD
labelZh: 管理员密码
labelEn: Admin Password
required: true
type: password
- default: "efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f"
edit: true
envKey: JWT_SECRET
labelZh: JWT 密钥
labelEn: JWT Secret
required: true
type: text
- default: "d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20"
edit: true
envKey: USER_JWT_SECRET
labelZh: 用户 JWT 密钥
labelEn: User JWT Secret
required: true
type: text
- default: "127.0.0.1"
edit: true
envKey: REDIS_HOST
labelZh: Redis 主机
labelEn: Redis Host
required: true
type: text
- default: 6379
edit: true
envKey: REDIS_PORT
labelZh: Redis 端口
labelEn: Redis Port
required: true
type: number
- default: ""
edit: true
envKey: REDIS_PASSWORD
labelZh: Redis 连接密码
labelEn: Redis Connection Password
required: false
type: password
@@ -1,63 +0,0 @@
networks:
1panel-network:
external: true
dujiao-net:
driver: bridge
services:
dujiaonext-api:
image: dujiaonext/api:v1.0.0
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_API}:8080
env_file:
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
- ${ENV_FILE:-/etc/1panel/envs/default.env}
volumes:
- ${DUJIAONEXT_ROOT_PATH}/config/config.yml:/app/config.yml:ro
- ${DUJIAONEXT_ROOT_PATH}/data/db:/app/db
- ${DUJIAONEXT_ROOT_PATH}/data/uploads:/app/uploads
- ${DUJIAONEXT_ROOT_PATH}/data/logs:/app/logs
environment:
- TZ=Asia/Shanghai
- QUEUE_HOST=${REDIS_HOST:-}
- QUEUE_PORT=${REDIS_PORT:-}
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
healthcheck:
test: [ "CMD", "wget", "-qO-", "http://127.0.0.1:8080/health" ]
interval: 10s
timeout: 3s
retries: 10
dujiaonext-admin:
depends_on:
dujiaonext-api:
condition: service_healthy
image: dujiaonext/admin:v0.1.8
container_name: admin-${CONTAINER_NAME}
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_ADMIN}:80
environment:
- TZ=Asia/Shanghai
dujiaonext-user:
depends_on:
dujiaonext-api:
condition: service_healthy
image: dujiaonext/user:v1.0.0
container_name: user-${CONTAINER_NAME}
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_HTTP}:80
environment:
- TZ=Asia/Shanghai
@@ -1,2 +0,0 @@
# copyright© 2024 XinJiang Ms Studio
ENV_FILE=.env
@@ -1,2 +0,0 @@
# copyright© 2024 XinJiang Ms Studio
TZ=Asia/Shanghai
@@ -1,30 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
mkdir -p "$DUJIAONEXT_ROOT_PATH"
mkdir -p "$DUJIAONEXT_ROOT_PATH/config"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/db"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/uploads"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/logs"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/redis"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/postgres"
cp ./config/config.yml "$DUJIAONEXT_ROOT_PATH/config/config.yml"
chmod -R 0777 "$DUJIAONEXT_ROOT_PATH"
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -1,10 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -1,17 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -1,128 +0,0 @@
server:
host: 0.0.0.0
port: 8080
mode: debug
log:
dir: ""
filename: app.log
max_size_mb: 100
max_backups: 7
max_age_days: 30
compress: true
database:
driver: sqlite
dsn: ./db/dujiao.db?_busy_timeout=5000&_journal_mode=WAL&_synchronous=NORMAL
pool:
max_open_conns: 1
max_idle_conns: 1
conn_max_lifetime_seconds: 0
conn_max_idle_time_seconds: 0
jwt:
secret: "dev-admin-jwt-secret-change-me-please-32chars"
expire_hours: 24
user_jwt:
secret: "dev-user-jwt-secret-change-me-please-32chars"
expire_hours: 24
remember_me_expire_hours: 168
bootstrap:
default_admin_username: ""
default_admin_password: ""
redis:
enabled: true
host: 127.0.0.1
port: 6379
password: ""
db: 0
prefix: "dj"
queue:
enabled: true
host: 127.0.0.1
port: 6379
password: ""
db: 1
concurrency: 10
queues:
default: 10
critical: 5
upload:
max_size: 10485760
allowed_types:
- image/jpeg
- image/png
- image/gif
- image/webp
allowed_extensions:
- .jpg
- .jpeg
- .png
- .gif
- .webp
max_width: 4096
max_height: 4096
cors:
allowed_origins:
- "*"
allowed_methods:
- GET
- POST
- PUT
- PATCH
- DELETE
- OPTIONS
allowed_headers:
- Content-Type
- Content-Length
- Accept-Encoding
- Authorization
- Cache-Control
- X-Requested-With
- X-CSRF-Token
allow_credentials: true
max_age: 600
security:
login_rate_limit:
window_seconds: 300
max_attempts: 5
block_seconds: 900
password_policy:
min_length: 8
require_upper: true
require_lower: true
require_number: true
require_special: false
telegram_auth:
enabled: false
bot_username: ""
bot_token: ""
login_expire_seconds: 300
replay_ttl_seconds: 300
email:
enabled: true
host: smtp.xxx.com
port: 465
username: your-username
password: your-password
from: your-email
from_name: your-name
use_tls: false
use_ssl: true
verify_code:
expire_minutes: 10
send_interval_seconds: 60
max_attempts: 5
length: 6
order:
payment_expire_minutes: 15
-96
View File
@@ -1,96 +0,0 @@
additionalProperties:
formFields:
- child:
default: ""
envKey: PANEL_REDIS_SERVICE
required: true
type: service
default: redis
envKey: PANEL_REDIS_TYPE
labelZh: Redis 服务 (前置检查)
labelEn: Redis Service (Pre-check)
required: true
type: apps
values:
- label: Redis
value: redis
- default: "/home/dujiaonext"
edit: true
envKey: DUJIAONEXT_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 8080
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: 8081
edit: true
envKey: PANEL_APP_PORT_ADMIN
labelZh: WebUI 后台端口
labelEn: WebUI Admin Port
required: true
rule: paramPort
type: number
- default: 8082
edit: true
envKey: PANEL_APP_PORT_API
labelZh: API 端口
labelEn: API Port
required: true
rule: paramPort
type: number
- default: "admin"
edit: true
envKey: DJ_DEFAULT_ADMIN_USERNAME
labelZh: 管理员用户名
labelEn: Admin Username
required: true
type: text
- default: ""
edit: true
envKey: DJ_DEFAULT_ADMIN_PASSWORD
labelZh: 管理员密码
labelEn: Admin Password
required: true
type: password
- default: "efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f"
edit: true
envKey: JWT_SECRET
labelZh: JWT 密钥
labelEn: JWT Secret
required: true
type: text
- default: "d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20"
edit: true
envKey: USER_JWT_SECRET
labelZh: 用户 JWT 密钥
labelEn: User JWT Secret
required: true
type: text
- default: "127.0.0.1"
edit: true
envKey: REDIS_HOST
labelZh: Redis 主机
labelEn: Redis Host
required: true
type: text
- default: 6379
edit: true
envKey: REDIS_PORT
labelZh: Redis 端口
labelEn: Redis Port
required: true
type: number
- default: ""
edit: true
envKey: REDIS_PASSWORD
labelZh: Redis 连接密码
labelEn: Redis Connection Password
required: false
type: password
@@ -1,63 +0,0 @@
networks:
1panel-network:
external: true
dujiao-net:
driver: bridge
services:
dujiaonext-api:
image: dujiaonext/api:v1.0.0
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_API}:8080
env_file:
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
- ${ENV_FILE:-/etc/1panel/envs/default.env}
volumes:
- ${DUJIAONEXT_ROOT_PATH}/config/config.yml:/app/config.yml:ro
- ${DUJIAONEXT_ROOT_PATH}/data/db:/app/db
- ${DUJIAONEXT_ROOT_PATH}/data/uploads:/app/uploads
- ${DUJIAONEXT_ROOT_PATH}/data/logs:/app/logs
environment:
- TZ=Asia/Shanghai
- QUEUE_HOST=${REDIS_HOST:-}
- QUEUE_PORT=${REDIS_PORT:-}
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
healthcheck:
test: [ "CMD", "wget", "-qO-", "http://127.0.0.1:8080/health" ]
interval: 10s
timeout: 3s
retries: 10
dujiaonext-admin:
depends_on:
dujiaonext-api:
condition: service_healthy
image: dujiaonext/admin:v0.1.8
container_name: admin-${CONTAINER_NAME}
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_ADMIN}:80
environment:
- TZ=Asia/Shanghai
dujiaonext-user:
depends_on:
dujiaonext-api:
condition: service_healthy
image: dujiaonext/user:v1.0.0
container_name: user-${CONTAINER_NAME}
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_HTTP}:80
environment:
- TZ=Asia/Shanghai
@@ -1,2 +0,0 @@
# copyright© 2024 XinJiang Ms Studio
ENV_FILE=.env
@@ -1,2 +0,0 @@
# copyright© 2024 XinJiang Ms Studio
TZ=Asia/Shanghai
@@ -1,30 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
mkdir -p "$DUJIAONEXT_ROOT_PATH"
mkdir -p "$DUJIAONEXT_ROOT_PATH/config"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/db"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/uploads"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/logs"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/redis"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/postgres"
cp ./config/config.yml "$DUJIAONEXT_ROOT_PATH/config/config.yml"
chmod -R 0777 "$DUJIAONEXT_ROOT_PATH"
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -1,10 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -1,17 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -1,128 +0,0 @@
server:
host: 0.0.0.0
port: 8080
mode: debug
log:
dir: ""
filename: app.log
max_size_mb: 100
max_backups: 7
max_age_days: 30
compress: true
database:
driver: sqlite
dsn: ./db/dujiao.db?_busy_timeout=5000&_journal_mode=WAL&_synchronous=NORMAL
pool:
max_open_conns: 1
max_idle_conns: 1
conn_max_lifetime_seconds: 0
conn_max_idle_time_seconds: 0
jwt:
secret: "dev-admin-jwt-secret-change-me-please-32chars"
expire_hours: 24
user_jwt:
secret: "dev-user-jwt-secret-change-me-please-32chars"
expire_hours: 24
remember_me_expire_hours: 168
bootstrap:
default_admin_username: ""
default_admin_password: ""
redis:
enabled: true
host: 127.0.0.1
port: 6379
password: ""
db: 0
prefix: "dj"
queue:
enabled: true
host: 127.0.0.1
port: 6379
password: ""
db: 1
concurrency: 10
queues:
default: 10
critical: 5
upload:
max_size: 10485760
allowed_types:
- image/jpeg
- image/png
- image/gif
- image/webp
allowed_extensions:
- .jpg
- .jpeg
- .png
- .gif
- .webp
max_width: 4096
max_height: 4096
cors:
allowed_origins:
- "*"
allowed_methods:
- GET
- POST
- PUT
- PATCH
- DELETE
- OPTIONS
allowed_headers:
- Content-Type
- Content-Length
- Accept-Encoding
- Authorization
- Cache-Control
- X-Requested-With
- X-CSRF-Token
allow_credentials: true
max_age: 600
security:
login_rate_limit:
window_seconds: 300
max_attempts: 5
block_seconds: 900
password_policy:
min_length: 8
require_upper: true
require_lower: true
require_number: true
require_special: false
telegram_auth:
enabled: false
bot_username: ""
bot_token: ""
login_expire_seconds: 300
replay_ttl_seconds: 300
email:
enabled: true
host: smtp.xxx.com
port: 465
username: your-username
password: your-password
from: your-email
from_name: your-name
use_tls: false
use_ssl: true
verify_code:
expire_minutes: 10
send_interval_seconds: 60
max_attempts: 5
length: 6
order:
payment_expire_minutes: 15
-96
View File
@@ -1,96 +0,0 @@
additionalProperties:
formFields:
- child:
default: ""
envKey: PANEL_REDIS_SERVICE
required: true
type: service
default: redis
envKey: PANEL_REDIS_TYPE
labelZh: Redis 服务 (前置检查)
labelEn: Redis Service (Pre-check)
required: true
type: apps
values:
- label: Redis
value: redis
- default: "/home/dujiaonext"
edit: true
envKey: DUJIAONEXT_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 8080
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: 8081
edit: true
envKey: PANEL_APP_PORT_ADMIN
labelZh: WebUI 后台端口
labelEn: WebUI Admin Port
required: true
rule: paramPort
type: number
- default: 8082
edit: true
envKey: PANEL_APP_PORT_API
labelZh: API 端口
labelEn: API Port
required: true
rule: paramPort
type: number
- default: "admin"
edit: true
envKey: DJ_DEFAULT_ADMIN_USERNAME
labelZh: 管理员用户名
labelEn: Admin Username
required: true
type: text
- default: ""
edit: true
envKey: DJ_DEFAULT_ADMIN_PASSWORD
labelZh: 管理员密码
labelEn: Admin Password
required: true
type: password
- default: "efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f"
edit: true
envKey: JWT_SECRET
labelZh: JWT 密钥
labelEn: JWT Secret
required: true
type: text
- default: "d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20"
edit: true
envKey: USER_JWT_SECRET
labelZh: 用户 JWT 密钥
labelEn: User JWT Secret
required: true
type: text
- default: "127.0.0.1"
edit: true
envKey: REDIS_HOST
labelZh: Redis 主机
labelEn: Redis Host
required: true
type: text
- default: 6379
edit: true
envKey: REDIS_PORT
labelZh: Redis 端口
labelEn: Redis Port
required: true
type: number
- default: ""
edit: true
envKey: REDIS_PASSWORD
labelZh: Redis 连接密码
labelEn: Redis Connection Password
required: false
type: password
@@ -1,63 +0,0 @@
networks:
1panel-network:
external: true
dujiao-net:
driver: bridge
services:
dujiaonext-api:
image: dujiaonext/api:v0.1.8
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_API}:8080
env_file:
- ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
- ${ENV_FILE:-/etc/1panel/envs/default.env}
volumes:
- ${DUJIAONEXT_ROOT_PATH}/config/config.yml:/app/config.yml:ro
- ${DUJIAONEXT_ROOT_PATH}/data/db:/app/db
- ${DUJIAONEXT_ROOT_PATH}/data/uploads:/app/uploads
- ${DUJIAONEXT_ROOT_PATH}/data/logs:/app/logs
environment:
- TZ=Asia/Shanghai
- QUEUE_HOST=${REDIS_HOST:-}
- QUEUE_PORT=${REDIS_PORT:-}
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
healthcheck:
test: [ "CMD", "wget", "-qO-", "http://127.0.0.1:8080/health" ]
interval: 10s
timeout: 3s
retries: 10
dujiaonext-admin:
depends_on:
dujiaonext-api:
condition: service_healthy
image: dujiaonext/admin:v1.0.0
container_name: admin-${CONTAINER_NAME}
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_ADMIN}:80
environment:
- TZ=Asia/Shanghai
dujiaonext-user:
depends_on:
dujiaonext-api:
condition: service_healthy
image: dujiaonext/user:v1.0.0
container_name: user-${CONTAINER_NAME}
restart: always
networks:
- dujiao-net
ports:
- ${PANEL_APP_PORT_HTTP}:80
environment:
- TZ=Asia/Shanghai
@@ -1,2 +0,0 @@
# copyright© 2024 XinJiang Ms Studio
ENV_FILE=.env
@@ -1,2 +0,0 @@
# copyright© 2024 XinJiang Ms Studio
TZ=Asia/Shanghai
@@ -1,30 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
mkdir -p "$DUJIAONEXT_ROOT_PATH"
mkdir -p "$DUJIAONEXT_ROOT_PATH/config"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/db"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/uploads"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/logs"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/redis"
mkdir -p "$DUJIAONEXT_ROOT_PATH/data/postgres"
cp ./config/config.yml "$DUJIAONEXT_ROOT_PATH/config/config.yml"
chmod -R 0777 "$DUJIAONEXT_ROOT_PATH"
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -1,10 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -1,17 +0,0 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
+2 -2
View File
@@ -38,7 +38,7 @@ services:
depends_on:
dujiaonext-api:
condition: service_healthy
image: dujiaonext/admin:v1.0.0
image: dujiaonext/admin:v0.1.8
container_name: admin-${CONTAINER_NAME}
restart: always
networks:
@@ -52,7 +52,7 @@ services:
depends_on:
dujiaonext-api:
condition: service_healthy
image: dujiaonext/user:v1.0.0
image: dujiaonext/user:v0.1.8
container_name: user-${CONTAINER_NAME}
restart: always
networks: