From 8eb41f8fa48552107c1516b25377719905648831 Mon Sep 17 00:00:00 2001 From: Troy Date: Thu, 10 Apr 2025 10:48:00 +0100 Subject: [PATCH] fix: remove duplicate dates on articles --- package-lock.json | 14 +- package.json | 2 +- src/components/Article.astro | 7 +- src/content/posts/website/index.mdx | 212 ++++++++++++++++++ src/content/posts/website/showcase.avif | Bin 0 -> 31737 bytes .../projects/3d-package-design/index.mdx | 1 - .../projects/a-long-way-down/index.mdx | 1 - src/content/projects/astronaut/index.mdx | 1 - .../digital-artifact-corridor/index.mdx | 1 - src/content/projects/discord-bot/index.mdx | 1 - src/content/projects/firespline/index.mdx | 1 - .../projects/kraken-in-the-cupboard/index.mdx | 1 - src/content/projects/logofolio/index.mdx | 1 - .../projects/megascans-artworks/index.mdx | 1 - src/content/projects/mortis/index.mdx | 1 - src/content/projects/nightmare/index.mdx | 1 - src/content/projects/packard/index.mdx | 1 - src/content/projects/pasikdhar/index.mdx | 1 - .../projects/sixth-form-artworks/index.mdx | 1 - .../projects/studying-spider/index.mdx | 1 - .../terrys-mango-juice-n-stuff/index.mdx | 1 - src/content/projects/the-batman/index.mdx | 1 - src/content/projects/tomb/index.mdx | 1 - .../untitledarmy-inspired-character/index.mdx | 1 - src/content/projects/webboss/index.mdx | 1 - src/icons/cat.svg | 6 + src/layouts/Cv.astro | 6 +- src/pages/404.astro | 1 - 28 files changed, 230 insertions(+), 38 deletions(-) create mode 100644 src/content/posts/website/index.mdx create mode 100644 src/content/posts/website/showcase.avif create mode 100644 src/icons/cat.svg diff --git a/package-lock.json b/package-lock.json index c787ce8..5fe8a2d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "@iconify-json/mdi": "^1.2.3", "@tailwindcss/typography": "^0.5.16", "@types/node": "^22.14.0", - "npm-check-updates": "^17.1.16", + "npm-check-updates": "^17.1.18", "prettier": "^3.5.3", "prettier-plugin-astro": "^0.14.1", "prettier-plugin-tailwindcss": "^0.6.11" @@ -5930,9 +5930,9 @@ } }, "node_modules/npm-check-updates": { - "version": "17.1.16", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-17.1.16.tgz", - "integrity": "sha512-9nohkfjLRzLfsLVGbO34eXBejvrOOTuw5tvNammH73KEFG5XlFoi3G2TgjTExHtnrKWCbZ+mTT+dbNeSjASIPw==", + "version": "17.1.18", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-17.1.18.tgz", + "integrity": "sha512-bkUy2g4v1i+3FeUf5fXMLbxmV95eG4/sS7lYE32GrUeVgQRfQEk39gpskksFunyaxQgTIdrvYbnuNbO/pSUSqw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -7654,9 +7654,9 @@ } }, "node_modules/vite": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.4.tgz", - "integrity": "sha512-veHMSew8CcRzhL5o8ONjy8gkfmFJAd5Ac16oxBUjlwgX3Gq2Wqr+qNC3TjPIpy7TPV/KporLga5GT9HqdrCizw==", + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.5.tgz", + "integrity": "sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==", "license": "MIT", "dependencies": { "esbuild": "^0.25.0", diff --git a/package.json b/package.json index 3f9bbb6..87fff70 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@iconify-json/mdi": "^1.2.3", "@tailwindcss/typography": "^0.5.16", "@types/node": "^22.14.0", - "npm-check-updates": "^17.1.16", + "npm-check-updates": "^17.1.18", "prettier": "^3.5.3", "prettier-plugin-astro": "^0.14.1", "prettier-plugin-tailwindcss": "^0.6.11" diff --git a/src/components/Article.astro b/src/components/Article.astro index e960167..63a0022 100644 --- a/src/components/Article.astro +++ b/src/components/Article.astro @@ -9,11 +9,6 @@ import RelatedArticles from "@components/RelatedArticles.astro"; const { article, isPost = false } = Astro.props; const { Content } = await article.render(); -let datesMatch = false; -if (article.data.date.getTime() == article.data.updated?.getTime()) { - datesMatch = true; -} - const listFormatter = new Intl.ListFormat("en-GB", { style: "long", type: "conjunction", @@ -41,7 +36,7 @@ const listFormatter = new Intl.ListFormat("en-GB", {
{ - datesMatch ? ( + !article.data.updated ? (

diff --git a/src/content/posts/website/index.mdx b/src/content/posts/website/index.mdx new file mode 100644 index 0000000..ef3753f --- /dev/null +++ b/src/content/posts/website/index.mdx @@ -0,0 +1,212 @@ +--- +title: "Website" +date: 2025-04-07 +description: "An overview of what I am using to host my digital content." +image: + url: "showcase.avif" + alt: "Website showcase" +categories: ["personal"] +tags: ["self-host", "forgejo", "docker", "vps"] +draft: true +--- + +This post will outline my workflow of using a self-hosted Forgejo instance and Actions runner to automatically deploy my personal site and any software releases, all without having to rely on another provider. + +![Website showcase](showcase.avif) + +## Steps + +### Private image access login? + +```sh +echo '' | docker login code.troylusty.com -u troy --password-stdin +``` + +```sh +echo $(htpasswd -nB user) | sed -e s/\\$/\\$\\$/g +``` + +### Aliases for updating VPS and pruning Docker + +```sh +echo 'alias dockerclean="docker system prune -a --volumes"' >> .bashrc +echo 'alias updateall="sudo apt update && sudo apt upgrade && sudo apt autoremove"' >> .bashrc +``` + +Thanks to [Tech Tales](https://tech-tales.blog/posts/2025/01-forgejo-runner-update) for the clean instructions on how to setup an Actions runner with Forgejo. + +```sh +docker compose run --rm forgejo-runner 'forgejo-runner' 'generate-config' > forgejo-runner/config.yml +``` + +Setup `container.docker_host: "unix:///var/run/docker.sock"` and `container.network: "forgejo"` and any labels such as `runner.labels: ["ubuntu-latest:docker://gitea/runner-images:ubuntu-latest"]` + +``` +docker compose run --rm -it forgejo-runner 'forgejo-runner' 'register' +``` + +Input `http://forgejo:3000` as the domain since forgejo is the container name in Docker and port 3000 is its relevant port. + +## Docker compose + +```yaml +services: + traefik: + image: traefik:latest + container_name: traefik + command: + - "--providers.docker" + - "--providers.docker.exposedbydefault=false" + - "--entryPoints.websecure.address=:443" + - "--certificatesresolvers.myresolver.acme.tlschallenge=true" + - "--certificatesresolvers.myresolver.acme.email=traefik@troylusty.com" + - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" + - "--entrypoints.web.address=:80" + - "--entrypoints.web.http.redirections.entrypoint.to=websecure" + - "--entrypoints.web.http.redirections.entrypoint.scheme=https" + - "--ping=true" + labels: + - "traefik.enable=true" + - "com.centurylinklabs.watchtower.enable=true" + - "traefik.http.middlewares.securityHeaders.headers.stsSeconds=31536000" + - "traefik.http.middlewares.securityHeaders.headers.stsIncludeSubdomains=true" + - "traefik.http.middlewares.securityHeaders.headers.frameDeny=true" + - "traefik.http.middlewares.securityHeaders.headers.contentTypeNosniff=true" + - "traefik.http.middlewares.securityHeaders.headers.contentSecurityPolicy=default-src 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; base-uri 'none'; form-action 'self'; object-src 'none'; frame-ancestors 'none'; upgrade-insecure-requests" + - "traefik.http.middlewares.securityHeaders.headers.referrerPolicy=no-referrer" + - "traefik.http.middlewares.securityHeaders.headers.permissionsPolicy=accelerometer=(), autoplay=(), camera=(), cross-origin-isolated=(), display-capture=(), encrypted-media=(), fullscreen=(), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), sync-xhr=(self), usb=(), web-share=(), xr-spatial-tracking=(), clipboard-read=(), clipboard-write=(), gamepad=(), hid=(), idle-detection=(), interest-cohort=(), serial=(), unload=()" + ports: + - "80:80" + - "443:443" + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - letsencrypt:/letsencrypt + restart: unless-stopped + networks: + - traefik + healthcheck: + test: ["CMD", "traefik", "healthcheck", "--ping"] + depends_on: + watchtower: + condition: service_healthy + + watchtower: + image: containrrr/watchtower:latest + command: --label-enable --interval 1800 --rolling-restart --cleanup --remove-volumes + container_name: watchtower + networks: + - traefik + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - /home/troy/.docker/config.json:/config.json + restart: unless-stopped + healthcheck: + test: ["CMD", "/watchtower", "--health-check"] + + personalsite: + image: code.troylusty.com/troy/troylusty.com:latest + container_name: personalsite + labels: + - "traefik.enable=true" + - "traefik.http.routers.personalsite.rule=Host(`troylusty.com`)" + - "traefik.http.routers.personalsite.entrypoints=websecure" + - "traefik.http.routers.personalsite.tls.certresolver=myresolver" + - "com.centurylinklabs.watchtower.enable=true" + - "traefik.http.routers.personalsite.middlewares=securityHeaders" + restart: unless-stopped + networks: + - traefik + depends_on: + traefik: + condition: service_healthy + + zolapress: + image: code.troylusty.com/troy/zolapress:latest + container_name: zolapress + profiles: + - donotstart + labels: + - "traefik.enable=true" + - "traefik.http.routers.zolapress.rule=Host(`edu.troylusty.com`)" + - "traefik.http.routers.zolapress.entrypoints=websecure" + - "traefik.http.routers.zolapress.tls.certresolver=myresolver" + - "com.centurylinklabs.watchtower.enable=true" + - "traefik.http.middlewares.auth.basicauth.users=troy:$$2y$$05$$fgVNzDsxXDq4co3aTh/OMOKZdLzUiM9XPEU5DXCivc9sYUZy/oq1W" + - "traefik.http.routers.zolapress.middlewares=securityHeaders, auth" + restart: unless-stopped + networks: + - traefik + depends_on: + traefik: + condition: service_healthy + + unduck: + image: code.troylusty.com/troy/unduck:latest + container_name: unduck + labels: + - "traefik.enable=true" + - "traefik.http.routers.unduck.rule=Host(`unduck.troylusty.com`)" + - "traefik.http.routers.unduck.entrypoints=websecure" + - "traefik.http.routers.unduck.tls.certresolver=myresolver" + - "com.centurylinklabs.watchtower.enable=true" + - "traefik.http.routers.unduck.middlewares=securityHeaders" + restart: unless-stopped + networks: + - traefik + depends_on: + traefik: + condition: service_healthy + + forgejo: + image: codeberg.org/forgejo/forgejo:10 + container_name: forgejo + restart: unless-stopped + networks: + - traefik + - forgejo + labels: + - "traefik.enable=true" + - "traefik.http.routers.forgejo.rule=Host(`code.troylusty.com`)" + - "traefik.http.routers.forgejo.entrypoints=websecure" + - "traefik.http.routers.forgejo.tls.certresolver=myresolver" + - "com.centurylinklabs.watchtower.enable=true" + - "traefik.http.routers.forgejo.middlewares=securityHeaders" + - "traefik.http.services.forgejo.loadbalancer.server.port=3000" + - "traefik.docker.network=traefik" + volumes: + - ./forgejo:/data + ports: + - "2222:22" + depends_on: + traefik: + condition: service_healthy + + forgejo-runner: + image: code.forgejo.org/forgejo/runner:6.0.1 + container_name: forgejo-runner + user: 0:0 + depends_on: + forgejo: + condition: service_started + networks: + - forgejo + labels: + - "com.centurylinklabs.watchtower.enable=true" + volumes: + - ./forgejo-runner:/data + - ./forgejo-runner/config.yml:/data/config.yml + - /var/run/docker.sock:/var/run/docker.sock + restart: unless-stopped + command: forgejo-runner -c /data/config.yml daemon + +networks: + traefik: + external: false + name: traefik + forgejo: + external: false + name: forgejo + +volumes: + letsencrypt: +``` diff --git a/src/content/posts/website/showcase.avif b/src/content/posts/website/showcase.avif new file mode 100644 index 0000000000000000000000000000000000000000..395dbe23afd9f0ff48407c14976831417ae343a0 GIT binary patch literal 31737 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�& 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 + + + + + diff --git a/src/layouts/Cv.astro b/src/layouts/Cv.astro index f54aaff..f6137df 100644 --- a/src/layouts/Cv.astro +++ b/src/layouts/Cv.astro @@ -11,10 +11,10 @@ import icon from "public/assets/icon.png";

- {CV.TITLE}{CV.DESCRIPTION}{CV.TITLE}{CV.DESCRIPTION}

Digital designer.