Compare commits
25 Commits
817c6076dc
...
website-co
| Author | SHA1 | Date | |
|---|---|---|---|
| 6ff2249955 | |||
| ec6cfba9ba | |||
| 22b6a06b32 | |||
| dac9e80efd | |||
| 8fd744118f | |||
| adcbce68c8 | |||
| 33fbbe96b3 | |||
| 076618784a | |||
| 91ce9aa6c6 | |||
| 52eac520e8 | |||
| 2583e4e99b | |||
| 1b1db88a2a | |||
| 028637fdd3 | |||
| 649b596c7c | |||
| 25c08f7a1d | |||
| c320190a8d | |||
| e17d28914e | |||
| 95c9f186bb | |||
| 4f571b3ae1 | |||
| c5fdcf6b10 | |||
| a38cd26894 | |||
| 37e7b3617a | |||
| 87224a6dbb | |||
| 4b5f65bfdd | |||
| f9a837f0fa |
@@ -1,27 +0,0 @@
|
|||||||
name: Playwright Tests
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [main, master]
|
|
||||||
pull_request:
|
|
||||||
branches: [main, master]
|
|
||||||
jobs:
|
|
||||||
test:
|
|
||||||
timeout-minutes: 60
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: lts/*
|
|
||||||
- name: Install dependencies
|
|
||||||
run: npm ci
|
|
||||||
- name: Install Playwright Browsers
|
|
||||||
run: npx playwright install --with-deps
|
|
||||||
- name: Run Playwright tests
|
|
||||||
run: npx playwright test
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
if: ${{ !cancelled() }}
|
|
||||||
with:
|
|
||||||
name: playwright-report
|
|
||||||
path: playwright-report/
|
|
||||||
retention-days: 30
|
|
||||||
@@ -12,10 +12,12 @@ jobs:
|
|||||||
project_version: ${{ steps.project_metadata.outputs.PROJECT_VERSION }}
|
project_version: ${{ steps.project_metadata.outputs.PROJECT_VERSION }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Repository
|
- name: Checkout Repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
|
|
||||||
- name: Setup Node Environment
|
- name: Setup Node Environment
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v6
|
||||||
|
with:
|
||||||
|
node-version: ">=22.20"
|
||||||
|
|
||||||
- name: Setup Project Dependencies
|
- name: Setup Project Dependencies
|
||||||
run: |
|
run: |
|
||||||
@@ -48,28 +50,32 @@ jobs:
|
|||||||
needs: test
|
needs: test
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout caperren-com Repository
|
- name: Checkout caperren-com Repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
path: caperren-com
|
path: caperren-com
|
||||||
|
|
||||||
- name: Login to Docker Registry
|
- name: Login to Docker Registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: gitea.perren.cloud
|
registry: 192.168.1.36:30008
|
||||||
username: ${{ secrets.REGISTRY_USERNAME }}
|
username: ${{ secrets.REGISTRY_USERNAME }}
|
||||||
password: ${{ secrets.ACTIONS_TOKEN }}
|
password: ${{ secrets.ACTIONS_TOKEN }}
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
buildkitd-config-inline: |
|
||||||
|
[registry."192.168.1.36:30008"]
|
||||||
|
http = true
|
||||||
|
|
||||||
- name: Build and Push
|
- name: Build and Push
|
||||||
uses: docker/build-push-action@v5
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
context: caperren-com
|
context: caperren-com
|
||||||
push: true
|
push: true
|
||||||
tags: |
|
tags: |
|
||||||
gitea.perren.cloud/caperren/${{ needs.test.outputs.repo_name }}:${{ needs.test.outputs.repo_version_hash }}
|
192.168.1.36:30008/caperren/${{ needs.test.outputs.repo_name }}:${{ needs.test.outputs.repo_version_hash }}
|
||||||
gitea.perren.cloud/caperren/caperren-com:latest
|
192.168.1.36:30008/caperren/caperren-com:latest
|
||||||
build-args: |
|
build-args: |
|
||||||
REPO_VERSION_HASH=${{ needs.test.outputs.repo_version_hash }}
|
REPO_VERSION_HASH=${{ needs.test.outputs.repo_version_hash }}
|
||||||
BUILD_ENVIRONMENT=production
|
BUILD_ENVIRONMENT=production
|
||||||
|
|||||||
@@ -57,12 +57,16 @@ jobs:
|
|||||||
- name: Login to Docker Registry
|
- name: Login to Docker Registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: gitea.perren.cloud
|
registry: 192.168.1.36:30008
|
||||||
username: ${{ secrets.REGISTRY_USERNAME }}
|
username: ${{ secrets.REGISTRY_USERNAME }}
|
||||||
password: ${{ secrets.ACTIONS_TOKEN }}
|
password: ${{ secrets.ACTIONS_TOKEN }}
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
buildkitd-config-inline: |
|
||||||
|
[registry."192.168.1.36:30008"]
|
||||||
|
http = true
|
||||||
|
|
||||||
- name: Build and Push
|
- name: Build and Push
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
@@ -70,9 +74,9 @@ jobs:
|
|||||||
context: caperren-com
|
context: caperren-com
|
||||||
push: true
|
push: true
|
||||||
tags: |
|
tags: |
|
||||||
gitea.perren.cloud/caperren/caperren-com:latest-staging
|
192.168.1.36:30008/caperren/caperren-com:latest-staging
|
||||||
build-args: |
|
build-args: |
|
||||||
REPO_VERSION_HASH=${{ needs.determine_version.outputs.repo_version_hash }}
|
REPO_VERSION_HASH=${{ needs.test.outputs.repo_version_hash }}
|
||||||
BUILD_ENVIRONMENT=staging
|
BUILD_ENVIRONMENT=staging
|
||||||
|
|
||||||
deploy_staging:
|
deploy_staging:
|
||||||
|
|||||||
13
Makefile
@@ -15,7 +15,8 @@
|
|||||||
cleanup-check \
|
cleanup-check \
|
||||||
cleanup-code \
|
cleanup-code \
|
||||||
convert_video \
|
convert_video \
|
||||||
convert_video_times
|
convert_video_times \
|
||||||
|
generate_asset_imports
|
||||||
|
|
||||||
default: dev
|
default: dev
|
||||||
|
|
||||||
@@ -83,9 +84,17 @@ convert_video_times:
|
|||||||
-init_hw_device vaapi=va:/dev/dri/renderD128 \
|
-init_hw_device vaapi=va:/dev/dri/renderD128 \
|
||||||
-filter_hw_device va \
|
-filter_hw_device va \
|
||||||
-i $(input) \
|
-i $(input) \
|
||||||
-vf 'format=nv12,hwupload,scale_vaapi=-2:720,trim=start=$(start):end=$(end)' \
|
-ss $(start) \
|
||||||
|
-to $(end) \
|
||||||
|
-vf 'format=nv12,hwupload,scale_vaapi=-2:720' \
|
||||||
-c:v h264_vaapi \
|
-c:v h264_vaapi \
|
||||||
-rc_mode CQP \
|
-rc_mode CQP \
|
||||||
-qp 28 \
|
-qp 28 \
|
||||||
-an \
|
-an \
|
||||||
$(output)
|
$(output)
|
||||||
|
|
||||||
|
generate_asset_imports:
|
||||||
|
@for assets_path in `find "src/assets/${assets_relative_path}" -maxdepth 1 -type f -printf "%f\n"`; do \
|
||||||
|
without_extension=$${assets_path/%.*}; \
|
||||||
|
echo "import $${without_extension//-/_} from \"@assets/${assets_relative_path}/$$assets_path\";"; \
|
||||||
|
done;
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ const disabledPaths = getPaths(siteLayout, [], true);
|
|||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
site: "https://caperren.com",
|
site: "https://caperren.com",
|
||||||
|
trailingSlash: "never",
|
||||||
prefetch: {
|
prefetch: {
|
||||||
prefetchAll: true,
|
prefetchAll: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
ADCP
|
ADCP
|
||||||
|
Altium
|
||||||
ASSEM
|
ASSEM
|
||||||
astrojs
|
astrojs
|
||||||
|
Atmel
|
||||||
|
automations
|
||||||
|
barebones
|
||||||
|
beaglebone
|
||||||
|
Bitwarden
|
||||||
Candian
|
Candian
|
||||||
caperren
|
caperren
|
||||||
CEOAS
|
CEOAS
|
||||||
@@ -9,9 +15,20 @@ Concours
|
|||||||
CONSERV
|
CONSERV
|
||||||
Corwin
|
Corwin
|
||||||
dangerousthings
|
dangerousthings
|
||||||
|
dechorionation
|
||||||
Dechorionator
|
Dechorionator
|
||||||
|
dechorionators
|
||||||
|
dockerization
|
||||||
|
dockerizing
|
||||||
|
drumheller
|
||||||
|
ebox
|
||||||
|
ELMI
|
||||||
fhhs
|
fhhs
|
||||||
flowbite
|
flowbite
|
||||||
|
flowrate
|
||||||
|
gcode
|
||||||
|
gerbers
|
||||||
|
Gitea
|
||||||
HDFS
|
HDFS
|
||||||
headshot
|
headshot
|
||||||
Homelab
|
Homelab
|
||||||
@@ -19,33 +36,61 @@ hwupload
|
|||||||
iceops
|
iceops
|
||||||
ITAR
|
ITAR
|
||||||
Jetson
|
Jetson
|
||||||
|
KFSK
|
||||||
|
Labjack
|
||||||
leconte
|
leconte
|
||||||
Loctite
|
Loctite
|
||||||
luxon
|
luxon
|
||||||
MGMT
|
MGMT
|
||||||
|
microcontroller
|
||||||
|
microcontroller's
|
||||||
|
Micropumps
|
||||||
|
Millis
|
||||||
|
modbus
|
||||||
|
Mokai
|
||||||
|
Multimeters
|
||||||
nixos
|
nixos
|
||||||
|
nvme
|
||||||
offroad
|
offroad
|
||||||
Onshape
|
Onshape
|
||||||
OSSM
|
OSSM
|
||||||
OSURC
|
OSURC
|
||||||
|
panelized
|
||||||
|
Passthroughs
|
||||||
|
pcbs
|
||||||
Perren
|
Perren
|
||||||
Perren's
|
Perren's
|
||||||
|
Pixhawk
|
||||||
|
Protocase
|
||||||
pubpath
|
pubpath
|
||||||
RFID
|
RFID
|
||||||
|
Rito
|
||||||
RSSI
|
RSSI
|
||||||
SARL
|
SARL
|
||||||
|
SCARA
|
||||||
|
showerheads
|
||||||
Shuttlebox
|
Shuttlebox
|
||||||
|
simplemotion
|
||||||
sinnhuber
|
sinnhuber
|
||||||
sitemapindex
|
sitemapindex
|
||||||
|
Smartsheet
|
||||||
|
solderable
|
||||||
ssds
|
ssds
|
||||||
Starlink
|
Starlink
|
||||||
steller
|
steller
|
||||||
Steller
|
Steller
|
||||||
|
Tanguay
|
||||||
|
Teamcenter
|
||||||
timelapse
|
timelapse
|
||||||
|
touchoff
|
||||||
|
triaging
|
||||||
trivago
|
trivago
|
||||||
|
Truong
|
||||||
|
Ubiquiti
|
||||||
Unstow
|
Unstow
|
||||||
uuidv
|
uuidv
|
||||||
vaapi
|
vaapi
|
||||||
vitest
|
vitest
|
||||||
|
Waterjet
|
||||||
Zebrafish
|
Zebrafish
|
||||||
zscan
|
zscan
|
||||||
|
|||||||
|
After Width: | Height: | Size: 3.9 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 2.7 MiB After Width: | Height: | Size: 2.7 MiB |
|
After Width: | Height: | Size: 10 MiB |
|
After Width: | Height: | Size: 1.9 MiB |
|
After Width: | Height: | Size: 3.3 MiB |
|
After Width: | Height: | Size: 10 MiB |
|
After Width: | Height: | Size: 1.9 MiB |
|
After Width: | Height: | Size: 10 MiB |
|
After Width: | Height: | Size: 14 MiB |
|
After Width: | Height: | Size: 12 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 4.7 MiB |
|
After Width: | Height: | Size: 1.8 MiB |
|
After Width: | Height: | Size: 4.0 MiB |
|
After Width: | Height: | Size: 3.5 MiB |
|
After Width: | Height: | Size: 4.0 MiB |
|
After Width: | Height: | Size: 3.1 MiB |
|
After Width: | Height: | Size: 3.6 MiB |
|
After Width: | Height: | Size: 4.2 MiB |
|
After Width: | Height: | Size: 3.7 MiB |
|
After Width: | Height: | Size: 7.7 MiB |
|
After Width: | Height: | Size: 7.3 MiB |
|
After Width: | Height: | Size: 8.3 MiB |
|
After Width: | Height: | Size: 7.6 MiB |
|
After Width: | Height: | Size: 4.4 MiB |
|
After Width: | Height: | Size: 3.5 MiB |
|
After Width: | Height: | Size: 3.8 MiB |
|
After Width: | Height: | Size: 4.1 MiB |
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 239 KiB |
|
After Width: | Height: | Size: 3.8 MiB |
|
After Width: | Height: | Size: 3.9 MiB |
|
After Width: | Height: | Size: 4.6 MiB |
|
After Width: | Height: | Size: 4.2 MiB |
|
After Width: | Height: | Size: 4.2 MiB |
|
After Width: | Height: | Size: 4.3 MiB |
|
After Width: | Height: | Size: 4.4 MiB |
|
After Width: | Height: | Size: 4.4 MiB |
|
After Width: | Height: | Size: 6.4 MiB |
|
After Width: | Height: | Size: 7.9 MiB |
|
After Width: | Height: | Size: 8.9 MiB |
|
After Width: | Height: | Size: 8.7 MiB |
|
After Width: | Height: | Size: 7.8 MiB |
|
After Width: | Height: | Size: 5.9 MiB |
|
After Width: | Height: | Size: 9.2 MiB |
|
After Width: | Height: | Size: 4.2 MiB |
|
After Width: | Height: | Size: 1013 KiB |
|
After Width: | Height: | Size: 6.8 MiB |
|
After Width: | Height: | Size: 9.2 MiB |
|
After Width: | Height: | Size: 8.8 MiB |
|
After Width: | Height: | Size: 8.5 MiB |
|
After Width: | Height: | Size: 6.3 MiB |
|
After Width: | Height: | Size: 1017 KiB |
|
After Width: | Height: | Size: 878 KiB |
|
After Width: | Height: | Size: 7.1 MiB |
|
After Width: | Height: | Size: 605 KiB |
|
After Width: | Height: | Size: 826 KiB |
|
After Width: | Height: | Size: 7.1 MiB |
|
After Width: | Height: | Size: 6.1 MiB |
|
After Width: | Height: | Size: 6.9 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 8.3 MiB |
|
After Width: | Height: | Size: 7.5 MiB |
|
After Width: | Height: | Size: 7.2 MiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 4.6 MiB |
|
After Width: | Height: | Size: 4.6 MiB |
|
After Width: | Height: | Size: 4.4 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 167 KiB |
|
After Width: | Height: | Size: 438 KiB |
|
After Width: | Height: | Size: 224 KiB |
|
After Width: | Height: | Size: 437 KiB |
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 580 KiB |
|
After Width: | Height: | Size: 600 KiB |
|
After Width: | Height: | Size: 701 KiB |
BIN
src/assets/hobby/homelab/offsite-backup-rack/installed.jpg
Normal file
|
After Width: | Height: | Size: 2.4 MiB |
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 2.4 MiB |
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<h2 class="my-4 font-bold md:text-2xl">{Astro.props.text}</h2>
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<h3 class="mt-4 mb-2 font-bold md:text-lg">{Astro.props.text}</h3>
|
|
||||||
@@ -1,10 +1,23 @@
|
|||||||
---
|
---
|
||||||
|
import InlineLink from "@components/InlineLink.astro";
|
||||||
|
|
||||||
|
const { pathname } = Astro.url;
|
||||||
---
|
---
|
||||||
|
|
||||||
<footer
|
<footer
|
||||||
class="border-t-caperren-green-dark text-caperren-green-dark z-50 flex w-full max-w-full items-center justify-between border-t bg-black px-6 py-2 text-sm"
|
class="border-t-caperren-green-dark text-caperren-green-dark z-50 flex w-full max-w-full items-center justify-between border-t bg-black px-6 py-2 text-sm"
|
||||||
>
|
>
|
||||||
<span>{import.meta.env.PUBLIC_BUILD_ENVIRONMENT || "development"}</span>
|
<span>{import.meta.env.PUBLIC_BUILD_ENVIRONMENT || "development"}</span>
|
||||||
|
<div>
|
||||||
|
<InlineLink
|
||||||
|
class:list={[
|
||||||
|
"text-caperren-green-dark hover:text-caperren-green",
|
||||||
|
pathname === "/hobby/this-website"
|
||||||
|
? "border-caperren-green-dark hover:border-caperren-green border-b-2"
|
||||||
|
: false,
|
||||||
|
]}
|
||||||
|
href="/hobby/this-website">About This Website</InlineLink
|
||||||
|
>
|
||||||
|
</div>
|
||||||
<span>{import.meta.env.PUBLIC_REPO_VERSION_HASH || "invalid"}</span>
|
<span>{import.meta.env.PUBLIC_REPO_VERSION_HASH || "invalid"}</span>
|
||||||
</footer>
|
</footer>
|
||||||
|
|||||||
5
src/components/H1.astro
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<h1 class="text-xl font-extrabold sm:text-2xl md:text-3xl"><slot /></h1>
|
||||||
5
src/components/H2.astro
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<h2 class="text-lg font-bold sm:text-xl md:text-2xl"><slot /></h2>
|
||||||
5
src/components/H3.astro
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<h3 class="text-md font-semibold sm:text-lg md:text-xl"><slot /></h3>
|
||||||
5
src/components/H4.astro
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<h4 class="md:text-md text-xs sm:text-sm"><slot /></h4>
|
||||||