Skip to content

A creative sandbox and professional portfolio built with Next.js, TypeScript, and Tailwind. An evolving space to experiment with modern frontend tech, motion design, and my engineering identity.

Notifications You must be signed in to change notification settings

mtgibbs/mtgibbs.xyz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

333 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mtgibbs.xyz

Overview

The source for my personal site mtgibbs.xyz. It is a Next.js project bootstrapped with create-next-app.

Development Server

First, run the development server:

npm run dev

Open http://localhost:3000 with your browser.

Deployment

This project uses GitHub Actions for automated CI/CD.

Automated Flow

Pushes to the mater branch trigger the following in parallel:

Heroku Deployment

  1. Build: A Docker image is built for the Next.js application.
  2. Push: The image is pushed to the Heroku Container Registry.
  3. Release: The container is released to the Heroku app (mtgibbs).
  4. Purge: The Cloudflare cache is automatically purged.

GHCR Publishing (for Kubernetes/Flux)

  1. Multi-Arch Build: Builds images for both linux/amd64 and linux/arm64 (Raspberry Pi support).
  2. Tagging: Images are tagged with latest, git SHA, and a timestamp (YYYYMMDDHHmmss) for Flux numeric sorting.
  3. Push: Images are pushed to GitHub Container Registry.

Required Secrets

The following GitHub Secrets must be configured for the Heroku workflow:

  • HEROKU_API_KEY: Your Heroku API key.
  • HEROKU_APP_NAME: mtgibbs
  • HEROKU_EMAIL: Your Heroku account email.
  • CLOUDFLARE_ZONE: The Zone ID for mtgibbs.xyz.
  • CLOUDFLARE_TOKEN: A Cloudflare API Token with "Purge Cache" permissions.

Note: GITHUB_TOKEN is used automatically for GHCR publishing.

Manual Commands (Reference)

If you ever need to manually deploy via Docker:

$> docker build -t registry.heroku.com/mtgibbs/web .
$> docker push registry.heroku.com/mtgibbs/web
$> heroku container:release web --app mtgibbs

About

A creative sandbox and professional portfolio built with Next.js, TypeScript, and Tailwind. An evolving space to experiment with modern frontend tech, motion design, and my engineering identity.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •