From f89969d98637f244b9325f16c0b3b923fb65ef59 Mon Sep 17 00:00:00 2001 From: frosty Date: Thu, 28 Aug 2025 10:48:45 -0400 Subject: work on layout and write basic nginx page --- content/_index.md | 12 +- content/blog/_index.md | 5 - content/blog/router.md | 8 -- content/music/_index.md | 14 --- content/whatnot/nginx.md | 165 ++++++++++++++++++++++++++++ hugo.toml | 20 ---- static/gentoo.png | Bin 0 -> 1055 bytes static/vim.png | Bin 0 -> 321 bytes themes/orca/assets/style.css | 55 +++++++--- themes/orca/layouts/_default/baseof.html | 1 + themes/orca/layouts/_default/blog.html | 8 -- themes/orca/layouts/_default/single.html | 16 ++- themes/orca/layouts/_default/whatnot.html | 8 ++ themes/orca/layouts/partials/footer.html | 6 + themes/orca/layouts/partials/header.html | 11 +- themes/orca/layouts/partials/post-item.html | 8 +- 16 files changed, 248 insertions(+), 89 deletions(-) delete mode 100644 content/blog/_index.md delete mode 100644 content/blog/router.md delete mode 100644 content/music/_index.md create mode 100644 content/whatnot/nginx.md create mode 100644 static/gentoo.png create mode 100644 static/vim.png delete mode 100644 themes/orca/layouts/_default/blog.html create mode 100644 themes/orca/layouts/_default/whatnot.html create mode 100644 themes/orca/layouts/partials/footer.html diff --git a/content/_index.md b/content/_index.md index 47f862e..ed56dd3 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,11 +1,11 @@ --- --- -Hi there. I'm a hobbyist network engineer, systems administrator, computer programmer, and photographer. I also enjoy [certain types of music](/music/), working with Linux (and other *nix) servers and desktops, and occasionally watching anime. +Hi there. I'm a hobbyist network engineer, systems administrator, computer programmer, and photographer. -I like to do IT projects and tinker with Linux desktops. You can catch up to what I'm up to lately at [my now page](/now.html). Most of my work is offline, but I'm slowly working on writing posts about what I've done. +You can catch up to what I'm up to lately at [my now page](/now.html). Most of my work is offline, but I'm slowly working on writing posts about what I've done. -Because I care more than most about my software setup, you can find it and more at [my uses page](/uses.html). +And because I care more than most about my software setup, you can read about it and more at [my uses page](/uses.html). ## Contact @@ -18,8 +18,4 @@ Because I care more than most about my software setup, you can find it and more ## Me Elsewhere -* Git repositories: [Personal](https://git.mending.trade/), [sourcehut](https://git.sr.ht/~auroras), [GitHub](https://github.com/frostyfalls) - -## Latest Posts - -{{< latest-posts limit=5 >}} +* Git repositories: [Personal](https://git.mending.trade/), [sourcehut](https://git.sr.ht/~auroras) diff --git a/content/blog/_index.md b/content/blog/_index.md deleted file mode 100644 index 43028d9..0000000 --- a/content/blog/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "Blog" ---- - -{{< all-posts type="blog" >}} diff --git a/content/blog/router.md b/content/blog/router.md deleted file mode 100644 index b9ee2bf..0000000 --- a/content/blog/router.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "Creating a router from scratch" -date: "2025-08-21" -tags: ["networking", "servers"] -draft: true ---- - -This is content. diff --git a/content/music/_index.md b/content/music/_index.md deleted file mode 100644 index e100ede..0000000 --- a/content/music/_index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Music" ---- - -This is the home of my music-related posts; mostly reviews of albums or posts about a live show I went to. - -The organization of this section is to be determined, expect it to change. - -## Favorites - -* The Dismemberment Plan (Change, Emergency & I, Is Terrified) -* Jimmy Eat World (Clarity, Static Prevails, Bleed American) - -{{< all-posts type="music" >}} diff --git a/content/whatnot/nginx.md b/content/whatnot/nginx.md new file mode 100644 index 0000000..c48c422 --- /dev/null +++ b/content/whatnot/nginx.md @@ -0,0 +1,165 @@ +--- +title: "nginx" +lastmod: "2025-08-28" +res: +- Home: https://nginx.org/en/index.html +- Wikipedia: https://en.wikipedia.org/wiki/Nginx +--- + +nginx is a powerful and flexible web server that can also be used as a reverse proxy. This page covers common configuration steps and tips for serving a working website. + + + +## Configuration + +All configuration happens in the `/etc/nginx` directory. Global configuration is in `nginx.conf`, but other files may be included with the `include` directive. A common use case for this is having every site in a separate file to be included. + +### Global server setup + +Below is an example of a functional global configuration to be put in `nginx.conf`. + +```nginx +user nginx nginx; +worker_processes auto; +worker_rlimit_nofile 4096; + +events { + worker_connections 1024; + use epoll; +} + +http { + include mime.types; + default_type application/octet-stream; + + charset utf-8; + server_tokens off; + + sendfile on; + sendfile_max_chunk 1M; + tcp_nopush on; + + gzip off; + + include http.d/*.conf; +} +``` + +Options such as gzip support may be enabled, but are not required for a functional server. The `include` statement makes it easier to add new sites to the server, simply by creating a new file in the `http.d` directory. + +### Simple static site + +Below is a server that simply serves static files from a root directory. + +```nginx +server { + listen 443 ssl; + listen [::]:443 ssl; + server_name host.tld; + ssl_certificate /etc/ssl/nginx/host.tld.pem; + ssl_certificate_key /etc/ssl/nginx/host.tld.key; + + root /var/www/host.tld/htdocs; + + access_log /var/log/nginx/host.tld.access.log main; + error_log /var/log/nginx/host.tld.error.log info; +} +``` + +### Reverse proxying + +When running a (public) web service, it would be wise to proxy the traffic to an internal server - primarily for load balancing, but it can also be an extra layer of security. + +nginx can proxy servers listening on both TCP and UNIX sockets. The example below shows a working site configuration for proxying a [Miniflux](https://miniflux.app/) server listening on a UNIX socket. + +```nginx +server { + listen 443 ssl; + listen [::]:443 ssl; + server_name host.tld; + ssl_certificate /etc/ssl/nginx/host.tld.pem; + ssl_certificate_key /etc/ssl/nginx/host.tld.key; + + location / { + proxy_pass http://unix:/run/miniflux/miniflux.sock; + include conf.d/proxy.conf; + } + + access_log /var/log/nginx/host.tld.access.log main; + error_log /var/log/nginx/host.tld.error.log info; +} +``` + +Ensure you have the following in `conf.d/proxy.conf` to be able to share common proxy options between all of your sites: + +```nginx +proxy_set_header Host $host; +proxy_set_header Upgrade $http_upgrade; +proxy_set_header Connection "Upgrade"; +proxy_set_header X-Real-IP $remote_addr; +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +proxy_set_header X-Forwarded-Proto $scheme; +proxy_request_buffering off; +proxy_redirect off; +``` + +Some applications may require options to be tweaked, however this covers many bases. + +### Tip: Redirecting HTTP to HTTPS automatically + +In the modern age, browsing the web with TLS is the standard, and certificates are both free and ubiquitous. That being said, it is encouraged to only serve your web content over HTTPS. You can automatically redirect a site listening on HTTP to HTTPS with the following `server` block: + +```nginx +server { + listen 80; + listen [::]:80; + server_name host.tld; + + return 301 https://$host$request_uri; +} +``` + +### Tip: Compressing with gzip + +You can increase the performance of your web server by compressing the data sent with gzip. Below is a configuration that covers a wide variety of uses; this goes in your global `http` block inside `nginx.conf`: + +```nginx +http { + # ... + gzip on; + gzip_disable "msie6"; + gzip_vary on; + gzip_proxied any; + gzip_comp_level 6; + gzip_buffers 16 8k; + gzip_http_version 1.1; + gzip_min_length 256; + gzip_types + application/atom+xml + application/geo+json + application/javascript + application/x-javascript + application/json + application/ld+json + application/manifest+json + application/rdf+xml + application/rss+xml + application/xhtml+xml + application/xml + font/eot + font/otf + font/ttf + image/svg+xml + text/css + text/javascript + text/plain + text/xml; + # ... +} +``` + +Do note `text/html` is automatically compressed, so there is no need to add it to `gzip_types`. + +## External resources + +* [https://wiki.gentoo.org/wiki/Nginx](https://wiki.gentoo.org/wiki/Nginx) diff --git a/hugo.toml b/hugo.toml index 571ab1f..37d5fcb 100644 --- a/hugo.toml +++ b/hugo.toml @@ -21,27 +21,7 @@ name = "now" pageRef = "/now.html" weight = 20 -[[menus.main]] -name = "blog" -pageRef = "/blog.html" -weight = 30 - -[[menus.main]] -name = "music" -pageRef = "/music/" -weight = 40 - [[menus.main]] name = "uses" pageRef = "/uses.html" weight = 50 - -[[menus.right_main]] -name = "source" -url = "https://git.mending.trade/www/" -weight = 10 - -[[menus.right_main]] -name = "todo" -url = "/todo.html" -weight = 20 diff --git a/static/gentoo.png b/static/gentoo.png new file mode 100644 index 0000000..07ae247 Binary files /dev/null and b/static/gentoo.png differ diff --git a/static/vim.png b/static/vim.png new file mode 100644 index 0000000..7be23f8 Binary files /dev/null and b/static/vim.png differ diff --git a/themes/orca/assets/style.css b/themes/orca/assets/style.css index 49c53ad..a4dcc49 100644 --- a/themes/orca/assets/style.css +++ b/themes/orca/assets/style.css @@ -1,45 +1,52 @@ +:root { + --header-color: purple; + --highlight-color: violet; + --background-color: #090909; + --foreground-color: white; + --ruler-color: lightgray; + --item-color: #191919; +} + body { margin: 0; - background-color: #090909; - color: white; + background-color: var(--background-color); + color: var(--foreground-color); } a { - color: violet; + color: var(--highlight-color); } header nav { - background: purple; + background: var(--header-color); padding: 4px; - color: violet; + color: var(--highlight-color); } header nav a { text-decoration: none; - color: white; + color: var(--foreground-color); } header nav a:hover { text-decoration: underline; } -header nav *.right { - float: right; -} - +header .title, +header nav div, main { - margin: 0 0.8em; - max-width: 50em; + margin: auto; + max-width: 70em; } main h1, main h2, main h3 { - border-bottom: 1px lightgray dotted; + border-bottom: 1px var(--ruler-color) dotted; } .post { - background: #191919; + background: var(--item-color); padding: 0.5em; } @@ -49,11 +56,11 @@ main h3 { hr { border: none; - border-bottom: 1px lightgray dotted; + border-bottom: 1px var(--ruler-color) dotted; } header .title { - margin: 0.5em; + margin: 0.5em auto; } header .title img { @@ -76,3 +83,19 @@ header .title h2 a { header .title h2 a:hover { text-decoration: underline; } + +pre { + padding: 4px; +} + +.res { + background-color: var(--item-color); + min-width: 200px; + float: right; +} + +.res div { + text-align: center; + background-color: var(--header-color); + padding: 4px; +} diff --git a/themes/orca/layouts/_default/baseof.html b/themes/orca/layouts/_default/baseof.html index 034b6a1..227f431 100644 --- a/themes/orca/layouts/_default/baseof.html +++ b/themes/orca/layouts/_default/baseof.html @@ -14,6 +14,7 @@ {{ block "main" . }} {{ .Content }} {{ end }} + {{ partial "footer.html" . }} diff --git a/themes/orca/layouts/_default/blog.html b/themes/orca/layouts/_default/blog.html deleted file mode 100644 index 0f73423..0000000 --- a/themes/orca/layouts/_default/blog.html +++ /dev/null @@ -1,8 +0,0 @@ -{{ define "main" }} -

