A portfolio site built using Nychthemeron
Find a file
Matthew L McPeak 6fd8a5b4fa
Some checks failed
ci / build (pull_request) Failing after 0s
ci / publish (pull_request) Has been skipped
fix: CI
Fix yaml error
2026-06-12 10:24:14 -04:00
.forgejo/workflows fix: CI 2026-06-12 10:24:14 -04:00
.vscode Initial Commit 2026-06-10 16:07:12 -04:00
e2e Initial Commit 2026-06-10 16:07:12 -04:00
public Initial Commit 2026-06-10 16:07:12 -04:00
src Initial Portfolio (#1) 2026-06-11 16:21:00 -04:00
.dockerignore Initial Portfolio (#1) 2026-06-11 16:21:00 -04:00
.editorconfig Initial Commit 2026-06-10 16:07:12 -04:00
.gitattributes Initial Commit 2026-06-10 16:07:12 -04:00
.gitignore Initial Commit 2026-06-10 16:07:12 -04:00
.oxfmtrc.json Initial Commit 2026-06-10 16:07:12 -04:00
.oxlintrc.json Initial Commit 2026-06-10 16:07:12 -04:00
bun.lock Initial Commit 2026-06-10 16:07:12 -04:00
Dockerfile Initial Portfolio (#1) 2026-06-11 16:21:00 -04:00
env.d.ts Initial Commit 2026-06-10 16:07:12 -04:00
eslint.config.ts Initial Commit 2026-06-10 16:07:12 -04:00
index.html Initial Portfolio (#1) 2026-06-11 16:21:00 -04:00
nginx.conf Initial Portfolio (#1) 2026-06-11 16:21:00 -04:00
package-lock.json Initial Portfolio (#1) 2026-06-11 16:21:00 -04:00
package.json Initial Commit 2026-06-10 16:07:12 -04:00
playwright.config.ts Initial Commit 2026-06-10 16:07:12 -04:00
README.md Initial Portfolio (#1) 2026-06-11 16:21:00 -04:00
tsconfig.app.json Initial Commit 2026-06-10 16:07:12 -04:00
tsconfig.json Initial Commit 2026-06-10 16:07:12 -04:00
tsconfig.node.json Initial Portfolio (#1) 2026-06-11 16:21:00 -04:00
tsconfig.vitest.json Initial Portfolio (#1) 2026-06-11 16:21:00 -04:00
vite.config.ts Initial Commit 2026-06-10 16:07:12 -04:00
vitest.config.ts Initial Commit 2026-06-10 16:07:12 -04:00

portfolio

This template should help get you started developing with Vue 3 in Vite.

VS Code + Vue (Official) (and disable Vetur).

Type Support for .vue Imports in TS

TypeScript cannot handle type information for .vue imports by default, so we replace the tsc CLI with vue-tsc for type checking. In editors, we need Volar to make the TypeScript language service aware of .vue types.

Customize configuration

See Vite Configuration Reference.

Project Setup

bun install

Compile and Hot-Reload for Development

bun dev

Type-Check, Compile and Minify for Production

bun run build

Run Unit Tests with Vitest

bun test:unit

Run End-to-End Tests with Playwright

# Install browsers for the first run
npx playwright install

# When testing on CI, must build the project first
bun run build

# Runs the end-to-end tests
bun test:e2e
# Runs the tests only on Chromium
bun test:e2e --project=chromium
# Runs the tests of a specific file
bun test:e2e tests/example.spec.ts
# Runs the tests in debug mode
bun test:e2e --debug

Lint with ESLint

bun lint

Docker

The Dockerfile serves a pre-built dist/ directory via nginx, so build the app first:

bun run build
docker build -t portfolio .
docker run --rm -p 8080:80 portfolio

The site will be available at http://localhost:8080.

CI publishing

A Forgejo Actions workflow (.forgejo/workflows/docker-publish.yml) builds the image and pushes it to the Forgejo container registry whenever a v* tag is pushed (e.g. v1.2.3):

  • git.mcpeakdev.com/mcpeakml/portfolio:<version>
  • git.mcpeakdev.com/mcpeakml/portfolio:latest

This requires a REGISTRY_TOKEN repository secret containing a token with write:package permission for the registry.