-
Notifications
You must be signed in to change notification settings - Fork 1
/
app.go
41 lines (33 loc) · 916 Bytes
/
app.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package main
import (
"embed"
"flag"
"github.com/akitata/chatgpt-ui/chat"
"github.com/akitata/chatgpt-ui/handler"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/logger"
recover2 "github.com/gofiber/fiber/v2/middleware/recover"
"log"
)
var (
addr = flag.String("adrr", "0.0.0.0:3000", "ip and port to listen")
token = flag.String("token", "sk-token", "chatgpt api token.")
prod = flag.Bool("prod", false, "Enable prefork in Production")
proxy_url = flag.String("proxy_url", "", "http proxy addr")
)
//go:embed public/*
var publicFS embed.FS
func main() {
flag.Parse()
chat.InitChatClient(*token, *proxy_url)
app := fiber.New(fiber.Config{
Prefork: *prod,
})
app.Use(recover2.New(recover2.Config{
EnableStackTrace: true,
}))
app.Use(logger.New())
app.Use(handler.SessionHandler)
handler.InitRouter(app, publicFS)
log.Fatalln(app.Listen(*addr))
}