Express the behavior you want.
Adding a package to environment.systemPackages makes its programs available system-wide. It does not necessarily start or configure a daemon. For a system service, look for its NixOS module.
This example requests Git as a tool and enables the local printing service. Add these options to your existing configuration, then build and review the change before switching.
{ pkgs, ... }: {
environment.systemPackages = [ pkgs.git ];
services.printing.enable = true;
# This option contributes CUPS configuration
# and a systemd service, not just a binary.
}
The option reference is your map.
Options describe accepted types, defaults, and behavior. Search the NixOS option reference instead of guessing names from package names. User accounts similarly belong under users.users, with deliberate group and authentication choices.
Keep plaintext secrets out of Nix expressions: generated store files are generally readable by local users. Use a suitable runtime secret-management approach for credentials.
Packages provide tools; NixOS service modules describe how those tools should run.