From aedc9def8e7b47152070dc07c69a2467c4fe8784 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Tue, 16 Dec 2025 22:47:38 +0100 Subject: [PATCH 01/18] No bash --- .github/workflows/gh-pages.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 4dd255d..ac4da4a 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -15,10 +15,6 @@ concurrency: group: pages cancel-in-progress: false -defaults: - run: - shell: bash - jobs: build: runs-on: ubuntu-latest From 25f5d8b36106ed0ef162a0520ba7c8a60326e73f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Tue, 16 Dec 2025 22:52:16 +0100 Subject: [PATCH 02/18] Use a Debian base --- .github/workflows/gh-pages.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index ac4da4a..eeaff5e 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -15,11 +15,15 @@ concurrency: group: pages cancel-in-progress: false +defaults: + run: + shell: bash + jobs: build: runs-on: ubuntu-latest container: - image: hugomods/hugo:exts + image: hugomods/hugo:debian-dart-sass-node-git-non-root env: TZ: Europe/Budapest From aaafa47bd3cd5956abe8dbc9c661ff235f19f57d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Tue, 16 Dec 2025 22:55:03 +0100 Subject: [PATCH 03/18] Try CI --- .github/workflows/gh-pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index eeaff5e..241f9b3 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -23,7 +23,7 @@ jobs: build: runs-on: ubuntu-latest container: - image: hugomods/hugo:debian-dart-sass-node-git-non-root + image: hugomods/hugo:ci env: TZ: Europe/Budapest From 9067cd12b59423b9a058d9312e35c02d1b74a731 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Tue, 16 Dec 2025 22:56:20 +0100 Subject: [PATCH 04/18] No default shell --- .github/workflows/gh-pages.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 241f9b3..5eed8f3 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -15,10 +15,6 @@ concurrency: group: pages cancel-in-progress: false -defaults: - run: - shell: bash - jobs: build: runs-on: ubuntu-latest From e7471ec0957497705be4db79cbd28ea40c5b6017 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Tue, 16 Dec 2025 23:38:23 +0100 Subject: [PATCH 05/18] Install GNU Tar --- .github/workflows/gh-pages.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 5eed8f3..34e0206 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -29,9 +29,11 @@ jobs: with: submodules: recursive fetch-depth: 0 + - name: Setup Pages id: pages uses: actions/configure-pages@v5 + - name: Cache restore id: cache-restore uses: actions/cache/restore@v5 @@ -40,6 +42,7 @@ jobs: key: hugo-${{ github.run_id }} restore-keys: hugo- + - name: Build the site run: | hugo \ @@ -47,12 +50,19 @@ jobs: --minify \ --baseURL "${{ steps.pages.outputs.base_url }}/" \ --cacheDir "${{ runner.temp }}/hugo_cache" + - name: Cache save id: cache-save uses: actions/cache/save@v5 with: path: ${{ runner.temp }}/hugo_cache key: ${{ steps.cache-restore.outputs.cache-primary-key }} + + # This is necessary to upload artifacts + - name: Install GNU Tar + run: | + apk add tar + - name: Upload artifact uses: actions/upload-pages-artifact@v4 with: From 8061d6fa0800c65b011812180e332108707c7afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Wed, 17 Dec 2025 08:42:15 +0100 Subject: [PATCH 06/18] Add umami --- hugo.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hugo.toml b/hugo.toml index b98746a..80472b2 100644 --- a/hugo.toml +++ b/hugo.toml @@ -37,6 +37,10 @@ icon = "fa-brands fa-linkedin fa-2x" weight = 3 url = "https://www.linkedin.com/in/lorantpinter/" +[params.umami] + siteID = "b6c0fdbc-a1b5-4581-bdd5-ed239d653585" + scriptURL = "https://analytics.cornucopia-machines.eu/script.js" + [caches] [caches.images] dir = ':cacheDir/images' From 28dd29795faa73ffc19dc3256646eb521ca6521c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Wed, 17 Dec 2025 08:47:00 +0100 Subject: [PATCH 07/18] Add RSS feed --- hugo.toml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/hugo.toml b/hugo.toml index 80472b2..c5bb247 100644 --- a/hugo.toml +++ b/hugo.toml @@ -18,6 +18,10 @@ name = "Blog" weight = 1 url = "/blog/" +[outputs] +home = ["html"] +blog = ["html", "rss"] + # Social links [[params.social]] name = "GitHub" @@ -37,10 +41,18 @@ icon = "fa-brands fa-linkedin fa-2x" weight = 3 url = "https://www.linkedin.com/in/lorantpinter/" +[[params.social]] +name = "RSS" +icon = "fa-solid fa-rss fa-2x" +weight = 4 +url = "https://lptr.github.io/blog/index.xml" +rel = "alternate" +type = "application/rss+xml" + [params.umami] - siteID = "b6c0fdbc-a1b5-4581-bdd5-ed239d653585" - scriptURL = "https://analytics.cornucopia-machines.eu/script.js" +siteID = "b6c0fdbc-a1b5-4581-bdd5-ed239d653585" +scriptURL = "https://analytics.cornucopia-machines.eu/script.js" [caches] - [caches.images] - dir = ':cacheDir/images' +[caches.images] +dir = ':cacheDir/images' From 9c1e122c8c3a163e6bc3c236ef3c38aff783e048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Wed, 17 Dec 2025 09:00:33 +0100 Subject: [PATCH 08/18] Only add Umami in production --- layouts/_partials/analytics/umami.html | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 layouts/_partials/analytics/umami.html diff --git a/layouts/_partials/analytics/umami.html b/layouts/_partials/analytics/umami.html new file mode 100644 index 0000000..6a9c33a --- /dev/null +++ b/layouts/_partials/analytics/umami.html @@ -0,0 +1,5 @@ + +{{- if hugo.IsProduction }} + +{{- end }} + From e829e2860de20ff92a1b4ae73a3e00ce319f3926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Wed, 17 Dec 2025 09:24:33 +0100 Subject: [PATCH 09/18] Enable Disqus --- hugo.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hugo.toml b/hugo.toml index c5bb247..f203eab 100644 --- a/hugo.toml +++ b/hugo.toml @@ -53,6 +53,10 @@ type = "application/rss+xml" siteID = "b6c0fdbc-a1b5-4581-bdd5-ed239d653585" scriptURL = "https://analytics.cornucopia-machines.eu/script.js" +[services] +[services.disqus] +shortname = "redneck-overengineering" + [caches] [caches.images] dir = ':cacheDir/images' From ef2f1349792cc298e16f235d2aa7eeac683c43d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Wed, 17 Dec 2025 09:32:54 +0100 Subject: [PATCH 10/18] Add Gravatar --- hugo.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hugo.toml b/hugo.toml index f203eab..02b8364 100644 --- a/hugo.toml +++ b/hugo.toml @@ -4,6 +4,7 @@ title = 'Redneck Overengineering' theme = 'hugo-coder' [params] +since = 2021 author = 'Lóránt Pintér' description = 'Taking farm automation to extreme levels' colorScheme = "auto" @@ -11,6 +12,7 @@ hidecolorschemetoggle = false customSCSS = ["scss/custom.scss"] commit = "https://github.com/lptr/lptr.github.io/tree/" contactEmail = "lorant@pindoro.eu" +gravatar = 'lorant@pindoro.eu' # Menu [[menu.main]] From 9e821e00027abe5972dcafab1403c99873065f56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Wed, 17 Dec 2025 22:20:29 +0100 Subject: [PATCH 11/18] Add site.webmanifest --- static/site.webmanifest | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 static/site.webmanifest diff --git a/static/site.webmanifest b/static/site.webmanifest new file mode 100644 index 0000000..8d2c0fb --- /dev/null +++ b/static/site.webmanifest @@ -0,0 +1,9 @@ +{ + "name": "Redneck Overengineering", + "short_name": "RNOE", + "description": "Taking farm automation to extreme levels", + "start_url": "/blog", + "display": "standalone", + "theme_color": "#ffffff", + "background_color": "#ffffff" +} From fba78cf6ad17d28dcf83080e17fb42b957bde501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Wed, 17 Dec 2025 22:22:24 +0100 Subject: [PATCH 12/18] Bump checkout action --- .github/workflows/gh-pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 34e0206..e666dac 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -25,7 +25,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: submodules: recursive fetch-depth: 0 From 34b186607fc51296b6b3cfbfe39e26885517d626 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Wed, 17 Dec 2025 22:26:29 +0100 Subject: [PATCH 13/18] Fix Disqus shortname --- hugo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hugo.toml b/hugo.toml index 02b8364..994273c 100644 --- a/hugo.toml +++ b/hugo.toml @@ -57,7 +57,7 @@ scriptURL = "https://analytics.cornucopia-machines.eu/script.js" [services] [services.disqus] -shortname = "redneck-overengineering" +shortname = "lptr" [caches] [caches.images] From 4f81a20dde88ae576bc3d269fd2fd8cd84467c18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Thu, 18 Dec 2025 15:42:44 +0100 Subject: [PATCH 14/18] Make blog layout "posts" --- content/blog/_index.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/content/blog/_index.md b/content/blog/_index.md index 3582a6d..c63b190 100644 --- a/content/blog/_index.md +++ b/content/blog/_index.md @@ -1,9 +1,6 @@ --- +title: Blog +type: posts cascade: - comments: true - author: "Lóránt Pintér" - ShowShareButtons: true - ShowReadingTime: true - ShowPostNavLinks: true - ShowCodeCopyButtons: true + type: posts --- From 403a17c0c931a411b005ec1b55741ecf46d5f096 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Thu, 18 Dec 2025 15:43:37 +0100 Subject: [PATCH 15/18] Remove dark mode toggle --- hugo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hugo.toml b/hugo.toml index 994273c..99fd22f 100644 --- a/hugo.toml +++ b/hugo.toml @@ -8,7 +8,7 @@ since = 2021 author = 'Lóránt Pintér' description = 'Taking farm automation to extreme levels' colorScheme = "auto" -hidecolorschemetoggle = false +hidecolorschemetoggle = true customSCSS = ["scss/custom.scss"] commit = "https://github.com/lptr/lptr.github.io/tree/" contactEmail = "lorant@pindoro.eu" From d2f0d819a681f60156d149ca71029e573822910d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Tue, 3 Feb 2026 13:24:46 +0100 Subject: [PATCH 16/18] Add .editorconfig --- .editorconfig | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.editorconfig b/.editorconfig index 452070b..1923d41 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,10 +2,7 @@ root = true [*] indent_style = space -indent_size = 4 +indent_size = 2 charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true - -[*.{json,yml,yaml}] -indent_size = 2 From 5ba3b610f1d1daaef3f65b17f714c002ba811579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Tue, 3 Feb 2026 13:25:03 +0100 Subject: [PATCH 17/18] Improve formatting --- assets/scss/custom.scss | 45 +++++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/assets/scss/custom.scss b/assets/scss/custom.scss index 0aedcd1..16f8cf2 100644 --- a/assets/scss/custom.scss +++ b/assets/scss/custom.scss @@ -1,13 +1,13 @@ @font-face { - font-family: 'Lora'; + font-family: "Lora"; font-style: normal; - src: url('../fonts/Lora-VariableFont_wght.ttf'); + src: url("../fonts/Lora-VariableFont_wght.ttf"); } @font-face { - font-family: 'Lora'; + font-family: "Lora"; font-style: italic; - src: url('../fonts/Lora-Italic-VariableFont_wght.ttf'); + src: url("../fonts/Lora-Italic-VariableFont_wght.ttf"); } .navigation-item { @@ -18,6 +18,39 @@ a { transition: none; } -.navigation a:hover { - text-decoration: none; +.navigation { + a:hover { + text-decoration: none; + } +} + +.content { + .post { + .post-content { + p { + text-align: left; + hyphens: none; + } + + figure > img { + border-radius: 1rem; + box-shadow: 0 0.6rem 1.25rem rgba(0, 0, 0, 0.25); + } + + figure > figcaption > p { + text-align: center; + } + + table { + margin: 0 auto; + tr { + th, + td { + border-left: 0 !important; + border-right: 0 !important; + } + } + } + } + } } From b48f0b237f028f96070ae713179b989e0546c59e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=B3r=C3=A1nt=20Pint=C3=A9r?= Date: Tue, 3 Feb 2026 13:25:16 +0100 Subject: [PATCH 18/18] New post about Dockero in the local devenv --- content/blog/dockero-host.md | 55 ++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 content/blog/dockero-host.md diff --git a/content/blog/dockero-host.md b/content/blog/dockero-host.md new file mode 100644 index 0000000..8c19d02 --- /dev/null +++ b/content/blog/dockero-host.md @@ -0,0 +1,55 @@ ++++ +date = '2026-02-03' +title = 'Dockero in the Local Development Environment' +summary = 'How to configure Dockero to work with alternative Docker runtimes in development' ++++ + +I've been using the excellent [Dockero](https://github.com/the-abra/dockero) library for running some Docker containers in my web applications. In production environments the applications are running on the actual Docker runtime, but in my development environment I like to use alternatives. + +Specifically, when I started using macOS again recently, I first opted for [Colima](https://github.com/abiosoft/colima) for its simplicity. However, anything involving Docker in my local development environment broke, and it took me a while to figure out what was wrong. + +It took a while to figure out that the Dockero expects the Docker Unix socket to be at `/var/run/docker.sock`, but Colima has it at `~/.colima/default/docker.sock`. + +To make Dockero work, you have to set the `DOCKER_HOST` environment variable. For my [Express](https://expressjs.com/)-based application this meant adding to `.env` (no `$HOME` variable substitution here unfortunately): + +```properties +DOCKER_HOST=unix:///Users/lptr/.colima/default/docker.sock +``` + +I also had some tests using [Jest](https://jestjs.io/) that involved executing Docker containers. Fixing those was a bit more complicated. + +I first installed [`dotenv`](https://github.com/motdotla/dotenv): + +```shell +npm install dotenv --save-dev +``` + +Then in `jest.config.ts` I added: + +```ts +import type { Config } from 'jest'; + +export default { + // ... + setupFiles: ['./jest.setup.ts'], +} as Config; +``` + +And in `jest.setup.js`: + +```ts +import { config } from 'dotenv'; + +config({ + path: '.env.test', + quiet: true, +}); +``` + +This loads a `.env.test` file before tests executed by Jest, so I can also put the `DOCKER_HOST` in there. + +I then later switched from Colima to [Rancher Desktop](https://rancherdesktop.io/). To make things work once again I had to change both `.env` files: + +```properties +DOCKER_HOST=unix:///Users/lptr/.rd/docker.sock +```