{{ .Title }}

- {{ .TableOfContents }} - {{ .Content }} - {{ with .Lastmod }} -

Last modified {{ .Format "January 2nd, 2006" }}.

- {{ end }} -{{ end }} diff --git a/themes/orca/layouts/_default/single.html b/themes/orca/layouts/_default/single.html index a59ecb7..66ded2e 100644 --- a/themes/orca/layouts/_default/single.html +++ b/themes/orca/layouts/_default/single.html @@ -1,6 +1,20 @@ {{ define "main" }}

{{ .Title }}

- {{ .Content }} +{{ with .Params.res }} +
+
Resources
+ +
+{{ end }} +{{ .Summary }} +{{ .TableOfContents }} +{{ (replace .Content .Summary "") | safeHTML }} {{ with .Lastmod }}

Last modified {{ .Format "January 2nd, 2006" }}.

{{ end }} diff --git a/themes/orca/layouts/_default/whatnot.html b/themes/orca/layouts/_default/whatnot.html new file mode 100644 index 0000000..0f73423 --- /dev/null +++ b/themes/orca/layouts/_default/whatnot.html @@ -0,0 +1,8 @@ +{{ define "main" }} +

{{ .Title }}

+ {{ .TableOfContents }} + {{ .Content }} + {{ with .Lastmod }} +

