mirror of
https://github.com/linux-do/new-api.git
synced 2025-11-12 09:03:42 +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
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -7,3 +7,4 @@ build
|
|||||||
*.db-journal
|
*.db-journal
|
||||||
logs
|
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/jackc/puddle/v2 v2.2.1 // indirect
|
||||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||||
github.com/jinzhu/now v1.1.5 // 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/json-iterator/go v1.1.12 // indirect
|
||||||
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
|
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
|
||||||
github.com/leodido/go-urn v1.4.0 // 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.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
||||||
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
|
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
|
||||||
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
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.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 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
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 (
|
import (
|
||||||
"embed"
|
"embed"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/bytedance/gopkg/util/gopool"
|
|
||||||
"github.com/gin-contrib/sessions"
|
|
||||||
"github.com/gin-contrib/sessions/cookie"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"one-api/common"
|
"one-api/common"
|
||||||
@@ -19,6 +15,12 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"strconv"
|
"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"
|
_ "net/http/pprof"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -29,6 +31,11 @@ var buildFS embed.FS
|
|||||||
var indexPage []byte
|
var indexPage []byte
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
err := godotenv.Load(".env")
|
||||||
|
if err != nil {
|
||||||
|
common.SysLog("Can't load .env file")
|
||||||
|
}
|
||||||
|
|
||||||
common.SetupLogger()
|
common.SetupLogger()
|
||||||
common.SysLog("New API " + common.Version + " started")
|
common.SysLog("New API " + common.Version + " started")
|
||||||
if os.Getenv("GIN_MODE") != "debug" {
|
if os.Getenv("GIN_MODE") != "debug" {
|
||||||
@@ -38,7 +45,7 @@ func main() {
|
|||||||
common.SysLog("running in debug mode")
|
common.SysLog("running in debug mode")
|
||||||
}
|
}
|
||||||
// Initialize SQL Database
|
// Initialize SQL Database
|
||||||
err := model.InitDB()
|
err = model.InitDB()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
common.FatalLog("failed to initialize database: " + err.Error())
|
common.FatalLog("failed to initialize database: " + err.Error())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user