this post was submitted on 16 Jun 2023
6 points (100.0% liked)

nixos

1271 readers
3 users here now

All about NixOS - https://nixos.org/

founded 4 years ago
 

Hello, does anyone know about how to run a kbin instance on NixOS? Will the steps on https://codeberg.org/Kbin/kbin-core/wiki#admin-guide (but replacing the apt installs with adding packages in configuration.nix) just work, or is there a better, more reproducible way?

Thanks.

EDIT: I meant a kbin instance, not lemmy.

top 7 comments
sorted by: hot top controversial new old
[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

Lemmy is packaged already, and you can find configuration options here.

kbin is not packaged yet, thus there are no configuration options for it.

There currently is an open issue requesting it to be packaged here.

[–] pumpkin 1 points 1 year ago

You've probably found it, but in the off chance you haven't, it seems there's an issue on the nixpkgs repo for getting kbin packaged.

[–] Klaymore 1 points 1 year ago* (last edited 1 year ago)

There's actually an entry in the NixOS manual about enabling Lemmy, but it seems a little short. I would also look at the available Lemmy options and try messing around with those if it doesn't work.

There's also a wiki page about it, but from first glance it seems overly complicated and way more than you should need to do. If the other things don't work you can take a look at this, but I don't think you should need it.

[–] [email protected] 1 points 1 year ago

Your title says lemmy instance and in your description you are asking for kbin instance. Which one you truly mean?

Lemmy is already packaged in nixpkgs and its options for NixOS are: https://search.nixos.org/options?channel=unstable&show=services.lemmy.enable&from=0&size=50&sort=relevance&type=packages&query=lemmy

But I do not see kbin packaged yet.

[–] [email protected] 1 points 1 year ago

Will the steps on https://codeberg.org/Kbin/kbin-core/wiki#admin-guide (but replacing the apt installs with adding packages in configuration.nix) just work

No, they will not. It's not about having packages available, it's about packaging it properly and configuring the system to accommodate it.

or is there a better, more reproducible way?

First you'll need to package kbin. This might actually be rather trivial since php does not involve a real build process AFAIK? See other PHP packages for inspiration.

Next you need to set up a module that internally declares a service and configures other services such as Redis or Nginx accordingly. Again, see other PHP modules for reference.


An alternative would be to use Docker/OCI containers to run kbin.

[–] [email protected] 0 points 1 year ago (1 children)

There is a NixOS module for Lemmy, and it's usage is documented in the NixOS manual. To quote the minimal example from the manual:

services.lemmy = {
  enable = true;
  settings = {
    hostname = "lemmy.union.rocks";
    database.createLocally = true;
  };
  caddy.enable = true;
}
[–] [email protected] 1 points 1 year ago

I just saw that you're asking for kbin, not lemmy. The steps probably wouldn't work as-is, and the "correct" way is to create a NixOS module for kbin. Some of the configuration steps (e.g. creating the kbin service user, configuring PHP, configuring Nginx, configuring Let's Encrypt etc.) are supported by NixOS modules in nixpkgs. It's also necessary to package kbin itself, and to create systemd services to run it.

Creating a module requires effort, though, and I'd rather use a container to deploy it for simplicity, if it were me.