Skip to main content

Create and manage developments environment.

Project description

ENVy

ENVy is the easy way to build development environments. It allows maintainers to specify exactly the environment that contributors should be using, not just for packages for the language in use, but native system packages as well. No more following pages-long contributing guides, or trying to figure out the strange problem that only one user has, just run envy up and contributors can start writing code. It's like a virtualenv, but for everything!

Check out our main website for more details on ENVy.

Installing ENVY

Prerequisites: You should have Docker installed and running (i.e. docker ps doesn't give you an error), as well as docker-compose, needed for some projects.

You can install ENVy in a few different ways:

pip (recommended):

  • The recommended installation method is to use Pip: pip3 install envy-project.

from release (or master):

  • Download a tar.gz release from ENVy's Github release page.
  • Extract the archive (tar -xzvf envy-*.tgz)
  • Install the package (sudo setup.py install)

Using ENVy as a contributor

ENVy is a very simple tool to use. You can see all available commands by running envy --help. When you're working with a project, this help text will also contain all of the project-specific commands you can use (build, lint, etc.)

ENVy itself also defines a few commands:

  • envy up: Create a development environment

When run inside of a project directory, this will create a development environment according to the maintainer's specifications. You will see progress output as the process continues. It will mount the project directory inside of the environment. You can leave this container running as long as you'd like - it consumes little to no resources.

~ $ cd golang-hello-world
golang-hello-world $ envy up
Detected change in config environment.
Creating ENVy environment image.
Creating ENVy container
ENVy environment is ready!
  • envy down: Pause a development environment

When run inside of a project directory, this will pause the development environment without deleting any data. You may want to run this when you're finished working on a project for a little while.

~ $ golang-hello-world $ envy down
ENVy environment stopped.
  • envy nuke: Delete a development environment

When run inside of a project directory, this will remove the environment created by ENVy. This will not affect the project directory itself - you will not lose any work. This frees up storage space on your host computer. Note that depending on the project configuration, this could delete temporary data - such as a database in use for development.

~ $ golang-hello-world $ envy nuke
ENVy environment destroyed.

Setting up your projects to use ENVy

Creating Envyfiles is easy! Please follow the Maintainer's Guide, or take a look at the Envyfile Reference. You may also find the examples repository to be a handy resource.

And, once you're done, please let us know how it went! If you've built an Envyfile for a new language or project type, consider opening an issue or a PR in our examples repository to help others out.

Frequently Asked Questions

  • Q: How does ENVy work?
    • ENVy helps projects by making it very easy for projects to use Docker for environment setup. Most aspects of managing Docker container lifecycles are handled transparently, without the need for project maintainers to think about what needs to happen at each step.
  • Q: How can I support the project?
    • The best way to help ENVy is to use it! With your help, we can learn how projects use ENVy in the real world, and make your use cases easier for you to configure. Please file issues for any problems you encounter!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

envy-project-1.1.0.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

envy_project-1.1.0-py3-none-any.whl (28.5 kB view details)

Uploaded Python 3

File details

Details for the file envy-project-1.1.0.tar.gz.

File metadata

  • Download URL: envy-project-1.1.0.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.1

File hashes

Hashes for envy-project-1.1.0.tar.gz
Algorithm Hash digest
SHA256 0e91c7da8e6313735df229f25bf1cdca54088d3f6c859801b0649ebac351370d
MD5 20743e5b5b64825179747d96141a935e
BLAKE2b-256 a6c4380d91bf256a220e3756d2a4bfcddce9218b239a5c2344db1c0c4c77e444

See more details on using hashes here.

File details

Details for the file envy_project-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: envy_project-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 28.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.1

File hashes

Hashes for envy_project-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bf5e5a442d712bbceefeb29c405f88b8ac322ee1cfe4f084b332491749e6671a
MD5 f088f0271ea7fc7c6fe8ebaa9e4a0370
BLAKE2b-256 7226cef69fac5ef28b13e71de5f35f1a12169e425954807342b338900caf0409

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page