mirror of
https://github.com/QYG2297248353/appstore-1panel.git
synced 2026-06-16 01:02:14 +08:00
Processed apps directory via GitHub Actions
This commit is contained in:
@@ -1,36 +0,0 @@
|
|||||||
# Redis 服务 (前置检查) [必填]
|
|
||||||
PANEL_REDIS_TYPE=redis
|
|
||||||
|
|
||||||
# 数据持久化路径 [必填]
|
|
||||||
DUJIAONEXT_ROOT_PATH=/home/dujiaonext
|
|
||||||
|
|
||||||
# WebUI 端口 [必填]
|
|
||||||
PANEL_APP_PORT_HTTP=8080
|
|
||||||
|
|
||||||
# WebUI 后台端口 [必填]
|
|
||||||
PANEL_APP_PORT_ADMIN=8081
|
|
||||||
|
|
||||||
# API 端口 [必填]
|
|
||||||
PANEL_APP_PORT_API=8082
|
|
||||||
|
|
||||||
# 管理员用户名 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_USERNAME=admin
|
|
||||||
|
|
||||||
# 管理员密码 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_PASSWORD=
|
|
||||||
|
|
||||||
# JWT 密钥 [必填]
|
|
||||||
JWT_SECRET=efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f
|
|
||||||
|
|
||||||
# 用户 JWT 密钥 [必填]
|
|
||||||
USER_JWT_SECRET=d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20
|
|
||||||
|
|
||||||
# Redis 主机 [必填]
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
|
|
||||||
# Redis 端口 [必填]
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
# Redis 连接密码
|
|
||||||
REDIS_PASSWORD=
|
|
||||||
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
networks:
|
|
||||||
1panel-network:
|
|
||||||
external: true
|
|
||||||
dujiao-net:
|
|
||||||
driver: bridge
|
|
||||||
services:
|
|
||||||
dujiaonext-admin:
|
|
||||||
container_name: admin-0.1.5
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/admin:v1.0.0
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_ADMIN}:80
|
|
||||||
restart: always
|
|
||||||
dujiaonext-api:
|
|
||||||
container_name: 0.1.5
|
|
||||||
env_file:
|
|
||||||
- ./envs/global.env
|
|
||||||
- .env
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
- QUEUE_HOST=${REDIS_HOST:-}
|
|
||||||
- QUEUE_PORT=${REDIS_PORT:-}
|
|
||||||
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
|
|
||||||
healthcheck:
|
|
||||||
interval: 10s
|
|
||||||
retries: 10
|
|
||||||
test:
|
|
||||||
- CMD
|
|
||||||
- wget
|
|
||||||
- -qO-
|
|
||||||
- http://127.0.0.1:8080/health
|
|
||||||
timeout: 3s
|
|
||||||
image: dujiaonext/api:v1.0.0
|
|
||||||
labels:
|
|
||||||
createdBy: Apps
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_API}:8080
|
|
||||||
restart: always
|
|
||||||
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
|
|
||||||
dujiaonext-user:
|
|
||||||
container_name: user-0.1.5
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/user:v0.1.7
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
|
||||||
restart: always
|
|
||||||
@@ -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,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,36 +0,0 @@
|
|||||||
# Redis 服务 (前置检查) [必填]
|
|
||||||
PANEL_REDIS_TYPE=redis
|
|
||||||
|
|
||||||
# 数据持久化路径 [必填]
|
|
||||||
DUJIAONEXT_ROOT_PATH=/home/dujiaonext
|
|
||||||
|
|
||||||
# WebUI 端口 [必填]
|
|
||||||
PANEL_APP_PORT_HTTP=8080
|
|
||||||
|
|
||||||
# WebUI 后台端口 [必填]
|
|
||||||
PANEL_APP_PORT_ADMIN=8081
|
|
||||||
|
|
||||||
# API 端口 [必填]
|
|
||||||
PANEL_APP_PORT_API=8082
|
|
||||||
|
|
||||||
# 管理员用户名 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_USERNAME=admin
|
|
||||||
|
|
||||||
# 管理员密码 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_PASSWORD=
|
|
||||||
|
|
||||||
# JWT 密钥 [必填]
|
|
||||||
JWT_SECRET=efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f
|
|
||||||
|
|
||||||
# 用户 JWT 密钥 [必填]
|
|
||||||
USER_JWT_SECRET=d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20
|
|
||||||
|
|
||||||
# Redis 主机 [必填]
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
|
|
||||||
# Redis 端口 [必填]
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
# Redis 连接密码
|
|
||||||
REDIS_PASSWORD=
|
|
||||||
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
# Redis 服务 (前置检查) [必填]
|
|
||||||
PANEL_REDIS_TYPE=redis
|
|
||||||
|
|
||||||
# 数据持久化路径 [必填]
|
|
||||||
DUJIAONEXT_ROOT_PATH=/home/dujiaonext
|
|
||||||
|
|
||||||
# WebUI 端口 [必填]
|
|
||||||
PANEL_APP_PORT_HTTP=8080
|
|
||||||
|
|
||||||
# WebUI 后台端口 [必填]
|
|
||||||
PANEL_APP_PORT_ADMIN=8081
|
|
||||||
|
|
||||||
# API 端口 [必填]
|
|
||||||
PANEL_APP_PORT_API=8082
|
|
||||||
|
|
||||||
# 管理员用户名 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_USERNAME=admin
|
|
||||||
|
|
||||||
# 管理员密码 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_PASSWORD=
|
|
||||||
|
|
||||||
# JWT 密钥 [必填]
|
|
||||||
JWT_SECRET=efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f
|
|
||||||
|
|
||||||
# 用户 JWT 密钥 [必填]
|
|
||||||
USER_JWT_SECRET=d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20
|
|
||||||
|
|
||||||
# Redis 主机 [必填]
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
|
|
||||||
# Redis 端口 [必填]
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
# Redis 连接密码
|
|
||||||
REDIS_PASSWORD=
|
|
||||||
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
# Redis 服务 (前置检查) [必填]
|
|
||||||
PANEL_REDIS_TYPE=redis
|
|
||||||
|
|
||||||
# 数据持久化路径 [必填]
|
|
||||||
DUJIAONEXT_ROOT_PATH=/home/dujiaonext
|
|
||||||
|
|
||||||
# WebUI 端口 [必填]
|
|
||||||
PANEL_APP_PORT_HTTP=8080
|
|
||||||
|
|
||||||
# WebUI 后台端口 [必填]
|
|
||||||
PANEL_APP_PORT_ADMIN=8081
|
|
||||||
|
|
||||||
# API 端口 [必填]
|
|
||||||
PANEL_APP_PORT_API=8082
|
|
||||||
|
|
||||||
# 管理员用户名 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_USERNAME=admin
|
|
||||||
|
|
||||||
# 管理员密码 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_PASSWORD=
|
|
||||||
|
|
||||||
# JWT 密钥 [必填]
|
|
||||||
JWT_SECRET=efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f
|
|
||||||
|
|
||||||
# 用户 JWT 密钥 [必填]
|
|
||||||
USER_JWT_SECRET=d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20
|
|
||||||
|
|
||||||
# Redis 主机 [必填]
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
|
|
||||||
# Redis 端口 [必填]
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
# Redis 连接密码
|
|
||||||
REDIS_PASSWORD=
|
|
||||||
|
|
||||||
@@ -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,64 +0,0 @@
|
|||||||
networks:
|
|
||||||
1panel-network:
|
|
||||||
external: true
|
|
||||||
dujiao-net:
|
|
||||||
driver: bridge
|
|
||||||
services:
|
|
||||||
dujiaonext-admin:
|
|
||||||
container_name: admin-0.1.5
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/admin:v0.1.8
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_ADMIN}:80
|
|
||||||
restart: always
|
|
||||||
dujiaonext-api:
|
|
||||||
container_name: 0.1.5
|
|
||||||
env_file:
|
|
||||||
- ./envs/global.env
|
|
||||||
- .env
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
- QUEUE_HOST=${REDIS_HOST:-}
|
|
||||||
- QUEUE_PORT=${REDIS_PORT:-}
|
|
||||||
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
|
|
||||||
healthcheck:
|
|
||||||
interval: 10s
|
|
||||||
retries: 10
|
|
||||||
test:
|
|
||||||
- CMD
|
|
||||||
- wget
|
|
||||||
- -qO-
|
|
||||||
- http://127.0.0.1:8080/health
|
|
||||||
timeout: 3s
|
|
||||||
image: dujiaonext/api:v1.0.0
|
|
||||||
labels:
|
|
||||||
createdBy: Apps
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_API}:8080
|
|
||||||
restart: always
|
|
||||||
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
|
|
||||||
dujiaonext-user:
|
|
||||||
container_name: user-0.1.5
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/user:v1.0.0
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
|
||||||
restart: always
|
|
||||||
@@ -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
|
|
||||||
@@ -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,64 +0,0 @@
|
|||||||
networks:
|
|
||||||
1panel-network:
|
|
||||||
external: true
|
|
||||||
dujiao-net:
|
|
||||||
driver: bridge
|
|
||||||
services:
|
|
||||||
dujiaonext-admin:
|
|
||||||
container_name: admin-0.1.8
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/admin:v0.1.8
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_ADMIN}:80
|
|
||||||
restart: always
|
|
||||||
dujiaonext-api:
|
|
||||||
container_name: 0.1.8
|
|
||||||
env_file:
|
|
||||||
- ./envs/global.env
|
|
||||||
- .env
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
- QUEUE_HOST=${REDIS_HOST:-}
|
|
||||||
- QUEUE_PORT=${REDIS_PORT:-}
|
|
||||||
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
|
|
||||||
healthcheck:
|
|
||||||
interval: 10s
|
|
||||||
retries: 10
|
|
||||||
test:
|
|
||||||
- CMD
|
|
||||||
- wget
|
|
||||||
- -qO-
|
|
||||||
- http://127.0.0.1:8080/health
|
|
||||||
timeout: 3s
|
|
||||||
image: dujiaonext/api:v1.0.0
|
|
||||||
labels:
|
|
||||||
createdBy: Apps
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_API}:8080
|
|
||||||
restart: always
|
|
||||||
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
|
|
||||||
dujiaonext-user:
|
|
||||||
container_name: user-0.1.8
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/user:v1.0.0
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
|
||||||
restart: always
|
|
||||||
@@ -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,36 +0,0 @@
|
|||||||
# Redis 服务 (前置检查) [必填]
|
|
||||||
PANEL_REDIS_TYPE=redis
|
|
||||||
|
|
||||||
# 数据持久化路径 [必填]
|
|
||||||
DUJIAONEXT_ROOT_PATH=/home/dujiaonext
|
|
||||||
|
|
||||||
# WebUI 端口 [必填]
|
|
||||||
PANEL_APP_PORT_HTTP=8080
|
|
||||||
|
|
||||||
# WebUI 后台端口 [必填]
|
|
||||||
PANEL_APP_PORT_ADMIN=8081
|
|
||||||
|
|
||||||
# API 端口 [必填]
|
|
||||||
PANEL_APP_PORT_API=8082
|
|
||||||
|
|
||||||
# 管理员用户名 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_USERNAME=admin
|
|
||||||
|
|
||||||
# 管理员密码 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_PASSWORD=
|
|
||||||
|
|
||||||
# JWT 密钥 [必填]
|
|
||||||
JWT_SECRET=efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f
|
|
||||||
|
|
||||||
# 用户 JWT 密钥 [必填]
|
|
||||||
USER_JWT_SECRET=d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20
|
|
||||||
|
|
||||||
# Redis 主机 [必填]
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
|
|
||||||
# Redis 端口 [必填]
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
# Redis 连接密码
|
|
||||||
REDIS_PASSWORD=
|
|
||||||
|
|
||||||
@@ -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,64 +0,0 @@
|
|||||||
networks:
|
|
||||||
1panel-network:
|
|
||||||
external: true
|
|
||||||
dujiao-net:
|
|
||||||
driver: bridge
|
|
||||||
services:
|
|
||||||
dujiaonext-admin:
|
|
||||||
container_name: admin-0.1.8
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/admin:v1.0.0
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_ADMIN}:80
|
|
||||||
restart: always
|
|
||||||
dujiaonext-api:
|
|
||||||
container_name: 0.1.8
|
|
||||||
env_file:
|
|
||||||
- ./envs/global.env
|
|
||||||
- .env
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
- QUEUE_HOST=${REDIS_HOST:-}
|
|
||||||
- QUEUE_PORT=${REDIS_PORT:-}
|
|
||||||
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
|
|
||||||
healthcheck:
|
|
||||||
interval: 10s
|
|
||||||
retries: 10
|
|
||||||
test:
|
|
||||||
- CMD
|
|
||||||
- wget
|
|
||||||
- -qO-
|
|
||||||
- http://127.0.0.1:8080/health
|
|
||||||
timeout: 3s
|
|
||||||
image: dujiaonext/api:v0.1.8
|
|
||||||
labels:
|
|
||||||
createdBy: Apps
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_API}:8080
|
|
||||||
restart: always
|
|
||||||
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
|
|
||||||
dujiaonext-user:
|
|
||||||
container_name: user-0.1.8
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/user:v1.0.0
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
|
||||||
restart: always
|
|
||||||
@@ -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
|
|
||||||
@@ -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,64 +0,0 @@
|
|||||||
networks:
|
|
||||||
1panel-network:
|
|
||||||
external: true
|
|
||||||
dujiao-net:
|
|
||||||
driver: bridge
|
|
||||||
services:
|
|
||||||
dujiaonext-admin:
|
|
||||||
container_name: admin-dujiaonext
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/admin:v1.0.0
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_ADMIN}:80
|
|
||||||
restart: always
|
|
||||||
dujiaonext-api:
|
|
||||||
container_name: dujiaonext
|
|
||||||
env_file:
|
|
||||||
- ./envs/global.env
|
|
||||||
- .env
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
- QUEUE_HOST=${REDIS_HOST:-}
|
|
||||||
- QUEUE_PORT=${REDIS_PORT:-}
|
|
||||||
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
|
|
||||||
healthcheck:
|
|
||||||
interval: 10s
|
|
||||||
retries: 10
|
|
||||||
test:
|
|
||||||
- CMD
|
|
||||||
- wget
|
|
||||||
- -qO-
|
|
||||||
- http://127.0.0.1:8080/health
|
|
||||||
timeout: 3s
|
|
||||||
image: dujiaonext/api:v0.1.8
|
|
||||||
labels:
|
|
||||||
createdBy: Apps
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_API}:8080
|
|
||||||
restart: always
|
|
||||||
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
|
|
||||||
dujiaonext-user:
|
|
||||||
container_name: user-dujiaonext
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/user:v1.0.0
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
|
||||||
restart: always
|
|
||||||
@@ -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
@@ -11,7 +11,7 @@ services:
|
|||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Shanghai
|
- TZ=Asia/Shanghai
|
||||||
image: dujiaonext/admin:v1.0.0
|
image: dujiaonext/admin:v0.1.8
|
||||||
networks:
|
networks:
|
||||||
- dujiao-net
|
- dujiao-net
|
||||||
ports:
|
ports:
|
||||||
@@ -56,7 +56,7 @@ services:
|
|||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Shanghai
|
- TZ=Asia/Shanghai
|
||||||
image: dujiaonext/user:v0.1.5
|
image: dujiaonext/user:v0.1.8
|
||||||
networks:
|
networks:
|
||||||
- dujiao-net
|
- dujiao-net
|
||||||
ports:
|
ports:
|
||||||
@@ -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,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
-1
@@ -18,7 +18,7 @@ services:
|
|||||||
- OLLAMA_MAX_QUEUE=512
|
- OLLAMA_MAX_QUEUE=512
|
||||||
- OLLAMA_FLASH_ATTENTION=0
|
- OLLAMA_FLASH_ATTENTION=0
|
||||||
- OLLAMA_KV_CACHE_TYPE=f16
|
- OLLAMA_KV_CACHE_TYPE=f16
|
||||||
image: ollama/ollama:0.20.1
|
image: ollama/ollama:0.20.2
|
||||||
labels:
|
labels:
|
||||||
createdBy: Apps
|
createdBy: Apps
|
||||||
networks:
|
networks:
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
# Redis 服务 (前置检查) [必填]
|
|
||||||
PANEL_REDIS_TYPE=redis
|
|
||||||
|
|
||||||
# 数据持久化路径 [必填]
|
|
||||||
DUJIAONEXT_ROOT_PATH=/home/dujiaonext
|
|
||||||
|
|
||||||
# WebUI 端口 [必填]
|
|
||||||
PANEL_APP_PORT_HTTP=8080
|
|
||||||
|
|
||||||
# WebUI 后台端口 [必填]
|
|
||||||
PANEL_APP_PORT_ADMIN=8081
|
|
||||||
|
|
||||||
# API 端口 [必填]
|
|
||||||
PANEL_APP_PORT_API=8082
|
|
||||||
|
|
||||||
# 管理员用户名 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_USERNAME=admin
|
|
||||||
|
|
||||||
# 管理员密码 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_PASSWORD=
|
|
||||||
|
|
||||||
# JWT 密钥 [必填]
|
|
||||||
JWT_SECRET=efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f
|
|
||||||
|
|
||||||
# 用户 JWT 密钥 [必填]
|
|
||||||
USER_JWT_SECRET=d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20
|
|
||||||
|
|
||||||
# Redis 主机 [必填]
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
|
|
||||||
# Redis 端口 [必填]
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
# Redis 连接密码
|
|
||||||
REDIS_PASSWORD=
|
|
||||||
|
|
||||||
@@ -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,64 +0,0 @@
|
|||||||
networks:
|
|
||||||
1panel-network:
|
|
||||||
external: true
|
|
||||||
dujiao-net:
|
|
||||||
driver: bridge
|
|
||||||
services:
|
|
||||||
dujiaonext-admin:
|
|
||||||
container_name: admin-0.1.5
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/admin:v0.1.8
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_ADMIN}:80
|
|
||||||
restart: always
|
|
||||||
dujiaonext-api:
|
|
||||||
container_name: 0.1.5
|
|
||||||
env_file:
|
|
||||||
- ./envs/global.env
|
|
||||||
- .env
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
- QUEUE_HOST=${REDIS_HOST:-}
|
|
||||||
- QUEUE_PORT=${REDIS_PORT:-}
|
|
||||||
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
|
|
||||||
healthcheck:
|
|
||||||
interval: 10s
|
|
||||||
retries: 10
|
|
||||||
test:
|
|
||||||
- CMD
|
|
||||||
- wget
|
|
||||||
- -qO-
|
|
||||||
- http://127.0.0.1:8080/health
|
|
||||||
timeout: 3s
|
|
||||||
image: dujiaonext/api:v1.0.0
|
|
||||||
labels:
|
|
||||||
createdBy: Apps
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_API}:8080
|
|
||||||
restart: always
|
|
||||||
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
|
|
||||||
dujiaonext-user:
|
|
||||||
container_name: user-0.1.5
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/user:v1.0.0
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
|
||||||
restart: always
|
|
||||||
@@ -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,36 +0,0 @@
|
|||||||
# Redis 服务 (前置检查) [必填]
|
|
||||||
PANEL_REDIS_TYPE=redis
|
|
||||||
|
|
||||||
# 数据持久化路径 [必填]
|
|
||||||
DUJIAONEXT_ROOT_PATH=/home/dujiaonext
|
|
||||||
|
|
||||||
# WebUI 端口 [必填]
|
|
||||||
PANEL_APP_PORT_HTTP=8080
|
|
||||||
|
|
||||||
# WebUI 后台端口 [必填]
|
|
||||||
PANEL_APP_PORT_ADMIN=8081
|
|
||||||
|
|
||||||
# API 端口 [必填]
|
|
||||||
PANEL_APP_PORT_API=8082
|
|
||||||
|
|
||||||
# 管理员用户名 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_USERNAME=admin
|
|
||||||
|
|
||||||
# 管理员密码 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_PASSWORD=
|
|
||||||
|
|
||||||
# JWT 密钥 [必填]
|
|
||||||
JWT_SECRET=efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f
|
|
||||||
|
|
||||||
# 用户 JWT 密钥 [必填]
|
|
||||||
USER_JWT_SECRET=d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20
|
|
||||||
|
|
||||||
# Redis 主机 [必填]
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
|
|
||||||
# Redis 端口 [必填]
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
# Redis 连接密码
|
|
||||||
REDIS_PASSWORD=
|
|
||||||
|
|
||||||
@@ -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,64 +0,0 @@
|
|||||||
networks:
|
|
||||||
1panel-network:
|
|
||||||
external: true
|
|
||||||
dujiao-net:
|
|
||||||
driver: bridge
|
|
||||||
services:
|
|
||||||
dujiaonext-admin:
|
|
||||||
container_name: admin-0.1.5
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/admin:v1.0.0
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_ADMIN}:80
|
|
||||||
restart: always
|
|
||||||
dujiaonext-api:
|
|
||||||
container_name: 0.1.5
|
|
||||||
env_file:
|
|
||||||
- ./envs/global.env
|
|
||||||
- .env
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
- QUEUE_HOST=${REDIS_HOST:-}
|
|
||||||
- QUEUE_PORT=${REDIS_PORT:-}
|
|
||||||
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
|
|
||||||
healthcheck:
|
|
||||||
interval: 10s
|
|
||||||
retries: 10
|
|
||||||
test:
|
|
||||||
- CMD
|
|
||||||
- wget
|
|
||||||
- -qO-
|
|
||||||
- http://127.0.0.1:8080/health
|
|
||||||
timeout: 3s
|
|
||||||
image: dujiaonext/api:v1.0.0
|
|
||||||
labels:
|
|
||||||
createdBy: Apps
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_API}:8080
|
|
||||||
restart: always
|
|
||||||
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
|
|
||||||
dujiaonext-user:
|
|
||||||
container_name: user-0.1.5
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/user:v0.1.7
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
|
||||||
restart: always
|
|
||||||
@@ -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,36 +0,0 @@
|
|||||||
# Redis 服务 (前置检查) [必填]
|
|
||||||
PANEL_REDIS_TYPE=redis
|
|
||||||
|
|
||||||
# 数据持久化路径 [必填]
|
|
||||||
DUJIAONEXT_ROOT_PATH=/home/dujiaonext
|
|
||||||
|
|
||||||
# WebUI 端口 [必填]
|
|
||||||
PANEL_APP_PORT_HTTP=8080
|
|
||||||
|
|
||||||
# WebUI 后台端口 [必填]
|
|
||||||
PANEL_APP_PORT_ADMIN=8081
|
|
||||||
|
|
||||||
# API 端口 [必填]
|
|
||||||
PANEL_APP_PORT_API=8082
|
|
||||||
|
|
||||||
# 管理员用户名 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_USERNAME=admin
|
|
||||||
|
|
||||||
# 管理员密码 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_PASSWORD=
|
|
||||||
|
|
||||||
# JWT 密钥 [必填]
|
|
||||||
JWT_SECRET=efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f
|
|
||||||
|
|
||||||
# 用户 JWT 密钥 [必填]
|
|
||||||
USER_JWT_SECRET=d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20
|
|
||||||
|
|
||||||
# Redis 主机 [必填]
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
|
|
||||||
# Redis 端口 [必填]
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
# Redis 连接密码
|
|
||||||
REDIS_PASSWORD=
|
|
||||||
|
|
||||||
@@ -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,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,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,64 +0,0 @@
|
|||||||
networks:
|
|
||||||
1panel-network:
|
|
||||||
external: true
|
|
||||||
dujiao-net:
|
|
||||||
driver: bridge
|
|
||||||
services:
|
|
||||||
dujiaonext-admin:
|
|
||||||
container_name: admin-0.1.8
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/admin:v0.1.8
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_ADMIN}:80
|
|
||||||
restart: always
|
|
||||||
dujiaonext-api:
|
|
||||||
container_name: 0.1.8
|
|
||||||
env_file:
|
|
||||||
- ./envs/global.env
|
|
||||||
- .env
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
- QUEUE_HOST=${REDIS_HOST:-}
|
|
||||||
- QUEUE_PORT=${REDIS_PORT:-}
|
|
||||||
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
|
|
||||||
healthcheck:
|
|
||||||
interval: 10s
|
|
||||||
retries: 10
|
|
||||||
test:
|
|
||||||
- CMD
|
|
||||||
- wget
|
|
||||||
- -qO-
|
|
||||||
- http://127.0.0.1:8080/health
|
|
||||||
timeout: 3s
|
|
||||||
image: dujiaonext/api:v1.0.0
|
|
||||||
labels:
|
|
||||||
createdBy: Apps
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_API}:8080
|
|
||||||
restart: always
|
|
||||||
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
|
|
||||||
dujiaonext-user:
|
|
||||||
container_name: user-0.1.8
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/user:v1.0.0
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
|
||||||
restart: always
|
|
||||||
@@ -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,36 +0,0 @@
|
|||||||
# Redis 服务 (前置检查) [必填]
|
|
||||||
PANEL_REDIS_TYPE=redis
|
|
||||||
|
|
||||||
# 数据持久化路径 [必填]
|
|
||||||
DUJIAONEXT_ROOT_PATH=/home/dujiaonext
|
|
||||||
|
|
||||||
# WebUI 端口 [必填]
|
|
||||||
PANEL_APP_PORT_HTTP=8080
|
|
||||||
|
|
||||||
# WebUI 后台端口 [必填]
|
|
||||||
PANEL_APP_PORT_ADMIN=8081
|
|
||||||
|
|
||||||
# API 端口 [必填]
|
|
||||||
PANEL_APP_PORT_API=8082
|
|
||||||
|
|
||||||
# 管理员用户名 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_USERNAME=admin
|
|
||||||
|
|
||||||
# 管理员密码 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_PASSWORD=
|
|
||||||
|
|
||||||
# JWT 密钥 [必填]
|
|
||||||
JWT_SECRET=efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f
|
|
||||||
|
|
||||||
# 用户 JWT 密钥 [必填]
|
|
||||||
USER_JWT_SECRET=d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20
|
|
||||||
|
|
||||||
# Redis 主机 [必填]
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
|
|
||||||
# Redis 端口 [必填]
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
# Redis 连接密码
|
|
||||||
REDIS_PASSWORD=
|
|
||||||
|
|
||||||
@@ -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,64 +0,0 @@
|
|||||||
networks:
|
|
||||||
1panel-network:
|
|
||||||
external: true
|
|
||||||
dujiao-net:
|
|
||||||
driver: bridge
|
|
||||||
services:
|
|
||||||
dujiaonext-admin:
|
|
||||||
container_name: admin-0.1.8
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/admin:v1.0.0
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_ADMIN}:80
|
|
||||||
restart: always
|
|
||||||
dujiaonext-api:
|
|
||||||
container_name: 0.1.8
|
|
||||||
env_file:
|
|
||||||
- ./envs/global.env
|
|
||||||
- .env
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
- QUEUE_HOST=${REDIS_HOST:-}
|
|
||||||
- QUEUE_PORT=${REDIS_PORT:-}
|
|
||||||
- QUEUE_PASSWORD=${REDIS_PASSWORD:-}
|
|
||||||
healthcheck:
|
|
||||||
interval: 10s
|
|
||||||
retries: 10
|
|
||||||
test:
|
|
||||||
- CMD
|
|
||||||
- wget
|
|
||||||
- -qO-
|
|
||||||
- http://127.0.0.1:8080/health
|
|
||||||
timeout: 3s
|
|
||||||
image: dujiaonext/api:v0.1.8
|
|
||||||
labels:
|
|
||||||
createdBy: Apps
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_API}:8080
|
|
||||||
restart: always
|
|
||||||
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
|
|
||||||
dujiaonext-user:
|
|
||||||
container_name: user-0.1.8
|
|
||||||
depends_on:
|
|
||||||
dujiaonext-api:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
image: dujiaonext/user:v1.0.0
|
|
||||||
networks:
|
|
||||||
- dujiao-net
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
|
||||||
restart: always
|
|
||||||
@@ -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,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,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,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,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,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,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
|
|
||||||
@@ -11,7 +11,7 @@ services:
|
|||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Shanghai
|
- TZ=Asia/Shanghai
|
||||||
image: dujiaonext/admin:v1.0.0
|
image: dujiaonext/admin:v0.1.8
|
||||||
networks:
|
networks:
|
||||||
- dujiao-net
|
- dujiao-net
|
||||||
ports:
|
ports:
|
||||||
@@ -36,7 +36,7 @@ services:
|
|||||||
- -qO-
|
- -qO-
|
||||||
- http://127.0.0.1:8080/health
|
- http://127.0.0.1:8080/health
|
||||||
timeout: 3s
|
timeout: 3s
|
||||||
image: dujiaonext/api:v0.1.8
|
image: dujiaonext/api:v1.0.0
|
||||||
labels:
|
labels:
|
||||||
createdBy: Apps
|
createdBy: Apps
|
||||||
networks:
|
networks:
|
||||||
@@ -56,7 +56,7 @@ services:
|
|||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Shanghai
|
- TZ=Asia/Shanghai
|
||||||
image: dujiaonext/user:v1.0.0
|
image: dujiaonext/user:v0.1.8
|
||||||
networks:
|
networks:
|
||||||
- dujiao-net
|
- dujiao-net
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
# Redis 服务 (前置检查) [必填]
|
|
||||||
PANEL_REDIS_TYPE=redis
|
|
||||||
|
|
||||||
# 数据持久化路径 [必填]
|
|
||||||
DUJIAONEXT_ROOT_PATH=/home/dujiaonext
|
|
||||||
|
|
||||||
# WebUI 端口 [必填]
|
|
||||||
PANEL_APP_PORT_HTTP=8080
|
|
||||||
|
|
||||||
# WebUI 后台端口 [必填]
|
|
||||||
PANEL_APP_PORT_ADMIN=8081
|
|
||||||
|
|
||||||
# API 端口 [必填]
|
|
||||||
PANEL_APP_PORT_API=8082
|
|
||||||
|
|
||||||
# 管理员用户名 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_USERNAME=admin
|
|
||||||
|
|
||||||
# 管理员密码 [必填]
|
|
||||||
DJ_DEFAULT_ADMIN_PASSWORD=
|
|
||||||
|
|
||||||
# JWT 密钥 [必填]
|
|
||||||
JWT_SECRET=efd8bd2b3ecdca06dba6b6213bf46e7a16b9045bda6420828eeeb8f7e36c755f
|
|
||||||
|
|
||||||
# 用户 JWT 密钥 [必填]
|
|
||||||
USER_JWT_SECRET=d13e38a2b2d582a4f5bcfda44ae5aa9c4bd93643ff308f0e5b45833aec28af20
|
|
||||||
|
|
||||||
# Redis 主机 [必填]
|
|
||||||
REDIS_HOST=127.0.0.1
|
|
||||||
|
|
||||||
# Redis 端口 [必填]
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
# Redis 连接密码
|
|
||||||
REDIS_PASSWORD=
|
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user