mirror of
				https://github.com/linux-do/new-api.git
				synced 2025-11-04 21:33:41 +08:00 
			
		
		
		
	Merge pull request #505 from OiAnthony/f_dotenv
feat: 添加.env配置文件和初始化环境变量
This commit is contained in:
		
							
								
								
									
										71
									
								
								.env.example
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								.env.example
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
# 端口号
 | 
			
		||||
# PORT=3000
 | 
			
		||||
# 前端基础URL
 | 
			
		||||
# FRONTEND_BASE_URL=https://your-frontend-url.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 调试相关配置
 | 
			
		||||
# 启用pprof
 | 
			
		||||
# ENABLE_PPROF=true
 | 
			
		||||
 | 
			
		||||
# 数据库相关配置
 | 
			
		||||
# 数据库连接字符串
 | 
			
		||||
# SQL_DSN=mysql://user:password@tcp(127.0.0.1:3306)/dbname?parseTime=true
 | 
			
		||||
# 日志数据库连接字符串
 | 
			
		||||
# LOG_SQL_DSN=mysql://user:password@tcp(127.0.0.1:3306)/logdb?parseTime=true
 | 
			
		||||
# SQLite数据库路径
 | 
			
		||||
# SQLITE_PATH=/path/to/sqlite.db
 | 
			
		||||
# 数据库最大空闲连接数
 | 
			
		||||
# SQL_MAX_IDLE_CONNS=100
 | 
			
		||||
# 数据库最大打开连接数
 | 
			
		||||
# SQL_MAX_OPEN_CONNS=1000
 | 
			
		||||
# 数据库连接最大生命周期(秒)
 | 
			
		||||
# SQL_MAX_LIFETIME=60
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 缓存相关配置
 | 
			
		||||
# Redis连接字符串
 | 
			
		||||
# REDIS_CONN_STRING=redis://user:password@localhost:6379/0
 | 
			
		||||
# 同步频率(单位:秒)
 | 
			
		||||
# SYNC_FREQUENCY=60
 | 
			
		||||
# 内存缓存启用
 | 
			
		||||
# MEMORY_CACHE_ENABLED=true
 | 
			
		||||
# 渠道更新频率(单位:秒)
 | 
			
		||||
# CHANNEL_UPDATE_FREQUENCY=30
 | 
			
		||||
# 批量更新启用
 | 
			
		||||
# BATCH_UPDATE_ENABLED=true
 | 
			
		||||
# 批量更新间隔(单位:秒)
 | 
			
		||||
# BATCH_UPDATE_INTERVAL=5
 | 
			
		||||
 | 
			
		||||
# 任务和功能配置
 | 
			
		||||
# 更新任务启用
 | 
			
		||||
# UPDATE_TASK=true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 会话密钥
 | 
			
		||||
# SESSION_SECRET=random_string
 | 
			
		||||
 | 
			
		||||
# 其他配置
 | 
			
		||||
# 渠道测试频率(单位:秒)
 | 
			
		||||
# CHANNEL_TEST_FREQUENCY=10
 | 
			
		||||
# 生成默认token
 | 
			
		||||
# GENERATE_DEFAULT_TOKEN=false
 | 
			
		||||
# Gemini 安全设置
 | 
			
		||||
# GEMINI_SAFETY_SETTING=BLOCK_NONE
 | 
			
		||||
# Gemini版本设置
 | 
			
		||||
# GEMINI_MODEL_MAP=gemini-1.5-pro-latest:v1beta,gemini-1.5-pro-001:v1beta
 | 
			
		||||
# Cohere 安全设置
 | 
			
		||||
# COHERE_SAFETY_SETTING=NONE
 | 
			
		||||
# 是否统计图片token
 | 
			
		||||
# GET_MEDIA_TOKEN=true
 | 
			
		||||
# 是否在非流(stream=false)情况下统计图片token
 | 
			
		||||
# GET_MEDIA_TOKEN_NOT_STREAM=true
 | 
			
		||||
# 设置 Dify 渠道是否输出工作流和节点信息到客户端
 | 
			
		||||
# DIFY_DEBUG=true
 | 
			
		||||
# 设置流式一次回复的超时时间
 | 
			
		||||
# STREAMING_TIMEOUT=90
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 节点类型
 | 
			
		||||
# 如果是主节点则为master
 | 
			
		||||
# NODE_TYPE=master
 | 
			
		||||
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -6,4 +6,5 @@ upload
 | 
			
		||||
build
 | 
			
		||||
*.db-journal
 | 
			
		||||
logs
 | 
			
		||||
web/dist
 | 
			
		||||
web/dist
 | 
			
		||||
.env
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								go.mod
									
									
									
									
									
								
							@@ -63,6 +63,7 @@ require (
 | 
			
		||||
	github.com/jackc/puddle/v2 v2.2.1 // indirect
 | 
			
		||||
	github.com/jinzhu/inflection v1.0.0 // indirect
 | 
			
		||||
	github.com/jinzhu/now v1.1.5 // indirect
 | 
			
		||||
	github.com/joho/godotenv v1.5.1 // indirect
 | 
			
		||||
	github.com/json-iterator/go v1.1.12 // indirect
 | 
			
		||||
	github.com/klauspost/cpuid/v2 v2.2.4 // indirect
 | 
			
		||||
	github.com/leodido/go-urn v1.4.0 // indirect
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.sum
									
									
									
									
									
								
							@@ -111,6 +111,8 @@ github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkr
 | 
			
		||||
github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
 | 
			
		||||
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
 | 
			
		||||
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
 | 
			
		||||
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
 | 
			
		||||
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
 | 
			
		||||
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 | 
			
		||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
 | 
			
		||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								main.go
									
									
									
									
									
								
							@@ -3,10 +3,6 @@ package main
 | 
			
		||||
import (
 | 
			
		||||
	"embed"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"github.com/bytedance/gopkg/util/gopool"
 | 
			
		||||
	"github.com/gin-contrib/sessions"
 | 
			
		||||
	"github.com/gin-contrib/sessions/cookie"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"log"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"one-api/common"
 | 
			
		||||
@@ -19,6 +15,12 @@ import (
 | 
			
		||||
	"os"
 | 
			
		||||
	"strconv"
 | 
			
		||||
 | 
			
		||||
	"github.com/bytedance/gopkg/util/gopool"
 | 
			
		||||
	"github.com/gin-contrib/sessions"
 | 
			
		||||
	"github.com/gin-contrib/sessions/cookie"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/joho/godotenv"
 | 
			
		||||
 | 
			
		||||
	_ "net/http/pprof"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -29,6 +31,11 @@ var buildFS embed.FS
 | 
			
		||||
var indexPage []byte
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	err := godotenv.Load(".env")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		common.SysLog("Can't load .env file")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	common.SetupLogger()
 | 
			
		||||
	common.SysLog("New API " + common.Version + " started")
 | 
			
		||||
	if os.Getenv("GIN_MODE") != "debug" {
 | 
			
		||||
@@ -38,7 +45,7 @@ func main() {
 | 
			
		||||
		common.SysLog("running in debug mode")
 | 
			
		||||
	}
 | 
			
		||||
	// Initialize SQL Database
 | 
			
		||||
	err := model.InitDB()
 | 
			
		||||
	err = model.InitDB()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		common.FatalLog("failed to initialize database: " + err.Error())
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user