
Show HN: ENVy, a Development Environment Manager - magmastonealex
https://envy-project.github.io/
======
ahnick
What advantage does this offer over just using docker-compose directly?

~~~
magmastonealex
We found that working inside a docker container isn't usually turn-key.

You need to figure out a system to get UID/GIDs in sync between the container
and the host (otherwise you mess up permissions of files in your repository.
This isn't terribly hard, but is annoying boilerplate to keep writing.

Plus, docker-compose doesn't really offer command discovery. Looking at a
docker compose file, I don't know how to run the project's build steps, or run
their linter or tests. Having to look that up is, in my opinion, annoying.

In general, we try to provide sane defaults, so that users (and to some extent
maintainers) don't need to understand Docker and how it works in order to
start using it.

~~~
toomuchtodo
> Plus, docker-compose doesn't really offer command discovery. Looking at a
> docker compose file, I don't know how to run the project's build steps, or
> run their linter or tests. Having to look that up is, in my opinion,
> annoying.

Shouldn’t this be in the README at / of the project?

------
magmastonealex
Hi Hacker News!

We have been working on a tool called ENVy:

[http://envy-project.github.io/](http://envy-project.github.io/)
[https://github.com/envy-project/envy](https://github.com/envy-project/envy)

ENVy is an environment manager to make working on disparate projects easier.
You don't need to worry about what a package is called on your Linux
distribution, or figure out how to build for Mac from scratch.

Part of our goal was to make it easier to contribute to open source. We
noticed that long contributing guides dissuades casual involvement - if you
have to install a bunch of dependencies (that you won't necessarily know how
or remember to get rid of), and spend half an hour getting set up, you're not
very likely to fix a typo or make a 30 second fix for a personally annoying
bug.

There's also some value for business projects - we've found times that you
just need to make a "simple" change to another team's codebase, and it turns
into a multi-day effort of setting up an environment.

Setup with ENVy is as simple as typing `envy up` for any project you want to
work on. Running `envy nuke` removes all traces of that environment. With
ENVy, you don't need to hunt down a lint command or how you run the tests.
`envy -h` shows you all the commands you can run - or just jump into a shell
with `envy shell`.

You can read more about ENVy on our site, but the short version is that we
think it'll make it easier for contributors to help out in open-source
projects.

If you're interested, you can check out some examples to get up and running:

[https://github.com/envy-project/examples](https://github.com/envy-
project/examples)

Under the hood, it handles the intricacies of setting up and working within a
Docker container - it sounds simple on the surface, but networking, file
permissions, and setup can wind up being kind of complicated.

We definitely realize that a critical mass of users and projects is required
to have this be a truly useful project, and we've started to open some pull
requests in open-source projects to gauge maintainer interest.

~~~
ahnick
Is this at all related to progrium's envy?
([https://github.com/progrium/envy](https://github.com/progrium/envy))

~~~
magmastonealex
We did find that project as well. It's unrelated though - ours is intended to
run on your local machine whereas that one seems intended to run on a server
somewhere.

Unfortunate naming collision though :(

~~~
geoelectric
I don't think that's going to prevent confusion. I'd have assumed they were
phases of the same project at a casual glance.

