Bläddra i källkod

Fix docker, add server config

Florian Hoss 2 år sedan
förälder
incheckning
7b62c15f89
9 ändrade filer med 29 tillägg och 18 borttagningar
  1. 8 5
      Dockerfile
  2. 3 4
      bookmark/bookmark.go
  3. 0 0
      config/bookmarks.json
  4. 1 1
      config/config.go
  5. 0 0
      config/logging.json
  6. 5 0
      config/server.json
  7. 0 0
      config/weather.json
  8. 1 1
      main.go
  9. 11 7
      server/server.go

+ 8 - 5
Dockerfile

@@ -1,11 +1,16 @@
 FROM golang:alpine AS go
+RUN apk add nodejs npm
 WORKDIR /backend
 
 COPY ./go.mod .
 RUN go mod download
 
+COPY ./package.json .
+COPY ./package-lock.json .
+RUN npm install
+
 COPY . .
-RUN npm build
+RUN npm run build
 RUN go build -o app
 
 FROM alpine AS logo
@@ -19,13 +24,11 @@ WORKDIR /app
 
 COPY --from=logo /logo/logo.txt .
 
-# copy all the configuration files and default bookmark json
-COPY --from=go /backend/bookmark/bookmarks.json ./bookmark/bookmarks.json
-COPY --from=go /backend/logging/logging.json ./logging/logging.json
-
 COPY entrypoint.sh .
 RUN chmod +x entrypoint.sh
 
+COPY --from=go /backend/config/ ./config/
+COPY --from=go /backend/templates .
 COPY --from=go /backend/static .
 COPY --from=go /backend/app .
 

+ 3 - 4
bookmark/bookmark.go

@@ -15,7 +15,6 @@ var Bookmarks []Bookmark
 
 const StorageDir = "storage/"
 const IconsDir = StorageDir + "icons/"
-const folder = "bookmark/"
 const bookmarksFile = "bookmarks.json"
 
 func init() {
@@ -33,8 +32,8 @@ func createFolderStructure() {
 	logrus.WithField("folders", folders).Debug("folders created")
 }
 
-func copyBookmarks() {
-	source, _ := os.Open(folder + bookmarksFile)
+func copyDefaultBookmarks() {
+	source, _ := os.Open("config/" + bookmarksFile)
 	defer source.Close()
 	destination, err := os.Create(StorageDir + bookmarksFile)
 	if err != nil {
@@ -50,7 +49,7 @@ func copyBookmarks() {
 func readBookmarksFile() []byte {
 	jsonFile, err := os.Open(StorageDir + bookmarksFile)
 	if err != nil {
-		copyBookmarks()
+		copyDefaultBookmarks()
 		jsonFile, err = os.Open(StorageDir + bookmarksFile)
 		if err != nil {
 			logrus.WithField("file", bookmarksFile).Error(message.CannotOpen.String())

+ 0 - 0
bookmark/bookmarks.json → config/bookmarks.json


+ 1 - 1
config/config.go

@@ -10,7 +10,7 @@ import (
 
 func AddViperConfig(name string) string {
 	file := name + ".json"
-	viper.SetConfigFile(name + "/" + file)
+	viper.SetConfigFile("config/" + file)
 	err := viper.MergeInConfig()
 	if err != nil {
 		logrus.WithField("file", name+".json").Fatal(message.CannotOpen.String())

+ 0 - 0
logging/logging.json → config/logging.json


+ 5 - 0
config/server.json

@@ -0,0 +1,5 @@
+{
+  "port": 4000,
+  "allowed_hosts": "http://localhost:4000",
+  "swagger": false
+}

+ 0 - 0
weather/weather.json → config/weather.json


+ 1 - 1
main.go

@@ -9,6 +9,6 @@ import (
 func main() {
 	logging.NewGlobalLogger()
 	weather.NewWeather()
-	s := server.NewServer(3000)
+	s := server.NewServer()
 	s.Listen()
 }

+ 11 - 7
server/server.go

@@ -4,20 +4,24 @@ import (
 	"fmt"
 	"github.com/go-chi/chi/v5"
 	"github.com/sirupsen/logrus"
+	"launchpad/config"
 	"launchpad/message"
 	"net/http"
 )
 
 type Server struct {
-	Router *chi.Mux
-	Port   int
+	Router       *chi.Mux
+	Port         int
+	AllowedHosts []string `mapstructure:"ALLOWED_HOSTS"`
 }
 
-func NewServer(port int) *Server {
-	router := chi.NewRouter()
-	setupMiddlewares(router)
-	setupRouter(router)
-	return &Server{router, port}
+func NewServer() *Server {
+	server := Server{}
+	config.ParseViperConfig(&server, config.AddViperConfig("server"))
+	server.Router = chi.NewRouter()
+	setupMiddlewares(server.Router)
+	setupRouter(server.Router)
+	return &server
 }
 
 func (server *Server) Listen() {