Skip to content

Remastered: a highly scalable production ready project with Google Cloud services. #23

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 40 commits into
base: main
Choose a base branch
from

Conversation

akram6t
Copy link

@akram6t akram6t commented May 20, 2025

I build on it gcp services.

  • Google Cloud Services:
    • Cloud Storage: Object storage for static assets (alternative to AWS S3)
    • Artifact Registry: Repository for Docker images
    • Cloud Run Jobs: Serverless execution environment for build processes (similar to AWS ECS)
    • Pub/Sub: Message queue for handling high-throughput event processing
    • BigQuery: Serverless data warehouse for analytics and large-scale data operations
    • Load Balancer: Required for Cloud CDN to distribute traffic across edge servers
    • Cloud CDN: Content delivery network that caches and serves assets from nearest locations

Optimizations

  • Image asset compression before uploading to Cloud Storage
  • Fixed reverse proxy server bugs
  • Implemented streaming instead of HTTP proxy for memory-efficient file serving
  • Redis caching to reduce database queries

Key Features

  • Authentication system
  • Custom domain support

Services

  1. frontend-nextjs: Web UI interface for user interaction
  2. api-server: REST API backend service
  3. build-server: Docker-based build system that compiles and deploys to Cloud Storage
  4. reverse-proxy-server: Routes subdomains and custom domains to appropriate static assets

System Architecture Diagram

Architecture Diagram

Project Demonstration

View demo:

simplescreenrecorder-2025-05-21_00.17.17.mp4

piyushgarg-dev and others added 30 commits February 15, 2024 13:24
…rror handling; remove unused Prisma files and add subdomain validation utilities
- Introduced GCP configuration in the config module with project ID, credentials, topics, subscriptions, datasets, and tables.
- Updated logController to use the correct field names for deployment logs.
- Refactored index.ts to initialize PubSub to BigQuery processor and handle graceful shutdown.
- Created a new utility module for processing PubSub messages and inserting them into BigQuery.
- Updated types to include GCP configuration and build logs structure.
- Modified build-server script to align with new log structure.
- Enhanced s3-reverse-proxy to utilize GCP credentials from environment variables.
- Implemented streaming reverse proxy with analytics data collection and caching.
feat: implement Cloud Run job manager for deployment builds

feat: create utility for date range calculations

feat: add deployment status chip component for UI representation

feat: implement deployment logs page with real-time updates

feat: create project deployments page with deployment history and actions

refactor: update types and interfaces for deployment and logs
- Added GCP bucket name configuration to the GCP settings.
- Implemented a new endpoint to retrieve deployment details by ID in the deployment controller.
- Updated project controller to handle GCP storage interactions for project deletion.
- Enhanced deployment routes to include the new endpoint for fetching deployment by ID.
- Refactored project and deployment components in the frontend to utilize new API endpoints and improve user experience.
- Updated utility functions for generating live URLs for projects.
- Added project deletion functionality with confirmation in project settings.
- Improved error handling and loading states across various components.
…tics data defaults

- Updated Project interface to require createdAt and updatedAt fields.
- Enhanced analytics data collection by providing default values for country, region, browser, and OS when not available.
…ility and functionality

- Updated the DeployPage component to enhance form handling and validation.
- Improved the layout and structure of the dashboard index page for better user experience.
- Added error handling for API calls and loading states.
- Refactored environment variable management in the deployment form.
- Enhanced type safety in TypeScript definitions for projects and deployments.
- Cleaned up imports and organized code for better maintainability.
akram6t and others added 10 commits May 19, 2025 01:37
- Created a new 404 Not Found HTML page with a user-friendly design using Tailwind CSS.
- Implemented a streaming reverse proxy server using Express, Redis, and Google Cloud Pub/Sub.
- Added middleware for analytics collection and project ID retrieval based on subdomains.
- Integrated LRU caching for project ID lookups and set up error handling for proxy requests.
- Configured server to clear LRU cache every 30 seconds to maintain performance.
…lper utilities

- Deleted stream.js which contained the main server logic.
- Introduced analytics.js for handling analytics data collection and processing.
- Added helpers.js for fetching project IDs by domain using an external API.
- Implemented LRUCache class for efficient caching of project IDs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants