diff --git a/.gitignore b/.gitignore index f4a37a5..8586097 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,7 @@ -# ---> Go -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - # Test binary, build with `go test -c` *.test -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - *.jpg *.png -*.woff \ No newline at end of file +*.woff +cmd/phga.de/phga.de diff --git a/build/app/Dockerfile b/build/app/Dockerfile new file mode 100644 index 0000000..9450438 --- /dev/null +++ b/build/app/Dockerfile @@ -0,0 +1,7 @@ +FROM golang:1.16.2 + +ENV GO111MODULE=off +RUN go get -u -d g.phga.de/phga/phga.de/... +WORKDIR /go/src/g.phga.de/phga/phga.de/cmd/phga.de +RUN go build +CMD ["./phga.de"] diff --git a/build/docker-compose.yml b/build/docker-compose.yml new file mode 100644 index 0000000..3d23c72 --- /dev/null +++ b/build/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3' + +services: + tt: + build: + context: ./app + dockerfile: Dockerfile + restart: always + ports: + - 8099:8080 + volumes: + - /srv/phga.de/web/data:/go/src/g.phga.de/phga/phga.de/web/data + - /srv/phga.de/web/static/fonts:/go/src/g.phga.de/phga/phga.de/web/static/fonts \ No newline at end of file diff --git a/exhibit.service b/build/old/phga.de.service similarity index 100% rename from exhibit.service rename to build/old/phga.de.service diff --git a/exhibit.go b/cmd/phga.de/phga.de.go similarity index 73% rename from exhibit.go rename to cmd/phga.de/phga.de.go index 2052ec9..6b64a96 100644 --- a/exhibit.go +++ b/cmd/phga.de/phga.de.go @@ -9,11 +9,12 @@ import ( "io/ioutil" "log" "net/http" + "path" "regexp" ) // could be enabled after the implementation is complete. -// var t = template.Must(template.ParseFiles("tmpl/layouts/base.html", "tmpl/index.html", "tmpl/blog.html", "tmpl/about.html", "tmpl/contact.html", )) +// var t = template.Must(getTemplate("layouts/base.html", "index.html", "blog.html", "about.html", "contact.html", )) // A regex used to identify valid Img requests var validImg = regexp.MustCompile("^/info/([\\w_\\- ]+)") var exhibit Exhibition @@ -28,7 +29,7 @@ func main() { http.HandleFunc("/contact", handleContact) http.HandleFunc("/info/", handleInfo) // provide the inc directory to the useragent - http.Handle("/inc/", http.StripPrefix("/inc/", http.FileServer(http.Dir("inc")))) + http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("../../web/static")))) // listen on port 8080 (I use nginx to proxy this local server) log.Fatalln(http.ListenAndServe(":8080", nil)) } @@ -51,24 +52,24 @@ type Exhibition struct { // Funcions follow that handle the requests func handleIndex(w http.ResponseWriter, r *http.Request) { // that should also be somewhere else when there is another gallery - exhibit.parseExhibitions("./data") + exhibit.parseExhibitions("../../web/data") // Parses all required html files to provide the actual html that is shipped. - t, _ := template.ParseFiles("tmpl/layouts/index.html", "tmpl/gallery.html", "tmpl/header.html") + t, _ := getTemplate("layouts/index.html", "gallery.html", "header.html") t.Execute(w, exhibit) } func handleBlog(w http.ResponseWriter, r *http.Request) { - t, _ := template.ParseFiles("tmpl/layouts/base.html", "tmpl/soon.html", "tmpl/header.html") + t, _ := getTemplate("layouts/base.html", "soon.html", "header.html") t.Execute(w, nil) } func handleAbout(w http.ResponseWriter, r *http.Request) { - t, _ := template.ParseFiles("tmpl/layouts/base.html", "tmpl/about.html", "tmpl/header.html") + t, _ := getTemplate("layouts/base.html", "about.html", "header.html") t.Execute(w, nil) } func handleContact(w http.ResponseWriter, r *http.Request) { - t, _ := template.ParseFiles("tmpl/layouts/base.html", "tmpl/contact.html", "tmpl/header.html") + t, _ := getTemplate("layouts/base.html", "contact.html", "header.html") t.Execute(w, nil) } @@ -125,3 +126,21 @@ func (ex *Exhibition) parseExhibitions(dir string) { } } } + +func getTemplate(files ...string) (*template.Template, error) { + tmplFolder := "../../web/templates/" + for i, f := range files { + files[i] = tmplFolder + f + } + // Name has to be the basename of at least one of the template files + t := template.New(path.Base(files[0])) + // Add custom helper funcs to template + // t.Funcs(template.FuncMap{ + // "UnwrapOID": unwrapObjectID, + // "GetSurveys": getSurveys, + // }) + + t, err := t.ParseFiles(files...) + + return t, err +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..7c82fd2 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module g.phga.de/phga/phga.de + +go 1.16 diff --git a/data/dg1.json b/web/data/dg1.json similarity index 100% rename from data/dg1.json rename to web/data/dg1.json diff --git a/inc/css/main.css b/web/static/css/main.css similarity index 99% rename from inc/css/main.css rename to web/static/css/main.css index a79c65d..8f333f9 100644 --- a/inc/css/main.css +++ b/web/static/css/main.css @@ -1,5 +1,5 @@ @font-face { - src: url("/inc/fonts/HKGrotesk-Regular.woff"); + src: url("/static/fonts/HKGrotesk-Regular.woff"); font-family: hkg; } diff --git a/inc/fonts/OFL-FAQ.txt b/web/static/fonts/OFL-FAQ.txt similarity index 100% rename from inc/fonts/OFL-FAQ.txt rename to web/static/fonts/OFL-FAQ.txt diff --git a/inc/js/main.js b/web/static/js/main.js similarity index 98% rename from inc/js/main.js rename to web/static/js/main.js index dce7eeb..0cb4aa3 100644 --- a/inc/js/main.js +++ b/web/static/js/main.js @@ -101,7 +101,7 @@ function showOverlay(overlay, imgName) { window.addEventListener("resize", resize); img.addEventListener("load", () => {zoom(0.4, imgName)}); - img.src = `/inc/images/${imgName}.jpg`; + img.src = `/static/images/${imgName}.jpg`; img.id = imgName; img.alt = imgName; diff --git a/inc/js/text.js b/web/static/js/text.js similarity index 100% rename from inc/js/text.js rename to web/static/js/text.js diff --git a/inc/js/zoom.js b/web/static/js/zoom.js similarity index 100% rename from inc/js/zoom.js rename to web/static/js/zoom.js diff --git a/inc/logo/avatar.svg b/web/static/logo/avatar.svg similarity index 100% rename from inc/logo/avatar.svg rename to web/static/logo/avatar.svg diff --git a/inc/logo/logo.svg b/web/static/logo/logo.svg similarity index 100% rename from inc/logo/logo.svg rename to web/static/logo/logo.svg diff --git a/tmpl/about.html b/web/templates/about.html similarity index 89% rename from tmpl/about.html rename to web/templates/about.html index 55d5bc0..427e90f 100644 --- a/tmpl/about.html +++ b/web/templates/about.html @@ -22,7 +22,7 @@ Adresse
- Lebzeltergasse 3, 85049 Ingolstadt + Johannesstr. 7, 85049 Ingolstadt
@@ -87,7 +87,42 @@ Zeitspanne
- 01.03.2020 – heute + 01.12.2020 – heute +
+ +
+
+ Tätigkeit +
+
+ Unterstützende Lehrkraft an der Staatlichen Berufsschule 1 Ingolstadt. + Hauptsächlich mache ich dort Prüfungsvorbereitung für alle + Abschlussklassen in den IT Fachrichtungen (FI-AE / FI-SI). +
+
+
+
+ Unternehmen +
+
+ BS1IN +
+
+
+
+ Branche +
+
+ Bildung / Duale Ausbildung +
+
+

