Software distribution system for projects funded via Next Generation Internet (NGI) https://ngi.nixos.org/
  • Nix 55.2%
  • Elm 27.3%
  • Python 6.8%
  • TypeScript 5.5%
  • CSS 1.9%
  • Other 3.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-01 13:13:26 +02:00
.github drop: unused workflow for adding nixpkgs issues to board 2026-08-31 20:58:08 +05:30
docs feat(dev): add example .envrc (#938) 2026-08-28 09:03:50 +00:00
flake fix: revert elm2nix package to forge input package 2026-08-31 20:48:35 +03:00
forge refactor: make reading binary files implicit (#939) 2026-09-01 13:13:26 +02:00
maintainers maintainers: add script to automate nixpkgs build failure issue creation 2026-08-01 13:40:23 +05:30
recipes refactor: make reading binary files implicit (#939) 2026-09-01 13:13:26 +02:00
templates feat: init developer template 2026-08-03 17:56:17 +02:00
ui flake: automatic update of nixpkgs input (#943) 2026-08-31 20:30:33 +05:30
.envrc.example feat(dev): add example .envrc 2026-08-28 06:59:14 +02:00
.gitignore feat: add forge-update script for updating package recipes (#617) 2026-06-12 15:44:43 +02:00
default.nix style: cleanup introspection 2026-06-24 00:27:22 +05:30
flake.lock flake: update all inputs 2026-08-31 19:19:21 +05:30
flake.nix flake: back to upstream nixpkgs 2026-07-27 10:17:39 +02:00
LICENSE Add LICENSE 2025-09-24 14:20:49 +02:00
README.md treewide: ngi-nix.github.io/forge -> ngi.nixos.org 2026-08-28 06:07:47 +02:00
shell.nix refactor: simplify shell.nix 2026-06-23 22:47:40 +05:30

NGI Forge

This software is in active development. Expect backwards incompatible changes.

Features

Conceptual diagram

graph TB
    subgraph NixosCommunity["NixOS Community"]
      NIXPKGS(Nixpkgs)
      NIXOS(NixOS)
    end

    subgraph Sources["Sources"]
        SW1[Git Repository]
        SW2[Tarball URL]
        SW3[Local Path]
    end

    PKG[Package Recipe<br/>recipe.nix]

    subgraph PackageOutputs["Packages"]
        PO4[Nix Package]
        PO1[Development Environment]
        PO2[Shell Environment]
    end

    APP[Application Recipe<br/>recipe.nix]

    subgraph AppOutputs["Applications"]
        AO1[Shell Runtime<br/>for CLI and GUI components]
        AO2[Container Runtime<br/>for services]
        AO3[NixOS Runtime<br/>for services]
    end

    SW1 & SW2 & SW3 & NIXPKGS--> PKG
    PKG --> PO1 & PO2 & PO4

    PO4 & NIXPKGS & NIXOS --> APP
    APP --> AO1
    APP --> AO2
    APP --> AO3

Self hosting

  • Initiate new Nix Forge instance from template
nix flake init --template github:ngi-nix/forge#provider
  • Set repositoryUrl attribute in flake.nix to your repository

  • Add all new files to git

  • Start creating recipes in recipes directory

Nixpkgs repository

We package and maintain some NGI software in Nixpkgs and re-use it in the Forge application recipes.

Get a list of packages maintained in Nixpkgs

nix eval --json -f maintainers/list-nixpkgs.nix packages

Nixpkgs build status

Credits

This software was originally started as a fork of imincik/nix-forge.