github jetify-com/devbox 0.2.0
0.2.0: Automatic Nix Installer, Plugins, and Background Services

latest releases: 0.12.0, 0.12.0-devb, 0.12.0-deva...
18 months ago

Automatic Nix Installer

One major piece of feedback we received from early customers (especially those who were unfamiliar with Nix) was that they found the initial installation of the Nix Package Manager confusing and challenging. To reduce this friction in getting started, Devbox can now automatically Nix if we do not detect it on your Machine. Developers can now get up and running with Devbox using a single installer.

Devbox will try to detect Nix during installation, or when running a command that requires Nix (such as devbox add or devbox shell ). If we don’t find an installation of Nix on your machine, we will prompt you to install it using the default configuration for your operating system.

Instant package configuration with Devbox Plugins

We outlined our approach to package configuration in our blog post Do Repeat Yourself: Global Packages Considered Harmful. We aim to provide Nix's immutability and isolation while allowing developers to configure their projects locally.

This release has the first version of what we're calling Devbox Plugins. Plugins bundle default configuration (like environment variables, configuration files, and services) with packages and apply it when you install them with devbox add. Plugins make getting started with packages like NGINX or Postgresql much faster.

Let's try adding Nginx to our Devbox shell. When we run devbox add nginx, Devbox will use the Nginx plugin to configure our environment and create a default nginx.conf file for our project. The plugin will also add a service to our shell (see below), so we can quickly start and stop Nginx when testing our project:

Our initial release includes plugins for the following packages, with many more to come.

We are also planning to open and provide a public repo for plugins, so developers can contribute plugins, or even add their own private plugins to Devbox.

Manage your background services with Devbox

When working on an application, you often want some services or dependencies running in the background for testing. Take a web app as an example. While working on your application, you will want to test it against a running development server and database. Previously developers would manage these services via tools like Docker Compose or orchestrating them manually.

Devbox 0.2.0 includes a devbox services subcommand for starting and stopping services within your Devbox Shell. Packages installed in your shell that have services configured via a Devbox Plugin will appear when you run devbox services ls. You can start these services using devbox start and stop them using devbox stop.

Right now, developers can only configure services via plugins. Future releases will make it possible to define and manage services in your project's devbox.json.

Generate Dockerfiles and Devcontainers from the devbox CLI

You can now generate a generic Dockerfile or Devcontainer for your project using the devbox generate command. These Dockerfiles make it easy to build your Devbox Shell environment as a portable container, so you can develop your project anywhere.

For more information, consult our CLI Reference

What's Changed

  • [cloud] set KeepAlive setting for ssh to vm by @savil in #345
  • Remove Build Docs, add Example Docs by @Lagoja in #347
  • [nix] Improve nix installer by @mikeland86 in #350
  • Added devbox generate devcontainer command by @mohsenari in #346
  • [services] Add services to package configs (plugins) by @mikeland86 in #353
  • [cloud] ssh shim part 1: generate shim files by @savil in #348
  • [cloud] ssh shim part 2: invoke ssh by @savil in #349
  • [cloud] ssh shim part 3: invoke scp by @savil in #351
  • [services] Allow running services out of shell by @mikeland86 in #354
  • [php] Remove v1 planner, add composer definition to v2 by @mikeland86 in #359
  • [extension] Generate the same devcontainer files as CLI by @mohsenari in #357
  • [cloud] ssh shim part 4: detect stopped vm, and terminate mutagen sessions by @savil in #352
  • [cloud] ssh shim part 5: run own mutagen daemon by @savil in #355
  • [midcobra] add executionID by @savil in #358
  • [CLI] Changed devbox generate to devbox generate debug by @mohsenari in #364
  • Move several packages to internal/ by @loreto in #365
  • Refactor location of more files by @loreto in #367
  • openssh: add host keys for gateway[.dev].devbox.sh by @gcurtis in #360
  • [nix] nix install without using daemon flag DEV-1266 by @mikeland86 in #368
  • [add] Show better message if package is missing. Specify exact version after installing by @mikeland86 in #370
  • [sshshim] add sentry without using middleware by @savil in #366
  • [plugins] Move conf files out of .devbox and more DEV-1259 DEV-1258 by @mikeland86 in #362
  • [plugins] Only create devbox.d files on add by @mikeland86 in #369
  • Track panics in sentry by @LucilleH in #372
  • [cloud] enable multiple projects opening shells in same VM by @savil in #371
  • [sshshim] turn on gate by @savil in #376
  • [UX] Improve post-install readme, improve message if package not found by @mikeland86 in #375
  • [refactor] Rename and move pkgcfg to plugins by @mikeland86 in #380
  • [services] Start/stop multiple services DEV-1270 by @mikeland86 in #381
  • openssh: improve command errors and debug logging by @gcurtis in #377
  • Small improvements to telemetry by @loreto in #379
  • openssh: update SSH config when DEVBOX_GATEWAY is set by @gcurtis in #378
  • [plugins] Use relative paths or env variables in configs DEV-1272 by @mikeland86 in #382
  • [features] Enable plugins and nix install by @mikeland86 in #383
  • [planners] removed build planners by @mohsenari in #384
  • [cloud shell] respect gitignore file in --config directory to limit large data syncs by @savil in #387
  • [cloud shell] always ignore .devbox directory by @savil in #388
  • [cloud shell] skip comments and empty lines when adding --ignore to mutagen by @savil in #391
  • Add a Plugin Request Template by @Lagoja in #392
  • [extension] Updated readme and changelog + bumped version by @mohsenari in #394
  • [plugins] Add init hook to plugins. Add ruby gem bin to path DEV-1271 by @mikeland86 in #389

Full Changelog: 0.1.2...0.2.0

Don't miss a new devbox release

NewReleases is sending notifications on new releases.