Skip to content

imincik/nix-forge

Repository files navigation

Nix Forge

WARNING: this sofware is currently in alpha state of development.

Nix Forge is an attempt to lower the barrier and learning curve required for packaging and deploying software with Nix to a level acceptable for newcomers who expect to adopt a new technology over the weekend while preserving all the superpowers of Nix.

Features

Packages outputs

  • Shell environments
  • Container images
  • Development environments

Multi-component applications outputs

  • Shell environments (for CLI and GUI components)
  • Container images (for services)
  • NixOS systems (for services)

Packaging workflow

  1. Create a new package recipe file in outputs/packages/<package>/recipe.nix and add it to git.

  2. Build package

nix build .#<package> -L
  1. Inspect and test build output in ./result directory

  2. Submit PR and wait for tests

  3. Publish package by merging the PR

Examples

Debugging

Set build.debug = true and launch interactive package build environment by running

mkdir dev && cd dev
nix develop .#<package>

and follow instructions.

Tests

  • Run package test
nix build .#<package>.test -L

LLMs

LLMs, read these instructions first.

TODOs

  • CI checks and workflows (dependencies updates, ...)

  • Many more language speciffic builders and configuration options

  • Firecracker microVM support

About

Simplified Nix packaging with maximum added value.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •