Skip to content

环境变量

代码地址:04-jupyterhub-ai-enhanced/.env.example at main · prevailna/project-1-jupyter

必需变量

ini
# GitHub OAuth 配置(必需)
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
OAUTH_CALLBACK_URL=http://localhost:8000/hub/oauth_callback
GITHUB_ADMIN_USERS=your_github_username
GITHUB_WHITELIST_USERS=

# PostgreSQL 数据库配置
POSTGRES_DB=jupyterhub
POSTGRES_USER=jupyterhub
POSTGRES_PASSWORD=your_secure_postgres_password

# Ollama 配置(本地 AI 模型)
OLLAMA_API_BASE=http://172.18.0.1:11434
OLLAMA_HOST=http://172.18.0.1:11434
# 云端 AI 模型配置
OPENAI_API_KEY=your_openai_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
ALIYUN_API_KEY=your_aliyun_api_key
DEEPSEEK_API_KEY=your_deepseek_api_key

完整变量

ini
# GitHub OAuth 配置 (必需)
# 创建 OAuth App: https://github.com/settings/applications/new
# 文档:https://docs.github.com/zh/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret

# OAuth 回调 URL - 必须与 GitHub OAuth App 中配置的完全一致
# 本地开发:http://127.0.0.1:8000/hub/oauth_callback 或 http://localhost:8000/hub/oauth_callback
# 生产环境:https://your-domain.com/hub/oauth_callback
OAUTH_CALLBACK_URL=http://localhost:8000/hub/oauth_callback

# JupyterHub 公共访问地址 (可选,默认为 localhost:8000)
# 确保与 OAUTH_CALLBACK_URL 的域名部分一致
JUPYTERHUB_PUBLIC_HOST=localhost:8000
# GitHub 用户管理 (用逗号分隔,不要有空格,例如:user1,user2,user3)
# 管理员
GITHUB_ADMIN_USERS=your_github_username
# 白名单,如果为空则允许所有用户
GITHUB_WHITELIST_USERS=

# AI 服务配置 (至少配置一个)
# OpenAI 配置
OPENAI_API_KEY=sk-your_openai_api_key
OPENAI_API_BASE=https://api.openai.com/v1
# Anthropic Claude 配置
ANTHROPIC_API_KEY=sk-ant-your_anthropic_api_key
# 阿里云通义千问配置
ALIYUN_API_KEY=sk-your_aliyun_api_key
ALIYUN_API_BASE=https://dashscope.aliyuncs.com/api/v1
# DeepSeek 配置
DEEPSEEK_API_KEY=sk-your_deepseek_api_key
DEEPSEEK_API_BASE=https://api.deepseek.com/v1

# Ollama 配置
# 选择 Ollama 运行方式:
# 1. 本地运行 (推荐): OLLAMA_API_BASE=http://172.18.0.1:11434
# 2. Docker 容器运行:OLLAMA_API_BASE=http://ollama:11434 (需要启用 docker-compose 中的 ollama 服务)
OLLAMA_API_BASE=http://172.18.0.1:11434
OLLAMA_HOST=http://172.18.0.1:11434
OLLAMA_BASE_URL=http://172.18.0.1:11434
OLLAMA_API_KEY=ollama  # Ollama 不需要真实 API Key,但某些库需要非空值
# AI 代理配置 (如果不使用代理,设置为 false)
USE_AI_PROXY=false
AI_PROXY_URL=http://ip:8080

# 默认 AI 模型配置
DEFAULT_AI_PROVIDER=ollama
DEFAULT_AI_MODEL=deepseek-r1

# PostgreSQL 数据库配置
POSTGRES_DB=jupyterhub
POSTGRES_USER=jupyterhub
POSTGRES_PASSWORD=your_secure_postgres_password
POSTGRES_HOST=postgres
POSTGRES_PORT=5432

# PostgreSQL 资源限制
POSTGRES_CPU_LIMIT=1.0
POSTGRES_CPU_GUARANTEE=0.25
POSTGRES_MEM_LIMIT=1G
POSTGRES_MEM_GUARANTEE=256M

# 资源限制配置
# 用户容器资源限制 (每个用户的 Jupyter 容器)
MEM_LIMIT=4G        # 每个用户容器内存限制
CPU_LIMIT=2         # 每个用户容器 CPU 限制
MEM_GUARANTEE=2G    # 每个用户容器内存保证
CPU_GUARANTEE=1     # 每个用户容器 CPU 保证

# JupyterHub 主容器资源限制
MEM_LIMIT=4G             # 每个用户容器内存限制
CPU_LIMIT=2              # 每个用户容器 CPU 限制
MEM_GUARANTEE=1G         # 每个用户容器内存保证
CPU_GUARANTEE=0.5        # 每个用户容器 CPU 保证

# JupyterHub 服务配置
# 日志和调试
JUPYTERHUB_LOG_LEVEL=INFO      # 日志级别:DEBUG, INFO, WARNING, ERROR
SPAWNER_DEBUG=false            # 是否启用 Spawner 调试模式

# 健康检查间隔
HEALTH_CHECK_INTERVAL=600      # 健康检查间隔 (秒)
LAST_ACTIVITY_INTERVAL=300     # 活动时间更新间隔 (秒)
ACTIVITY_RESOLUTION=60         # 活动时间精度 (秒)

# 超时配置
SHUTDOWN_ON_LOGOUT=false       # 登出时是否关闭容器
INIT_SPAWNERS_TIMEOUT=60       # 初始化超时 (秒)
SPAWNER_HTTP_TIMEOUT=60        # HTTP 超时 (秒)
SPAWNER_START_TIMEOUT=180      # 启动超时 (秒)
SPAWNER_IDLE_TIMEOUT=7200      # 空闲超时 (秒,2 小时)


# 容器配置
DOCKER_NOTEBOOK_IMAGE=jupyter-ai-user-image  # 用户容器镜像
DOCKER_NETWORK_NAME=jupyterhub-ai-net        # Docker 网络名称
DOCKER_NOTEBOOK_DIR=/home/jovyan/work        # 用户工作目录

# 用户镜像类型选择 (base/scipy/datascience)
# base        - 基于 jupyter/base-notebook,最小化安装,适合只需要 AI 功能
# scipy       - 基于 jupyter/scipy-notebook,包含科学计算库 (numpy, scipy, matplotlib 等)
# datascience - 基于 jupyter/datascience-notebook,包含完整数据科学栈 (R, Julia, 统计库等)
USER_IMAGE_TYPE=base