93 Commits

Author SHA1 Message Date
snyk-bot
9098e27cae fix: upgrade gatsby from 5.14.1 to 5.14.3
Snyk has created this PR to upgrade gatsby from 5.14.1 to 5.14.3.

See this package in npm:
gatsby

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2025-05-02 09:03:29 +00:00
b9d1b1ae13 Merge pull request #82 from Mastermindzh/snyk-upgrade-632e856fd2c1ab0ced167ec37b17f0fe
[Snyk] Upgrade disqus-react from 1.1.5 to 1.1.6
2025-03-21 10:23:36 +01:00
snyk-bot
0ce8af8cc7 fix: upgrade disqus-react from 1.1.5 to 1.1.6
Snyk has created this PR to upgrade disqus-react from 1.1.5 to 1.1.6.

See this package in npm:
disqus-react

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2025-03-21 08:20:39 +00:00
6eee5ac150 Merge pull request #80 from Mastermindzh/hotfix/ssh-keys
fix(keys.json): Replaced the laptop, so replaced the key
2025-02-04 14:57:38 +01:00
7e897d7aa7 fix(keys.json): Replaced the laptop, so replaced the key
I got a new Framework laptop so its new SSH key is replacing the older HP key. The HP key has been
deleted

BREAKING CHANGE: Any access to accounts with the key has been revoked, the private key is also
destroyed.
2025-02-04 14:44:39 +01:00
2e65d236d0 Merge pull request #78 from Mastermindzh/snyk-upgrade-d3218fb0ee18a876d9b4ba4acb8bd8d3
[Snyk] Upgrade react-cookie-consent from 8.0.1 to 9.0.0
2025-01-18 17:12:49 +01:00
9b34c6226b Merge pull request #69 from Mastermindzh/snyk-upgrade-27d327840a423e659dc3f9d96c645de3
[Snyk] Upgrade gatsby-remark-images from 7.13.2 to 7.14.0
2025-01-18 17:10:54 +01:00
af3497f3d8 Merge pull request #79 from Mastermindzh/content/iac-uptimekuma
Content/iac uptimekuma
2025-01-18 15:09:45 +01:00
029e59c029 content(IaC uptime monitoring): exploring IaC uptime monitoring for UptimeKuma with AutoKuma 2025-01-18 00:15:39 +01:00
snyk-bot
07b36b5b06 feat: upgrade react-cookie-consent from 8.0.1 to 9.0.0
Snyk has created this PR to upgrade react-cookie-consent from 8.0.1 to 9.0.0.

See this package in npm:
react-cookie-consent

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2025-01-10 08:14:13 +00:00
snyk-bot
084a9cdfc2 fix: upgrade gatsby-remark-images from 7.13.2 to 7.14.0
Snyk has created this PR to upgrade gatsby-remark-images from 7.13.2 to 7.14.0.

See this package in npm:
gatsby-remark-images

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2025-01-10 08:13:22 +00:00
9f05d8a715 chore(adopting-conventional-commits): updated hook file to commit-ms 2025-01-02 22:55:56 +01:00
283c25681b build(deps): Updated node to 22 and others to latest except eslint (because of airbnb) 2025-01-02 14:05:53 +01:00
2d71d81e2d Merge pull request #57 from Mastermindzh/snyk-fix-b1e1d5ed2b46d2b2c0d0af1865c7336a
[Snyk] Security upgrade gatsby from 5.13.7 to 5.14.0
2024-11-07 08:51:13 +01:00
snyk-bot
ce1d321ca5 fix: package.json & package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-WEBPACKDEVMIDDLEWARE-6476555
- https://snyk.io/vuln/SNYK-JS-FOLLOWREDIRECTS-6141137
- https://snyk.io/vuln/SNYK-JS-AXIOS-6032459
- https://snyk.io/vuln/SNYK-JS-PATHTOREGEXP-7925106
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116
- https://snyk.io/vuln/SNYK-JS-BODYPARSER-7926860
- https://snyk.io/vuln/SNYK-JS-AXIOS-6124857
- https://snyk.io/vuln/SNYK-JS-MSGPACKR-6140431
2024-11-07 06:14:28 +00:00
e0e70ef02b Merge pull request #56 from Mastermindzh/snyk-upgrade-a36a46cf08ea4ece4caa560ba2c0d49f
[Snyk] Upgrade: gatsby-remark-copy-linked-files, gatsby-remark-images, gatsby-remark-prismjs, gatsby-remark-responsive-iframe
2024-09-26 11:17:25 +02:00
snyk-bot
6a68317467 fix: upgrade multiple dependencies with Snyk
Snyk has created this PR to upgrade:
  - gatsby-remark-copy-linked-files from 6.13.1 to 6.13.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-copy-linked-files
  - gatsby-remark-images from 7.13.1 to 7.13.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-images
  - gatsby-remark-prismjs from 7.13.1 to 7.13.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-prismjs
  - gatsby-remark-responsive-iframe from 6.13.1 to 6.13.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-responsive-iframe

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-09-17 06:48:49 +00:00
bb9c60cae1 Merge pull request #55 from Mastermindzh/snyk-upgrade-54dcf2ee187f667843f5a367d6440ab6
[Snyk] Upgrade gatsby from 5.13.6 to 5.13.7
2024-08-12 08:56:21 +02:00
snyk-bot
68be00f203 fix: upgrade gatsby from 5.13.6 to 5.13.7
Snyk has created this PR to upgrade gatsby from 5.13.6 to 5.13.7.

See this package in npm:
gatsby

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-08-11 08:00:57 +00:00
4a2cda3b3a Merge pull request #53 from Mastermindzh/snyk-upgrade-b54ab616d98f54036a8343f0e7b527d9
[Snyk] Upgrade gatsby from 5.13.5 to 5.13.6
2024-08-10 14:48:43 +02:00
44f64093b7 Merge pull request #54 from Mastermindzh/snyk-upgrade-e67a34bafafef4e4c0ce6548fd03c3ad
[Snyk] Upgrade: ,
2024-08-10 14:48:25 +02:00
snyk-bot
c049550537 fix: upgrade multiple dependencies with Snyk
Snyk has created this PR to upgrade:
  - @fortawesome/fontawesome-svg-core from 6.5.2 to 6.6.0.
    See this package in npm: https://www.npmjs.com/package/@fortawesome/fontawesome-svg-core
  - @fortawesome/free-solid-svg-icons from 6.5.2 to 6.6.0.
    See this package in npm: https://www.npmjs.com/package/@fortawesome/free-solid-svg-icons

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-08-07 06:11:49 +00:00
snyk-bot
63358f9ae1 fix: upgrade gatsby from 5.13.5 to 5.13.6
Snyk has created this PR to upgrade gatsby from 5.13.5 to 5.13.6.

See this package in npm:
gatsby

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-07-17 05:32:58 +00:00
65b5a25d55 Merge pull request #52 from Mastermindzh/snyk-upgrade-3539d1b3f637236d715220fb7569b5cd
[Snyk] Upgrade @fortawesome/react-fontawesome from 0.2.1 to 0.2.2
2024-06-14 16:14:56 +02:00
snyk-bot
f388078e7b fix: upgrade @fortawesome/react-fontawesome from 0.2.1 to 0.2.2
Snyk has created this PR to upgrade @fortawesome/react-fontawesome from 0.2.1 to 0.2.2.

See this package in npm:
@fortawesome/react-fontawesome

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-06-13 18:05:09 +00:00
2001f3177f Merge pull request #50 from Mastermindzh/snyk-upgrade-97063be112e02539b5bf171f5e2b19a6
[Snyk] Upgrade @fortawesome/react-fontawesome from 0.2.0 to 0.2.1
2024-06-09 11:36:17 +02:00
ff05ed96ff Merge pull request #49 from Mastermindzh/snyk-upgrade-b093e6b1c28781ad570290496d1bea31
[Snyk] Upgrade: react, react-dom
2024-06-09 11:35:49 +02:00
f18dd8874f Merge pull request #51 from Mastermindzh/snyk-upgrade-1ec6f5ea75691615cd0ee105f6e608ea
[Snyk] Upgrade gatsby from 5.13.4 to 5.13.5
2024-06-09 11:35:28 +02:00
snyk-bot
65ee109e90 fix: upgrade gatsby from 5.13.4 to 5.13.5
Snyk has created this PR to upgrade gatsby from 5.13.4 to 5.13.5.

See this package in npm:
gatsby

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-06-08 05:58:30 +00:00
snyk-bot
9a2be8d95c fix: upgrade @fortawesome/react-fontawesome from 0.2.0 to 0.2.1
Snyk has created this PR to upgrade @fortawesome/react-fontawesome from 0.2.0 to 0.2.1.

See this package in npm:
@fortawesome/react-fontawesome

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-06-06 19:33:20 +00:00
snyk-bot
2dc8dc3ffb fix: upgrade multiple dependencies with Snyk
Snyk has created this PR to upgrade:
  - react from 18.3.0 to 18.3.1.
    See this package in npm: https://www.npmjs.com/package/react
  - react-dom from 18.3.0 to 18.3.1.
    See this package in npm: https://www.npmjs.com/package/react-dom

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-05-17 20:34:05 +00:00
dcff39ec77 Merge pull request #48 from Mastermindzh/snyk-upgrade-1bbab3d8e545e434dc062af73ae8dfe3
[Snyk] Upgrade: react, react-dom
2024-05-17 09:08:15 +02:00
snyk-bot
aced724d40 fix: upgrade multiple dependencies with Snyk
Snyk has created this PR to upgrade:
  - react from 18.2.0 to 18.3.0.
    See this package in npm: https://www.npmjs.com/package/react
  - react-dom from 18.2.0 to 18.3.0.
    See this package in npm: https://www.npmjs.com/package/react-dom

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-05-16 23:12:09 +00:00
499897f894 Merge pull request #47 from Mastermindzh/snyk-upgrade-8c92ffecc0daf89adf949526cb1bd8b6
[Snyk] Upgrade gatsby from 5.13.3 to 5.13.4
2024-05-05 13:57:17 +02:00
snyk-bot
3b8b879bb1 fix: upgrade gatsby from 5.13.3 to 5.13.4
Snyk has created this PR to upgrade gatsby from 5.13.3 to 5.13.4.

See this package in npm:
https://www.npmjs.com/package/gatsby

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-05-02 22:26:14 +00:00
04717d6035 Merge pull request #46 from Mastermindzh/snyk-upgrade-e265bd1012d82605792e96e2c403c3a6
[Snyk] Upgrade: @fortawesome/fontawesome-svg-core, @fortawesome/free-solid-svg-icons
2024-04-25 10:26:08 +02:00
snyk-bot
271152db62 fix: upgrade multiple dependencies with Snyk
Snyk has created this PR to upgrade:
  - @fortawesome/fontawesome-svg-core from 6.5.1 to 6.5.2.
    See this package in npm: https://www.npmjs.com/package/@fortawesome/fontawesome-svg-core
  - @fortawesome/free-solid-svg-icons from 6.5.1 to 6.5.2.
    See this package in npm: https://www.npmjs.com/package/@fortawesome/free-solid-svg-icons

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-04-23 19:56:27 +00:00
41ed9dd34c Merge pull request #45 from Mastermindzh/snyk-upgrade-fc7a12211cdf35904d4c5a66812b82bd
[Snyk] Upgrade gatsby from 5.13.2 to 5.13.3
2024-02-16 22:31:37 +01:00
snyk-bot
03122f846a fix: upgrade gatsby from 5.13.2 to 5.13.3
Snyk has created this PR to upgrade gatsby from 5.13.2 to 5.13.3.

