Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
58 lines (49 loc) · 1.91 KB
/
Copy path.env.example
File metadata and controls
58 lines (49 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# === 应用配置 ===
APP_ENV=development # development | staging | production
APP_SECRET_KEY=change-me-in-production
APP_DEBUG=true
APP_PORT=8000
# === 数据库 ===
DATABASE_URL=postgresql+asyncpg://nodevault:password@localhost:5432/nodevault_db
# === Redis ===
REDIS_URL=redis://localhost:6379/0
# === MeiliSearch ===
MEILISEARCH_URL=http://localhost:7700
#MEILISEARCH_API_KEY= # 可选,若 Meilisearch 启用了 master key 则填写
# === JWT ===
JWT_SECRET_KEY=change-me-in-production
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30
JWT_REFRESH_TOKEN_EXPIRE_DAYS=7
# === 日志 ===
LOG_LEVEL=INFO
LOG_FORMAT=json # json | console
# === 外部服务认证(节点调用时如需认证)===
# RISK_SERVICE_TOKEN=xxx
# DATA_SERVICE_API_KEY=xxx
# === 凭据加密(服务发现功能) ===
# 32 字节密钥,64 字符 hex 或 44 字符 base64
# 生成方式: python -c "import secrets; print(secrets.token_hex(32))"
CREDENTIAL_ENCRYPT_KEY=
# 允许探测的私有 CIDR 白名单(逗号分隔,默认空=禁止所有私有 IP)
# ALLOWED_PRIVATE_CIDRS=10.0.0.0/8,172.16.0.0/12
# === 初始超级管理员账号 ===
# 首次部署后,通过以下命令在数据库中手动创建超管账号(role=0):
#
# docker compose exec app python - <<'EOF'
# import asyncio
# from backend.auth.jwt import get_password_hash
# from backend.database.session import AsyncSessionFactory
# from backend.models.user import User
# async def main():
# async with AsyncSessionFactory() as db:
# u = User(email="admin@admin.com", username="MJXJadmin",
# hashed_password=get_password_hash("Admin123"), role=0, is_active=True)
# db.add(u); await db.commit()
# asyncio.run(main())
# EOF
#
# 默认示例账号(请务必修改密码后再使用):
# 邮箱: admin@admin.com
# 用户名: MJXJadmin
# 密码: Admin123