Pack
A versioned folder holds the setup your team wants to reuse.
LunaPack uses the Luna CLI to install reusable, versioned packs so your team can start with its standards instead of copying another repository.
Technical leads know the routine: copy a starter repository, repair its pipeline, repeat security settings, and explain the project shape again. The cost compounds as each copy begins to drift.
Copied repositories lose their connection to the setup that created them.
Pipelines, security configuration, and docs get rebuilt for every project.
New contributors spend time finding the right starting point.
A pack contains reusable project setup. LunaPack applies it. The project keeps the selected version so changes stay intentional.
A versioned folder holds the setup your team wants to reuse.
LunaPack discovers, previews, installs, and updates that pack.
The project records what it requested and what LunaPack resolved.
Package managers, workflow reuse, IaC modules, and project templates each solve a focused problem. LunaPack assembles the broader project foundation around them, then keeps its managed files versioned and updateable.
NuGet, npm, pip, Cargo, and similar tools resolve libraries for an application. LunaPack delivers the project foundation around those libraries: configuration, tooling, documentation, and other managed files, with a version your project can update.
GitHub Actions can call actions and reusable workflows from other repositories, while Azure Pipelines can load templates from another Git repository. LunaPack complements those mechanisms by versioning and applying the broader project foundation around them, with previewable updates across managed files.
Terraform and Bicep modules can live in central registries and be consumed by deployments. LunaPack solves the surrounding project setup instead: main files, linting, formatting, CI, documentation, and repository conventions, versioned and updated together.
Project templates and generators create a starting snapshot. LunaPack keeps the foundation connected to a versioned source, so teams can inspect and apply updates after project creation.
Use a local folder or Git source that already has the setup you need.
Create LunaPack state, discover a release, then preview an install.
Pass parameters and choose a project-relative destination when needed.
Check what is outdated, review the plan, then apply the update.
Install the LunaPack release, put the executable on your path, then initialize a project and preview the pack you want.
Remove --dry-run when the preview is ready to apply.
luna init
luna sources add github lunapack lunarisdigitalsolutions/lunapack
luna discover
luna install dotnet-project --dry-run
# Apply after reviewing the plan
luna install dotnet-project
luna outdated
luna update dotnet-project --dry-runThe catalog includes repository basics, team standards, and CI checks alongside stack-specific packs. Pick one or compose several as your project needs them.
Use gitignore-general and license-mit to establish clean, portable repository defaults.
Use clean-code-guidelines, C# guidance, and ADR templates to share engineering practices.
Use Commitlint and GitHub Actions packs to make review checks repeatable.
Use the .NET packs for shared build, SDK, package, and formatting policy when your project is .NET.
Copied templates stop evolving the moment they land in a repository. LunaPack keeps source versions and managed-file digests, so you can inspect available updates, preview changes, and apply them intentionally.
Run luna outdated, then use luna update --dry-run to inspect the complete plan before files change.
Packs can copy with overwrite, fail, skip, or backup behavior, or merge line sets, marker-bounded sections, and JSON content.
Lunaris Digital Solutions is the company behind LunaPack and supports creation of the CLI and its packs. LunaPack will remain free and open source. Consulting and training are available for teams adopting or authoring packs.