Skip to content

alecjvaughn/aleclabs

Repository files navigation

AlecLabs Portfolio

A modern, containerized personal portfolio and web lab built with Next.js, deployed on Google Cloud Run using Terraform and Ansible.

🚀 Tech Stack

  • Frontend: Next.js 16 (App Router), React 18, TypeScript, Tailwind CSS.
  • Infrastructure: Google Cloud Run, Artifact Registry.
  • IaC: Terraform.
  • Orchestration: Ansible, GNU Make.
  • Containerization: Docker (Multi-stage builds with non-root security).

🛠 Prerequisites

Ensure you have the following installed locally:

  • Node.js (v20+) & npm
  • Docker (Desktop or Colima)
  • Terraform (v1.0+)
  • Ansible
  • Google Cloud SDK (gcloud)
  • Firebase CLI (npm install -g firebase-tools)

💻 Local Development

Standard Node.js

make clean-install
npm run dev

Open http://localhost:3000 to view it in the browser.

Dockerized

make docker-up

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

☁️ Deployment

This project uses Terraform to provision infrastructure (Cloud Run) and Firebase Hosting for the frontend delivery.

  1. Authenticate:

    gcloud auth application-default login
    firebase login
  2. Deploy Infrastructure (Cloud Run): This runs pre-flight checks, Terraform apply, and health verification for the backend service.

    make ansible-deploy
  3. Deploy Hosting (Firebase): This deploys the Firebase Hosting configuration, which contains the rewrite rules that point to the Cloud Run service.

    make deploy-hosting

🕹 Command Reference

Command Description
make up Deploy infrastructure via Terraform.
make down Destroy infrastructure and cleanup.
make clean-all Full environment reset (Terraform, Docker, Node).
make ansible-deploy Orchestrate deployment with Ansible.
make deploy-hosting Deploy Firebase Hosting configuration.

About

professional site and demo hosting

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors