{"id":26319378,"url":"https://github.com/fny/vmrkt","last_synced_at":"2025-03-15T15:18:44.023Z","repository":{"id":280904605,"uuid":"848442580","full_name":"fny/vmrkt","owner":"fny","description":"Launch one-off EC2 instances with a single command. 🚀","archived":false,"fork":false,"pushed_at":"2024-08-27T19:09:49.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-06T00:02:26.466Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/fny.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":"2024-08-27T19:09:13.000Z","updated_at":"2024-08-27T19:09:52.000Z","dependencies_parsed_at":"2025-03-10T17:45:40.847Z","dependency_job_id":null,"html_url":"https://github.com/fny/vmrkt","commit_stats":null,"previous_names":["fny/vmrkt"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fny%2Fvmrkt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fny%2Fvmrkt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fny%2Fvmrkt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fny%2Fvmrkt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fny","download_url":"https://codeload.github.com/fny/vmrkt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243746234,"owners_count":20341204,"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":[],"created_at":"2025-03-15T15:18:43.468Z","updated_at":"2025-03-15T15:18:44.006Z","avatar_url":"https://github.com/fny.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vmrkt 🚀\n\nLaunch one-off EC2 instances with a single command.\n\nNote: this tool is intended to be used from its folder for now.\n\nYou can launch EC2 instances with the following created automagically:\n\n    - A key pair for SSH access\n    - A security group with your specified ingres and egres ports\n    - An EC2 instance associated with the key pair and security group\n    - An elastic IP associated with the instance and linked to a Route53 record\n\n## Usage\n\n```\nUsage: ./vmrkt [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  destroy  Destroy the VM with the given name.\n  info     Get information about the VM with the given name.\n  launch   Launch a new VM with the given name.\n  list     List all VMs based on the keys folder.\n  restart  Restart the VM with the given name.\n  run      Run a command on all hosts.\n  ssh      SSH into the VM with the given name.\n  start    Start the VM with the given name.\n  stop     Stop the VM with the given name.\n  upload   Upload a file to the VM to the specified host.\n```\n\nFor example, you can launch a VM with the default AMI by running the following:\n\n```\n./vmrkt launch rkt-example.yourdomain.com --type t2.micro --ingress 22,443,80\n```\n\nThen run it:\n\n```\n./vmrkt run example # searches for first matching host in your keys, use regex too\n./vmrkt ssh example\n```\n\nAnd destroy it:\n\n```\n./vmrkt destroy example rkt-example.yourdomain.com # requires complete name\n```\n\nThe scripts directory is a collection of useful scripts that can be run on the VMs.\n\n## Installation\n\nYou need Python v3.12+. Then `poetry install` to install the dependencies.\nThis will *not* install everything into a virtual environment. If you really\nwant to do that, you can edit the pyproject file.\n\n\nAfter that make sure AWS credentials are setup properly. You can do this by running\n`aws configure` and entering your access key and secret key. Then make sure you have TLDs\nin Route 53 that you can use.\n\nYour user must have the following permissions:\n\n - Private Keys: create, read, delete\n - Security groups: read, create, delete\n - EC2 instances: create, start, stop, terminate\n - Elastic IPs: read, create, delete\n - Route53 records: read, create, delete\n\n## Wishlist\n\n- [ ] Create a pipx command using .config/rkt as a home\n- [ ] Allow for more complex instance configurations\n- [ ] Creation from a configuration files\n- [ ] Support for other cloud providers\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffny%2Fvmrkt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffny%2Fvmrkt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffny%2Fvmrkt/lists"}