{"id":14361282,"url":"https://github.com/twine-realtime/deploy","last_synced_at":"2025-08-22T02:33:05.763Z","repository":{"id":205352142,"uuid":"714010190","full_name":"twine-realtime/deploy","owner":"twine-realtime","description":"CLI for deploying Twine infrastructure in the developer's AWS account via CloudFormation","archived":false,"fork":false,"pushed_at":"2024-06-16T09:05:14.000Z","size":70,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-12-20T07:36:15.980Z","etag":null,"topics":["aws","cli","cloudformation","inquirer","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/twine-realtime.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}},"created_at":"2023-11-03T18:03:36.000Z","updated_at":"2024-08-22T16:25:33.000Z","dependencies_parsed_at":"2024-02-01T00:26:25.715Z","dependency_job_id":"7d92b717-d650-4205-95b2-e72d8c4dc726","html_url":"https://github.com/twine-realtime/deploy","commit_stats":null,"previous_names":["twine-realtime/cli","twine-realtime/deploy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/twine-realtime/deploy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twine-realtime%2Fdeploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twine-realtime%2Fdeploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twine-realtime%2Fdeploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twine-realtime%2Fdeploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/twine-realtime","download_url":"https://codeload.github.com/twine-realtime/deploy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twine-realtime%2Fdeploy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271575960,"owners_count":24783637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["aws","cli","cloudformation","inquirer","typescript"],"created_at":"2024-08-27T16:01:13.319Z","updated_at":"2025-08-22T02:33:05.464Z","avatar_url":"https://github.com/twine-realtime.png","language":"TypeScript","funding_links":[],"categories":["cli"],"sub_categories":[],"readme":"# Twine Deployment\n\n\u003cdetails\u003e\n\u003csummary\u003eTwine AWS Requirements\u003c/summary\u003e\n\u003c!--All you need is a blank line--\u003e\n\n- IAM User\n- Route 53\n- DynamoDB\n- Secrets Manager\n- Elastic Beanstalk\n- Certificate Manager\n- ElastiCache for Redis\n- Application Load Balancer\n\u003c/details\u003e\n\nThe Twine architecture is extensive and requires broad permissions. For smooth deployment, we recommend creating a new AWS account and ensuring that Node.js v18.x or greater is installed in your local environment. Complete the steps below to deploy Twine.\n\n## Create an AWS Account and IAM User\n\u003cdetails\u003e\n\u003csummary\u003eStep-by-step guide\u003c/summary\u003e\n\u003c!--All you need is a blank line--\u003e\n\n1. [Sign up for a new AWS Account](https://portal.aws.amazon.com/billing/signup#/start/email)\n2. Sign in to your new AWS Account\n3. Click the second rightmost button in the top navbar\n4. Select the region where you will deploy Twine (Twine currently supports us-east-1 and ap-southeast-2)\n4. Type 'IAM' in the search bar at the top of the page\n5. Click on the 'IAM' service\n6. Click 'Users' in the sidebar\n7. Click 'Create User'\n8. Choose a user name and click 'Next'\n9. Select 'Attach Policies Directly'\n10. Type 'AdministratorAccess' in the 'Permissions Policies' searchbar\n11. Select 'AdministratorAccess' and click 'Next'\n12. Click 'Create User'\n13. Click 'Users' in the sidebar and select the user you created\n14. Click the 'Security Credentials' tab\n15. Click 'Create Access Key'\n16. Select 'Command Line Interface (CLI)'\n17. Click 'Next' and then click 'Create Access Key'\n18. Prepare to provide your access key and secret access key\n\n\u003c/details\u003e\n\n## Create an AWS CLI profile\n\u003cdetails\u003e\n\u003csummary\u003eStep-by-step guide\u003c/summary\u003e\n\u003c!--All you need is a blank line--\u003e\n\n1. [Install the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)\n2. Execute `aws configure --profile new-profile-name` in terminal\n3. Provide your access key and secret access key\n4. Provide the region that you previously determined (must match)\n\u003c/details\u003e\n\n## Register a Route 53 Domain\n\u003cdetails\u003e\n\u003csummary\u003eStep-by-step guide\u003c/summary\u003e\n\u003c!--All you need is a blank line--\u003e\n\n1. Enter the [AWS Console](http://console.aws.amazon.com) and search for 'Route 53'\n2. Click 'Dashboard' in the Route 53 page sidebar\n3. Register a Route 53 domain (you will later use the domain name with the Twine client library)\n\u003c/details\u003e\n\n## Request a TLS Certificate\n\u003cdetails\u003e\n\u003csummary\u003eStep-by-step guide\u003c/summary\u003e\n\u003c!--All you need is a blank line--\u003e\n\n1. Search for 'Certificate Manager'\n2. Click 'Request Certificate' in the Certificate Manager sidebar\n3. 'Request a Public Certificate' should be selected; click 'Next'\n4. Enter your new domain name\n5. Select your validation method of choice\n6. Select the 'RSA 2048' key algorithm\n7. Click 'Request'\n8. Validate the request\n\u003c/details\u003e\n\n## Deploy the Twine Architecture\n\u003cdetails\u003e\n\u003csummary\u003eStep-by-step guide\u003c/summary\u003e\n\u003c!--All you need is a blank line--\u003e\n\n1. Clone this repository\n2. Open your terminal\n3. Navigate to the repository directory \n4. Execute `aws configure list`\n5. If the 'Name' value is not your newly-created AWS CLI profile name, execute `export AWS_PROFILE=new-profile-name` (this command is different for Windows users)\n6. Execute `aws configure list` again to confirm the change occurred\n7. Execute `npm install` to install the Twine deployment dependencies\n8. Execute `npm start` to launch the deployment process\n9. Follow the instructions in your terminal\n\u003cimg width=\"630\" alt=\"Screenshot 2023-12-07 at 11 54 58 AM\" src=\"https://github.com/twine-realtime/deploy/assets/85587848/452f9608-e6c1-445a-a946-12b70d98477c\"\u003e\n\u003c/details\u003e\n\nThe creation process can be observed in the 'Stacks' section of the AWS Cloud Formation page. After the process is complete, the Twine server will be running in the Elastic Beanstalk environment. However, to satisfy browser requirements, Twine must use your newly-created domain name instead of the load balancer endpoint.\n\n## Create a DNS Record\n\u003cdetails\u003e\n\u003csummary\u003eStep-by-step guide\u003c/summary\u003e\n\u003c!--All you need is a blank line--\u003e\n\n1. Enter the [AWS Console](http://console.aws.amazon.com) and search for 'Route 53'\n2. Click 'Hosted Zones' in the AWS Route 53 sidebar\n3. Click on the listed domain name\n4. Click 'Create Record'\n5. Ensure the Record Type is 'A' then click 'Alias'\n6. Set the 'Endpoint' to 'Alias to Application and Classic Load Balancer'\n7. Select the region name that you previously determined\n8. Select the single option for 'Choose Load Balancer'\n9. Click 'Create Records'\n\u003c/details\u003e\n\nRecord creation will take a few minutes. The Twine architecture will then be complete and ready for the Twine server/client library implementation. Please note that Twine issues third-party cookies for sticky sessions and to store WebSocket session data for connection state recovery. Your Twine API key (required to publish to the Twine API) is available on your newly-created AWS Secrets Manager page.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwine-realtime%2Fdeploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwine-realtime%2Fdeploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwine-realtime%2Fdeploy/lists"}