{"id":756,"date":"2025-12-08T07:19:01","date_gmt":"2025-12-08T07:19:01","guid":{"rendered":"https:\/\/greyhatlabs.io\/?p=756"},"modified":"2025-12-08T07:19:02","modified_gmt":"2025-12-08T07:19:02","slug":"mvp-release-ghl-platform-demo-is-live","status":"publish","type":"post","link":"https:\/\/greyhatlabs.io\/index.php\/2025\/12\/08\/mvp-release-ghl-platform-demo-is-live\/","title":{"rendered":"MVP Release: GHL Platform Demo is Live"},"content":{"rendered":"<p>We\u2019re excited to announce that the first fully deployable MVP version of the Grey Hat Labs Platform is now operational and available for internal testing. This marks a major milestone for the team\u2014the first time the full multi-service system is running end-to-end in a production-like environment.<\/p>\n<p>What We Accomplished<\/p>\n<p>Over the course of this sprint, the team delivered:<\/p>\n<p>\ud83d\ude80 A Cloud-Hosted, Secure Demo Environment<br \/>\n\t\u2022\tThe full GHL microservice architecture (schema-engine, rlie, kgf, orchestrator) is now deployed on AWS EC2.<br \/>\n\t\u2022\tThe environment is fully isolated, HTTPS-enabled, and accessible via a dedicated domain.<br \/>\n\t\u2022\tExternal testers can now interact with the platform through a polished demo frontend.<\/p>\n<p>\u2699\ufe0f Robust CI\/CD &#038; Deployment Automation<br \/>\n\t\u2022\tGitHub Actions now builds, tests, bundles, and publishes SHA-versioned Docker images to AWS ECR.<br \/>\n\t\u2022\tA unified deployment script (deploy.sh) lets us roll out updates with a single command.<br \/>\n\t\u2022\tAll infrastructure steps are fully documented so future team members can deploy confidently.<\/p>\n<p>\ud83e\udde9 Stability, Migrations &#038; Service Interoperability<br \/>\n\t\u2022\tFixed cross-service environment variable inconsistencies.<br \/>\n\t\u2022\tStandardized ports, networking, and service-to-service URLs.<br \/>\n\t\u2022\tEnsured all services compile cleanly, include proper dist bundles, and run identically locally and in staging.<\/p>\n<p>\ud83d\udd10 Production-Grade Networking<br \/>\n\t\u2022\tAdded an Nginx reverse proxy for routing and TLS termination.<br \/>\n\t\u2022\tImplemented Let\u2019s Encrypt certificates for secure external access.<br \/>\n\t\u2022\tEnsured non-public endpoints remain internal and protected.<\/p>\n<p>\ud83d\udcd8 Documentation<br \/>\n\t\u2022\tCreated a complete EC2 Deployment Runbook.<br \/>\n\t\u2022\tUpdated .env.example, docker-compose files, and internal service docs.<br \/>\n\t\u2022\tPrepared everything for the next phase: user validation.<\/p>\n<p>What\u2019s Next<\/p>\n<p>With the MVP deployed, we are shifting focus toward:<br \/>\n\t\u2022\tGuided demo sessions<br \/>\n\t\u2022\tUser validation and structured feedback<br \/>\n\t\u2022\tIterating on the admin tooling and access controls<br \/>\n\t\u2022\tExploring hosted options for scalable production deployment<\/p>\n<p>This milestone proves the architecture works end-to-end and sets the stage for rapid iteration and onboarding of early users.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We\u2019re excited to announce that the first fully deployable MVP version of the Grey Hat Labs Platform is now operational and available for internal testing. This marks a major milestone for the team\u2014the first time the full multi-service system is running end-to-end in a production-like environment. What We Accomplished Over the course of this sprint, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-756","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/greyhatlabs.io\/index.php\/wp-json\/wp\/v2\/posts\/756","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/greyhatlabs.io\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/greyhatlabs.io\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/greyhatlabs.io\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/greyhatlabs.io\/index.php\/wp-json\/wp\/v2\/comments?post=756"}],"version-history":[{"count":1,"href":"https:\/\/greyhatlabs.io\/index.php\/wp-json\/wp\/v2\/posts\/756\/revisions"}],"predecessor-version":[{"id":757,"href":"https:\/\/greyhatlabs.io\/index.php\/wp-json\/wp\/v2\/posts\/756\/revisions\/757"}],"wp:attachment":[{"href":"https:\/\/greyhatlabs.io\/index.php\/wp-json\/wp\/v2\/media?parent=756"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/greyhatlabs.io\/index.php\/wp-json\/wp\/v2\/categories?post=756"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/greyhatlabs.io\/index.php\/wp-json\/wp\/v2\/tags?post=756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}