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

canaille: init at 0.0.55, add module #333225

Open
wants to merge 25 commits into
base: master
Choose a base branch
from
Open

Conversation

erictapen
Copy link
Member

@erictapen erictapen commented Aug 8, 2024

Description of changes

The module is already usable and can be deployed as can be seen here: https://canaille.erictapen.name

Most of the options are missing currently, and it would be nice to have a working deployment check in the NixOS test.

Addresses:

I'll plan to get this into reviewable shape beginning next week. ✔️

Pinging people involved so far: @azmeuk @Janik-Haag @fricklerhandwerk (@soupglasses because I used parts of your package definition and you seem to be involved)

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

# We can use some kind of fix point for the config anyways, and
# /etc/canaille is recommended by upstream. The alternative would be to use
# a double wrapped canaille executable, to avoid having to rebuild Canaille
# on every config change.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there something that could be done upstream to help with this?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not really, and this is quite the nice solution already. Many webservices have the problem that the config file needs to be independent of the package (to avoid rebuilding the package on config change), but also the config needs to be available to both the executable and the service at runtime. Having a fixpoint (/etc/canaille) solves this.

sqlalchemy-utils
];
# This isn't defined by upstream actually, but seems to be required.
# Possibly included by using the sqlalchemy[postgresql] extra?
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might need to add this upstream indeed. Maybe the sql extra is too broad and we should provide postgresql and mysql extras, or maybe we should just document what extra package are needed for the different DB types 🤔

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, a dedicated postgresql extra would be great!

# We can use some kind of fix point for the config anyways, and
# /etc/canaille is recommended by upstream. The alternative would be to use
# a double wrapped canaille executable, to avoid having to rebuild Canaille
# on every config change.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not really, and this is quite the nice solution already. Many webservices have the problem that the config file needs to be independent of the package (to avoid rebuilding the package on config change), but also the config needs to be available to both the executable and the service at runtime. Having a fixpoint (/etc/canaille) solves this.

nixos/modules/services/security/canaille.nix Show resolved Hide resolved
sqlalchemy-utils
];
# This isn't defined by upstream actually, but seems to be required.
# Possibly included by using the sqlalchemy[postgresql] extra?
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, a dedicated postgresql extra would be great!

nixos/modules/services/security/canaille.nix Show resolved Hide resolved
@erictapen
Copy link
Member Author

@dotlambda Do you think you can have a look at this?

pkgs/by-name/ca/canaille/package.nix Outdated Show resolved Hide resolved
pkgs/by-name/ca/canaille/package.nix Outdated Show resolved Hide resolved
pkgs/by-name/ca/canaille/package.nix Outdated Show resolved Hide resolved
pkgs/by-name/ca/canaille/package.nix Outdated Show resolved Hide resolved
pkgs/by-name/ca/canaille/package.nix Outdated Show resolved Hide resolved
pkgs/development/python-modules/slapd/default.nix Outdated Show resolved Hide resolved
pkgs/development/python-modules/slapd/default.nix Outdated Show resolved Hide resolved
pkgs/development/python-modules/slapd/default.nix Outdated Show resolved Hide resolved
pkgs/development/python-modules/slapd/default.nix Outdated Show resolved Hide resolved
@erictapen
Copy link
Member Author

erictapen commented Aug 30, 2024

Thanks for the review. I'll squash later to keep the commit messages for now.

@erictapen erictapen changed the title canaille: init at 0.0.54, add module canaille: init at 0.0.55, add module Aug 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants