# Firefish
Welcome to the new era of FIREFISH!
# Changelog
## Major changes from last release candidate
- Firefish branding and [new repo](https://gitlab.prometheus.systems/firefish/firefish)!
- 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](https://genau.qwertqwefsday.eu/notes/9h0lqlg05m) -> 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
# Upgrading
## 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.
## Dependencies
- 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
```sh
git remote set-url origin https://gitlab.prometheus.systems/firefish/firefish.git
git pull --ff
```
In case you get an error like:
```
error: The following untracked working tree files would be overwritten by merge:
packages/backend/assets/LICENSE
Please move or remove them before you merge.
Aborting
```
Run:
```sh
rm ./packages/backend/assets/LICENSE
git pull --ff
```
## Upgrade packages
```sh
corepack enable
pnpm i
```
## Build
```sh
NODE_ENV=production pnpm run buld
```
## Migrate
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:
```sh
NODE_ENV=production pnpm run migrate
```
With custom options (feel free to only use some):
```sh
NODE_ENV=production ANTENNA_MIGRATION_SKIP=false ANTENNA_MIGRATION_COPY_LIMIT=0 ANTENNA_MIGRATION_READ_LIMIT=1000 pnpm run migrate
```
And then restart Calckey...uh... Firefish!