Nebentätigkeiten

+
+
+ Zeitspanne +
+
+ 01.03.2020 – 30.06.2020
@@ -97,7 +132,7 @@
Geringfügige Beschäftigung (450 € Basis) Bearbeitung von Projekten im Bereich Server (Microsoft und GNU/Linux) - und Netzwerk (Diverse Technologien). Betreuung von Bestandskund*innen + und Netzwerk (Diverse Technologien). Betreuung von Bestandskund:innen und deren IT-Umgebungen. Dokumentationserstellung.
@@ -179,7 +214,7 @@
Weiterentwicklung und Instandhaltung der bestehenden Netzwerkumgebung mit ca. 3000 - Netzteilnehmer*innen und 150+ Netzwerkkomponenten + Netzteilnehmer:innen und 150+ Netzwerkkomponenten Ausbildung der Azubis in der Abteilung Systemtechnik. Projektplanung und Durchführung in diversen Themengebieten. @@ -228,7 +263,7 @@
Schwerpunk während der Ausbildung war der Bereich - Netzwerk und die Unterstützung von Benutzer*innen vor Ort. + Netzwerk und die Unterstützung von Benutzer:innen vor Ort.
@@ -284,7 +319,7 @@
Programmier und Technikkurse für Kinder an der Technischen Hochschule Ingolstadt. Hier entwickle und betreue ich, zusammen mit anderen - Student*innen und den Mitarbeiter*innen aus dem Büro der Frauenbeauftragten, + Student:innen und den Mitarbeiter:innen aus dem Büro der Frauenbeauftragten, Workshops rund um das Programmieren von Lego Robotern oder wie man einfache Spiele in der Programmiersprache Scratch entwickelt. Die Workshops werden dann an verschiedenen Tagen wie z.B. dem Girls/Boys Day durchgeführt. @@ -305,7 +340,7 @@
Seit Beginn meines Studiums an der THI bin ich Mitglied bei unserem Verein N.I.C.E (Network International Culture Exchange). Hier steht der Austausch - zwischen Ausländischen Student*innen und Lokals bei verschiedenen Events im + zwischen Ausländischen Student:innen und Lokals bei verschiedenen Events im Vordergrund. Ich hatte außerdem schon die Möglichkeit ein Buddy für eine chinesische Austauschstudentin und einen brasilianischen Austauschstudenten zu sein und konnte Ihnen über die ersten Bürokratischen Hürden in Deutschland hinweg helfen. @@ -346,7 +381,7 @@ Abschluss
- Ausbilder*innen-Eignungsverordnung + Ausbilder:innen-Eignungsverordnung
@@ -414,7 +449,7 @@ Zertifikate und Kurse
- Seminarleiter*innen Workshop (FES), CCNA, ADA, Risikomanagement + Seminarleiter:innen Workshop (FES), CCNA, ADA, Risikomanagement (Medizin / DIN 80001, Kurs), IINS (Kurs), CCNA Exploration, MS Project 2013, Knigge
@@ -428,7 +463,7 @@
Skateboard, Schwimmen, Ausgiebige Spaziergänge, Kompetitive Online Spiele, - Definitiv zu viel an Linux und Emacs Konfigurationen herum-optimieren, + Definitiv zu viel an Linux und Emacs Konfigurationen herum-optimieren, Tastaturen, hier und da kleinere Elektrotechik Projekte realisieren, 3D-Design (Blender), 2D Design (Inkscape), FOSS
diff --git a/tmpl/blog.html b/web/templates/blog.html similarity index 100% rename from tmpl/blog.html rename to web/templates/blog.html diff --git a/tmpl/contact.html b/web/templates/contact.html similarity index 96% rename from tmpl/contact.html rename to web/templates/contact.html index 6657a85..8abe246 100644 --- a/tmpl/contact.html +++ b/web/templates/contact.html @@ -7,16 +7,16 @@ Haftungsausschluss Angaben gemäß § 5 TMG: Philip Gaber - Lebzeltergasse 3 + Johannesstr. 9 85049 Ingolstadt Kontakt: E-Mail: phga@posteo.de - Telefon: +49 841 22064128 + Telefon: +49 841 12818826 Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV: Philip Gaber - Lebzeltergasse 3 + Johannesstr. 9 85049 Ingolstadt Streitschlichtung diff --git a/tmpl/gallery.html b/web/templates/gallery.html similarity index 71% rename from tmpl/gallery.html rename to web/templates/gallery.html index 837654f..f28f193 100644 --- a/tmpl/gallery.html +++ b/web/templates/gallery.html @@ -7,12 +7,12 @@
- +
{{range $key, $val := .Pics}}
- {{$val.Name}} + {{$val.Name}}
{{end}}
diff --git a/tmpl/header.html b/web/templates/header.html similarity index 81% rename from tmpl/header.html rename to web/templates/header.html index 6861ded..ec558d1 100644 --- a/tmpl/header.html +++ b/web/templates/header.html @@ -5,7 +5,7 @@ BLOG - + diff --git a/tmpl/layouts/base.html b/web/templates/layouts/base.html similarity index 93% rename from tmpl/layouts/base.html rename to web/templates/layouts/base.html index 6096982..3435edc 100644 --- a/tmpl/layouts/base.html +++ b/web/templates/layouts/base.html @@ -9,7 +9,7 @@ PHGA - + {{block "header" .}}NO HEADER DEFINED{{end}} diff --git a/tmpl/layouts/index.html b/web/templates/layouts/index.html similarity index 81% rename from tmpl/layouts/index.html rename to web/templates/layouts/index.html index f764fd9..be85a8e 100644 --- a/tmpl/layouts/index.html +++ b/web/templates/layouts/index.html @@ -9,10 +9,10 @@ PHGA 🤓 teord - - - - + + + +