Git Product home page Git Product logo

env.nix's Introduction


Env.nix

Have Nix, Have the power of all environments.

AboutKey FeaturesGetting StartedFAQRoadmap

About

Collection of Nix Shells for Developing purposes.

By using the Nix package manager you can have any environment for development in your machine, all this happens due to Nix's reproducible builds and Nix's package manager with 80000 packages avaiable.

Key Features

  • Get started with a simple dev environment for your application.
  • Have access to any necessary package in Nix Packages
  • Or build your own package using the native Nix functions.

Getting Started

Prerequisites

First things first, it's necessary to have Nix installed in your machine, it currently supports most linux distributions, MacOS and Windows through WSL2. You can see here the instructions details for installing on each operating system.

After installing Nix on your machine, enable the flake and nix command experimental feature.

And optionally, you can enable direnv and nix-direnv in your Nix configuration, this makes it possible to use the dev shell environments on your favorite shell other than bash (fish, zsh etc...).

Installing and Running

With direnv and nix-direnv

If you have direnv and nix-direnv installed, you can just create a file called .envrc in the root folder of your project, and them paste this in:

# .envrc
use flake "github:abehidek/env.nix#nodejs"

And voilà!, you have and nodejs environment ready for you to work on in your favorite shell!

You can select other environments, for example you can have elixir:

# .envrc
use flake "github:abehidek/env.nix#elixir"

No direnv and nix-direnv

If you don't want to enable direnv and nix-direnv, you can easily enter in our shell by running:

# Be sure to enable flake and nix-command features on your configuration!!
# nix develop github:abehidek/env.nix#<desired-environment>

$ nix develop github:abehidek/env.nix#nodejs
$ nix develop github:abehidek/env.nix#elixir

You will be dropped into a bash shell with the desired environment dependencies!

Customize your shell

To add or remove dependencies, you can download this repository and edit the shell.nix file or create one and add it into the flake.nix outputs, and then to run instead of pointing into this github repository, you point into your local machine flake.nix.

$ cd ~
$ git clone https://github.com/abehidek/env.nix
$ cd <your-project-directory>
With direnv and nix-direnv

Add the .envrc file into your project root directory.

#.envrc
# use flake <flake-path>#<environment>
use flake ~/env.nix/flake.nix#nodejs
No direnv and nix-direnv
# nix develop <flake-folder-path>#<environment>
$ nix develop ~/env.nix#nodejs

FAQ

Is it any good?

yes.

Roadmap

  • Elixir dev env.
  • Nodejs dev env.
    • Prisma
  • Go dev env.
  • Rust dev env.
    • Tauri

Emailware

Env.nix is an emailware. Meaning, if you liked using this app or it has helped you in any way, I'd like you send me an email at [email protected] about anything you'd want to say about this software. I'd really appreciate it!

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

abehidek.me  ·  GitHub @abehidek  ·  Twitter @guilhermehabe

env.nix's People

Contributors

abehidek avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.