{"id":19228724,"url":"https://github.com/norun9/hybird","last_synced_at":"2026-02-14T15:33:31.580Z","repository":{"id":245716119,"uuid":"818588049","full_name":"norun9/Hybird","owner":"norun9","description":"Real-Time Chat App with Serverless Architecture","archived":false,"fork":false,"pushed_at":"2024-10-02T06:49:37.000Z","size":1299,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-12T21:16:56.548Z","etag":null,"topics":["clean-architecture","lambda","serverless","websocket"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/norun9.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-06-22T09:00:23.000Z","updated_at":"2024-10-02T06:49:40.000Z","dependencies_parsed_at":"2024-07-27T07:28:43.305Z","dependency_job_id":"9d9c307e-7480-44ee-9020-959c909dbe0b","html_url":"https://github.com/norun9/Hybird","commit_stats":null,"previous_names":["norun9/hybird"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/norun9/Hybird","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norun9%2FHybird","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norun9%2FHybird/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norun9%2FHybird/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norun9%2FHybird/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/norun9","download_url":"https://codeload.github.com/norun9/Hybird/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norun9%2FHybird/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29448009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T14:10:32.461Z","status":"ssl_error","status_checked_at":"2026-02-14T14:09:49.945Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clean-architecture","lambda","serverless","websocket"],"created_at":"2024-11-09T15:29:49.393Z","updated_at":"2026-02-14T15:33:31.564Z","avatar_url":"https://github.com/norun9.png","language":"HCL","readme":"## Backend Development Architecture\n\n[See our \"Clean Architecture\" for more details](backend/api/doc/README.md)\n\n\n## AWS Architecture\n\n### REST API\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/830a0e75-4cd3-437f-be9c-c5726c3081fe\" alt=\"backend\"\u003e\n\u003c/div\u003e\n\n### WebSocket API\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/cb3d706a-1aa0-46ee-ac21-6be7873ecf99\" alt=\"websocket\"\u003e\n\u003c/div\u003e\n\n### Frontend\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/8fb9403c-8c05-4b90-a20a-1d1e20ff6d7b\" alt=\"frontend\"\u003e\n\u003c/div\u003e\n\n\n## Deployment Process\n\n\u003e The following are personal notes\n\n\n\n### \u003cimg src=\"https://github.com/user-attachments/assets/ad741f50-c034-4167-9982-8db380149315\" alt=\"HashiCorp Terraform\" width=\"20\"/\u003e Terraform\n\n```bash\nexport AWS_PROFILE=your_iam_user_name\n\nterraform plan -out=tfplan\n\nterraform apply \"tfplan\"\n```\n\n### \u003cimg src=\"https://github.com/user-attachments/assets/23b6ca65-c911-4618-8a7e-ac2010cbebd1\" alt=\"Next js\" width=\"20\"/\u003e Next.js\n\nRun GitHub Actions manually ([ssg_deploy.yml](.github/workflows/ssg_deploy.yml))\n\n## Goose Migration to RDS via Bastion Host\n\n\u003e [!NOTE]\n\u003e In the future, we plan to integrate the migration process into the Continuous Deployment (CD) pipeline to automate database updates during deployments.\n\nFollow these steps to perform Goose migration to RDS instance via Bastion host.\n\n#### Step 1: SSH into the Bastion Host\n```bash\nssh -i \"path/to/your-keypair.pem\" ec2-user@\u003cEC2_Public_IP\u003e\n```\n\n#### Step 2: Connect to the RDS Instance\nOnce logged into the Bastion, use the following command to connect to your RDS instance in the shell.\n```bash\nmysql -h \u003cRDS_Endpoint\u003e -u \u003cDB_User\u003e -p\n```\n\n#### Step 3: Install Goose\n\nUse the following command to install Goose in the shell.\n```bash\n# Download the Goose installation script\ncurl -fsSL https://raw.githubusercontent.com/pressly/goose/master/install.sh -o goose | sh\n\n# Make the Goose binary executable\nchmod +x goose\n\n# Move Goose to /usr/local/bin to make it accessible globally\nsudo mv goose /usr/local/bin/\n\n# Verify that Goose is installed correctly\ngoose --version\n```\n\n#### Step 4: Transfer Migration Directory to the Home Directory on Bastion\n\nTo transfer the migration directory from \"your local machine\" to the Bastion instance, use the following command.\n```bash\n# /home/ec2-user/ is the Bastion home directory\nscp -r -i \"your_keypair.pem\" your_migration_files_dir ec2-user@\u003cDNS\u003e:/home/ec2-user/\n```\n\n\n#### Step 5: Run Goose Migration\n\nAfter transferring the migration files, run the Goose migration using the following command in the shell.\n```bash\ngoose -dir /path/to/your_migrations_dir mysql '\u003cDB_User\u003e:\u003cDB_Password\u003e@tcp(\u003cRDS_Endpoint\u003e:3306)/\u003cDB_Name\u003e?parseTime=true' up\n```\n\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorun9%2Fhybird","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnorun9%2Fhybird","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorun9%2Fhybird/lists"}