Firefish – migration from admin

Hey!

I had a calckey/firefish instance for myself (and for testing ff by Bobiko) … but after it grow up a bit, and DB was ~10G i decided to cut it off… and this was a bit painfull process.

So in FF you cannot make a migration if you have admin account. BUT you are admin, so you can change your files so..

packages/backend/src/server/api/endpoints/i/move.ts


export default define(meta, paramDef, async (ps, user) => {
	if (!ps.moveToAccount) throw new ApiError(meta.errors.noSuchMoveTarget);
	if (user.isAdmin) throw new ApiError(meta.errors.adminForbidden);
	if (user.movedToUri) throw new ApiError(meta.errors.alreadyMoved);

You need to remove this check „if (user.isAdmin)” just add # in front of the line

Also if you tried few times it can be tricky because of rate limiter so …

packages/backend/src/server/api/limiter.ts

export const limiter = (
	limitation: IEndpointMeta["limit"] & { key: NonNullable<string> },
	actor: string,
) =>
	new Promise<void>((ok, reject) => {
		if (process.env.NODE_ENV === "test") ok();

		const hasShortTermLimit = typeof limitation.minInterval === "number";

just remove limiter by adding new line after „new Promise<void…
and pass them only ok();

export const limiter = (
	limitation: IEndpointMeta["limit"] & { key: NonNullable<string> },
	actor: string,
) =>
	new Promise<void>((ok, reject) => {
		ok();
		if (process.env.NODE_ENV === "test") ok();

so you can play with it all the time and there is no limitation for admin to move.

Thank you, now just play with standard „after update” procedure of:

pnpm install
NODE_ENV=production pnpm run build && pnpm run migrate
pm2 ps
pm2 stop Firefish
pm2 start "NODE_ENV=production pnpm run start" --name Firefish

et voila

Firefish… was a mistake

I live in Fediverse for a year now. Like many others i have started after Space Karen bought Twitter and … Fediverse started to be „a new niche thing that has people”.

I have started at someones else server, then moved to my own mastodon instance… than to calckey which changed name to firefish and … now i`m going back to someone elses mastodon.

Why? Because i do not want to admin this shit anymore.

Single person firefish instance is just a stupid thing – it doesn`t have ANY good tooling to manage it. It doesn`t have also any CLI or API to (for example) just remove old stuff (year old clones of stuff from other instance?)

So after my 1 person instance after ~7 months had 9 milion of posts in DB (and ~10,5GB) i decided „enough” i am going out of this mess. I do not need to have a copy of fediverse, I just want to have some joy from it. And started to migrate.

I am software developer. I know what is a difference between a Software Develop Process and YOLO Dev. And when i started to extract all my bookmarks from firefish i discovered that… they even managed to fuck OpenAPI because OApi docs says „we are pushing proper json”

[{"key": "value"}]

but devs decided that… instead of proper json they will send you sth „jsonlike”:

[{key: value,
key2: 'value',
}]

yup, they not only didnt followed their own docs, they even made a mismatch in it.

So i have just scraped all URLs from this outcome and made it into CSVs that was accepted by mastodon to keep my favs with me.

Whats next? It (Fish) loves to not update stuff at time. Polls is ending? whatever, it will be updated after full restart, why the hell it should bother about, right? With max concurrency set to „2” it can keep all 4 cores of VPS used just by itself, with no place for DB and others, and so on… my list of this software sins is so long… it is faster to migrate and just forgot about this shit then list them.

And i have 4 users (myself, friend who just tested it, and two technical accounts), not ~5k like firefish.social so … maybe i am just having issues of „not scaling enough” (laugh). Or just… they don`t care about anything but good look at front, and no pants at back?

I don`t care anymore.

Good By fish