diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d19c362
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,27 @@
+# Created by https://www.toptal.com/developers/gitignore/api/go
+# Edit at https://www.toptal.com/developers/gitignore?templates=go
+
+### Go ###
+# If you prefer the allow list template instead of the deny list, see community template:
+# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
+#
+# Binaries for programs and plugins
+*.exe
+*.exe~
+*.dll
+*.so
+*.dylib
+
+# Test binary, built with `go test -c`
+*.test
+
+# Output of the go coverage tool, specifically when used with LiteIDE
+*.out
+
+# Dependency directories (remove the comment below to include it)
+# vendor/
+
+# Go workspace file
+go.work
+
+# End of https://www.toptal.com/developers/gitignore/api/go
diff --git a/Dockerfile b/Dockerfile
index ff17805..7a81673 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,10 @@
-FROM docker.io/nginx:latest
-COPY nginx.conf /etc/nginx/conf.d/default.conf
-COPY html/ /usr/share/nginx/html/
-COPY static/ /usr/share/nginx/static/
+FROM docker.io/golang:1.23 as app
+COPY src/ .
+RUN printf 'module yw5n\ngo 1.23' > go.mod && CGO_ENABLED=0 go build -o /app
+
+FROM scratch
+COPY --from=app /app /app
+COPY static/ /static/
+COPY html/ /html/
+EXPOSE 3000
+CMD ["/app"]
diff --git a/compose.yaml b/compose.yaml
index 64d7e3b..89ab5a7 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -3,4 +3,4 @@ services:
app:
build: .
ports:
- - "8000:80"
+ - "3000:3000"
diff --git a/html/about.html b/html/about.html
index 78a3433..43bbf4c 100644
--- a/html/about.html
+++ b/html/about.html
@@ -9,14 +9,14 @@
diff --git a/html/index.html b/html/index.html
index 86eb692..7071287 100644
--- a/html/index.html
+++ b/html/index.html
@@ -9,16 +9,16 @@
diff --git a/html/resume.html b/html/resume.html
index 99ab106..dccbfd4 100644
--- a/html/resume.html
+++ b/html/resume.html
@@ -9,16 +9,16 @@
diff --git a/manifests/common/app.yaml b/manifests/common/app.yaml
index 3981559..190b834 100644
--- a/manifests/common/app.yaml
+++ b/manifests/common/app.yaml
@@ -61,4 +61,4 @@ spec:
imagePullPolicy: Always
ports:
- name: http
- containerPort: 80
+ containerPort: 3000
diff --git a/nginx.conf b/nginx.conf
deleted file mode 100644
index dccd762..0000000
--- a/nginx.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-server {
- listen 80;
- listen [::]:80;
- server_name localhost;
-
- location / {
- root /usr/share/nginx/html;
- index index.html;
- }
-
- location /static/ {
- root /usr/share/nginx/;
- }
-}
diff --git a/src/main.go b/src/main.go
new file mode 100644
index 0000000..e5309d1
--- /dev/null
+++ b/src/main.go
@@ -0,0 +1,33 @@
+package main
+
+import (
+ "log"
+ "net/http"
+ "path/filepath"
+ "strings"
+)
+
+func html(w http.ResponseWriter, r *http.Request) {
+ if r.URL.Path == "/style.css" {
+ http.ServeFile(w, r, "/html/style.css")
+ return
+ }
+ if strings.HasPrefix(r.URL.Path, "/static/") {
+ http.ServeFile(w, r, r.URL.Path)
+ return
+ }
+ if r.URL.Path == "/" {
+ http.ServeFile(w, r, "/html/index.html")
+ return
+ }
+ http.ServeFile(w, r, filepath.Join("/html", r.URL.Path + ".html"))
+}
+
+func main() {
+ http.HandleFunc("/", html)
+
+ err := http.ListenAndServe(":3000", nil)
+ if err != nil {
+ log.Fatal(err)
+ }
+}
diff --git a/src/vars/vars.go b/src/vars/vars.go
new file mode 100644
index 0000000..5108d04
--- /dev/null
+++ b/src/vars/vars.go
@@ -0,0 +1,19 @@
+package vars
+
+import (
+ "path/filepath"
+)
+
+var (
+ templates string
+ static string
+ html string
+ css string
+)
+
+func init() {
+ templates = "templates"
+ static = "static"
+ html = filepath.Join(static, "html")
+ css = filepath.Join(static, "css")
+}