Documentation

menu
HostingIntroductionBranch HostingPull-request DeploymentsSecretsPersistenceDebuggingMultiple ServersCustom DomainsRaw DomainsExample: Typescript & GoExample: JitsiExample: RSS BridgeExample: Tiny Tiny RSSExample: SearxActionsInstalling Nixyaml configNix FlakesWhat Garnix CI doesIncremental BuildsUsing Private InputsCachingEnterprise installationsGitHub Actions IntegrationBadgesFOD ChecksGarnModulesIntroductionNodejsHaskellRustPostgreSQLUserDependenciesHow modules workopen source

Dependenciesshare

A lot of garnix modules have options to add three kinds of dependencies: build, development, and runtime.

Build dependencies are used during the build process. Add packages here that are needed for a successful build.

The language compiler and dependencies already defined in places such as package.json (for NodeJS) or Cargo.toml (for Rust) do not need to be manually added.

Examples: system libraries (such as zlib), preprocessors (such as CMake).

Development tools are tools that you want available in your development environment. Once you merge the pull request that garnix modules generates, you can install Nix, and then run nix develop to be put in a shell with all of these tools, as well as the build and runtime dependencies.

Examples: LSP, formatters.

Runtime dependencies are available to your application at runtime. This is true both for any applications you deploy to a web server, and to applications that you run yourself via Nix. By declaring it here, you don't have to worry about installing these dependencies later. These are also added to your build dependencies and development tools.

Examples: anything your app needs at runtime, for example jq or curl.