See this package in npm:
https://www.npmjs.com/package/gatsby

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-02-16 17:45:28 +00:00
fe9627da68 Merge pull request #44 from Mastermindzh/snyk-upgrade-b59feb0116922e3c06897939d6fb19da
[Snyk] Upgrade: gatsby-plugin-catch-links, gatsby-plugin-feed, gatsby-plugin-google-gtag, gatsby-plugin-manifest, gatsby-plugin-react-helmet, gatsby-plugin-sass, gatsby-plugin-sharp, gatsby-plugin-sitemap, gatsby-remark-autolink-headers, gatsby-remark-copy-linked-files, gatsby-remark-images, gatsby-remark-prismjs, gatsby-remark-responsive-iframe, gatsby-remark-smartypants, gatsby-source-filesystem, gatsby-transformer-remark, gatsby-transformer-sharp
2024-02-15 14:56:56 +01:00
snyk-bot
32536e64c7 fix: upgrade multiple dependencies with Snyk
Snyk has created this PR to upgrade:
  - gatsby-plugin-catch-links from 5.13.0 to 5.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-catch-links
  - gatsby-plugin-feed from 5.13.0 to 5.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-feed
  - gatsby-plugin-google-gtag from 5.13.0 to 5.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-google-gtag
  - gatsby-plugin-manifest from 5.13.0 to 5.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-manifest
  - gatsby-plugin-react-helmet from 6.13.0 to 6.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-react-helmet
  - gatsby-plugin-sass from 6.13.0 to 6.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sass
  - gatsby-plugin-sharp from 5.13.0 to 5.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sharp
  - gatsby-plugin-sitemap from 6.13.0 to 6.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sitemap
  - gatsby-remark-autolink-headers from 6.13.0 to 6.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-autolink-headers
  - gatsby-remark-copy-linked-files from 6.13.0 to 6.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-copy-linked-files
  - gatsby-remark-images from 7.13.0 to 7.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-images
  - gatsby-remark-prismjs from 7.13.0 to 7.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-prismjs
  - gatsby-remark-responsive-iframe from 6.13.0 to 6.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-responsive-iframe
  - gatsby-remark-smartypants from 6.13.0 to 6.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-smartypants
  - gatsby-source-filesystem from 5.13.0 to 5.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-source-filesystem
  - gatsby-transformer-remark from 6.13.0 to 6.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-transformer-remark
  - gatsby-transformer-sharp from 5.13.0 to 5.13.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-transformer-sharp

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-02-14 14:53:52 +00:00
a55a136087 Merge pull request #42 from Mastermindzh/snyk-upgrade-e6dc07e363c11a9059c334318d6558db
[Snyk] Upgrade classnames from 2.4.0 to 2.5.1
2024-02-08 09:30:36 +01:00
830b9cf4d8 Merge pull request #40 from Mastermindzh/snyk-upgrade-75c0790e6ef5eeea26de138effa88d2b
[Snyk] Upgrade gatsby-plugin-image from 3.12.0 to 3.13.0
2024-02-06 09:17:11 +01:00
aa87dd0be7 Merge pull request #41 from Mastermindzh/snyk-upgrade-9f3f21f27f1c9851222ea50e86aee75b
[Snyk] Upgrade: @fortawesome/fontawesome-svg-core, @fortawesome/free-solid-svg-icons
2024-02-06 09:15:52 +01:00
snyk-bot
a86aca1a71 fix: upgrade classnames from 2.4.0 to 2.5.1
Snyk has created this PR to upgrade classnames from 2.4.0 to 2.5.1.

See this package in npm:
https://www.npmjs.com/package/classnames

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-02-05 02:36:25 +00:00
snyk-bot
cf99cbf027 fix: upgrade multiple dependencies with Snyk
Snyk has created this PR to upgrade:
  - @fortawesome/fontawesome-svg-core from 6.4.2 to 6.5.1.
    See this package in npm: https://www.npmjs.com/package/@fortawesome/fontawesome-svg-core
  - @fortawesome/free-solid-svg-icons from 6.4.2 to 6.5.1.
    See this package in npm: https://www.npmjs.com/package/@fortawesome/free-solid-svg-icons

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-02-05 02:36:21 +00:00
snyk-bot
76fa1f530d fix: upgrade gatsby-plugin-image from 3.12.0 to 3.13.0
Snyk has created this PR to upgrade gatsby-plugin-image from 3.12.0 to 3.13.0.

See this package in npm:
https://www.npmjs.com/package/gatsby-plugin-image

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-02-05 02:36:17 +00:00
34d69891ca Merge pull request #36 from Mastermindzh/snyk-upgrade-cfdb84fe2c842e80e6d3b8ac03804839
[Snyk] Upgrade classnames from 2.3.3 to 2.4.0
2024-02-02 10:48:48 +01:00
3756a9c1c8 Merge pull request #38 from Mastermindzh/snyk-upgrade-571010967024a7d8c3d133c02637ef3e
[Snyk] Upgrade: gatsby-plugin-catch-links, gatsby-plugin-feed, gatsby-plugin-google-gtag, gatsby-plugin-manifest, gatsby-plugin-react-helmet, gatsby-plugin-sass, gatsby-plugin-sharp, gatsby-plugin-sitemap, gatsby-remark-autolink-headers, gatsby-remark-copy-linked-files, gatsby-remark-images, gatsby-remark-prismjs, gatsby-remark-responsive-iframe, gatsby-remark-smartypants, gatsby-source-filesystem, gatsby-transformer-remark, gatsby-transformer-sharp
2024-02-02 10:48:25 +01:00
snyk-bot
09019de153 fix: upgrade multiple dependencies with Snyk
Snyk has created this PR to upgrade:
  - gatsby-plugin-catch-links from 5.12.0 to 5.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-catch-links
  - gatsby-plugin-feed from 5.12.3 to 5.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-feed
  - gatsby-plugin-google-gtag from 5.12.3 to 5.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-google-gtag
  - gatsby-plugin-manifest from 5.12.3 to 5.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-manifest
  - gatsby-plugin-react-helmet from 6.12.0 to 6.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-react-helmet
  - gatsby-plugin-sass from 6.12.3 to 6.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sass
  - gatsby-plugin-sharp from 5.12.3 to 5.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sharp
  - gatsby-plugin-sitemap from 6.12.3 to 6.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sitemap
  - gatsby-remark-autolink-headers from 6.12.3 to 6.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-autolink-headers
  - gatsby-remark-copy-linked-files from 6.12.0 to 6.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-copy-linked-files
  - gatsby-remark-images from 7.12.3 to 7.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-images
  - gatsby-remark-prismjs from 7.12.0 to 7.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-prismjs
  - gatsby-remark-responsive-iframe from 6.12.0 to 6.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-responsive-iframe
  - gatsby-remark-smartypants from 6.12.0 to 6.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-smartypants
  - gatsby-source-filesystem from 5.12.1 to 5.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-source-filesystem
  - gatsby-transformer-remark from 6.12.3 to 6.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-transformer-remark
  - gatsby-transformer-sharp from 5.12.3 to 5.13.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-transformer-sharp

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-01-25 10:56:12 +00:00
bc7e35b888 Merge pull request #37 from Mastermindzh/snyk-fix-989263256fa978c0a36c3a680579fe0d
[Snyk] Security upgrade gatsby from 5.12.9 to 5.13.2
2024-01-23 22:38:55 +01:00
snyk-bot
fd15d4ac18 fix: package.json & package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116
2024-01-23 14:39:23 +00:00
snyk-bot
6148d98155 fix: upgrade classnames from 2.3.3 to 2.4.0
Snyk has created this PR to upgrade classnames from 2.3.3 to 2.4.0.

See this package in npm:
https://www.npmjs.com/package/classnames

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-01-17 17:39:52 +00:00
d6a7dbefde Merge pull request #34 from Mastermindzh/snyk-upgrade-34f91a234658d267e40b17fe8b484586
[Snyk] Upgrade classnames from 2.3.2 to 2.3.3
2024-01-16 13:20:04 +01:00
snyk-bot
f543e30e42 fix: upgrade classnames from 2.3.2 to 2.3.3
Snyk has created this PR to upgrade classnames from 2.3.2 to 2.3.3.

See this package in npm:
https://www.npmjs.com/package/classnames

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-01-15 23:11:03 +00:00
4be2bf852e Merge branch 'master' of https://github.com/mastermindzh/rickvanlieshout.com 2023-12-08 09:28:27 +01:00
ca2602f883 chore: update resume 2023-12-08 09:26:09 +01:00
e3aca41540 Merge pull request #30 from Mastermindzh/snyk-upgrade-ceb618917c420568f263bf24a4a4f70e
[Snyk] Upgrade: gatsby-link, gatsby, gatsby-plugin-feed, gatsby-plugin-google-gtag, gatsby-plugin-manifest, gatsby-plugin-sass, gatsby-plugin-sharp, gatsby-plugin-sitemap, gatsby-remark-autolink-headers, gatsby-remark-images, gatsby-source-filesystem, gatsby-transformer-remark, gatsby-transformer-sharp
2023-11-19 14:29:43 +01:00
snyk-bot
73534260f7 fix: upgrade multiple dependencies with Snyk
Snyk has created this PR to upgrade:
  - gatsby-link from 5.12.0 to 5.12.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-link
  - gatsby from 5.12.8 to 5.12.9.
    See this package in npm: https://www.npmjs.com/package/gatsby
  - gatsby-plugin-feed from 5.12.2 to 5.12.3.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-feed
  - gatsby-plugin-google-gtag from 5.12.2 to 5.12.3.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-google-gtag
  - gatsby-plugin-manifest from 5.12.2 to 5.12.3.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-manifest
  - gatsby-plugin-sass from 6.12.2 to 6.12.3.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sass
  - gatsby-plugin-sharp from 5.12.2 to 5.12.3.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sharp
  - gatsby-plugin-sitemap from 6.12.2 to 6.12.3.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sitemap
  - gatsby-remark-autolink-headers from 6.12.2 to 6.12.3.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-autolink-headers
  - gatsby-remark-images from 7.12.2 to 7.12.3.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-images
  - gatsby-source-filesystem from 5.12.0 to 5.12.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-source-filesystem
  - gatsby-transformer-remark from 6.12.2 to 6.12.3.
    See this package in npm: https://www.npmjs.com/package/gatsby-transformer-remark
  - gatsby-transformer-sharp from 5.12.2 to 5.12.3.
    See this package in npm: https://www.npmjs.com/package/gatsby-transformer-sharp

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-16 19:53:27 +00:00
479a9225bc Merge pull request #29 from Mastermindzh/snyk-upgrade-ce87f98b97ed62d3285209ecee4dbfa5
[Snyk] Upgrade: gatsby, gatsby-plugin-feed, gatsby-plugin-google-gtag, gatsby-plugin-manifest, gatsby-plugin-sass, gatsby-plugin-sharp, gatsby-plugin-sitemap, gatsby-remark-autolink-headers, gatsby-remark-images, gatsby-transformer-remark, gatsby-transformer-sharp
2023-11-12 20:34:05 +01:00
snyk-bot
5dc76679ef fix: upgrade multiple dependencies with Snyk
Snyk has created this PR to upgrade:
  - gatsby from 5.12.7 to 5.12.8.
    See this package in npm: https://www.npmjs.com/package/gatsby
  - gatsby-plugin-feed from 5.12.1 to 5.12.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-feed
  - gatsby-plugin-google-gtag from 5.12.1 to 5.12.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-google-gtag
  - gatsby-plugin-manifest from 5.12.1 to 5.12.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-manifest
  - gatsby-plugin-sass from 6.12.1 to 6.12.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sass
  - gatsby-plugin-sharp from 5.12.1 to 5.12.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sharp
  - gatsby-plugin-sitemap from 6.12.1 to 6.12.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sitemap
  - gatsby-remark-autolink-headers from 6.12.1 to 6.12.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-autolink-headers
  - gatsby-remark-images from 7.12.1 to 7.12.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-images
  - gatsby-transformer-remark from 6.12.1 to 6.12.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-transformer-remark
  - gatsby-transformer-sharp from 5.12.1 to 5.12.2.
    See this package in npm: https://www.npmjs.com/package/gatsby-transformer-sharp

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-10 16:23:27 +00:00
dd293bcc63 Merge pull request #28 from Mastermindzh/snyk-upgrade-536a7746bc855587ea09d6d01bfba017
[Snyk] Upgrade gatsby from 5.12.6 to 5.12.7
2023-11-07 22:07:40 +01:00
snyk-bot
71571bd7fb fix: upgrade gatsby from 5.12.6 to 5.12.7
Snyk has created this PR to upgrade gatsby from 5.12.6 to 5.12.7.

