update routes

This commit is contained in:
2026-05-16 11:10:36 +07:00
parent f1c69c0f1f
commit f23a0c2152
7 changed files with 64 additions and 39 deletions
Vendored
BIN
View File
Binary file not shown.
+2
View File
@@ -10,6 +10,7 @@
"диалогом",
"другой",
"задать",
"запущен",
"корректный",
"Можно",
"Название",
@@ -27,6 +28,7 @@
"приложением",
"проходами",
"проходом",
"сервер",
"скрытой",
"скрытую",
"существует",
+23 -29
View File
@@ -34,11 +34,10 @@ var userFS embed.FS
var adminFS embed.FS
func main() {
// Create a listener on TCP port
lis, err := net.Listen("tcp", ":8080")
if err != nil {
log.Fatalln("Failed to listen:", err)
}
grpcGatewayHost := config.GetGrpcGatewayHost()
userClientHost := config.GetUserClientHost()
adminClientHost := config.GetAdminClientHost()
fileHost := config.GetFileHost()
// Create a gRPC server object
s := grpc.NewServer()
@@ -50,10 +49,6 @@ func main() {
log.Fatalln(err)
}
clientHost := config.GetHost()
adminClientHost := config.GetAdminHost()
fileHost := config.GetFileHost()
cleaner := cleaner.NewCleaner()
formatter := formatter.NewFormatter()
@@ -72,7 +67,7 @@ func main() {
log.Fatalln(err)
}
linkService := link.NewLinkService(clientHost)
linkService := link.NewLinkService(userClientHost)
passwordGenerator := password.NewPasswordGenerator()
@@ -90,12 +85,17 @@ func main() {
),
),
)
// Serve gRPC server
log.Println("Serving gRPC on 0.0.0.0:8080")
// Server gRPC
lis, err := net.Listen("tcp", ":8080")
if err != nil {
log.Fatalln("Failed to listen:", err)
}
go func() {
log.Fatalln(s.Serve(lis))
}()
// Client gRPC
// Create a client connection to the gRPC server we just started
// This is where the gRPC-Gateway proxies the requests
conn, err := grpc.NewClient(
@@ -122,13 +122,12 @@ func main() {
log.Fatalln("Failed to register gateway:", err)
}
// Server gRPC-Gateway
gwServer := &http.Server{
Addr: ":8090",
Addr: config.GrpcGatewayPort,
Handler: cors(gwmux),
}
// Serve gRPC-Gateway server
log.Println("Serving gRPC-Gateway on http://0.0.0.0:8090")
log.Printf("Serving %s for gRPC-Gateway\n", grpcGatewayHost)
go func() {
log.Fatalln(gwServer.ListenAndServe())
}()
@@ -141,23 +140,18 @@ func main() {
fileServerUser := http.FileServer(http.FS(subUserFS))
muxUser.Handle("/", fileServerUser)
// Serve user web server
log.Println("Serving user web on http://0.0.0.0" + config.ClientPort)
// Server user web
log.Printf("Serving %s for user web\n", userClientHost)
go func() {
log.Fatalln(http.ListenAndServe(config.ClientPort, muxUser))
log.Fatalln(http.ListenAndServe(config.UserClientPort, muxUser))
}()
go func() {
dir := "./data/story/images"
// Создаем файловый сервер
fs := http.FileServer(http.Dir(dir))
// Добавляем middleware для логирования
http.Handle("/", loggingMiddleware(fs))
log.Println("Файловый сервер запущен на http://localhost:8120")
log.Println("Обслуживается директория: " + dir)
log.Fatal(http.ListenAndServe(":8120", nil))
log.Printf("Serving %s for file server, directory: %s\n", fileHost, dir)
log.Fatal(http.ListenAndServe(config.FilePort, nil))
}()
muxAdmin := http.NewServeMux()
@@ -168,9 +162,9 @@ func main() {
fileServerAdmin := http.FileServer(http.FS(subAdminFS))
muxAdmin.Handle("/", fileServerAdmin)
// Serve admin web server
log.Printf("Serving admin web on %s\n", adminClientHost)
log.Fatalln(http.ListenAndServe(":8110", muxAdmin))
// Server admin web
log.Printf("Serving %s for admin web \n", adminClientHost)
log.Fatalln(http.ListenAndServe(config.AdminClientPort, muxAdmin))
}
func cors(h http.Handler) http.Handler {
+18 -2
View File
@@ -11,8 +11,24 @@ services:
- "8100:8100"
- "8110:8110"
- "8120:8120"
networks:
- crabs-network
volumes:
- data:/data
labels:
reproxy.1.server: "rodniki.crabs-games.art"
reproxy.1.route: "^/schedule"
reproxy.1.dest: "http://pinned_message:8210/schedule"
reproxy.1.port: "8210"
reproxy.1.ping: "/"
volumes:
data:
reproxy.2.server: "rodniki.crabs-games.art"
reproxy.2.route: "/(.*)"
reproxy.2.dest: "http://pinned_message:8220/$$1"
reproxy.2.port: "8220"
reproxy.2.ping: "/"
networks:
crabs-network:
name: crabs-network
external: true
+19 -6
View File
@@ -7,7 +7,8 @@ import (
)
const (
ClientPort = ":8100"
GrpcGatewayPort = ":8090"
UserClientPort = ":8100"
AdminClientPort = ":8110"
FilePort = ":8120"
)
@@ -20,7 +21,19 @@ func GetDBFilepath() string {
return getFilepath("DB_FILENAME", "data/db/store.db")
}
func GetAdminHost() string {
func GetGrpcGatewayHost() string {
host := os.Getenv("HOST")
if host != "" {
return host
}
ips, err := getLocalIPs()
if err != nil || len(ips) == 0 {
return "http://127.0.0.1" + GrpcGatewayPort
}
return "http://" + ips[0] + GrpcGatewayPort
}
func GetAdminClientHost() string {
host := os.Getenv("HOST")
if host != "" {
return host
@@ -32,20 +45,20 @@ func GetAdminHost() string {
return "http://" + ips[0] + AdminClientPort
}
func GetHost() string {
func GetUserClientHost() string {
host := os.Getenv("HOST")
if host != "" {
return host
}
ips, err := getLocalIPs()
if err != nil || len(ips) == 0 {
return "http://127.0.0.1" + ClientPort
return "http://127.0.0.1" + UserClientPort
}
return "http://" + ips[0] + ClientPort
return "http://" + ips[0] + UserClientPort
}
func GetFileHost() string {
host := os.Getenv("FILE_HOST")
host := os.Getenv("HOST")
if host != "" {
return host
}
+1 -1
View File
@@ -19,7 +19,7 @@ func NewDBService(filepath string) (IDBService, error) {
if err != nil {
return nil, err
}
log.Printf("load db from: %s", filepath)
log.Printf("Load db from: %s", filepath)
_, err = db.Exec("CREATE TABLE IF NOT EXISTS teams (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE NOT NULL CHECK(length(trim(name)) > 0), password TEXT);")
if err != nil {
return nil, err
@@ -25,7 +25,7 @@ func (s *fileService) Load(ctx context.Context) (*models.Story, error) {
if err != nil {
return nil, fmt.Errorf("story file %s not found", s.filepath)
}
log.Printf("load story from: %s", s.filepath)
log.Printf("Load story from: %s", s.filepath)
story := &models.Story{}
if err := json.Unmarshal(data, story); err != nil {
return nil, err