diff --git a/apps/dujiaonext/0.1.6/0.1.7/config/config.yml b/apps/dujiaonext/0.1.6/0.1.7/config/config.yml new file mode 100644 index 000000000..ff3e3ade3 --- /dev/null +++ b/apps/dujiaonext/0.1.6/0.1.7/config/config.yml @@ -0,0 +1,128 @@ +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 diff --git a/apps/dujiaonext/0.1.6/0.1.7/data.yml b/apps/dujiaonext/0.1.6/0.1.7/data.yml new file mode 100644 index 000000000..dcec017d2 --- /dev/null +++ b/apps/dujiaonext/0.1.6/0.1.7/data.yml @@ -0,0 +1,96 @@ +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 diff --git a/apps/dujiaonext/0.1.6/0.1.7/docker-compose.yml b/apps/dujiaonext/0.1.6/0.1.7/docker-compose.yml new file mode 100644 index 000000000..d420bd758 --- /dev/null +++ b/apps/dujiaonext/0.1.6/0.1.7/docker-compose.yml @@ -0,0 +1,63 @@ +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.5 + container_name: admin-${CONTAINER_NAME} + restart: always + networks: + - dujiao-net + ports: + - ${PANEL_APP_PORT_ADMIN}:80 + environment: + - TZ=Asia/Shanghai + + dujiaonext-user: + depends_on: + dujiaonext-api: + condition: service_healthy + image: dujiaonext/user:v0.1.7 + container_name: user-${CONTAINER_NAME} + restart: always + networks: + - dujiao-net + ports: + - ${PANEL_APP_PORT_HTTP}:80 + environment: + - TZ=Asia/Shanghai diff --git a/apps/dujiaonext/0.1.6/0.1.7/envs/default.env b/apps/dujiaonext/0.1.6/0.1.7/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/apps/dujiaonext/0.1.6/0.1.7/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/apps/dujiaonext/0.1.6/0.1.7/envs/global.env b/apps/dujiaonext/0.1.6/0.1.7/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/apps/dujiaonext/0.1.6/0.1.7/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/apps/dujiaonext/0.1.6/0.1.7/scripts/init.sh b/apps/dujiaonext/0.1.6/0.1.7/scripts/init.sh new file mode 100644 index 000000000..e875889bd --- /dev/null +++ b/apps/dujiaonext/0.1.6/0.1.7/scripts/init.sh @@ -0,0 +1,30 @@ +#!/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 diff --git a/apps/dujiaonext/0.1.6/0.1.7/scripts/uninstall.sh b/apps/dujiaonext/0.1.6/0.1.7/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/dujiaonext/0.1.6/0.1.7/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/dujiaonext/0.1.6/0.1.7/scripts/upgrade.sh b/apps/dujiaonext/0.1.6/0.1.7/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/apps/dujiaonext/0.1.6/0.1.7/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/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 diff --git a/apps/dujiaonext/0.1.6/config/config.yml b/apps/dujiaonext/0.1.6/config/config.yml new file mode 100644 index 000000000..ff3e3ade3 --- /dev/null +++ b/apps/dujiaonext/0.1.6/config/config.yml @@ -0,0 +1,128 @@ +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 diff --git a/apps/dujiaonext/0.1.6/data.yml b/apps/dujiaonext/0.1.6/data.yml new file mode 100644 index 000000000..dcec017d2 --- /dev/null +++ b/apps/dujiaonext/0.1.6/data.yml @@ -0,0 +1,96 @@ +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 diff --git a/apps/dujiaonext/0.1.6/docker-compose.yml b/apps/dujiaonext/0.1.6/docker-compose.yml new file mode 100644 index 000000000..84e312f73 --- /dev/null +++ b/apps/dujiaonext/0.1.6/docker-compose.yml @@ -0,0 +1,63 @@ +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.6 + container_name: admin-${CONTAINER_NAME} + restart: always + networks: + - dujiao-net + ports: + - ${PANEL_APP_PORT_ADMIN}:80 + environment: + - TZ=Asia/Shanghai + + dujiaonext-user: + depends_on: + dujiaonext-api: + condition: service_healthy + image: dujiaonext/user:v0.1.5 + container_name: user-${CONTAINER_NAME} + restart: always + networks: + - dujiao-net + ports: + - ${PANEL_APP_PORT_HTTP}:80 + environment: + - TZ=Asia/Shanghai diff --git a/apps/dujiaonext/0.1.6/envs/default.env b/apps/dujiaonext/0.1.6/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/apps/dujiaonext/0.1.6/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/apps/dujiaonext/0.1.6/envs/global.env b/apps/dujiaonext/0.1.6/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/apps/dujiaonext/0.1.6/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/apps/dujiaonext/0.1.6/scripts/init.sh b/apps/dujiaonext/0.1.6/scripts/init.sh new file mode 100644 index 000000000..e875889bd --- /dev/null +++ b/apps/dujiaonext/0.1.6/scripts/init.sh @@ -0,0 +1,30 @@ +#!/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 diff --git a/apps/dujiaonext/0.1.6/scripts/uninstall.sh b/apps/dujiaonext/0.1.6/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/dujiaonext/0.1.6/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/dujiaonext/0.1.6/scripts/upgrade.sh b/apps/dujiaonext/0.1.6/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/apps/dujiaonext/0.1.6/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/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