go-live-tracker / README.md

go-live-tracker

A dashboard to track all of Rihal's websites' go live readiness and status.

Last updated: 4/16/2026GitHub

go-live-tracker

A dashboard to track all of Rihal's websites' go live readiness and status.

Architecture

This application is built with:

Backend (/server)

  • Go with Gin web framework
  • SQLC for type-safe SQL queries
  • golang-migrate for database migrations
  • PostgreSQL database
  • Air for hot reloading during development

Proxy (/proxy)

  • Nginx reverse proxy configuration
  • Routes API requests to the Go backend
  • Serves static files
  • Single entry point on port 80

Docker Setup

  • Docker Compose orchestration
  • PostgreSQL with sample data
  • Nginx proxy for unified access
  • Air for Go application hot reloading

Quick Start

  1. Clone the repository

    git clone <repository-url>
    cd go-live-tracker
    
  2. Start the application

    docker compose up --build
    
  3. Access the application

API Endpoints

Websites

  • GET /api/websites - List all websites
  • POST /api/websites - Create a new website
  • GET /api/websites/:id - Get a specific website
  • PUT /api/websites/:id - Update a website
  • DELETE /api/websites/:id - Delete a website

Readiness Checks

  • GET /api/websites/:id/checks - Get readiness checks for a website
  • POST /api/websites/:id/checks - Create a readiness check
  • PUT /api/checks/:id - Update a readiness check

System

  • GET /health - Health check endpoint

Development

Prerequisites

  • Docker and Docker Compose
  • Go 1.21+ (for local development)

Local Development

# Start only the database
docker compose up postgres -d

# Run the Go application locally
cd server
go run cmd/server/main.go

Database Management

The database is automatically initialized with sample data when the PostgreSQL container starts.

Hot Reloading

The application uses cosmtrek/air for hot reloading during development. Changes to Go files will automatically restart the server.

SQLC Code Generation

If you modify the SQL queries or schema:

cd server
./sqlc generate

Configuration

Environment Variables

  • DATABASE_URL - PostgreSQL connection string
  • PORT - Server port (default: 8080)
  • GIN_MODE - Gin mode (debug/release)

Default Database Credentials

  • User: postgres
  • Password: 123456
  • Database: go_live_tracker

Sample Data

The application comes with sample data including:

  • 3 sample websites (Rihal Main Website, Dashboard, API Portal)
  • Various readiness checks (SSL Certificate, Performance Test, Security Scan)
  • Different statuses (ready, testing, not_ready, completed, in_progress, pending)

Contributing

  1. Make changes to the appropriate files
  2. Test your changes with docker compose up --build
  3. Ensure all endpoints work correctly
  4. Submit a pull request