Akkoma stable 2022.07 - the curse begins

well, it’s finally time for this i suppose

after a few weeks of hacking around on the akkoma codebase, it’s finally in a state where i can put a pin in it and say “this is the starting point for the project”

changes include:

  • removing ALL of the precompiled javascript; from-source people will be particularly happy that you won’t get 123891238391 files changing every pull. want no frontend? you can do that too!
  • adding support for misskey markdown! you can make weird animating art now if you’re so inclined. or you can just see what those misskey guys are up to instead of seeing italics


  • adding custom emoji reactions!!! we can :hanaPog: at eachother now! it’s truly a christmas miracle


  • ripping out of poorly maintained features that were added as… april fools’ day jokes? who to heck even merges those?
  • pluggable search systems! you can replace the inbuilt pleroma database search with akkoma’s shiny new elasticsearch integration if you’re so inclined
  • numerous bugfixes that were sat as PRs on pleroma for months finally got merged!
  • oh, and finch is now used as the HTTP adapter. hooray.

upgrade notes

before install

ALL frontend js has been extracted from the project, so you need to be sure of a few things

if you used adminFE

make sure the primary/admin settings are set at /pleroma/admin/#/settings/frontend - they should say name: "pleroma-fe" reference: "stable" and name: "admin-fe" reference: "stable" BEFORE you run the upgrade. it’s possible for you to run into a weird issue involving configuration if you don’t do this!

if you used the .exs file

you’ll be fine, no action.



i’m already using akkoma

update yourself to the stable branch - if you want to stay on develop you can omit the --branch option

./bin/pleroma_ctl update --branch stable

i’m on pleroma and want to migrate

follow the docs here → Migrating to Akkoma - Akkoma Documentation


git pull
export MIX_ENV=prod
mix deps.get
mix compile

after install


./bin/pleroma_ctl migrate
./bin/pleroma_ctl frontend install pleroma-fe
./bin/pleroma_ctl frontend install admin-fe


mix ecto.migrate
mix pleroma.frontend install pleroma-fe
mix pleroma.frontend install admin-fe


help me it just shows “welcome to akkoma”!!!

you’ve got a mismatch in your frontend options. check, in this order:

  • that you ran the frontend install task
  • that ./bin/pleroma_ctl config dump | grep :frontends either says “you don’t have DB config enabled”, or returns something like [admin: %{"name" => "admin-fe", "ref" => "develop"}, primary: %{"name" => "pleroma-fe", "ref" => "stable"}]
  • if you don’t have config DB enabled (i.e the above command does not work), that your config.exs does not override :frontends. if it does, make sure the ref matches what you’ve got in your instance_dir/frontends/ directory.

Known issues

OTP still doesn’t work on redhat-based distributions, and void linux users need to use a special flavour → Migrating to Akkoma - Akkoma Documentation

follow state can get confused if you use the block function, mitigated in 3.0.1


go to everyone whomst has contributed to getting this up and running

extra bigge thankies to sfr for FE stuff and enduring misskey, norm for doing what i’d inevitably forget to and update all of the little things, and everyone over at foundkey


is now here → Akkoma Documentation


patch stable 3.0.1 released, backports the follow state bugfix

from upstream, pleroma occasionally loses track of follow state and can say “following” when you’re really not

this mostly happens when you’ve used the block function at some point, which hasn’t correctly severed all relationships

akkoma has been hotfixed to fix this
to update, either ./bin/pleroma_ctl update or git pull, then restart

if you or a user on your instance is in a bad follow state (i.e it’s saying something that doesn’t make sense), you can run
./bin/pleroma_ctl user fix_follow state <local_user> <remote_user>
mix pleroma.user fix_follow_state <local> <remote>

(e.g mix pleroma.use fix_follow_state floatingghost floatingghost@otp.akkoma.dev in my state - the remote user should have the full @ tag)