3.1 KiB


Welcome to the new era of FIREFISH!


Major changes from last release candidate

  • Firefish branding and new repo!
  • Far better Mastodon API support
  • Edits are now non-experimental
  • Support for secondary cache server
  • Link verification with rel=me
  • Store antennas in cache
  • Post imports with media
  • Sytle fixes
  • More translations
  • Performance upgrades
  • Bug fixes
  • Faster build
  • FoundKey -> Firefish migration fixes

Major changes from stable

All of the above, plus:

  • Post editing
  • Post imports
  • New post design
  • New header design
  • Better accessibility
  • Server silences
  • Modmail
  • New MFM effects
  • Meilisearch search engine
  • Channel search
  • Improved system emails
  • cuid2 IDs
  • Emoji skin tones
  • New 2FA flow
  • Reduced visual clutter
  • Deck view improvements


If upgrading from v13 (old stable)

In addition to the rest of the steps after this:

  • Install the Rust toolchain (v1.68.0 or higher):

  • (Optional) install Meilisearch to use as a search engine instead of Sonic:

  • Replace your config file (.config/default.yml) with a blank version of the example (.config/example.yml) and re-enter the information. This will make things easier.


  • Upgrade to at least Node v20.3.1 (v20.4.0 recommended).

  • (Optional, recommended) install DragonflyDB and configure under cacheServer:

Set new repo and pull

git remote set-url origin
git pull --ff

In case you get an error like:

error: The following untracked working tree files would be overwritten by merge:
Please move or remove them before you merge.


rm ./packages/backend/assets/LICENSE
git reset --hard origin/develop
git pull --ff

Upgrade packages

corepack enable
pnpm i


NODE_ENV=production pnpm run buld


There are 3 new envoriment variables for this upgrade only, because antennas have been moved from the database to the cache.

  • ANTENNA_MIGRATION_SKIP: skips copying antennas to cache if true. Default is false (will clear all antennas if skipped).
  • ANTENNA_MIGRATION_COPY_LIMIT: limits how many entries are copied to cache. Default is 0 (no limit).
  • ANTENNA_MIGRATION_READ_LIMIT: limits how many entires are read from the database in each iteration of migration. Large value may result in faster migration, but also may consume more memory. Default is 10000.

With default options:

NODE_ENV=production pnpm run migrate

With custom options (feel free to only use some):


And then restart Calckey...uh... Firefish!