54 lines
1.7 KiB
Go
54 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/fossyy/filekeeper/app"
|
|
"github.com/fossyy/filekeeper/cache"
|
|
"github.com/fossyy/filekeeper/db"
|
|
"github.com/fossyy/filekeeper/email"
|
|
"github.com/fossyy/filekeeper/logger"
|
|
"github.com/fossyy/filekeeper/middleware"
|
|
"github.com/fossyy/filekeeper/routes/admin"
|
|
"github.com/fossyy/filekeeper/routes/client"
|
|
"github.com/fossyy/filekeeper/service"
|
|
"github.com/fossyy/filekeeper/utils"
|
|
"strconv"
|
|
)
|
|
|
|
func main() {
|
|
clientAddr := fmt.Sprintf("%s:%s", utils.Getenv("SERVER_HOST"), utils.Getenv("SERVER_PORT"))
|
|
adminAddr := fmt.Sprintf("%s:%s", utils.Getenv("SERVER_HOST"), "27000")
|
|
|
|
dbUser := utils.Getenv("DB_USERNAME")
|
|
dbPass := utils.Getenv("DB_PASSWORD")
|
|
dbHost := utils.Getenv("DB_HOST")
|
|
dbPort := utils.Getenv("DB_PORT")
|
|
dbName := utils.Getenv("DB_NAME")
|
|
|
|
database := db.NewPostgresDB(dbUser, dbPass, dbHost, dbPort, dbName, db.DisableSSL)
|
|
cacheServer := cache.NewRedisServer(database)
|
|
services := service.NewService(database, cacheServer)
|
|
|
|
smtpPort, _ := strconv.Atoi(utils.Getenv("SMTP_PORT"))
|
|
mailServer := email.NewSmtpServer(utils.Getenv("SMTP_HOST"), smtpPort, utils.Getenv("SMTP_USER"), utils.Getenv("SMTP_PASSWORD"))
|
|
|
|
app.Server = app.NewClientServer(clientAddr, middleware.Handler(client.SetupRoutes()), *logger.Logger(), database, cacheServer, services, mailServer)
|
|
app.Admin = app.NewAdminServer(adminAddr, middleware.Handler(admin.SetupRoutes()), database)
|
|
|
|
go func() {
|
|
fmt.Printf("Admin Web App Listening on http://%s\n", app.Admin.Addr)
|
|
err := app.Admin.ListenAndServe()
|
|
if err != nil {
|
|
panic(err)
|
|
return
|
|
}
|
|
}()
|
|
|
|
fmt.Printf("Client Web App Listening on http://%s\n", app.Server.Addr)
|
|
err := app.Server.ListenAndServe()
|
|
if err != nil {
|
|
panic(err)
|
|
return
|
|
}
|
|
}
|