Conversation
|
I’ll correct the mistake and push the corrections after running the tests successfully. |
yu-re-ka
left a comment
There was a problem hiding this comment.
It is a bit unfortunate that their mix.exs still specifies "pleroma" and they don't properly update the version attribute either.
mixRelease requires the pname and version to match what's in the mix.exs. Would be nice if we could find a way around that.
The latest upstream release is tagged as stable-202209.
|
Unlike pleroma, they don't ship a pre-built frontend. I think that's good, but also means that we should probably provide users with a way of installing a frontend, and possibly even add Akkoma's soft-fork of pleroma-fe as a source-built package. |
I could adjust |
Installing a frontend can be done with Frontends could also be included as bind mounts into the Nix store. |
That could work for now, but maybe someone should talk to upstream about matching the version in mix.exs to the tag name for future releases. While there are also tagged versions with version numbers, the actual stable releases with changelogs etc. are named after by the month they were released in:
Well, yeah, that works. But it is not really great that the user has to set up the state to get a usable setup. |
It looks to me that the stable tags just point to the commit that merges the release from the
This problem might be difficult to solve without adding a new module for Akkoma. Such a module could allow the user to specify the frontends, defaulting to |
My first attempt at packaging the frontend: illdefined@b9ed43e I was not sure about the canonical way of integrating it with the rest of the Nix packages.
|
|
Instead of relying on the pleroma module, this PR now introduces a dedicated akkoma module that uses Since Akkoma does not bundle a frontend, the module takes care of that and includes a few options to override its default settings, styles and themes. I wasn’t sure about the proper way to integrate the (primary) frontend with the rest of nixpkgs. It is currently available at |
|
What's the migration path from a running pleroma instance? Is it mentioned in the docs somewhere I couldn't find? |
https://docs.akkoma.dev/stable/installation/migrating_to_akkoma/ I'd assume that someone would need to create a NixOS specific migration path though |
yeah some of these things are not applicable to a nix-based setup. you certainly don't want to use pleroma_ctl to directly manage your pleroma install... |
It should be as easy as copying the database and the upload directory or pointing Akkoma to the existing ones, and enabling the service. The database migrations are run automatically during startup of the service. Should I add a chapter to the manual? |
|
I've migrated an existing non-NixOS Pleroma install to this module by doing pretty much that, plus rewriting the config in Nix. The only problem was that the initial migration takes a while, and because it's run in |
K900
left a comment
There was a problem hiding this comment.
Looks like frontend building is currently broken - the built files end up in ...akkoma-static/frontends/$name/stable/$storepath/ instead of ...akkoma-static/frontends/$name/stable.
|
K900@8680298 seems to fix it, but also maybe we should just symlink that stuff instead of copying it? |
I’ll fix it. |
Symlinking would be an option, but that might break confinement. |
Couldn't the store paths for the frontends be allowed into the sandbox? Presumably we know them already. |
Is there a canonical way to recursively collect all dependencies of a derivation? That would allow us to construct a list of store paths to include, even with a custom derivation. |
|
The static directory is now built by symlinking all the configured frontends etc. With confinement enabled, all store paths in the closure are bind‐mounted to make them accessible. I used |
K900
left a comment
There was a problem hiding this comment.
LGTM, deployed with no issues at toot.0upti.me for a few days now.
There was a problem hiding this comment.
I used to have a favicon and other files in my static directory to customize my instance. It would be nice to have an option to include those again.
There was a problem hiding this comment.
You can override the static directory derivation. I’ll add settings for a favicon and robots.txt.
Do you think there are any other files that should be included in the default derivation?
I am still looking for a way to make the default derivation accessible by name so that it may be wrapped in a custom derivation.
There was a problem hiding this comment.
Why not just have an attrset of filename -> package there?
There was a problem hiding this comment.
An excellent idea. I just implemented it.
This test is based in part on nixos/tests/pleroma.
|
This is on track to become the most thoroughly reviewed PR in existence 😀 |
yayayayaka
left a comment
There was a problem hiding this comment.
I have no other comments left and my akkoma instance is doing fine. Thanks for your effort!
|
Let's get this in then. We can always add more later. |
|
I just noticed that running both akkoma and pleroma still fails as described in #192285 (review). (I forgot to comment out my workaround) Opened #208027 to track this issue. |
There was a problem hiding this comment.
Can you make a PR with this change so we can pull the lock file from upstream rather than vendoring 12k lines of code?

Description of changes
Packaging Akkoma, a fork of Pleroma: https://coffee-and-dreams.uk/development/2022/06/24/akkoma.html.
Special thanks to @yu-re-ka for debugging.
Things done
sandbox = trueset innix.conf? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)nixos/doc/manual/md-to-db.shto update generated release notes