mirror of
https://github.com/linux-do/new-api.git
synced 2025-09-20 09:16:37 +08:00
feat: 添加.env配置文件和初始化环境变量
This commit is contained in:
parent
50eab6b4e4
commit
84f40b63b2
84
.env.example
Normal file
84
.env.example
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
# 端口号
|
||||||
|
PORT=3000
|
||||||
|
# 前端基础URL
|
||||||
|
FRONTEND_BASE_URL=https://your-frontend-url.com
|
||||||
|
|
||||||
|
|
||||||
|
# 调试相关配置
|
||||||
|
# 调试模式
|
||||||
|
DEBUG=true
|
||||||
|
# 启用pprof
|
||||||
|
ENABLE_PPROF=true
|
||||||
|
# 内存缓存启用
|
||||||
|
MEMORY_CACHE_ENABLED=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连接字符串
|
||||||
|
REDIS_CONN_STRING=redis://user:password@localhost:6379/0
|
||||||
|
# 同步频率(单位:秒)
|
||||||
|
SYNC_FREQUENCY=60
|
||||||
|
|
||||||
|
|
||||||
|
# 会话相关配置
|
||||||
|
# 会话秘密
|
||||||
|
SESSION_SECRET=random_string
|
||||||
|
|
||||||
|
|
||||||
|
# 任务和功能配置
|
||||||
|
# 批量更新启用
|
||||||
|
BATCH_UPDATE_ENABLED=true
|
||||||
|
# 批量更新间隔(单位:秒)
|
||||||
|
BATCH_UPDATE_INTERVAL=5
|
||||||
|
# 更新任务启用
|
||||||
|
UPDATE_TASK=true
|
||||||
|
# 禁用通道阈值
|
||||||
|
CHANNEL_DISABLE_THRESHOLD=5.0
|
||||||
|
|
||||||
|
|
||||||
|
# 其他配置
|
||||||
|
# 通道更新频率(单位:秒)
|
||||||
|
CHANNEL_UPDATE_FREQUENCY=30
|
||||||
|
# 通道测试频率(单位:秒)
|
||||||
|
CHANNEL_TEST_FREQUENCY=10
|
||||||
|
# 生成默认令牌
|
||||||
|
GENERATE_DEFAULT_TOKEN=false
|
||||||
|
# 气候模式设置
|
||||||
|
GEMINI_SAFETY_SETTING=BLOCK_NONE
|
||||||
|
# 文本生成安全设置
|
||||||
|
COHERE_SAFETY_SETTING=NONE
|
||||||
|
|
||||||
|
|
||||||
|
# 节点类型
|
||||||
|
# 如果是主节点则为true
|
||||||
|
NODE_TYPE=master
|
||||||
|
|
||||||
|
|
||||||
|
# SMTP配置(可选)
|
||||||
|
# SMTP服务器地址
|
||||||
|
SMTP_SERVER=smtp.example.com
|
||||||
|
# SMTP端口
|
||||||
|
SMTP_PORT=587
|
||||||
|
# 是否启用SMTP SSL
|
||||||
|
SMTP_SSL_ENABLED=false
|
||||||
|
# SMTP账户
|
||||||
|
SMTP_ACCOUNT=user@example.com
|
||||||
|
# SMTP发件人地址
|
||||||
|
SMTP_FROM=admin@example.com
|
||||||
|
# SMTP令牌
|
||||||
|
SMTP_TOKEN=your-smtp-token
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -6,4 +6,5 @@ upload
|
|||||||
build
|
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())
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user