{"id":13671016,"url":"https://github.com/felipemarinho97/dev-spaces","last_synced_at":"2026-01-14T14:36:13.805Z","repository":{"id":41899367,"uuid":"458703547","full_name":"felipemarinho97/dev-spaces","owner":"felipemarinho97","description":"A CLI to help creating development environments on cloud using AWS Spot Instances","archived":false,"fork":false,"pushed_at":"2023-10-19T12:33:29.000Z","size":223,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-27T13:38:01.816Z","etag":null,"topics":["aws","dev-environment","hacktoberfest","spot-instances"],"latest_commit_sha":null,"homepage":"","language":"Go","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/felipemarinho97.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}},"created_at":"2022-02-13T03:55:48.000Z","updated_at":"2024-10-13T15:37:55.000Z","dependencies_parsed_at":"2022-08-30T23:21:25.440Z","dependency_job_id":"678fa357-6721-4bbd-a8f5-8ac58655efaa","html_url":"https://github.com/felipemarinho97/dev-spaces","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/felipemarinho97/dev-spaces","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipemarinho97%2Fdev-spaces","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipemarinho97%2Fdev-spaces/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipemarinho97%2Fdev-spaces/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipemarinho97%2Fdev-spaces/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felipemarinho97","download_url":"https://codeload.github.com/felipemarinho97/dev-spaces/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipemarinho97%2Fdev-spaces/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28423829,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T13:30:50.153Z","status":"ssl_error","status_checked_at":"2026-01-14T13:29:08.907Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["aws","dev-environment","hacktoberfest","spot-instances"],"created_at":"2024-08-02T09:00:55.938Z","updated_at":"2026-01-14T14:36:13.785Z","avatar_url":"https://github.com/felipemarinho97.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# DevSpaces\n\nThis is a CLI to help creating on-demand development spaces using EC2 Spot Intances.\n\nCurrently, the following commands are availble:\n* [start](#starting-a-devspace), [stop](#terminating-devspaces), [status, list](#listing-my-devspaces), [create](#creating-a-devspace), [bootstrap](BOOTSTRAPPING.md), [destroy](#destroying-a-devspace) and [tools](#configuration).\n\n\n```bash\n$ dev-spaces --help\nNAME:\n   dev-spaces - CLI to help dev-spaces creation and management\n\nUSAGE:\n   dev-spaces [global options] command [command options] [arguments...]\n\nAUTHOR:\n   Felipe Marinho \u003cfelipevm97@gmail.com\u003e\n\nCOMMANDS:\n   help, h  Shows a list of commands or help for one command\n   ADMINISTRATION:\n     create     -n \u003cname\u003e -k \u003ckey-name\u003e -i \u003cami\u003e [-p \u003cinstance-profile-arn\u003e -s \u003cstorage-size\u003e -t \u003cprefered-instance-type\u003e]\n     bootstrap  -t \u003ctemplate\u003e [-n \u003cname\u003e]\n     destroy    -n \u003cname\u003e\n     tools\n       - scale\n       - copy\n   DEV-SPACE:\n     start   -n \u003cname\u003e [-c \u003cmin-cpus\u003e -m \u003cmin-memory\u003e --max-price \u003cmax-price\u003e -t \u003ctimeout\u003e]\n     stop    [-n \u003cname\u003e]\n     status  [-n \u003cname\u003e]\n     list    [-o \u003coutput\u003e]\n\nGLOBAL OPTIONS:\n   --region value, -r value  AWS region (default: \"ap-south-1\") [$AWS_REGION]\n   --help, -h                show help (default: false)\n```\n\n# FAQ\n\n## What is a DevSpace?\nA DevSpace is a elastic development environment on AWS. Because there is no need to build a machine if you can cheaply develop on the Cloud!\n\n\n## My progress is lost when I stop my DevSpace?\n\nNo! When you `stop` a DevSpace, the CLI only destroys the instance, leaving the attached EBS Volume intact.\nWhen you call `start` again, the EBS Volume will be attached on the new instance and you can just continue from the point you stop.\n\nThis means you are running a _stateful_ workloads on spot instances.\n\n## How I can use it?\n\nFirst, you need to install the CLI. You can do it by running the command below:\n\n```bash\ncurl -sL https://raw.githubusercontent.com/felipemarinho97/dev-spaces/master/install.sh | bash\n```\n\nIf you prefer, you can download the binary from the [releases page](https://github.com/felipemarinho97/dev-spaces/releases).\n\nPlease, follow the steps in this document: [How to create a Dev Space](CREATING.md) and [Configuring the CLI](CONFIGURATION.md).\n\nFor the legacy way of bootstraping (for advanced users), please, follow these steps: [How to bootstrap a Dev Space from scratch](BOOTSTRAPPING.md)\n\nIf you have any issue during the bootstrap progress, contact the author for more details on how to proceed.\n\n# Examples\n## Starting a DevSpace\n\nYou can specify the minimum desired vCPUs and Memory (GBs), as well the max price (in hours) you are willing to pay for the resources.\n\n```bash\n$ ds --region us-east-1 start --name MySpace \\\n    --min-cpus 2 \\\n    --min-memory 4 \\\n    --max-price 0.05 \\\n    --wait\n\n✓ Waiting for instance to be running... (0/-, 0 it/min) \n✓ Instance started with id: i-044716c726b039014 and type: m1.large (0/-, 0 it/min) \n✓ Attached EBS volume with id: vol-08b3a681b2b20dcf5 (0/-, 0 it/min)                \n✓ Created SSH config entry for MySpace. (0/-, 0 it/min)                  \n✓ You can customize the SSH config entry at ~/.ssh/config.d/dev-spaces/MySpace (0/-, 0 it/min) \n✓ Waiting for port 2222 (ssh) to be reachable. This can take a few minutes... (0/-, 0 it/min)\n✓ You can now ssh into your dev space with the following command:  (0/-, 0 it/min)                                  \n$ ssh -i \u003cyour-key.pem\u003e root@MySpace\n```\n\nDevSpaces will be listening by default on SSH port `2222`.\n\n**Tip**: To omit the `--region` parameter, you can set the `AWS_REGION` environment variable. You can also use shorthands like `-c`, `-m`, `-n` instead of `--min-cpus`, `--min-memory`, `--name`, etc.\n\n```bash\n$ export AWS_REGION=us-east-1\n$ dev-spaces start -n MySpace -c 2 -m 4 --max-price 0.05 --wait\n```\n\n\n| Parameter | Description | Default |\n| --- | --- | --- |\n| `--name` | The name of the DevSpace | |\n| `--min-cpus` | Minimum number of vCPUs | 0 |\n| `--min-memory` | Minimum amount of memory in GB | 0 |\n| `--max-price` | Maximum price ($) per hour for the spot request | 0.50 |\n| `--timeout` | Timeout for the spot request | 1h0m0s |\n| `--wait` | Wait for DevSpace instance to be ready for SSH | false |\n\n\n## Listing my DevSpaces\n\nYou can list the most recent (last 48h) created DevSpaces.\n\n```bash\n$ dev-spaces status                                       \nNAME      REQUEST STATE   REQUEST ID                                      CREATE TIME             STATUS    \nMySpace   active          sfr-fac050b3-2db3-4d2f-9efa-2403eb239650        2022-02-13T14:37:30Z    fulfilled\nteste     cancelled       sfr-6bce6369-7a7b-4d0e-a65e-1498eb5aba90        2022-02-13T13:48:13Z\n```\n\nIt's also possible to see all the created (regradless if they are active or not) DevSpaces using the command `list`.\n\n```bash\n$ dev-spaces list -o wide\nSPACE NAME      ID                      CREATE TIME             VERSION   [...]   PUBLIC IP\n\nMySpace         lt-0639c1eccbb51e345    2022-07-07 22:55:01     1         [...]   52.23.206.106\narch            lt-08fb20577838aa54d    2022-07-05 22:02:00     1         [...]   52.91.16.131\nal2022-05       lt-0ca2cf57f06544590    2022-07-05 23:01:10     1         [...]   -\n```\n\n## Terminating DevSpaces\n\nWhen you are done, you can use the `stop` command to terminate the DevSpace instance(s).\n\nNote: If you want to stop all running DevSpaces, ommit the `--name` parameter.\n\n```bash\n$ dev-spaces stop -n MySpace\n```\n\nThis will not delete your files, just terminate the DevSpace instance.\n\n---\n\n## Creating a DevSpace\n\nThe example below shows an example on how to create a DevSpace using the `create` command.\n\n```bash\n$ dev-spaces create --name MySpace --key-name MyKey --ami ami-1234567890\n```\n\nYou can also optionaly specify the instance profile ARN `--instance-profile-arn`, the storage size (in GBs) `--storage-size`, and the preferred instance type `--preferred-instance-type`. See all the options [here](CREATING.md#command-parameters).\n\nThe `--preferred-instance-type` option helps to create your DevSpace in an avaliability zone with the best possible price for that instance type (this is important because once created, the DevSpace will be locked in that zone).\n\nFor a complete list of all the options, run `dev-spaces create --help`. View the [Creating a DevSpace](CREATING.md) document for full guide on how to create a DevSpace.\n\n## Destroying a DevSpace\n\nThe command below will destroy the DevSpace instance and all it's associated resources like EBS Volumes, Launch Templates, Security Groups, etc.\n\n```bash  \n$ dev-spaces destroy -n MySpace\n✓ Destroying security group sg-0b48ecc167b8a81c7 (0/-, 0 it/min) \n✓ Destroying launch template lt-01d0e11ac8523614f (0/-, 0 it/min) \n✓ Destroying volume vol-069210dc254fcdc6b (0/-, 0 it/min)\nOK  \n```\n**This WILL destroy everythng, including all your files.**\n\n\n## Tools\nor Configuration `dev-spaces cfg`\n\n### Scaling Up/Down the DevSpace\n\nThe command below will scale up or down the DevSpace instance to the desired number of vCPUs and Memory (GBs).\n\n```bash\n$ dev-spaces tools scale -i ~/.ssh/MyKey.pem -n MySpace -c 4 -m 32\n```\n\n### Copying the DevSpace to another region\n\nYou can use the command `dev-spaces tools copy` to copy the DevSpace to another region.\n\n```bash\n# lets say the current region is us-east-1\n$ export AWS_REGION=us-east-1\n# copy to us-west-1\n$ dev-spaces tools copy -n MySpace -r us-west-1 -z us-west-1a\n```\n\nTip: If you want to move the DevSpace to another region, you can use the `copy` command and then the `destroy` command.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipemarinho97%2Fdev-spaces","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelipemarinho97%2Fdev-spaces","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipemarinho97%2Fdev-spaces/lists"}