Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Portable services #354

Open
shivaraj-bh opened this issue Oct 9, 2024 · 1 comment · May be fixed by #448
Open

Portable services #354

shivaraj-bh opened this issue Oct 9, 2024 · 1 comment · May be fixed by #448
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@shivaraj-bh
Copy link
Member

Export configuration for backends other than process-compose. For example, systemd (for Linux) and launchd (for macOS) configurations exported under homeModules.

Related:

@shivaraj-bh shivaraj-bh added enhancement New feature or request help wanted Extra attention is needed labels Oct 16, 2024
@shivaraj-bh shivaraj-bh pinned this issue Oct 17, 2024
@srid srid unpinned this issue Oct 25, 2024
@shivaraj-bh
Copy link
Member Author

shivaraj-bh commented Feb 12, 2025

Notes from Day 1 at Thaigersprint/thaigersprint-2025#1

  • services are currently hardwired to be defined inside a process-compose module. It doesn’t make sense anymore if we are to support “Portable Services". Probably perSystem.services.<service-name> (A breaking change but we could do a 1.0 after this providing a migration script)? Edit: nevermind, this only matters if we are to reuse the definitions of process-compose to define configs for other process managers.
  • Went through the discussion in Modular services NixOS/nixpkgs#372170, some note-worthy ideas that might be useful here:
    • Instead of each service module defining config.outputs.settings.processes… (process-compose-flake specific), they could configure common settings that will be used by all the process-managers. Similar to the one proposed in the PR above: process.executable = "${lib.getExe config.foo.program}”;.
    • Use _class = "service”; for basic type-checking, but maybe something dynamic like _class = “services-flake-<process-manager>” to prevent merging of, let’s say, process-compose config with systemd one’s.
    • Portable service options (i.e options like enable, port, host…) and process-manager specific options (for ex, process-compose-flake specific options like readiness_probe)

@shivaraj-bh shivaraj-bh changed the title Portable service layer Portable services Feb 12, 2025
@shivaraj-bh shivaraj-bh linked a pull request Feb 14, 2025 that will close this issue
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant