{"id":24010635,"url":"https://github.com/richardfan1126/ssm-patch-portal","last_synced_at":"2025-04-15T03:55:32.115Z","repository":{"id":41901119,"uuid":"464364183","full_name":"richardfan1126/ssm-patch-portal","owner":"richardfan1126","description":"A webportal that can help you easily manage instance patching via AWS SSM Patch Manager","archived":false,"fork":false,"pushed_at":"2022-05-28T09:58:07.000Z","size":5034,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-15T03:55:27.286Z","etag":null,"topics":["aws","aws-ssm","patch-management"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/richardfan1126.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-02-28T06:26:28.000Z","updated_at":"2022-12-06T19:43:53.000Z","dependencies_parsed_at":"2022-08-11T20:40:25.343Z","dependency_job_id":null,"html_url":"https://github.com/richardfan1126/ssm-patch-portal","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardfan1126%2Fssm-patch-portal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardfan1126%2Fssm-patch-portal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardfan1126%2Fssm-patch-portal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardfan1126%2Fssm-patch-portal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/richardfan1126","download_url":"https://codeload.github.com/richardfan1126/ssm-patch-portal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249003952,"owners_count":21196794,"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","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","aws-ssm","patch-management"],"created_at":"2025-01-08T04:15:42.343Z","updated_at":"2025-04-15T03:55:32.098Z","avatar_url":"https://github.com/richardfan1126.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SSM Patch Portal\n\n\n\n## Demo\n\n![](https://github.com/richardfan1126/ssm-patch-portal/raw/master/docs/demo.gif)\n\n## Deployment guide\n\n### Prerequisite\n\n#### Local build\n* [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)\n* [npm](https://nodejs.org/en/download/)\n* [npx](https://www.npmjs.com/package/npx)\n* [Python3 and pip3](https://www.python.org/downloads/)\n* [jq](https://stedolan.github.io/jq/download/) (Optional)\n\n#### Docker build\n* [Docker](https://docs.docker.com/get-docker/)\n\n### Steps\n\n1. Clone the repository\n\n   ```bash\n   git clone https://github.com/richardfan1126/ssm-patch-portal.git --recurse-submodules\n   ```\n\n1. Create a `.env` file inside project root\n\n   Input the value for the following parameters\n   \n   1. **Ec2IamRoleArns**\n   \n      All the IAM Role ARNs that is attached to the targeted EC2 instances. This is for granting access to those EC2 instances over the S3 bucket containing install patch lists and command output.\n\n      ```\n      export Ec2IamRoleArns=\u003crole_arn_1\u003e,\u003crole_arn_2\u003e,...,\u003crole_arn_n\u003e\n      ```\n   \n   1. **AdminEmail**\n      \n      The email address where the initial admin password will be sent to. Make sure this email address can receive incoming mail.\n\n      ```\n      export AdminEmail=\u003cadmin_email_address\u003e\n      ```\n\n1. (Optional) Install and bootstrap required tools\n\n   For AWS CDK, make sure you have already run the [bootstrap](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_bootstrap) command\n\n   ```bash\n   cdk bootstrap aws://ACCOUNT-NUMBER/REGION\n   ```\n\n1. Run the deploy script\n\n   (For local build)\n   ```bash\n   ./deploy.sh\n   ```\n\n   ---\n\n   (For Docker build)\n\n   Run `./docker-build/deploy.sh`.\n   \n   ```bash\n   ./docker-build/deploy.sh\n   ```\n   \n   When prompted, specify the location of aws credential.\n   \n   More detail on: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-where. (Default: ~/.aws)\n   \n   ```bash\n   Please specify the location of AWS credential [~/.aws] \n   ```\n\n1. After the backend deployment, press Y + \\\u003cEnter\\\u003e to continue the frontend deployment.\n\n   ```\n   Continue to deploy frontend stack? (Y/n) Y\n   ```\n\n1. When the deployment completes, you can go to the web portal via the URL provided.\n\n   Use the password, which was sent to your email, to login.\n\n   ```\n   Outputs:\n    SsmPatchPortalFrontend.PortalURL = https://xxxxxxxxxxxxxx.cloudfront.net\n    ...\n   ```\n\n## Cleanup\n\n1. Delete CloudFormation Stacks\n\n   1. **SsmPatchPortal**\n   1. **SsmPatchPortalFrontend**\n\n1. Empty and delete S3 buckets. (The bucket name have the following prefix)\n\n   1. **ssmpatchportalfrontend-**\n   1. **ssmpatchportal-s3bucketsta-**\n\n1. Delete SSM associations\n\n   1. **ssm-patch-portal-***\u003cinstance_id\u003e*\n   1. **ssm-patch-portal-scan**\n\n## Architecture\n\n![](https://raw.githubusercontent.com/richardfan1126/ssm-patch-portal/master/docs/architecture.jpg)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardfan1126%2Fssm-patch-portal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frichardfan1126%2Fssm-patch-portal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardfan1126%2Fssm-patch-portal/lists"}