See this package in npm:
https://www.npmjs.com/package/gatsby

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-07 20:11:45 +00:00
6a2239aa2b Merge pull request #27 from Mastermindzh/snyk-upgrade-95bbcb4bfc6a96e18faddee951d6b0d0
[Snyk] Upgrade: gatsby, gatsby-plugin-feed, gatsby-plugin-google-gtag, gatsby-plugin-manifest, gatsby-plugin-sass, gatsby-plugin-sharp, gatsby-plugin-sitemap, gatsby-remark-autolink-headers, gatsby-remark-images, gatsby-transformer-remark, gatsby-transformer-sharp
2023-10-31 09:11:51 +01:00
snyk-bot
bac1e1d9d6 fix: upgrade multiple dependencies with Snyk
Snyk has created this PR to upgrade:
  - gatsby from 5.12.5 to 5.12.6.
    See this package in npm: https://www.npmjs.com/package/gatsby
  - gatsby-plugin-feed from 5.12.0 to 5.12.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-feed
  - gatsby-plugin-google-gtag from 5.12.0 to 5.12.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-google-gtag
  - gatsby-plugin-manifest from 5.12.0 to 5.12.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-manifest
  - gatsby-plugin-sass from 6.12.0 to 6.12.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sass
  - gatsby-plugin-sharp from 5.12.0 to 5.12.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sharp
  - gatsby-plugin-sitemap from 6.12.0 to 6.12.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sitemap
  - gatsby-remark-autolink-headers from 6.12.0 to 6.12.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-autolink-headers
  - gatsby-remark-images from 7.12.0 to 7.12.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-images
  - gatsby-transformer-remark from 6.12.0 to 6.12.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-transformer-remark
  - gatsby-transformer-sharp from 5.12.0 to 5.12.1.
    See this package in npm: https://www.npmjs.com/package/gatsby-transformer-sharp

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-10-31 04:43:07 +00:00
5329fdd6a4 Merge pull request #24 from Mastermindzh/snyk-upgrade-af1b404f0e811b24d2245c736ea39fec
[Snyk] Upgrade gatsby from 5.12.4 to 5.12.5
2023-10-29 19:32:54 +01:00
82115dd07a Merge pull request #25 from Mastermindzh/feature/various-issues
Feature/various issues
2023-10-29 15:54:59 +01:00
247a9a17e0 fix: added www 2023-10-29 15:41:11 +01:00
e7fae60efb chore(release): 1.3.1 2023-10-29 15:34:10 +01:00
1c4c9d058a fix: set current url tags in both ssr and browser space 2023-10-29 15:33:28 +01:00
e065f16fb5 fix: now setting og:url correctly as well as the canonical url 2023-10-25 23:59:16 +02:00
snyk-bot
dae867c1b0 fix: upgrade gatsby from 5.12.4 to 5.12.5
Snyk has created this PR to upgrade gatsby from 5.12.4 to 5.12.5.

See this package in npm:
https://www.npmjs.com/package/gatsby

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-10-18 17:34:59 +00:00
8245e1f0d8 fix: several fixes to improve ahrefs site score 2023-10-04 23:52:29 +02:00
0e0d470ef5 Merge pull request #23 from Mastermindzh/snyk-upgrade-861d2c2a9d0f48a7a82e9adaed22da14
[Snyk] Upgrade gatsby from 5.12.3 to 5.12.4
2023-09-27 11:16:11 +02:00
snyk-bot
f13f40df35 fix: upgrade gatsby from 5.12.3 to 5.12.4
Snyk has created this PR to upgrade gatsby from 5.12.3 to 5.12.4.

See this package in npm:
https://www.npmjs.com/package/gatsby

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-09-26 22:04:09 +00:00
81dee3ad5c Merge pull request #22 from Mastermindzh/fixes/tags
Fixes/tags
2023-09-24 18:13:51 +02:00
7dc8aade23 Merge branch 'master' of github.com:Mastermindzh/rickvanlieshout.com into fixes/tags 2023-09-24 15:36:01 +02:00
7019f34005 fix: fixed tags and categories in several blog posts 2023-09-24 15:35:46 +02:00
167b70159c Merge pull request #21 from Mastermindzh/content/lego-league
Content/lego league
2023-09-24 13:31:23 +02:00
1d9ddc82fe chore(release): 1.3.0 2023-09-24 01:50:03 +02:00
92245be188 content(legoleague): fixed some writing 2023-09-24 01:49:41 +02:00
98a3eb71f5 fix(opengraph): added mandatory opengraph tags to all pages. Also fixed some other minor bugs 2023-09-24 01:25:53 +02:00
4e6b042a44 content: A new blog about the LegoLeague event held at INFORIT 2023-09-21 12:06:37 +02:00
ed28488273 Merge pull request #20 from Mastermindzh/snyk-upgrade-5eb3a4375a49780aad6a02dba66f6bd2
[Snyk] Upgrade gatsby from 5.12.1 to 5.12.3
2023-09-20 13:51:16 +02:00
snyk-bot
043d08e58f fix: upgrade gatsby from 5.12.1 to 5.12.3
Snyk has created this PR to upgrade gatsby from 5.12.1 to 5.12.3.

See this package in npm:
https://www.npmjs.com/package/gatsby

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-09-19 05:03:53 +00:00
8c08ba1c77 Merge pull request #19 from Mastermindzh/snyk-upgrade-65a92358698c6c48aa7872ba4d9c97b6
[Snyk] Upgrade: gatsby-link, gatsby, gatsby-plugin-catch-links, gatsby-plugin-feed, gatsby-plugin-google-gtag, gatsby-plugin-manifest, gatsby-plugin-react-helmet, gatsby-plugin-sass, gatsby-plugin-sharp, gatsby-plugin-sitemap, gatsby-remark-autolink-headers, gatsby-remark-copy-linked-files, gatsby-remark-images, gatsby-remark-prismjs, gatsby-remark-responsive-iframe, gatsby-remark-smartypants, gatsby-source-filesystem, gatsby-transformer-remark, gatsby-transformer-sharp
2023-09-18 14:16:07 +02:00
snyk-bot
cbaca6f4cd fix: upgrade multiple dependencies with Snyk
Snyk has created this PR to upgrade:
  - gatsby-link from 5.11.0 to 5.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-link
  - gatsby from 5.11.0 to 5.12.1.
    See this package in npm: https://www.npmjs.com/package/gatsby
  - gatsby-plugin-catch-links from 5.11.0 to 5.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-catch-links
  - gatsby-plugin-feed from 5.11.0 to 5.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-feed
  - gatsby-plugin-google-gtag from 5.11.0 to 5.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-google-gtag
  - gatsby-plugin-manifest from 5.11.0 to 5.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-manifest
  - gatsby-plugin-react-helmet from 6.11.0 to 6.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-react-helmet
  - gatsby-plugin-sass from 6.11.0 to 6.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sass
  - gatsby-plugin-sharp from 5.11.0 to 5.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sharp
  - gatsby-plugin-sitemap from 6.11.0 to 6.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-plugin-sitemap
  - gatsby-remark-autolink-headers from 6.11.0 to 6.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-autolink-headers
  - gatsby-remark-copy-linked-files from 6.11.0 to 6.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-copy-linked-files
  - gatsby-remark-images from 7.11.0 to 7.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-images
  - gatsby-remark-prismjs from 7.11.0 to 7.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-prismjs
  - gatsby-remark-responsive-iframe from 6.11.1 to 6.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-responsive-iframe
  - gatsby-remark-smartypants from 6.11.0 to 6.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-remark-smartypants
  - gatsby-source-filesystem from 5.11.0 to 5.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-source-filesystem
  - gatsby-transformer-remark from 6.11.0 to 6.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-transformer-remark
  - gatsby-transformer-sharp from 5.11.0 to 5.12.0.
    See this package in npm: https://www.npmjs.com/package/gatsby-transformer-sharp

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-09-16 17:43:26 +00:00
5eee2a07a9 Merge pull request #17 from Mastermindzh/snyk-upgrade-31b2da5766b157ef67cde5dbf79bd1e6
[Snyk] Upgrade gatsby-plugin-image from 3.11.0 to 3.12.0
2023-09-15 09:28:58 +02:00
snyk-bot
05662d2c49 fix: upgrade gatsby-plugin-image from 3.11.0 to 3.12.0
Snyk has created this PR to upgrade gatsby-plugin-image from 3.11.0 to 3.12.0.

See this package in npm:
https://www.npmjs.com/package/gatsby-plugin-image

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-09-15 03:06:12 +00:00
372510262b Merge pull request #16 from Mastermindzh/snyk-upgrade-535db44e27f824341f58509c92f4a4ec
[Snyk] Upgrade: @fortawesome/fontawesome-svg-core, @fortawesome/free-solid-svg-icons
2023-08-24 14:21:37 +02:00
snyk-bot
10cbe94397 fix: upgrade multiple dependencies with Snyk
Snyk has created this PR to upgrade:
  - @fortawesome/fontawesome-svg-core from 6.4.0 to 6.4.2.
    See this package in npm: https://www.npmjs.com/package/@fortawesome/fontawesome-svg-core
  - @fortawesome/free-solid-svg-icons from 6.4.0 to 6.4.2.
    See this package in npm: https://www.npmjs.com/package/@fortawesome/free-solid-svg-icons

See this project in Snyk:
https://app.snyk.io/org/mastermindzh/project/6eb54845-2bb5-45e0-80e2-6b3a1c53eee6?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-08-24 07:35:14 +00:00
6f9bb31ad4 Merge pull request #15 from Mastermindzh/feature/signing-key
feat: added my public keys to a keys.json file in the root of the web…
2023-06-29 23:05:53 +02:00
8a2f19e8a9 feat: added my public keys to a keys.json file in the root of the website 2023-06-29 22:57:27 +02:00
73 changed files with 16579 additions and 10225 deletions

View File

@@ -19,7 +19,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 16.14.0
node-version: 22.12.0
- name: Install dependencies
run: npm ci

15
.vscode/settings.json vendored
View File

@@ -1,15 +1,26 @@
{
"cSpell.words": [
"codepen",
"disqus",
"fontawesome",
"fortawesome",
"frontmatter",
"slsw"
"Lieshoutt",
"Rickvan",
"rickvanlieshoutcom",
"slsw",
"soundcloud",
"todos",
"weibo"
],
"grammarly.selectors": [
{
"language": "markdown",
"scheme": "file"
}
]
],
"sonarlint.connectedMode.project": {
"connectionId": "public-sonarcloud",
"projectKey": "Mastermindzh_rickvanlieshout.com"
}
}

View File

