No description
  • Astro 41.3%
  • CSS 32.3%
  • TypeScript 24.1%
  • Dockerfile 1.6%
  • JavaScript 0.7%
Find a file
Tom Mendy 07f017215a
All checks were successful
publish-portfolio-image / publish (push) Successful in 55s
Update CV PDF
2026-09-19 18:26:57 +02:00
.forgejo/workflows ci: publish Portfolio image with rootless BuildKit 2026-08-30 15:06:18 +02:00
.vscode Initialize Astro project with minimal starter setup 2026-08-29 10:55:12 +02:00
deploy Configure locale-prefixed routing and redirects 2026-09-07 21:57:09 +02:00
public Update CV PDF 2026-09-19 18:26:57 +02:00
src Configure locale-prefixed routing and redirects 2026-09-07 21:57:09 +02:00
.dockerignore Add Docker deployment and Forgejo publishing workflow 2026-08-29 14:27:27 +02:00
.gitignore Initialize Astro project with minimal starter setup 2026-08-29 10:55:12 +02:00
AGENTS.md Initialize Astro project with minimal starter setup 2026-08-29 10:55:12 +02:00
astro.config.mjs Configure locale-prefixed routing and redirects 2026-09-07 21:57:09 +02:00
bun.lock Upgrade TypeScript and development dependencies 2026-09-07 22:06:51 +02:00
Dockerfile Add Docker deployment and Forgejo publishing workflow 2026-08-29 14:27:27 +02:00
package.json Upgrade TypeScript and development dependencies 2026-09-07 22:06:51 +02:00
README.md Add Docker deployment and Forgejo publishing workflow 2026-08-29 14:27:27 +02:00
tsconfig.json Initialize Astro project with minimal starter setup 2026-08-29 10:55:12 +02:00

Tom Mendy portfolio

A bilingual, static Astro portfolio for DevOps and Platform Engineering roles.

Development

The development server runs in Astro background mode:

bun run dev
bun run dev:status
bun run dev:logs
bun run dev:stop

Validation

bun run check
bun run build

French pages use the unprefixed routes. English pages live under /en/. Shared copy is in src/data/portfolio.ts.

Docker image

The Forgejo workflow at .forgejo/workflows/publish-portfolio.yml builds the static site and publishes it to:

forgejo.tom-mendy.com/tom-mendy/portfolio

Every successful run publishes an immutable commit tag:

docker pull forgejo.tom-mendy.com/tom-mendy/portfolio:sha-<commit>

Pushes to main also update latest. Use the commit tag in Kubernetes so a deployment always points to one exact build. The container listens on port 8080 and serves the generated Astro site with Nginx.

If the Forgejo registry is private, create an image pull secret in the target namespace and reference it from the Deployment:

kubectl -n portfolio create secret docker-registry forgejo-registry \
  --docker-server=forgejo.tom-mendy.com \
  --docker-username=tom-mendy \
  --docker-password='<registry-token>'