Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions common/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,28 @@ package common
import (
"flag"
"fmt"
"github.com/songquanpeng/one-api/common/config"
"github.com/songquanpeng/one-api/common/logger"
"log"
"os"
"path/filepath"

"github.com/songquanpeng/one-api/common/config"
"github.com/songquanpeng/one-api/common/logger"
)

var (
Port = flag.Int("port", 3000, "the listening port")
PrintVersion = flag.Bool("version", false, "print version and exit")
PrintHelp = flag.Bool("help", false, "print help and exit")
LogDir = flag.String("log-dir", "./logs", "specify the log directory")
TLSCertFile = flag.String("tls-cert", "", "path to TLS certificate file")
TLSKeyFile = flag.String("tls-key", "", "path to TLS key file")
)

func printHelp() {
fmt.Println("One API " + Version + " - All in one API service for OpenAI API.")
fmt.Println("Copyright (C) 2023 JustSong. All rights reserved.")
fmt.Println("GitHub: https://github.com/songquanpeng/one-api")
fmt.Println("Usage: one-api [--port <port>] [--log-dir <log directory>] [--version] [--help]")
fmt.Println("Usage: one-api [--port <port>] [--log-dir <log directory>] [--tls-cert <path>] [--tls-key <path>] [--version] [--help]")
}

func Init() {
Expand Down
26 changes: 23 additions & 3 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,29 @@ func main() {
if port == "" {
port = strconv.Itoa(*common.Port)
}
logger.SysLogf("server started on http://localhost:%s", port)
err = server.Run(":" + port)

// Check for TLS configuration - prioritize command line flags over environment variables
certFile := *common.TLSCertFile
keyFile := *common.TLSKeyFile

// If flags are not set, fallback to environment variables
if certFile == "" {
certFile = os.Getenv("TLS_CERT_FILE")
}
if keyFile == "" {
keyFile = os.Getenv("TLS_KEY_FILE")
}

// Start the server with or without TLS
if certFile != "" && keyFile != "" {
logger.SysLogf("server started with TLS on https://localhost:%s", port)
err = server.RunTLS(":"+port, certFile, keyFile)
} else {
logger.SysLogf("server started on http://localhost:%s", port)
err = server.Run(":" + port)
}

if err != nil {
logger.FatalLog("failed to start HTTP server: " + err.Error())
logger.FatalLog("failed to start server: " + err.Error())
}
}