Last modified {{ .Format "January 2nd, 2006" }}.

+ {{ end }} +{{ end }} diff --git a/themes/orca/layouts/partials/footer.html b/themes/orca/layouts/partials/footer.html new file mode 100644 index 0000000..a2ad329 --- /dev/null +++ b/themes/orca/layouts/partials/footer.html @@ -0,0 +1,6 @@ +
+

All content is written by frosty unless noted otherwise. If you think something is incorrect, let me know.

+Gentoo Linux +Vim: the editor +
+
diff --git a/themes/orca/layouts/partials/header.html b/themes/orca/layouts/partials/header.html index 77d2a39..666539a 100644 --- a/themes/orca/layouts/partials/header.html +++ b/themes/orca/layouts/partials/header.html @@ -1,14 +1,13 @@
diff --git a/themes/orca/layouts/partials/post-item.html b/themes/orca/layouts/partials/post-item.html index 183dd28..b20a8f8 100644 --- a/themes/orca/layouts/partials/post-item.html +++ b/themes/orca/layouts/partials/post-item.html @@ -1,11 +1,13 @@
{{ .Type }} - {{ .Title }} -
{{ .Date.Format "January 2nd, 2006" }}
+ {{ .Title }}
- {{ range $i, $t := .Params.tags }}{{ if $i }}, {{ end }}{{ $t }}{{ end }} +{{ range $i, $t := .Params.tags -}} + {{ if $i }}, {{ end -}} + {{ $t -}} +{{- end }}
-- cgit v1.2.3