Compare commits
30 Commits
6952b77980
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 83c27ba1bf | |||
| 6ff2249955 | |||
| ec6cfba9ba | |||
| 22b6a06b32 | |||
| 090bc11ed0 | |||
| dac9e80efd | |||
| 8fd744118f | |||
| 3be602c6cf | |||
| adcbce68c8 | |||
| 33fbbe96b3 | |||
| 076618784a | |||
| 91ce9aa6c6 | |||
| 52eac520e8 | |||
| 67b969d26b | |||
| 2583e4e99b | |||
| 1b1db88a2a | |||
| 028637fdd3 | |||
| 25d7193fff | |||
| 649b596c7c | |||
| 25c08f7a1d | |||
| c320190a8d | |||
| e17d28914e | |||
| bce5004708 | |||
| 95c9f186bb | |||
| 4f571b3ae1 | |||
| c5fdcf6b10 | |||
| a38cd26894 | |||
| c580665963 | |||
| 37e7b3617a | |||
| 87224a6dbb |
@@ -57,12 +57,16 @@ jobs:
|
||||
- name: Login to Docker Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: gitea.perren.cloud
|
||||
registry: 192.168.1.36:30008
|
||||
username: ${{ secrets.REGISTRY_USERNAME }}
|
||||
password: ${{ secrets.ACTIONS_TOKEN }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
with:
|
||||
buildkitd-config-inline: |
|
||||
[registry."192.168.1.36:30008"]
|
||||
http = true
|
||||
|
||||
- name: Build and Push
|
||||
uses: docker/build-push-action@v6
|
||||
@@ -70,8 +74,8 @@ jobs:
|
||||
context: caperren-com
|
||||
push: true
|
||||
tags: |
|
||||
gitea.perren.cloud/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/${{ needs.test.outputs.repo_name }}:${{ needs.test.outputs.repo_version_hash }}
|
||||
192.168.1.36:30008/caperren/caperren-com:latest
|
||||
build-args: |
|
||||
REPO_VERSION_HASH=${{ needs.test.outputs.repo_version_hash }}
|
||||
BUILD_ENVIRONMENT=production
|
||||
|
||||
@@ -57,12 +57,16 @@ jobs:
|
||||
- name: Login to Docker Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: gitea.perren.cloud
|
||||
registry: 192.168.1.36:30008
|
||||
username: ${{ secrets.REGISTRY_USERNAME }}
|
||||
password: ${{ secrets.ACTIONS_TOKEN }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
with:
|
||||
buildkitd-config-inline: |
|
||||
[registry."192.168.1.36:30008"]
|
||||
http = true
|
||||
|
||||
- name: Build and Push
|
||||
uses: docker/build-push-action@v6
|
||||
@@ -70,7 +74,7 @@ jobs:
|
||||
context: caperren-com
|
||||
push: true
|
||||
tags: |
|
||||
gitea.perren.cloud/caperren/caperren-com:latest-staging
|
||||
192.168.1.36:30008/caperren/caperren-com:latest-staging
|
||||
build-args: |
|
||||
REPO_VERSION_HASH=${{ needs.test.outputs.repo_version_hash }}
|
||||
BUILD_ENVIRONMENT=staging
|
||||
|
||||
13
Makefile
@@ -15,7 +15,8 @@
|
||||
cleanup-check \
|
||||
cleanup-code \
|
||||
convert_video \
|
||||
convert_video_times
|
||||
convert_video_times \
|
||||
generate_asset_imports
|
||||
|
||||
default: dev
|
||||
|
||||
@@ -83,9 +84,17 @@ convert_video_times:
|
||||
-init_hw_device vaapi=va:/dev/dri/renderD128 \
|
||||
-filter_hw_device va \
|
||||
-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 \
|
||||
-rc_mode CQP \
|
||||
-qp 28 \
|
||||
-an \
|
||||
$(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({
|
||||
site: "https://caperren.com",
|
||||
trailingSlash: "never",
|
||||
prefetch: {
|
||||
prefetchAll: true,
|
||||
},
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
ADCP
|
||||
Altium
|
||||
ASSEM
|
||||
astrojs
|
||||
Atmel
|
||||
automations
|
||||
barebones
|
||||
beaglebone
|
||||
Bitwarden
|
||||
Candian
|
||||
caperren
|
||||
CEOAS
|
||||
@@ -9,9 +15,20 @@ Concours
|
||||
CONSERV
|
||||
Corwin
|
||||
dangerousthings
|
||||
dechorionation
|
||||
Dechorionator
|
||||
dechorionators
|
||||
dockerization
|
||||
dockerizing
|
||||
drumheller
|
||||
ebox
|
||||
ELMI
|
||||
fhhs
|
||||
flowbite
|
||||
flowrate
|
||||
gcode
|
||||
gerbers
|
||||
Gitea
|
||||
HDFS
|
||||
headshot
|
||||
Homelab
|
||||
@@ -19,33 +36,61 @@ hwupload
|
||||
iceops
|
||||
ITAR
|
||||
Jetson
|
||||
KFSK
|
||||
Labjack
|
||||
leconte
|
||||
Loctite
|
||||
luxon
|
||||
MGMT
|
||||
microcontroller
|
||||
microcontroller's
|
||||
Micropumps
|
||||
Millis
|
||||
modbus
|
||||
Mokai
|
||||
Multimeters
|
||||
nixos
|
||||
nvme
|
||||
offroad
|
||||
Onshape
|
||||
OSSM
|
||||
OSURC
|
||||
panelized
|
||||
Passthroughs
|
||||
pcbs
|
||||
Perren
|
||||
Perren's
|
||||
Pixhawk
|
||||
Protocase
|
||||
pubpath
|
||||
RFID
|
||||
Rito
|
||||
RSSI
|
||||
SARL
|
||||
SCARA
|
||||
showerheads
|
||||
Shuttlebox
|
||||
simplemotion
|
||||
sinnhuber
|
||||
sitemapindex
|
||||
Smartsheet
|
||||
solderable
|
||||
ssds
|
||||
Starlink
|
||||
steller
|
||||
Steller
|
||||
Tanguay
|
||||
Teamcenter
|
||||
timelapse
|
||||
touchoff
|
||||
triaging
|
||||
trivago
|
||||
Truong
|
||||
Ubiquiti
|
||||
Unstow
|
||||
uuidv
|
||||
vaapi
|
||||
vitest
|
||||
Waterjet
|
||||
Zebrafish
|
||||
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,10 +1,23 @@
|
||||
---
|
||||
import InlineLink from "@components/InlineLink.astro";
|
||||
|
||||
const { pathname } = Astro.url;
|
||||
---
|
||||
|
||||
<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"
|
||||
>
|
||||
<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>
|
||||
</footer>
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
---
|
||||
|
||||
<h1 class="text-xl font-extrabold md:text-3xl"><slot /></h1>
|
||||
<h1 class="text-xl font-extrabold sm:text-2xl md:text-3xl"><slot /></h1>
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
---
|
||||
|
||||
<h2 class="my-4 font-bold md:text-2xl"><slot /></h2>
|
||||
<h2 class="text-lg font-bold sm:text-xl md:text-2xl"><slot /></h2>
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
---
|
||||
|
||||
<h3 class="mt-4 mb-2 font-bold md:text-lg"><slot /></h3>
|
||||
<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>
|
||||
@@ -7,16 +7,10 @@ interface Props extends ComponentPropsBase {
|
||||
}
|
||||
|
||||
const { class: className, href, target } = Astro.props;
|
||||
const { pathname } = Astro.url;
|
||||
|
||||
let finalTarget: string | undefined = target;
|
||||
|
||||
if (target === undefined) {
|
||||
if (href.startsWith("/")) {
|
||||
finalTarget = "";
|
||||
} else {
|
||||
finalTarget = "_blank";
|
||||
}
|
||||
}
|
||||
const finalTarget =
|
||||
target === undefined ? (href.startsWith("/") ? undefined : "_blank") : target;
|
||||
---
|
||||
|
||||
<>
|
||||
@@ -24,6 +18,7 @@ if (target === undefined) {
|
||||
class:list={["text-blue-500", "hover:text-blue-300", className]}
|
||||
href={href}
|
||||
target={finalTarget}
|
||||
aria-current={pathname === href ? "page" : undefined}
|
||||
>
|
||||
<slot />
|
||||
</a>
|
||||
|
||||
9
src/components/Li.astro
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
<>
|
||||
<li>
|
||||
<slot />
|
||||
</li>
|
||||
</>
|
||||
@@ -9,6 +9,7 @@ interface Props {
|
||||
const { title, href, target = "_blank" } = Astro.props;
|
||||
---
|
||||
|
||||
<div class="mx-auto">
|
||||
<a
|
||||
class="text-caperren-green border-caperren-green hover:border-caperren-green-light hover:text-caperren-green-light rounded-2xl border-2 bg-black p-2"
|
||||
href={href}
|
||||
@@ -16,3 +17,4 @@ const { title, href, target = "_blank" } = Astro.props;
|
||||
>
|
||||
{title}
|
||||
</a>
|
||||
</div>
|
||||
|
||||