环境变量
代码地址: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