From 7c1e2fb22863a9443353312aba47e500adb94fa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Erbsh=C3=A4u=C3=9Fer?= Date: Sun, 24 May 2026 09:31:18 +0200 Subject: [PATCH] initialize backend project MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tobias Erbshäußer --- backend/.gitignore | 1 + backend/api.go | 15 +++++++++++++++ backend/backend.iml | 9 +++++++++ backend/go.mod | 3 +++ backend/main.go | 32 ++++++++++++++++++++++++++++++++ shell.nix | 5 ++++- 6 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 backend/.gitignore create mode 100644 backend/api.go create mode 100644 backend/backend.iml create mode 100644 backend/go.mod create mode 100644 backend/main.go diff --git a/backend/.gitignore b/backend/.gitignore new file mode 100644 index 0000000..485dee6 --- /dev/null +++ b/backend/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/backend/api.go b/backend/api.go new file mode 100644 index 0000000..80b4438 --- /dev/null +++ b/backend/api.go @@ -0,0 +1,15 @@ +package main + +import "net/http" + +type ApiHandler struct { +} + +func NewApiHandler() *ApiHandler { + // TODO + return &ApiHandler{} +} + +func (api *ApiHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { + // TODO +} diff --git a/backend/backend.iml b/backend/backend.iml new file mode 100644 index 0000000..eacc75a --- /dev/null +++ b/backend/backend.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/backend/go.mod b/backend/go.mod new file mode 100644 index 0000000..b5e093e --- /dev/null +++ b/backend/go.mod @@ -0,0 +1,3 @@ +module backend + +go 1.25 diff --git a/backend/main.go b/backend/main.go new file mode 100644 index 0000000..74a9a23 --- /dev/null +++ b/backend/main.go @@ -0,0 +1,32 @@ +package main + +import ( + "log" + "net/http" + "os" +) + +func main() { + port := os.Getenv("PORT") + if port == "" { + port = "8080" + } + + staticFolder := os.Getenv("STATIC_FOLDER") + if staticFolder == "" { + staticFolder = "static" + } + + fsHandler := http.FileServer(http.Dir(staticFolder)) + apiHandler := NewApiHandler() + + mux := http.NewServeMux() + mux.Handle("/", fsHandler) + mux.Handle("/api/", apiHandler) + + log.Println("Listening on port", port) + err := http.ListenAndServe(":"+port, mux) + if err != nil { + log.Fatalln(err.Error()) + } +} diff --git a/shell.nix b/shell.nix index 40eb577..5f83469 100644 --- a/shell.nix +++ b/shell.nix @@ -1,5 +1,8 @@ { pkgs ? import {} }: pkgs.mkShell { - nativeBuildInputs = with pkgs.buildPackages; [ nodejs ]; + nativeBuildInputs = with pkgs.buildPackages; [ + go + nodejs + ]; }