- Notifications
You must be signed in to change notification settings - Fork256
Instant, easy, and predictable development environments
License
jetify-com/devbox
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Devbox is a command-line tool that lets youeasily create isolated shells for development. You start by defining the list ofpackages required by your development environment, and devbox uses thatdefinition to create an isolated environment just for your application.
In practice, Devbox works similar to a package manager likeyarn
– except thepackages it manages are at the operating-system level (the sort of thing youwould normally install withbrew
orapt-get
). With Devbox, you can installover400,000 package versions from the Nix PackageRegistry
Devbox was originally developed byJetify and isinternally powered bynix
.
The example below creates a development environment withpython 2.7
andgo 1.18
, even though those packages are not installed in the underlyingmachine:
Use the following install script to get the latest version of Devbox:
curl -fsSL https://get.jetify.com/devbox| bash
Read more on theDevbox docs.
Declare the list of tools needed by your project via adevbox.json
file andrundevbox shell
. Everyone working on the project gets a shell environmentwith the exact same version of those tools.
Development environments created by Devbox are isolated from everything else inyour laptop. Is there a tool you want to try without making a mess? Add it to aDevbox shell, and remove it when you don't want it anymore – all while keepingyour laptop pristine.
Devbox can create isolated environments right on your laptop, without anextra-layer of virtualization slowing your file system or every command. Whenyou're ready to ship, it'll turn it into an equivalent container – but notbefore.
Are you working on multiple projects, all of which need different versions ofthe same binary? Instead of attempting to install conflicting versions of thesame binary on your laptop, create an isolated environment for each project, anduse whatever version you want for each.
Devbox's dev environments areportable. We make it possible to declare yourenvironment exactly once, and use that single definition in several differentways, including:
- A local shell created through
devbox shell
- A devcontainer you can use with VSCode
- A Dockerfile so you can build a production image with the exact same tools youused for development.
- A remote development environment in the cloud that mirrors your localenvironment.
In this quickstart we'll create a development shell with specific toolsinstalled. These tools will only be available when using this Devbox shell,ensuring we don't pollute your machine.
Open a terminal in a new empty folder.
Initialize Devbox:
devbox init
This creates a
devbox.json
file in the current directory. You should commitit to source control.Add command-line tools from Nix. For example, to add Python 3.10:
devbox add python@3.10
Search for more packages onNixhub.io
Your
devbox.json
file keeps track of the packages you've added, it shouldnow look like this:{"packages": ["python@3.10" ]}
Start a new shell that has these tools installed:
devbox shell
You can tell you're in a Devbox shell (and not your regular terminal) becausethe shell prompt changed.
Use your favorite tools.
In this example we installed Python 3.10, so let's use it.
python --version
Your regular tools are also available including environment variables andconfig settings.
git config --get user.name
To exit the Devbox shell and return to your regular shell:
exit
Read more on theDevbox docs Quickstart.
devbox help
- see all commands
See theCLI Reference forthe full list of commands.
- Chat with us by joining theJetify Discord Server– we have a #devbox channel dedicated to this project.
- File bug reports and feature requests usingGithub Issues
- Follow us onJetify's Twitter for productupdates
Devbox is an opensource project, so contributions are always welcome. Please readour contributing guide before submitting pull requests.
Thanks toNix for providing isolated shells.
This project is proudly open-source under theApache 2.0 License
About
Instant, easy, and predictable development environments
Topics
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.