diff options
| author | Mathias Magnusson <mathias@magnusson.space> | 2025-09-22 21:25:49 +0200 |
|---|---|---|
| committer | Mathias Magnusson <mathias@magnusson.space> | 2025-09-22 21:25:49 +0200 |
| commit | a2827963fbf6847166360be635c65dc85d20dd0d (patch) | |
| tree | 3904f4a24733c4e097eb4baba4283973e5dabdbd | |
| parent | fb59ea2f57da2abf3c7bd76feddfaf10e109d2f4 (diff) | |
| download | traedgaardstomten-a2827963fbf6847166360be635c65dc85d20dd0d.tar.gz | |
PHP FTW!
| -rw-r--r-- | compose.yaml | 16 | ||||
| -rwxr-xr-x | deploy | 2 | ||||
| -rw-r--r-- | go.mod | 3 | ||||
| -rw-r--r-- | include/defer.php | 12 | ||||
| -rw-r--r-- | include/layout.php | 20 | ||||
| -rw-r--r-- | main.go | 22 | ||||
| -rw-r--r-- | nginx.conf | 34 | ||||
| -rw-r--r-- | public/index.html | 54 | ||||
| -rw-r--r-- | public/index.php | 43 | ||||
| -rw-r--r-- | public/kontakt.html | 28 | ||||
| -rw-r--r-- | public/kontakt.php | 17 | ||||
| -rw-r--r-- | public/omdömen.html | 45 | ||||
| -rw-r--r-- | public/omdömen.php | 32 |
13 files changed, 175 insertions, 153 deletions
diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..6e78b8c --- /dev/null +++ b/compose.yaml @@ -0,0 +1,16 @@ +services: + php: + image: docker.io/php:8.2-fpm-alpine + working_dir: "/var/www/trädgårdstomten" + restart: unless-stopped + read_only: true + volumes: + - ./public:/var/www/trädgårdstomten/public:ro + - ./include:/var/www/trädgårdstomten/include:ro + nginx: + image: docker.io/nginx:1.27-alpine + restart: unless-stopped + ports: [ 127.0.1.1:8009:8009 ] # address of "garm" name, works from within containers + volumes: + - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro + - ./public:/var/www/trädgårdstomten/public:ro @@ -1,3 +1,3 @@ #!/usr/bin/env fish -tar -cz $(find -not -name . -not -path '*/[.]*' -not -name deploy -not -name README.md) | ssh garm tar -xvz -C /var/www/files/sites/trädgårdstomten/ +tar -cz $(find public/ include/ compose.yaml nginx.conf -not -name . -not -path '*/[.]*') | ssh garm tar -xvz -C /var/www/trädgårdstomten/ @@ -1,3 +0,0 @@ -module git.magnusson.space/traedgaardstomten - -go 1.24.5 diff --git a/include/defer.php b/include/defer.php new file mode 100644 index 0000000..ee01bbc --- /dev/null +++ b/include/defer.php @@ -0,0 +1,12 @@ +<?php + +function defer(&$context, $f): void { + $context ??= new class() { + public $funcs = []; + public function __destruct() + { + while (count($this->funcs)) array_pop($this->funcs)(); + } + }; + $context->funcs[] = $f; +} diff --git a/include/layout.php b/include/layout.php new file mode 100644 index 0000000..ba79595 --- /dev/null +++ b/include/layout.php @@ -0,0 +1,20 @@ +<?php + +include "defer.php"; + +function layout(&$context): void { + ?> +<!DOCTYPE html> +<html lang="sv"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Trädgårdstomten.se</title> + <link rel="stylesheet" href="/style.css"> + <script src="https://unpkg.com/hyperscript.org@0.9.14" crossorigin="anonymous" + integrity="sha384-NzchC8z9HmP/Ed8cheGl9XuSrFSkDNHPiDl+ujbHE0F0I7tWC4rUnwPXP+7IvVZv"></script> +</head> +<body> + <?php + defer($context, function () { echo "</body></html>"; }); +} diff --git a/main.go b/main.go deleted file mode 100644 index 97d40a4..0000000 --- a/main.go +++ /dev/null @@ -1,22 +0,0 @@ -package main - -import ( - "embed" - "io/fs" - "net/http" -) - -//go:embed public/* -var public embed.FS - -func must[T any](t T, err error) T { - if err != nil { - panic(err) - } - return t -} - -func main() { - http.Handle("/", http.FileServerFS(must(fs.Sub(public, "public")))) - http.ListenAndServe(":http", nil) -} diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..7c34523 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,34 @@ +server { + listen 8009; + server_name www.xn--trdgrdstomten-cfbr.se; + return 301 https://xn--trdgrdstomten-cfbr.se$request_uri; +} + +server { + listen 8009; + server_name xn--trdgrdstomten-cfbr.se; + root /var/www/trädgårdstomten/public; + set_real_ip_from 127.0.0.1/8; + gzip on; + default_type "text/html"; + + location / { + index index.php; + try_files $uri $uri/ @extless-php; + } + + location ~ \.php$ { + fastcgi_pass php:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + } + + location @extless-php { + rewrite ^(/.*)/$ $1; + if (-f $document_root$uri.php) { + rewrite ^ $uri.php last; + } + return 404; + } +} diff --git a/public/index.html b/public/index.html deleted file mode 100644 index 71f63a1..0000000 --- a/public/index.html +++ /dev/null @@ -1,54 +0,0 @@ -<!DOCTYPE html> -<html lang="sv"> -<head> - <meta charset="UTF-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Trädgårdstomten.se</title> - <link rel="stylesheet" href="/style.css"> -</head> -<body> - <header> - <section> - <p>Trädgårdstomten ✂️</p> - </section> - <nav> - <a href="/">Tjänster</a> - <a href="/omdömen.html">Omdömen</a> - <a href="/kontakt.html">Kontakt</a> - </nav> - </header> - <main> - <article> - <p style="grid-area: p1"> - Jag heter Lucas Magnusson, är 26 år gammal och har flera års yrkeserfarenhet och - är även utbildad inom trädgård. Jag har alltid varit intresserad av allt som - växer. Så tidigt som vid 3 års ålder började jag trycka ner frön i jorden. - Trädgård är och har alltid varit mitt största intresse, min hobby och det jag nu - jobbar med. - </p> - <p style="grid-area: p2"> - Sedan jag slutade gymnasiet (2018) har jag drivit eget företag. Jag har åkt runt - till trädgårdar och beskurit, klippt häck, fixat med skötsel, designat och - planterat. Jag tycker det är så kul att dela med mig av den glädjen till mina - kunder. </p> - <p style="grid-area: p3"> - Här är några jobb jag gjort, se före och efter bilder: - </p> - <img src="/images/lucas.jpg" alt="Lucas Magnusson"> - </article> - <section> - <img src="/images/före-1.jpg"> - <img src="/images/efter-1.jpg"> - </section> - <section> - <img src="/images/före-3.jpg"> - <img src="/images/efter-3.jpg"> - </section> - <section> - <img src="/images/före-4.jpg"> - <img src="/images/efter-4.jpg"> - </section> - </main> -</body> -</html> diff --git a/public/index.php b/public/index.php new file mode 100644 index 0000000..8e6f565 --- /dev/null +++ b/public/index.php @@ -0,0 +1,43 @@ +<?php require "../include/layout.php"; layout($_); ?> +<header> + <section> + <p>Trädgårdstomten ✂️</p> + </section> + <nav> + <a href="/">Tjänster</a> + <a href="/omdömen">Omdömen</a> + <a href="/kontakt">Kontakt</a> + </nav> +</header> +<main> + <article> + <p style="grid-area: p1"> + Jag heter Lucas Magnusson, är 26 år gammal och har flera års yrkeserfarenhet och + är även utbildad inom trädgård. Jag har alltid varit intresserad av allt som + växer. Så tidigt som vid 3 års ålder började jag trycka ner frön i jorden. + Trädgård är och har alltid varit mitt största intresse, min hobby och det jag nu + jobbar med. + </p> + <p style="grid-area: p2"> + Sedan jag slutade gymnasiet (2018) har jag drivit eget företag. Jag har åkt runt + till trädgårdar och beskurit, klippt häck, fixat med skötsel, designat och + planterat. Jag tycker det är så kul att dela med mig av den glädjen till mina + kunder. </p> + <p style="grid-area: p3"> + Här är några jobb jag gjort, se före och efter bilder: + </p> + <img src="/images/lucas.jpg" alt="Lucas Magnusson"> + </article> + <section> + <img src="/images/före-1.jpg"> + <img src="/images/efter-1.jpg"> + </section> + <section> + <img src="/images/före-3.jpg"> + <img src="/images/efter-3.jpg"> + </section> + <section> + <img src="/images/före-4.jpg"> + <img src="/images/efter-4.jpg"> + </section> +</main> diff --git a/public/kontakt.html b/public/kontakt.html deleted file mode 100644 index 4e8b2ac..0000000 --- a/public/kontakt.html +++ /dev/null @@ -1,28 +0,0 @@ -<!DOCTYPE html> -<html lang="sv"> -<head> - <meta charset="UTF-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Trädgårdstomten.se</title> - <link rel="stylesheet" href="/style.css"> -</head> -<body> - <header> - <section> - <p>Trädgårdstomten ✂️</p> - </section> - <nav> - <a href="/">Tjänster</a> - <a href="/omdömen.html">Omdömen</a> - <a href="/kontakt.html">Kontakt</a> - </nav> - </header> - <main> - <p>Kontakta mig gärna så hör jag av mig så fort jag kan!</p> - <br> - <p>Telefonnummer: <a href="tel:+46 76 595 99 19">+46 76 595 99 19</a></p> - <p>E-postadress: <a href="mailto:lucas253magnusson@gmail.com">lucas253magnusson@gmail.com</a></p> - </main> -</body> -</html> diff --git a/public/kontakt.php b/public/kontakt.php new file mode 100644 index 0000000..a23e0c6 --- /dev/null +++ b/public/kontakt.php @@ -0,0 +1,17 @@ +<?php require "../include/layout.php"; layout($_); ?> +<header> + <section> + <p>Trädgårdstomten ✂️</p> + </section> + <nav> + <a href="/">Tjänster</a> + <a href="/omdömen">Omdömen</a> + <a href="/kontakt">Kontakt</a> + </nav> +</header> +<main> + <p>Kontakta mig gärna så hör jag av mig så fort jag kan!</p> + <br> + <p>Telefonnummer: <a href="tel:+46 76 595 99 19">+46 76 595 99 19</a></p> + <p>E-postadress: <a href="mailto:lucas253magnusson@gmail.com">lucas253magnusson@gmail.com</a></p> +</main> diff --git a/public/omdömen.html b/public/omdömen.html deleted file mode 100644 index 1b295ea..0000000 --- a/public/omdömen.html +++ /dev/null @@ -1,45 +0,0 @@ -<!DOCTYPE html> -<html lang="sv"> -<head> - <meta charset="UTF-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Trädgårdstomten.se</title> - <link rel="stylesheet" href="/style.css"> - <script src="https://unpkg.com/hyperscript.org@0.9.14" crossorigin="anonymous" - integrity="sha384-NzchC8z9HmP/Ed8cheGl9XuSrFSkDNHPiDl+ujbHE0F0I7tWC4rUnwPXP+7IvVZv"></script> -</head> -<body> - <header> - <section> - <p>Trädgårdstomten ✂️</p> - </section> - <nav> - <a href="/">Tjänster</a> - <a href="/omdömen.html">Omdömen</a> - <a href="/kontakt.html">Kontakt</a> - </nav> - </header> - <main> - <div class="height-transition-wrapper"> - <form> - <label for="name">Namn:</label> - <input type="text" name="name" id="name"> - <br> - <label for="review">Omdöme:</label> - <textarea name="review" id="review"></textarea> - <br> - <button>Skicka!</button> - </form> - </div> - <button _=" - on click - toggle .open on previous <div/> - if (previous <div/>) match .open then - set my.innerText to 'Stäng formulär' - else - set my.innerText to 'Lämna ett omdöme' - ">Lämna ett omdöme</button> - </main> -</body> -</html> diff --git a/public/omdömen.php b/public/omdömen.php new file mode 100644 index 0000000..c4a912a --- /dev/null +++ b/public/omdömen.php @@ -0,0 +1,32 @@ +<?php require "../include/layout.php"; layout($_); ?> +<header> + <section> + <p>Trädgårdstomten ✂️</p> + </section> + <nav> + <a href="/">Tjänster</a> + <a href="/omdömen">Omdömen</a> + <a href="/kontakt">Kontakt</a> + </nav> +</header> +<main> + <div class="height-transition-wrapper"> + <form> + <label for="name">Namn:</label> + <input type="text" name="name" id="name"> + <br> + <label for="review">Omdöme:</label> + <textarea name="review" id="review"></textarea> + <br> + <button>Skicka!</button> + </form> + </div> + <button _=" + on click + toggle .open on previous <div/> + if (previous <div/>) match .open then + set my.innerText to 'Stäng formulär' + else + set my.innerText to 'Lämna ett omdöme' + ">Lämna ett omdöme</button> +</main> |