@@ -2,6 +2,50 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
### [1.3.1](https://github.com/mastermindzh/rickvanlieshout.com/compare/v1.3.0...v1.3.1) (2023-10-29)
### Bug Fixes
* fixed tags and categories in several blog posts ([7019f34](https://github.com/mastermindzh/rickvanlieshout.com/commits/7019f340050c04eed6065c4ddd4582d6b2d22b9b))
* now setting og:url correctly as well as the canonical url ([e065f16](https://github.com/mastermindzh/rickvanlieshout.com/commits/e065f16fb505eb8f9e5acef6f92c5a016e276ebc))
* set current url tags in both ssr and browser space ([1c4c9d0](https://github.com/mastermindzh/rickvanlieshout.com/commits/1c4c9d058a7382ebe52dd1b188b22ca8d7a185c3))
* several fixes to improve ahrefs site score ([8245e1f](https://github.com/mastermindzh/rickvanlieshout.com/commits/8245e1f0d8854cd6a727a8b837ee3259ee040d48))
* upgrade gatsby from 5.12.1 to 5.12.3 ([043d08e](https://github.com/mastermindzh/rickvanlieshout.com/commits/043d08e58f9962688bd615b8e8d535e4111e7aa2))
* upgrade gatsby from 5.12.3 to 5.12.4 ([f13f40d](https://github.com/mastermindzh/rickvanlieshout.com/commits/f13f40df35cc0230ddcf7766a7b2e73477696439))
## [1.3.0](https://github.com/mastermindzh/rickvanlieshout.com/compare/v1.2.3...v1.3.0) (2023-09-23)
### Features
* added my public keys to a keys.json file in the root of the website ([8a2f19e](https://github.com/mastermindzh/rickvanlieshout.com/commits/8a2f19e8a9abec4a3529c08cd06cf7e042e67725))
### Bug Fixes
* 404 on lego.com page of removed product ([0dc9773](https://github.com/mastermindzh/rickvanlieshout.com/commits/0dc97732e81458b39cccc6c100516e05f245697f))
* added links to orphaned categories and tags pages ([0e9946c](https://github.com/mastermindzh/rickvanlieshout.com/commits/0e9946c92eb5022961a9f457ce82636a60e0e9ee))
* added opengraph tags ([e6ebd5b](https://github.com/mastermindzh/rickvanlieshout.com/commits/e6ebd5b79f17ac41e4e1954857da8cd8ab50224a))
* **opengraph:** added mandatory opengraph tags to all pages. Also fixed some other minor bugs ([98a3eb7](https://github.com/mastermindzh/rickvanlieshout.com/commits/98a3eb71f55c17da7964d6c5014e599a459329e1))
* package.json & package-lock.json to reduce vulnerabilities ([9dc1f62](https://github.com/mastermindzh/rickvanlieshout.com/commits/9dc1f6275fdd1f6fe5fd9485f554345a1df268ec))
* remove noindex and noindex follow tags ([d72e301](https://github.com/mastermindzh/rickvanlieshout.com/commits/d72e30196df5ca6944ae6dde7b4417c9efeb38d3))
* removed nofollow links to my own website ([bebfe16](https://github.com/mastermindzh/rickvanlieshout.com/commits/bebfe1638e9ef1dc35b0b0fd6e8907edd344951f))
* several pages linked to redirected urls. This replaces those links with the destination instead ([b5126bf](https://github.com/mastermindzh/rickvanlieshout.com/commits/b5126bf051dcdfe7159d24eb2cddeb3f8e1ceee8))
* solve 404 on front-thumb image ([5344b98](https://github.com/mastermindzh/rickvanlieshout.com/commits/5344b98f8e37fb661a1ec70aaba1c5ef92cfa370))
* updated npm packages and pinned unist-util-find to 1.0.2 to fix build errors ([5ea6e0a](https://github.com/mastermindzh/rickvanlieshout.com/commits/5ea6e0a20f9c8aff33a9ae18143e6f8fd3634127))
* upgrade gatsby-plugin-image from 3.11.0 to 3.12.0 ([05662d2](https://github.com/mastermindzh/rickvanlieshout.com/commits/05662d2c492ae70575947b9327d64fa642a63698))
* upgrade multiple dependencies with Snyk ([cbaca6f](https://github.com/mastermindzh/rickvanlieshout.com/commits/cbaca6f4cd9ba9ff290fcb2ede5a81d8c0e3f285))
* upgrade multiple dependencies with Snyk ([10cbe94](https://github.com/mastermindzh/rickvanlieshout.com/commits/10cbe94397c43f80ff28cb5c81126fc3af632547))
* upgrade multiple dependencies with Snyk ([3ef5ca5](https://github.com/mastermindzh/rickvanlieshout.com/commits/3ef5ca570b05e0cbc6c670eb9df179b1be1dba9c))
* upgrade multiple dependencies with Snyk ([46c12f8](https://github.com/mastermindzh/rickvanlieshout.com/commits/46c12f8c98ab8beb7b6be040fa73761eb73b2dd9))
### New content
* A new blog about the LegoLeague event held at INFORIT ([4e6b042](https://github.com/mastermindzh/rickvanlieshout.com/commits/4e6b042a44d9a9f5d68dba653c1472be80d21ce9))
* **legoleague:** fixed some writing ([92245be](https://github.com/mastermindzh/rickvanlieshout.com/commits/92245be1883f7e136dae7888a64a472cf6597180))
### [1.2.3](https://github.com/mastermindzh/rickvanlieshout.com/compare/v1.2.2...v1.2.3) (2023-04-19)
### Bug Fixes

View File

@@ -1,6 +1,6 @@
# Rickvanlieshout.com
This is the repository for my personal blog/website [rickvanlieshout.com](https://rickvanlieshout.com).
This is the repository for my personal blog/website [rickvanlieshout.com](https://www.rickvanlieshout.com).
[![Build Status](https://ci.mastermindzh.tech/api/badges/Mastermindzh/rickvanlieshout.com/status.svg)](https://ci.mastermindzh.tech/Mastermindzh/rickvanlieshout.com)

View File

@@ -7,8 +7,8 @@ A list of categories used in the blog
| ----------- | -------------------------------------------------------- |
| blog | random blog stuff |
| IOT | anything to do with IOT |
| Homelab | anything to do with my homelab (including smart home...) |
| Development | anything to do with regular development |
| homelab | anything to do with my homelab (including smart home...) |
| development | anything to do with regular development |
| exploits | blogs about exploits and bugs in open-source software |
| Lego | blogs about Lego |
| lego | blogs about Lego |
| house | Content about the place I live |

View File

@@ -46,7 +46,7 @@
"author": {
"name": "Rick van Lieshout",
"photo": "/content/me.png",
"bio": "I'm a passionate software architect that bifurcates his love between great software development and leading others to learn and adopt new things.",
"bio": "I'm a passionate CTO who bifurcates his love between great software development and leading others in their continuous improvement journeys",
"contacts": {
"email": "info@rickvanlieshout.com",
"github": "mastermindzh",

View File

@@ -20,14 +20,14 @@ template: "page"
_Always_<br />
A fair share of my private work is done through open-source media. I don't have a portfolio but I have a [Github](https://github.com/mastermindzh) where I share most things.
**Tech lead / CTO at INFORIT**<br />
**CTO at Frontliners (previously INFORIT)**<br />
_2018 - Now_<br />
At INFORIT I am responsible for the entire technical architecture of the new TFX stack that I launched shortly after 2018. This involves setting up and maintaining a modern event-based microservice architecture on a Kubernetes-based SaaS cloud solution and migrating to modern programming languages such as dotnetcore and React.
At Frontliners I am responsible for the entire technical architecture of the new TFX stack that I launched shortly after 2018. This involves setting up and maintaining a modern event-based microservice architecture on a Kubernetes-based SaaS cloud solution and migrating to modern programming languages such as dotnetcore and React.
The other main responsibility I have is creating and maintaining a coherent team of lead developers by sharing knowledge, making decisions, and empowering leads to explore technologies outside of their comfort zone.
At INFORIT I also help with the recruitment of new employees, setting up and maintaining agile strategies including proper test management, and general software development.
During my time at INFORIT, we've grown from 5-7 in-house developers to 10, full-sized, SCRUM teams.
At Frontliners I also help with the recruitment of new employees, setting up and maintaining agile strategies including proper test management, and general software development.
During my time at Frontliners, we've grown from 5-7 in-house developers to 10, full-sized, SCRUM teams.
Most relevant technologies used: dotnetcore, React, Angular, Kafka, RabbitMQ, Mongo, PostgreSQL, Growthbook, Docker & Kubernetes
@@ -64,6 +64,7 @@ Building an interactive and fully customizable dashboard on top of VAA's existin
I'll list some of the training courses I've had whilst working.
Some of these have (official) certificates, some don't, but all have brought value and knowledge.
- Young Executive Program (YEP) - [De Baak](https://debaak.nl/trainingen/young-executives-program)
- Hiring & interview training ([icm.nl](https://www.icm.nl/opleidingen-en-trainingen/hrm/selectiegesprekken-voeren/))
- Conversation techniques & de-escalation ([TIJDwinst.com](https://gesprekstechnieken.com/cursus-gesprekstechnieken/)](<https://gesprekstechnieken.com/cursus-gesprekstechnieken/>)).
- Kubernetes (NobleProg Certification Kubernetes on Azure (AKS), 26 August 2019 - 27 August 2019)

View File

@@ -2,7 +2,7 @@
title: "Raspberry pi cluster Step 1: Shopping"
date: "2014-09-05 23:00"
template: "post"
category: "Homelab"
category: "homelab"
tags:
- "raspberry"
- "cluster"

View File

@@ -2,7 +2,7 @@
title: "Raspberry pi cluster Step 2: Assembling the hardware"
date: "2014-09-10"
template: "post"
category: "Homelab"
category: "homelab"
tags:
- "raspberry"
- "cluster"
@@ -14,7 +14,7 @@ socialImage: "./media/improvising.jpg"
So today I finally received the required parts to finish up my Raspberry pi cluster and I was **extremely** excited! To share this excitement with you lot here's a picture of all the parts I'll be using:
![picture of all the parts spread on the mat](./media/pi_overview_full.JPG "all the bits!")
![picture of all the parts spread on the mat](./media/pi_overview_full.jpg "all the bits!")
I began by building the Raspberry pi "tower", sadly I forgot to take a picture with the DSLR so I only have this one cell image to show you guys:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

View File

@@ -2,7 +2,7 @@
title: "Raspberry pi cluster Step 3: Installing the OS"
date: "2014-09-14"
template: "post"
category: "Homelab"
category: "homelab"
tags:
- "raspberry"
- "cluster"

View File

@@ -2,7 +2,7 @@
title: "Raspberry pi cluster Step 4: Setting up the master node"
date: "2014-09-17"
template: "post"
category: "Homelab"
category: "homelab"
tags:
- "raspberry"
- "cluster"

View File

@@ -2,14 +2,14 @@
title: "Raspberry pi cluster step 5: Expanding the cluster"
date: "2014-09-19"
template: "post"
category: "Homelab"
category: "homelab"
tags:
- "raspberry"
- "cluster"
- "pi"
description: "Today's blog post will be about expanding the cluster with more nodes."
disqusId: "6"
socialImage: "./media/pidark_full.JPG"
socialImage: "./media/pidark.jpg"
---
In today's post we'll have a look at expanding the cluster with more nodes! We will have a look at how to clone them and how we can set up a universal login using ssh keys.
@@ -40,7 +40,7 @@ sudo nano /etc/network/interfaces
After setting up all 4 pi's and plugging it all in you should see all 4 led's light up on the pi's. If this is not the case you might've forgotten to change either the ip address or the hostname. (which will lead to a conflict resulting in one of them not having internet access). Mine now looks like this (note the dramatic night picture taken at 10 past 12 am):
![picture of 4 Raspberry pi's stacked on a network switch serving as a cluster](./media/pidark_full.JPG "It's not quite RGB but it's beautiful!")
![picture of 4 Raspberry pi's stacked on a network switch serving as a cluster](./media/pidark.jpg "It's not quite RGB but it's beautiful!")
## Logging in to the nodes with ssh keys

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

View File

@@ -2,12 +2,12 @@
title: "The pi cluster, home automation & kickstarter monitoring"
date: "2014-09-27"
template: "post"
category: "Homelab"
category: "homelab"
tags:
- "python"
- "raspberry"
- "pi"
- "home automation"
- "home-automation"
description: "Today's blog is about home automation."
disqusId: "7"
---

View File

@@ -50,7 +50,7 @@ We also started working on the controllers. The final design will be compromised
![back](./media/back.jpg "Back of the controller")
![bottom](./media/bottom.jpg "bottom of the controller")
![controller_pot](./media/controller_pot.jpg "potentiometer used inside the controller")
![front](./media/Front_thumb.png "The front of the controller with the logo")
![front](./media/front-thumb.png "The front of the controller with the logo")
![inside](./media/inside.jpg "the inside of an assembled controller")
![left_side](./media/left_side.jpg "The left side of the controller")
![right_side](./media/right_side.jpg "The right side of the controller")

View File

@@ -11,23 +11,23 @@ disqusId: "17"
socialImage: "./media/wiring1.jpg"
---
In the 3rd part of my TekTree project I'll show you guys how to wire everything. This time I even used separate colours for the power,ground and signal wires. So no more complaining ! ^\_^ All in all I think the result looks absolutely wicked. Even without the arduino case which has yet to come in the mail. (and probably won't fit)
In the 3rd part of my TekTree project I'll show you guys how to wire everything. This time I even used separate colours for the power, ground and signal wires. So no more complaining! ^\_^ All in all I think the result looks absolutely wicked. Even without the Arduino case which has yet to come in the mail. (and probably won't fit)
## Wiring part 1 - schematics
Before I started to jam wires in every nook and cranny I could find I had to come up with a plan. Most of that plan has been put into a "Fritzing" sketch which can be found below and on [Github](https://github.com/Mastermindzh/TekTree). The only thing I couldn't figure out how to model on fritzing is the actual christmas tree and the power cord for the arduino.
Before I started to jam wires in every nook and cranny I could find I had to come up with a plan. Most of that plan has been put into a "Fritzing" sketch which can be found below and on [Github](https://github.com/Mastermindzh/TekTree). The only thing I couldn't figure out how to model on fritzing is the actual Christmas tree and the power cord for the Arduino.
The arduino will get power from a regular adaptor. The only modification I did to the adapter is putting a button on one of the wires. And the only reason I did that is because I'm too lazy to unplug the TekTree when I want to turn it off :)
The Arduino will get power from a regular adaptor. The only modification I made to the adapter was putting a button on one of the wires. The only reason I did that is because I'm too lazy to unplug the TekTree when I want to turn it off :)
![Wiring of the back of the Tektree. You can see a lot of jumper wires sticking out and connecting to LEDs](./media/wiring1.jpg)
## Why so many wires?
I want the project to be "manageable" for everyone. To do this I kept the wiring as simple as possible. Every LED has 2 prongs, 1 goes to ground 1 goes to the arduino. Simple. Same goes for the potentiometers, 3 legs, 1 power 1 ground 1 signal. The only led's I did bundle together (in terms of wiring) is the star. I did this to create a single star instead of multiple led's.
I want the project to be "manageable" for everyone. To do this I kept the wiring as simple as possible. Every LED has 2 prongs, 1 goes to ground 1 goes to the Arduino. Simple. Same goes for the potentiometers, 3 legs, 1 power 1 ground 1 signal. The only leds I did bundle together (in terms of wiring) is the star. I did this to create a single star instead of multiple led's.
## Well you could've made it way prettier... and
Well yes, as all of us know I'm perfectly capable of designing a [refined build](/images/blogs/han4pi/Front_thumb.png). I didn't want to go with a pcb this time however because that would make the barrier to entry way higher on this project. And that is something I definitely **don't** want.
Well yes, as all of us know I'm perfectly capable of designing a [refined build](/images/blogs/han4pi/front.png). I didn't want to go with a pcb this time however because that would make the barrier to entry way higher on this project. And that is something I definitely **don't** want.
I also didn't "group" all my ground wires together. (led -> led -> led -> board) This would've made the project a lot neater but it wouldn't be anywhere near as service friendly. (which was kinda the idea...)

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

View File

@@ -3,9 +3,9 @@ title: Scala Day 0 - What is Scala?
date: "2017-03-30"
template: "post"
draft: false
category: "Development"
category: "development"
tags:
- "Development"
- "development"
- "slsw"
description: "My final assignment for a school course is to learn a new language from a book (uh-oh). I picked Scala and here's why"
disqusId: "20"

View File

@@ -3,9 +3,9 @@ title: Scala Day 1 - The Basics
date: "2017-04-02"
template: "post"
draft: false
category: "Development"
category: "development"
tags:
- "Development"
- "development"
- "slsw"
description: "Let's take a deep dive into a programming book and Scala!"
disqusId: "21"

View File

@@ -3,9 +3,9 @@ title: Scala Day 2 - Let's get functional
date: "2017-04-03"
template: "post"
draft: false
category: "Development"
category: "development"
tags:
- "Development"
- "development"
- "slsw"
description: "Today we'll focus on the functional aspects of Scala"
disqusId: "22"

View File

@@ -3,9 +3,9 @@ title: Scala Day 3 - Concurrency is key!
date: "2017-04-04"
template: "post"
draft: false
category: "Development"
category: "development"
tags:
- "Development"
- "development"
- "slsw"
description: "A day full of functional joy and concurrency "
disqusId: "23"

View File

@@ -3,9 +3,9 @@ title: Scala Day 4 - A challenge!
date: "2017-04-05"
template: "post"
draft: false
category: "Development"
category: "development"
tags:
- "Development"
- "development"
- "slsw"
description: "The last day of my journey with Scala is said to be a challenge"
disqusId: "24"

View File

@@ -2,13 +2,13 @@
title: Adopting conventional commits and standard versions in a git and npm codebase
date: "2022-11-07"
template: "post"
category: "Development"
category: "development"
tags:
- "git"
- "conventional commits"
- "semantic commits"
- "INFORIT"
- "Standard releases"
- "conventional-commits"
- "semantic-commits"
- "inforit"
- "standard-releases"
description: "A dive into conventional commits and their benefit whilst releasing with standard versions."
socialImage: "./media/husky-error.png"
@@ -340,7 +340,7 @@ Now, let's add a Husky git hook to combat future commits that are unconventional
npx husky-init && npm install
```
This will automatically create the `.husky/pre-commit` file. Let's edit it and add commitlint:
This will automatically create the `.husky/` directory. Let's create a file in it called `commit-msg` and add commitlint:
```sh
#!/usr/bin/env sh

View File

@@ -2,16 +2,16 @@
title: Flashing the LSI-9211 to IT mode using an EFI shell
date: "2023-04-12"
template: "post"
category: "Homelab"
category: "homelab"
tags:
- "lsi"
- "lsi9211"
- "raid card"
- "storage"
- "SAS2000"
- "it mode"
- "it-mode"
description: "Flashing the LSI-9211 used to be way more difficult, luckily the EFI shell makes this task a lot simpler!"
socialImage: /media/flash-result.jpg
socialImage: ./media/flash-result.jpg
---

View File

@@ -0,0 +1,98 @@
---
title: LegoLeague - Battling it out with little robots made from Lego
date: "2023-09-18"
template: "post"
category: "Lego"
tags:
- "lego"
- "spike"
- "programming"
- "team"
- "work"
- "inforit"
description: "At INFORIT we love to play! Be it DND, board games or in this case... Legos. Read on to find out what we've been up to this past summer vacation"
socialImage: ./media/lego-spike-set.png
---
![The 2023 LegoLeague play-mat laid out on an improvised table](./media/board.jpg "The 2023 LegoLeague battle board")
A little before the start of the summer period my colleague Jan-Kees came up to me and proposed the idea of an internal LegoLeague. After a little bit of back-and-forth about what LegoLeague exactly was I agreed it would be a great idea to bring some colleagues together and have a little fun during work hours.
Pretty much right away excitement got the better of us and we started drafting a plan... when? where? how? prizes? teams!?? A lot.
But First...
## What is LegoLeague?
LegoLeague is an event where teams come together to build, program and test a [Lego Spike robot](https://www.lego.com/en-nl/product/lego-education-spike-prime-set-45678) to perform autonomous tasks. The tasks range from collecting "power cores", pushing or pulling levers, to dropping Lego blocks in a hopper to get some bonus points.
All of this is accompanied by a theme, in our case energy production, which adds a layer of fun to solving these challenges.
The video below shows a teaser of 2022-2023's "SuperPowered" event, the very thing we based our LegoLeague on:
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/okR1AMFNV3Q?si=cq4KqyVVK6sAsCpY"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen>
</iframe>
For each task a team completes successfully they will score points.
Teams get 2 minutes and 30 seconds (2:30) to score as many points as they can.
The video below outlines some of the challenges the teams have available to them with a little explanation of how they function and even some info on the scores. This video is especially useful for teams that don't want to peruse the entire rule book but still wanted to figure out an optimal strategy.
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/ILTjo0LHZQA?si=YqJvSYX3JNclPPeJ"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen>
</iframe>
To build the robot each team gets a [Lego Spike Prime set](https://www.lego.com/nl-nl/product/lego-education-spike-prime-set-45678) and nothing more!
In the original event, teams had access to a little more Lego in various kits but for our little event at [INFORIT](https://inforit.nl), we were only able to source the basic kits in time.
Having said that, we wouldn't have been able to get our hands on any of the kits at all if it wasn't for the ["PReT" organization in Weesp](https://www.pretweesp.nl/). Thanks guys!
![A Lego spike set](./media/lego-spike-set.png "A Lego spike set laid out on display")
As for the programming... Teams are free to use either "[scratch](https://scratch.mit.edu/)" or "Python" to program their robots.
Scratch being much easier for those who don't spend all day behind their computer working on software development whilst Python allows for more flexibility in what can be achieved.
Spoiler alert: all teams chose scratch, it's much more accessible for non-developers!
## The competition at INFORIT
So yeah, we now know what a LegoLeague is and we have the approval to host the competition at [INFORIT](https://inforit.nl), now what?
Well, Jan-Kees got to work building the arena and setting it up and I set out to gather team members. Given that it was the summer break I had to hustle to get teams together but eventually we managed to create some beautiful teams.
Fortunately, [INFORIT](https://inforit.nl) values employee happiness, autonomy and continuous improvement. As such I was able to offer the 2 Friday afternoons free of day-to-day work, to work on the robot whilst providing catering, music, and the like to the teams whilst they are participating!
In the end, we were successful in creating 4 teams of at least 3 people who were all mixed with developers and non-developers to keep the balance fair. Meanwhile, Jan-Kees also finished building the arena which you can see in the header of this blog or the pictures in the picture section.
## Pictures
Of course, we've taken loads of pictures during the event but those are mostly for internal use.
Below I've included some pictures of the event that are all cleared for social media distribution with a little description of what's happening in each picture to, hopefully, convey some of the vibes of the event itself.
![One of the competing robots on display. This one seems to have a little grabby arm to perform the tasks with.](./media/robot-warrior.jpg "one of the competing robots")
![A contestant is looking at the board figuring out where the robot needs to go](./media/lex-counting.jpg "A contestant calculating exactly where to go. Such a pathfinder!")
![two teams continuing to test their implementations](./media/testing-coding-repeat.jpg "code -> test -> repeat. Soooo important")
![a picture of a laptop screen with lots of scratch code blocks on it](./media/complicated.png "This team might have overcomplicated things a tad. Looks impressive though.")
## Winners, losers, etc
In the end, this is still a competition. People competed hard to come out on top and 1 team did so successfully.
Congratulations guys!
![a group picture of all the contestants, some wearing their medals and carrying their candy prize](./media/winners.jpg "All of our winners! (excluding myself 😢)")
## Nah, we are all winners in the end
Having 4 teams gave us the unique opportunity to reward them all with something nice. The 3 teams that got podium places all got their medals and their rewards and the team in fourth place got their consolation prize.
Luckily though, we're all winners, even the Jury members and the organizers.
This event has brought us all closer together and improved the connection between our colleagues.
I, personally, had a blast and would love to do similar things in the future.
That's it again, thanks for reading and see you next time!

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

View File

@@ -4,10 +4,10 @@ date: "2023-02-14"
template: "post"
category: "blog"
tags:
- "Lego"
- "lego"
- "house"
description: "What started as a simple decoration piece to fill some empty space in my home quickly grew into a new hobby of which the remnants can be found throughout my house"
socialImage: /media/building-the-owl.jpg
socialImage: ./media/building-the-owl.jpg
---
## The problem

View File

@@ -0,0 +1,130 @@
---
title: Infrastructure as code - Service uptime monitoring
date: "2025-01-18"
template: "post"
category: "homelab"
tags:
- "uptime"
- "kuma"
- "iac"
- "infrastructure"
- "code"
- "servers"
description: "In this post I demonstrate how I've moved from an old and simple UptimeKuma setup to a setup with AutoKuma so I can register my monitors with 'infrastructure as code'"
socialImage: ./media/uptimekuma.png
---
If theres one thing Ive always embraced, its the philosophy of working smarter, not harder. Infrastructure as Code (IaC) has been one of the cornerstones of my career. a perfect blend of laziness and the pursuit of predictability. From my earliest days experimenting with Docker back in 2014 to leading a platform team at my current company, IaC has proven invaluable for simplifying complexity, ensuring reproducibility, and enabling automation.
Below you'll find my journey and why I think every engineer should embrace it, eventually walking you through one of the latest automations I set up at home: Automatically creating uptime monitors in UptimeKuma based on Docker labels.
## The Early Days: Discovering Docker
Back in 2014, I stumbled upon Docker, and it was a game-changer. At the time, I was frustrated by the manual and error-prone process of setting up environments for my code (especially on other people's machines....). Docker offered a way to reliably recreate these environments with simple, declarative configuration files. Suddenly, I could spin up a development environment in minutes and be confident it would work exactly the same on another machine.
In 2017, I taught several university classes on Docker, emphasizing the importance of reproducibility. My students learned how to containerize applications and ensure their work could be shared and run anywhere, regardless of underlying infrastructure. Reproducibility wasnt just a technical advantage; it became a mindset I encouraged in every project.
And yes.. for those that know me well, I did go overboard in some of the details and even ended up explaining the entire Copy-On-Write (COW) nature of the Docker filesystem in those classes... But ah well, people learned a lot :P.
## Home Servers: The Personal Lab
My passion for IaC extended to my home servers. By 2017, nearly everything I ran at home was Docker-based. I created dozens of bash scripts and system services to orchestrate my personal infrastructure. Whether it was media servers, backup systems, or development environments, everything was automated and version-controlled. Even my own computers mostly became IaC based as I figured out that part of the Linux community was saving their setups (and install instructions, usually) in so called "dotfiles". To this day you can still find my setup (and its changes when I switch machine) in my [Dotfiles on Github](https://github.com/Mastermindzh/dotfiles/).
All in all, my home setup became a sandbox for testing new ideas and tools, many of which eventually found their way into my professional work as well.
## Scaling IaC in the Workplace
At my current company, I introduced Docker about eight years ago. It was a gradual process, but within a year, we had our first Kubernetes cluster running. This transition wasnt just about adopting new tools; it was about embedding the principles of IaC into the organizations culture.
Over time, I spearheaded the creation of a dedicated platform team. With an architect/Product Owner and four DevOps engineers, this team took IaC to the next level. They implemented robust CI/CD pipelines, infrastructure monitoring, and scalable deployment patterns. Some of these practices mirrored what I had done at home, while others were tailored to the unique needs of the business. The result was a resilient and predictable infrastructure that supports rapid development and deployment.
## Setting Up Uptime Monitoring with UptimeKuma
One of the most satisfying aspects of IaC is the ability to automate even the smallest tasks. Take uptime monitoring, for example. At home and at work, ensuring that services are available is critical. Recently, Ive been using my old UptimeKuma instance, a self-hosted monitoring tool thats as powerful as it is user-friendly, a lot more after introducing it to some friends (who started homelabbing) and at work.
Setting up UptimeKuma is straightforward, you can simply use our old friend Docker:
```docker run -d --name uptime-kuma -v ./data/uptimekuma:/app/data -p 3001:3001 louislam/uptime-kuma```
And access the Dashboard by navigating to <http://localhost:3001> to configure your monitors.
But that isn't automatic enough for me, I like to put my things in compose files for home usage.
## Automating uptime monitors with AutoKuma
[AutoKuma](https://github.com/BigBoot/AutoKuma) allows us to set labels on our Docker containers that will then automatically generate monitors in UptimeKuma.
One of my containers (UptimeKuma actually) has the following labels attached:
```yml
labels:
kuma.monitoring.group.name: "Monitoring"
kuma.uptime_kuma.http.parent_name: "monitoring"
kuma.uptime_kuma.http.name: "Kuma status monitoring"
kuma.uptime_kuma.http.url: "http://${HOST_IP}:3001"
```
This actually does 2 things:
- creates a group with the *key/id* `monitoring` and the name `Monitoring`
- Adds a monitor with the *key/id* `uptime_kuma` to UptimeKuma with the type `http`, name `Kuma status monitoring`, and url `http://${HOST_IP}:3001`
Adding these labels, whilst AutoKuma is running and configured to pick up labels starting with `kuma` is enough for monitors to show up (after restarting the containers).
All in all, my `docker-compose.yml` file for both UptimeKuma and AutoKuma now looks like this:
```yml
services:
autokuma:
image: ghcr.io/bigboot/autokuma:master
restart: unless-stopped
environment:
AUTOKUMA__KUMA__URL: http://${HOST_IP}:3001
AUTOKUMA__KUMA__USERNAME: ${KUMA_USERNAME}
AUTOKUMA__KUMA__PASSWORD: ${KUMA_PASSWORD}
AUTOKUMA__TAG_NAME: AutoKuma
AUTOKUMA__TAG_COLOR: "#42C0FB"
AUTOKUMA__DEFAULT_SETTINGS: |-
docker.docker_container: {{container_name}}
http.max_redirects: 10
*.max_retries: 3
AUTOKUMA__DOCKER__LABEL_PREFIX: kuma
AUTOKUMA__MIGRATE: true
volumes:
- ${APP_DATA}/autokuma:/data
- ${DOCKER_SOCKET}:/var/run/docker.sock
depends_on:
- kuma
kuma:
image: louislam/uptime-kuma:1
volumes:
- ${APP_DATA}/uptimekuma:/app/data
- ${DOCKER_SOCKET}:/var/run/docker.sock
ports:
- 3001:3001
restart: unless-stopped
labels:
kuma.monitoring.group.name: "Monitoring"
kuma.uptime_kuma.http.parent_name: "monitoring"
kuma.uptime_kuma.http.name: "Kuma status monitoring"
kuma.uptime_kuma.http.url: "http://${HOST_IP}:3001"
```
## Problems... the compose file doesn't work :O
If you'd try to run the compose file in the previous chapter, even after replacing all the variables, things likely still won't work.
This is because AutoKuma relies on the credentials for UptimeKuma which we setup during the initial launch of UptimeKuma.
Unfortunately, that account is the only account we can currently set up in UptimeKuma since it doesn't have user management.
And yes, that means we **have** to use these same credentials to get AutoKuma to work, which also prohibits us from enabling MFA.
Anyway, after setting up the kuma account, simply adjust both the `KUMA_USERNAME` and `KUMA_PASSWORD` variables and restart the containers.
After doing so we should see the monitor appear in UptimeKuma:
![a screenshot of the UptimeKuma monitors that were automatically created with AutoKuma](./media/uptimekuma.png "neat!")
## The Future of IaC
Infrastructure as Code isnt just a technical approach; its a philosophy that prioritizes automation, reproducibility, and simplicity. Whether youre managing a home lab or a global platform, IaC provides the tools and practices to build resilient systems with minimal effort.
For me, IaC has been a journey of continuous learning and experimentation. From Docker to Kubernetes, from bash scripts to dedicated platform teams, the principles remain the same: automate everything, document everything, and embrace the predictability that code brings to infrastructure.
If you havent already, give UptimeKuma and AutoKuma a try. Their combination is an excellent example of how IaC can simplify even the most mundane tasks, leaving you more time to focus on what really matters... or just to be a little lazier.

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

View File

@@ -1,3 +0,0 @@
import "./src/assets/scss/main.scss";
import "./src/assets/scss/prism/github.scss";
import "./src/assets/scss/prism/prism-tomorrow.scss";

19
gatsby-browser.tsx Normal file
View File

@@ -0,0 +1,19 @@
import "./src/assets/scss/main.scss";
import "./src/assets/scss/prism/github.scss";
import "./src/assets/scss/prism/prism-tomorrow.scss";
export const onRouteUpdate = ({ location }: { location: { pathname: string } }) => {
const elements = document.querySelectorAll("[data-url]");
const currentUrl = `https://www.rickvanlieshout.com${location.pathname ?? ""}`;
const setAttributeIfAvailable = (element: Element, elementIdentifier: string) => {
if (element.hasAttribute(elementIdentifier)) {
element.setAttribute(elementIdentifier, currentUrl);
}
};
elements.forEach((element) => {
setAttributeIfAvailable(element, "href");
setAttributeIfAvailable(element, "content");
});
};

View File

@@ -164,13 +164,6 @@ export default {
start_url: "/",
},
},
{
resolve: "gatsby-plugin-react-helmet-canonical-urls",
options: {
siteUrl: config.url,
stripQueryString: true,
},
},
// remove the old service worker if it is available.
"gatsby-plugin-remove-serviceworker",
"gatsby-plugin-image",

View File

@@ -18,7 +18,19 @@ const setColorTheme = `
}
})();
`;
export const onRenderBody = ({ setPreBodyComponents }: RenderBodyArgs) => {
export const onRenderBody = ({
setPreBodyComponents,
setHeadComponents,
pathname,
}: RenderBodyArgs) => {
const currentUrl = `https://www.rickvanlieshout.com${pathname}`;
setHeadComponents([
<meta data-url="currentUrl" key="og:url" property="og:url" content={currentUrl} />,
<link data-url="currentUrl" key="canonical" rel="canonical" href={currentUrl} />,
<meta data-url="currentUrl" property="test:rick" key="test:rick" content={currentUrl} />,
]);
setPreBodyComponents([
React.createElement("script", {
key: "theme",

View File

@@ -1,5 +1,5 @@
export default [
{ label: "Articles", path: "/" },
{ label: "About Me", path: "/pages/about" },
{ label: "Contact Me", path: "/pages/contacts" },
{ label: "About Me", path: "/pages/about/" },
{ label: "Contact Me", path: "/pages/contacts/" },
];

25960
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "rickvanlieshout-com",
"version": "1.2.3",
"version": "1.3.1",
"description": "My personal blog / website",
"keywords": [
"gatsby",
@@ -18,8 +18,8 @@
"author": "Rick van Lieshout <info@rickvanlieshout.com>",
"scripts": {
"build": "npm run clean && gatsby build",
"commit": "git-cz",
"clean": "rimraf .cache public",
"commit": "git-cz",
"format": "npm run format:ts && npm run format:scss",
"format:scss": "stylelint \"src/**/*.scss\" --fix",
"format:ts": "eslint \"src\" --ext .tsx,.ts --fix && prettier --write .",
@@ -29,9 +29,9 @@
"lint:ts": "eslint \"src\" --ext .tsx,.ts && prettier --check .",
"prepare": "husky install",
"release": "standard-version",
"release:major": "standard-version --release-as major",
"release:minor": "standard-version --release-as minor",
"release:patch": "standard-version --release-as patch",
"release:major": "standard-version --release-as major",
"reset-snapshots": "find -type f -name '*.snap*' -delete && npm run test",
"semantic-release": "semantic-release",
"serve": "gatsby serve",
@@ -48,115 +48,114 @@
"npm run format:scss"
]
},
"config": {
"commitizen": {
"path": "@commitlint/cz-commitlint"
}
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.4.0",
"@fortawesome/free-solid-svg-icons": "^6.4.0",
"@fortawesome/react-fontawesome": "^0.2.0",
"classnames": "^2.3.2",
"disqus-react": "^1.1.5",
"gatsby": "^5.11.0",
"gatsby-link": "^5.11.0",
"gatsby-plugin-catch-links": "^5.11.0",
"gatsby-plugin-feed": "^5.11.0",
"gatsby-plugin-google-gtag": "^5.11.0",
"gatsby-plugin-image": "^3.11.0",
"gatsby-plugin-manifest": "^5.11.0",
"@fortawesome/fontawesome-svg-core": "^6.7.2",
"@fortawesome/free-solid-svg-icons": "^6.7.2",
"@fortawesome/react-fontawesome": "^0.2.2",
"classnames": "^2.5.1",
"disqus-react": "^1.1.6",
"gatsby": "^5.14.3",
"gatsby-link": "^5.14.1",
"gatsby-plugin-catch-links": "^5.14.0",
"gatsby-plugin-feed": "^5.14.0",
"gatsby-plugin-google-gtag": "^5.14.0",
"gatsby-plugin-image": "^3.14.0",
"gatsby-plugin-manifest": "^5.14.0",
"gatsby-plugin-optimize-svgs": "^1.0.5",
"gatsby-plugin-react-helmet": "^6.11.0",
"gatsby-plugin-react-helmet-canonical-urls": "^1.4.0",
"gatsby-plugin-react-helmet": "^6.14.0",
"gatsby-plugin-remove-serviceworker": "^1.0.0",
"gatsby-plugin-robots-txt": "^1.8.0",
"gatsby-plugin-sass": "^6.11.0",
"gatsby-plugin-sharp": "^5.11.0",
"gatsby-plugin-sitemap": "^6.11.0",
"gatsby-remark-autolink-headers": "^6.11.0",
"gatsby-remark-copy-linked-files": "^6.11.0",
"gatsby-plugin-sass": "^6.14.0",
"gatsby-plugin-sharp": "^5.14.0",
"gatsby-plugin-sitemap": "^6.14.0",
"gatsby-remark-autolink-headers": "^6.14.0",
"gatsby-remark-copy-linked-files": "^6.14.0",
"gatsby-remark-external-links": "0.0.4",
"gatsby-remark-images": "^7.11.0",
"gatsby-remark-images": "^7.14.0",
"gatsby-remark-images-medium-zoom": "^1.7.0",
"gatsby-remark-prismjs": "^7.11.0",
"gatsby-remark-responsive-iframe": "^6.11.0",
"gatsby-remark-smartypants": "^6.11.0",
"gatsby-source-filesystem": "^5.11.0",
"gatsby-transformer-remark": "^6.11.0",
"gatsby-transformer-sharp": "^5.11.0",
"gatsby-remark-prismjs": "^7.14.0",
"gatsby-remark-responsive-iframe": "^6.14.0",
"gatsby-remark-smartypants": "^6.14.0",
"gatsby-source-filesystem": "^5.14.0",
"gatsby-transformer-remark": "^6.14.0",
"gatsby-transformer-sharp": "^5.14.0",
"prismjs": "^1.29.0",
"react": "^18.2.0",
"react-cookie-consent": "^8.0.1",
"react-dom": "^18.2.0",
"react": "^18.3.1",
"react-cookie-consent": "^9.0.0",
"react-dom": "^18.3.1",
"react-helmet": "^6.1.0",
"react-toggle": "^4.1.3",
"reading-time": "^1.5.0"
},
"devDependencies": {
"@commitlint/config-conventional": "^17.6.6",
"@commitlint/cz-commitlint": "^17.5.0",
"@jest/globals": "^29.5.0",
"@commitlint/config-conventional": "^17.8.1",
"@commitlint/cz-commitlint": "^19.6.1",
"@jest/globals": "^29.7.0",
"@mastermindzh/eslint-config": "^1.0.2",
"@mastermindzh/prettier-config": "^1.0.0",
"@semantic-release/exec": "6.0.3",
"@semantic-release/git": "10.0.1",
"@swc/core": "^1.3.67",
"@swc/jest": "^0.2.26",
"@types/gatsby-transformer-remark": "^2.9.1",
"@types/jest": "^29.5.2",
"@types/node": "^18.15.11",
"@types/react": "^18.2.14",
"@types/react-dom": "^18.2.6",
"@swc/core": "^1.10.4",
"@swc/jest": "^0.2.37",
"@types/gatsby-transformer-remark": "^2.9.4",
"@types/jest": "^29.5.14",
"@types/node": "^22.10.3",
"@types/react": "^18.3.18",
"@types/react-dom": "^18.3.5",
"@types/react-helmet": "^6.1.6",
"@types/react-test-renderer": "^18.0.0",
"@types/react-toggle": "^4.0.3",
"@typescript-eslint/eslint-plugin": "^5.60.1",
"@typescript-eslint/parser": "^5.60.1",
"autoprefixer": "^10.4.14",
"browserslist": "^4.21.9",
"@types/react-test-renderer": "^18.3.1",
"@types/react-toggle": "^4.0.5",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"autoprefixer": "^10.4.20",
"browserslist": "^4.24.3",
"codecov": "^3.8.3",
"commitizen": "^4.3.0",
"commitlint": "^17.6.6",
"concurrently": "^8.2.0",
"eslint": "^8.43.0",
"commitizen": "^4.3.1",
"commitlint": "^19.6.1",
"concurrently": "^9.1.2",
"eslint": "^8.57.1",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-typescript": "^17.0.0",
"eslint-config-prettier": "^8.8.0",
"eslint-config-airbnb-typescript": "^17.1.0",
"eslint-config-prettier": "^8.10.0",
"eslint-config-react-app": "^7.0.1",
"eslint-import-resolver-typescript": "^3.5.5",
"eslint-import-resolver-typescript": "^3.7.0",
"eslint-plugin-flowtype": "^8.0.3",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jest": "^27.2.2",
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jest": "^27.9.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react": "^7.37.3",
"eslint-plugin-react-hooks": "^4.6.2",
"eslint-plugin-simple-import-sort": "^10.0.0",
"husky": "^8.0.3",
"identity-obj-proxy": "3.0.0",
"jest": "^29.5.0",
"jest-cli": "^29.5.0",
"jest-environment-jsdom": "^29.5.0",
"jest": "^29.7.0",
"jest-cli": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jest-svg-transformer": "^1.0.0",
"lint-staged": "^13.2.3",
"lost": "9.0.1",
"markdownlint": "^0.29.0",
"postcss": "^8.4.24",
"postcss-scss": "^4.0.6",
"lint-staged": "^15.3.0",
"lost": "9.0.2",
"markdownlint": "^0.37.3",
"postcss": "^8.4.49",
"postcss-scss": "^4.0.9",
"prettier": "^2.8.8",
"prettier-plugin-packagejson": "^2.4.3",
"react-test-renderer": "^18.2.0",
"rimraf": "^4.4.1",
"sass": "^1.63.6",
"prettier-plugin-packagejson": "^2.5.6",
"react-test-renderer": "^18.3.1",
"rimraf": "^6.0.1",
"sass": "^1.83.0",
"source-map-support": "^0.5.21",
"standard-version": "^9.5.0",
"stylelint": "^15.9.0",
"stylelint-config-recommended-scss": "^9.0.1",
"stylelint-order": "^6.0.3",
"stylelint-scss": "^4.6.0",
"ts-node": "^10.9.1",
"typescript": "^5.1.6",
"unist-util-find": "1.0.2"
},
"config": {
"commitizen": {
"path": "@commitlint/cz-commitlint"
}
"stylelint": "^16.12.0",
"stylelint-config-recommended-scss": "^14.1.0",
"stylelint-order": "^6.0.4",
"stylelint-scss": "^6.10.0",
"ts-node": "^10.9.2",
"typescript": "^5.7.2",
"unist-util-find": "3.0.0"
}
}

View File

@@ -1,9 +1,9 @@
import React from "react";
import Helmet from "react-helmet";
import { useSiteMetadata } from "@/hooks";
import { CookieBar } from "../Cookiebar/CookieBar";
import * as styles from "./Layout.module.scss";
import { useSiteMetadata } from "@/hooks";
interface Props {
title: string;
@@ -11,6 +11,7 @@ interface Props {
socialImage?: string;
children: React.ReactNode;
noIndex?: boolean;
slug?: string;
}
const Layout: React.FC<Props> = ({
@@ -19,6 +20,7 @@ const Layout: React.FC<Props> = ({
description,
socialImage = "",
noIndex = false,
slug,
}: Props) => {
const { author, url } = useSiteMetadata();
const metaImage = socialImage || author.photo;
@@ -33,6 +35,7 @@ const Layout: React.FC<Props> = ({
<meta property="og:description" content={description} />
<meta property="og:site_name" content={title} />
<meta property="og:image" content={metaImageUrl} />
<meta property="og:title" content={title} />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content={title} />
<meta name="twitter:description" content={description} />

View File

@@ -1,8 +1,8 @@
import React, { useEffect, useRef } from "react";
import * as styles from "./Page.module.scss";
import type { Nullable } from "@/types";
import { Helmet } from "react-helmet";
import * as styles from "./Page.module.scss";
interface Props {
title?: string;
@@ -19,12 +19,17 @@ const Page: React.FC<Props> = ({ title, children }: Props) => {
}, []);
return (
<>
<Helmet>
<meta property="og:type" content="website" />
</Helmet>
<div ref={pageRef} className={styles.page}>
<div className={styles.inner}>
{title && <h1 className={styles.title}>{title}</h1>}
<div className={styles.body}>{children}</div>
</div>
</div>
</>
);
};

View File

@@ -9,7 +9,7 @@ const Author = () => {
<div className={styles.author}>
<p className={styles.bio}>
Written by:{" "}
<a href="/pages/about">
<a href="/pages/about/">
<strong>{author.name}</strong>
</a>
{typeof window !== "undefined" ? (

View File

@@ -6,7 +6,7 @@ exports[`Author renders correctly 1`] = `
Written by:
<a
href="/pages/about"
href="/pages/about/"
>
<strong>
Rick van Lieshout

View File

@@ -165,7 +165,7 @@ exports[`Post renders correctly 1`] = `
Written by:
<a
href="/pages/about"
href="/pages/about/"
>
<strong>
Rick van Lieshout

View File

@@ -6,7 +6,6 @@ import { ICONS } from "@/constants";
import { Dictionary } from "@/types";
import { getContactHref, getIcon } from "@/utils";
type Props = {
contacts: Dictionary<string>;
};
@@ -26,8 +25,13 @@ const Contacts: React.FC<Props> = ({ contacts }: Props) => (
<Icon name={name} icon={getIcon(name)} />
</a>
</li>
) : null,
) : null
)}
<li className={styles.item} key="keys">
<a className={styles.link} href="/keys.json" rel="noopener noreferrer" target="_blank">
<Icon name="keys" icon={getIcon("keys")} />
</a>
</li>
</ul>
</div>
);

View File

@@ -93,6 +93,24 @@ exports[`Contacts renders correctly 1`] = `
</svg>
</a>
</li>
<li>
<a
href="/keys.json"
rel="noopener noreferrer"
target="_blank"
>
<svg
viewBox="0 0 20 20"
>
<title>
keys
</title>
<path
d="M15 6a1.54 1.54 0 0 1-1.5-1.5 1.5 1.5 0 0 1 3 0A1.54 1.54 0 0 1 15 6zm-1.5-5A5.55 5.55 0 0 0 8 6.5a6.81 6.81 0 0 0 .7 2.8L1 17v2h4v-2h2v-2h2l3.2-3.2a5.85 5.85 0 0 0 1.3.2A5.55 5.55 0 0 0 19 6.5 5.55 5.55 0 0 0 13.5 1z"
/>
</svg>
</a>
</li>
</ul>
</div>
`;

View File

@@ -138,6 +138,24 @@ exports[`Sidebar renders correctly 1`] = `
</svg>
</a>
</li>
<li>
<a
href="/keys.json"
rel="noopener noreferrer"
target="_blank"
>
<svg
viewBox="0 0 20 20"
>
<title>
keys
</title>
<path
d="M15 6a1.54 1.54 0 0 1-1.5-1.5 1.5 1.5 0 0 1 3 0A1.54 1.54 0 0 1 15 6zm-1.5-5A5.55 5.55 0 0 0 8 6.5a6.81 6.81 0 0 0 .7 2.8L1 17v2h4v-2h2v-2h2l3.2-3.2a5.85 5.85 0 0 0 1.3.2A5.55 5.55 0 0 0 19 6.5 5.55 5.55 0 0 0 13.5 1z"
/>
</svg>
</a>
</li>
</ul>
</div>
<div>

View File

@@ -63,6 +63,10 @@ const ICONS = {
path: "M3.6,7.8 C5,10.6 7.4,12.9 10.2,14.4 L12.4,12.2 C12.7,11.9 13.1,11.8 13.4,12 C14.5,12.4 15.7,12.6 17,12.6 C17.6,12.6 18,13 18,13.6 L18,17 C18,17.6 17.6,18 17,18 C7.6,18 0,10.4 0,1 C0,0.4 0.4,0 1,0 L4.5,0 C5.1,0 5.5,0.4 5.5,1 C5.5,2.2 5.7,3.4 6.1,4.6 C6.2,4.9 6.1,5.3 5.9,5.6 L3.6,7.8 L3.6,7.8 Z",
viewBox: "0 0 18 18",
},
keys: {
path: "M15 6a1.54 1.54 0 0 1-1.5-1.5 1.5 1.5 0 0 1 3 0A1.54 1.54 0 0 1 15 6zm-1.5-5A5.55 5.55 0 0 0 8 6.5a6.81 6.81 0 0 0 .7 2.8L1 17v2h4v-2h2v-2h2l3.2-3.2a5.85 5.85 0 0 0 1.3.2A5.55 5.55 0 0 0 19 6.5 5.55 5.55 0 0 0 13.5 1z",
viewBox: "0 0 20 20",
},
};
export default ICONS;

View File

@@ -13,7 +13,7 @@ const CategoriesTemplate: React.FC = () => {
const categories = useCategoriesList();
return (
<Layout title={`Categories - ${title}`} description={subtitle}>
<Layout title={`Categories - ${title}`} description={subtitle} slug="/categories/">
<Sidebar />
<Page title="Categories">
<ul>

View File

@@ -139,6 +139,24 @@ exports[`CategoriesTemplate renders correctly 1`] = `
</svg>
</a>
</li>
<li>
<a
href="/keys.json"
rel="noopener noreferrer"
target="_blank"
>
<svg
viewBox="0 0 20 20"
>
<title>
keys
</title>
<path
d="M15 6a1.54 1.54 0 0 1-1.5-1.5 1.5 1.5 0 0 1 3 0A1.54 1.54 0 0 1 15 6zm-1.5-5A5.55 5.55 0 0 0 8 6.5a6.81 6.81 0 0 0 .7 2.8L1 17v2h4v-2h2v-2h2l3.2-3.2a5.85 5.85 0 0 0 1.3.2A5.55 5.55 0 0 0 19 6.5 5.55 5.55 0 0 0 13.5 1z"
/>
</svg>
</a>
</li>
</ul>
</div>
<div>

View File

@@ -28,7 +28,7 @@ const CategoryTemplate: React.FC<Props> = ({ data, pageContext }: Props) => {
currentPage > 0 ? `${group} - Page ${currentPage} - ${siteTitle}` : `${group} - ${siteTitle}`;
return (
<Layout title={pageTitle} description={siteSubtitle}>
<Layout title={pageTitle} description={siteSubtitle} slug={`/category/${group}/`}>
<Sidebar />
<Page title={group}>
<Feed edges={edges} />

View File

@@ -139,6 +139,24 @@ exports[`CategoryTemplate renders correctly 1`] = `
</svg>
</a>
</li>
<li>
<a
href="/keys.json"
rel="noopener noreferrer"
target="_blank"
>
<svg
viewBox="0 0 20 20"
>
<title>
keys
</title>
<path
d="M15 6a1.54 1.54 0 0 1-1.5-1.5 1.5 1.5 0 0 1 3 0A1.54 1.54 0 0 1 15 6zm-1.5-5A5.55 5.55 0 0 0 8 6.5a6.81 6.81 0 0 0 .7 2.8L1 17v2h4v-2h2v-2h2l3.2-3.2a5.85 5.85 0 0 0 1.3.2A5.55 5.55 0 0 0 19 6.5 5.55 5.55 0 0 0 13.5 1z"
/>
</svg>
</a>
</li>
</ul>
</div>
<div>

View File

@@ -26,7 +26,7 @@ const IndexTemplate: React.FC<Props> = ({ data, pageContext }: Props) => {
const pageTitle = currentPage > 0 ? `Posts - Page ${currentPage} - ${siteTitle}` : siteTitle;
return (
<Layout title={pageTitle} description={siteSubtitle}>
<Layout title={pageTitle} description={siteSubtitle} slug="">
<Sidebar isIndex />
<Page>
<Feed edges={edges} />

View File

@@ -139,6 +139,24 @@ exports[`IndexTemplate renders correctly 1`] = `
</svg>
</a>
</li>
<li>
<a
href="/keys.json"
rel="noopener noreferrer"
target="_blank"
>
<svg
viewBox="0 0 20 20"
>
<title>
keys
</title>
<path
d="M15 6a1.54 1.54 0 0 1-1.5-1.5 1.5 1.5 0 0 1 3 0A1.54 1.54 0 0 1 15 6zm-1.5-5A5.55 5.55 0 0 0 8 6.5a6.81 6.81 0 0 0 .7 2.8L1 17v2h4v-2h2v-2h2l3.2-3.2a5.85 5.85 0 0 0 1.3.2A5.55 5.55 0 0 0 19 6.5 5.55 5.55 0 0 0 13.5 1z"
/>
</svg>
</a>
</li>
</ul>
</div>
<div>

View File

@@ -10,7 +10,7 @@ const NotFoundTemplate: React.FC = () => {
const { title, subtitle } = useSiteMetadata();
return (
<Layout title={`Not Found - ${title}`} description={subtitle}>
<Layout title={`Not Found - ${title}`} description={subtitle} slug="/404.html">
<Sidebar />
<Page title="Oh no! page be lost">
<p>

View File

@@ -139,6 +139,24 @@ exports[`NotFoundTemplate renders correctly 1`] = `
</svg>
</a>
</li>
<li>
<a
href="/keys.json"
rel="noopener noreferrer"
target="_blank"
>
<svg
viewBox="0 0 20 20"
>
<title>
keys
</title>
<path
d="M15 6a1.54 1.54 0 0 1-1.5-1.5 1.5 1.5 0 0 1 3 0A1.54 1.54 0 0 1 15 6zm-1.5-5A5.55 5.55 0 0 0 8 6.5a6.81 6.81 0 0 0 .7 2.8L1 17v2h4v-2h2v-2h2l3.2-3.2a5.85 5.85 0 0 0 1.3.2A5.55 5.55 0 0 0 19 6.5 5.55 5.55 0 0 0 13.5 1z"
/>
</svg>
</a>
</li>
</ul>
</div>
<div>

View File

@@ -26,6 +26,7 @@ const PageTemplate: React.FC<Props> = ({ data }: Props) => {
title={`${title} - ${siteTitle}`}
description={metaDescription}
socialImage={socialImage?.publicURL}
slug={data.markdownRemark.fields.slug}
>
<Sidebar />
<Page title={title}>
@@ -40,6 +41,9 @@ export const query = graphql`
markdownRemark(fields: { slug: { eq: $slug } }) {
id
html
fields {
slug
}
frontmatter {
title
date

View File

@@ -139,6 +139,24 @@ exports[`PageTemplate renders correctly 1`] = `
</svg>
</a>
</li>
<li>
<a
href="/keys.json"
rel="noopener noreferrer"
target="_blank"
>
<svg
viewBox="0 0 20 20"
>
<title>
keys
</title>
<path
d="M15 6a1.54 1.54 0 0 1-1.5-1.5 1.5 1.5 0 0 1 3 0A1.54 1.54 0 0 1 15 6zm-1.5-5A5.55 5.55 0 0 0 8 6.5a6.81 6.81 0 0 0 .7 2.8L1 17v2h4v-2h2v-2h2l3.2-3.2a5.85 5.85 0 0 0 1.3.2A5.55 5.55 0 0 0 19 6.5 5.55 5.55 0 0 0 13.5 1z"
/>
</svg>
</a>
</li>
</ul>
</div>
<div>

View File

@@ -24,6 +24,7 @@ const PostTemplate: React.FC<Props> = ({ data }: Props) => {
title={`${title} - ${siteTitle}`}
description={metaDescription}
socialImage={socialImage?.publicURL}
slug={data.markdownRemark.fields.slug}
>
<Post post={data.markdownRemark} />
</Layout>

View File

@@ -166,7 +166,7 @@ exports[`PostTemplate renders correctly 1`] = `
Written by:
<a
href="/pages/about"
href="/pages/about/"
>
<strong>
Rick van Lieshout

View File

@@ -28,7 +28,7 @@ const TagTemplate: React.FC<Props> = ({ data, pageContext }: Props) => {
currentPage > 0 ? `${group} - Page ${currentPage} - ${siteTitle}` : `${group} - ${siteTitle}`;
return (
<Layout title={pageTitle} description={siteSubtitle}>
<Layout title={pageTitle} description={siteSubtitle} slug={`/tag/${group}/`}>
<Sidebar />
<Page title={group}>
<Feed edges={edges} />

View File

@@ -139,6 +139,24 @@ exports[`TagTemplate renders correctly 1`] = `
</svg>
</a>
</li>
<li>
<a
href="/keys.json"
rel="noopener noreferrer"
target="_blank"
>
<svg
viewBox="0 0 20 20"
>
<title>
keys
</title>
<path
d="M15 6a1.54 1.54 0 0 1-1.5-1.5 1.5 1.5 0 0 1 3 0A1.54 1.54 0 0 1 15 6zm-1.5-5A5.55 5.55 0 0 0 8 6.5a6.81 6.81 0 0 0 .7 2.8L1 17v2h4v-2h2v-2h2l3.2-3.2a5.85 5.85 0 0 0 1.3.2A5.55 5.55 0 0 0 19 6.5 5.55 5.55 0 0 0 13.5 1z"
/>
</svg>
</a>
</li>
</ul>
</div>
<div>

View File

@@ -13,7 +13,7 @@ const TagsTemplate: React.FC = () => {
const tags = useTagsList();
return (
<Layout title={`Tags - ${title}`} description={subtitle}>
<Layout title={`Tags - ${title}`} description={subtitle} slug="/tags/">
<Sidebar />
<Page title="Tags">
<ul>

View File

@@ -139,6 +139,24 @@ exports[`TagsTemplate renders correctly 1`] = `
</svg>
</a>
</li>
<li>
<a
href="/keys.json"
rel="noopener noreferrer"
target="_blank"
>
<svg
viewBox="0 0 20 20"
>
<title>
keys
</title>
<path
d="M15 6a1.54 1.54 0 0 1-1.5-1.5 1.5 1.5 0 0 1 3 0A1.54 1.54 0 0 1 15 6zm-1.5-5A5.55 5.55 0 0 0 8 6.5a6.81 6.81 0 0 0 .7 2.8L1 17v2h4v-2h2v-2h2l3.2-3.2a5.85 5.85 0 0 0 1.3.2A5.55 5.55 0 0 0 19 6.5 5.55 5.55 0 0 0 13.5 1z"
/>
</svg>
</a>
</li>
</ul>
</div>
<div>

View File

@@ -55,10 +55,10 @@ RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301]
RewriteCond %{HTTP_HOST} ^rickvanlieshout.com [NC]
RewriteRule ^(.*)$ http://www.rickvanlieshout.com/$1 [L,R=301]
RewriteRule ^(.*)$ https://www.rickvanlieshout.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^mastermindzh.com [NC]
RewriteRule ^(.*)$ http://www.mastermindzh.com/$1 [L,R=301]
RewriteRule ^(.*)$ https://www.mastermindzh.com/$1 [L,R=301]
# Optional: explicitly enable per-directory rewrites in the .htaccess context.

5
static/keys.json Normal file
View File

@@ -0,0 +1,5 @@
{
"documentSigningKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPH8NJi1EDmYv6mMtd8eC9VBPDf/faGn9GV2PhSo4KtK",
"workLaptop": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIG5VEDMI0GkOUVjLsSLQF1mRr9UbdXF3YPIsYtqyXxj",
"devPc": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII9hfhULcwnmtzXATxU6oqWPhTS06WXPVzx28knx9rPL"
}