Skip to content

Latest commit

 

History

297 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Facet

A web platform for creating, connecting to, and managing Google Cloud Engine virtual machines.

Screenshot 2025-11-11 at 12 58 11 PM Screenshot 2025-11-11 at 12 58 46 PM Screenshot 2025-11-11 at 12 59 15 PM Screenshot 2025-11-11 at 6 13 58 PM

Features

  • Create and manage GCE virtual machines
  • Configure init scripts for VMs
  • Manage firewall rules and expose ports
  • Connect to GCP account via OAuth
  • Simple, clean interface built with React and Tailwind CSS

Tech Stack

  • Frontend: React, Vite, TypeScript, Tailwind CSS, React Query
  • Backend: Hono, Drizzle ORM, PostgreSQL
  • Common: Shared TypeScript types package
  • Infrastructure: Google Cloud Compute Engine API

Project Structure

├── packages/
│   ├── frontend/      # React frontend application
│   ├── backend/       # Hono API server
│   └── types/         # Shared TypeScript types
├── package.json       # Root package.json for monorepo
└── tsconfig.json      # Root TypeScript config

Setup

  1. Install dependencies:
npm install
  1. Create the PostgreSQL database:

First, ensure you have PostgreSQL installed and the orchestrator user created:

# Create the orchestrator user (if not exists)
sudo -u postgres createuser orchestrator -P

Then create the database:

# Option 1: Using the shell script
npm run db:create

# Option 2: Using SQL directly
npm run db:create:sql
  1. Set up environment variables:

Backend (.env in packages/backend):

DATABASE_URL=postgres://orchestrator:orchestrator@localhost:5432/orchestrator
PORT=3000
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
GOOGLE_REDIRECT_URI=http://localhost:3000/api/auth/google/callback
  1. Set up the database schema:
cd packages/backend
npm run db:generate
npm run db:migrate
  1. Run the development servers:
# From root directory
npm run dev

This will start:

Google Cloud Setup

  1. Create a new project in Google Cloud Console
  2. Enable the Compute Engine API
  3. Create OAuth 2.0 credentials
  4. Add authorized redirect URI: http://localhost:3000/api/auth/google/callback
  5. Add the client ID and secret to your backend .env file

Development

  • npm run build - Build all packages
  • npm run typecheck - Run TypeScript type checking
  • npm run lint - Run ESLint on all packages

About

Easily manage GCE Virtual Machines. Slop code to the max.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages