da61cbba5dbbb1b30b5b5d0aeab59e19039c17cd
Build and Deploy / deploy (push) Successful in 1m18s
Add uptop (uptime monitoring TUI) as featured project. Reorder nib above homelab, update nib stack and URL. Move open-pact to archive. Update portfolio description (Nginx → Caddy). Fix VLAN count 8 → 7. Trim Hero bio.
Tyler Koenig portfolio
Personal portfolio site. Live at lerkolabs.com — self-hosted.
Source: gitea.lerkolabs.com/lerko/portfolio
Stack: Astro 5 · TypeScript · Tailwind v4
Branches
dev— source code; pushing here updates lerkolabs.commaster— reserved for future GitHub mirror; don't touch manually
Commands
npm run dev # dev server at localhost:4321
npm run build # static export into out/
npm run preview # preview production build
Deploy
git checkout dev && git merge <branch> && git push gitea dev
Push to dev triggers Gitea Actions (.gitea/workflows/deploy.yml):
- Builds the static site (
npm run build) - rsyncs
out/to the portfolio LXC - Rebuilds and restarts the Docker container serving lerkolabs.com
Project layout
src/
layouts/
Base.astro # root layout, fonts, theme script, nav/footer
pages/
index.astro # home: hero, timeline
projects.astro # featured + archive projects
homelab.astro # VLANs, services, ADRs
archive.astro # redirect to /projects/
components/ # Nav, Footer, Hero, Timeline, Widget, ProjectCard, Skills
data/
projects.ts # all projects, featured + archive split
services.ts # homelab services with categories
timeline.ts # career/project timeline
styles/
globals.css # full design system (Tailwind v4 CSS-first, all tokens here)
public/
fonts/ # self-hosted Source Code Pro woff2
Tailwind v4 is CSS-first — no
tailwind.config.ts. All custom tokens live inglobals.cssunder@theme {}.
Description
Languages
Astro
45.3%
TypeScript
42.7%
CSS
10.9%
JavaScript
0.9%
Dockerfile
0.2%