diff --git a/packages/backend/src/models/index.ts b/packages/backend/src/models/index.ts
index 67da3473957a7dc276f7fe59c38e27e4f3a2ed17..da64063cefd433ec48c279e1015f77b7c7e4310b 100644
--- a/packages/backend/src/models/index.ts
+++ b/packages/backend/src/models/index.ts
@@ -61,6 +61,7 @@ import { RegistryItem } from './entities/registry-item';
 import { Ad } from './entities/ad';
 import { PasswordResetRequest } from './entities/password-reset-request';
 import { UserPending } from './entities/user-pending';
+import { InstanceRepository } from './repositories/instance';
 
 export const Announcements = getRepository(Announcement);
 export const AnnouncementReads = getRepository(AnnouncementRead);
@@ -89,7 +90,7 @@ export const UserNotePinings = getRepository(UserNotePining);
 export const UsedUsernames = getRepository(UsedUsername);
 export const Followings = getCustomRepository(FollowingRepository);
 export const FollowRequests = getCustomRepository(FollowRequestRepository);
-export const Instances = getRepository(Instance);
+export const Instances = getCustomRepository(InstanceRepository);
 export const Emojis = getCustomRepository(EmojiRepository);
 export const DriveFiles = getCustomRepository(DriveFileRepository);
 export const DriveFolders = getCustomRepository(DriveFolderRepository);
diff --git a/packages/backend/src/models/repositories/federation-instance.ts b/packages/backend/src/models/repositories/federation-instance.ts
deleted file mode 100644
index 426fd5bfc312979309fc4346611afeb72627bd94..0000000000000000000000000000000000000000
--- a/packages/backend/src/models/repositories/federation-instance.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import config from '@/config/index';
-
diff --git a/packages/backend/src/models/repositories/instance.ts b/packages/backend/src/models/repositories/instance.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6097f58ba6925ebe928f48b30cec45f05b07ef4f
--- /dev/null
+++ b/packages/backend/src/models/repositories/instance.ts
@@ -0,0 +1,39 @@
+import { EntityRepository, Repository } from 'typeorm';
+import { Instance } from '@/models/entities/instance';
+import { Packed } from '@/misc/schema';
+
+@EntityRepository(Instance)
+export class InstanceRepository extends Repository<Instance> {
+	public async pack(
+		instance: Instance,
+	): Promise<Packed<'FederationInstance'>> {
+		return {
+			id: instance.id,
+			caughtAt: instance.caughtAt.toISOString(),
+			host: instance.host,
+			usersCount: instance.usersCount,
+			notesCount: instance.notesCount,
+			followingCount: instance.followingCount,
+			followersCount: instance.followersCount,
+			latestRequestSentAt: instance.latestRequestSentAt ? instance.latestRequestSentAt.toISOString() : null,
+			lastCommunicatedAt: instance.lastCommunicatedAt.toISOString(),
+			isNotResponding: instance.isNotResponding,
+			isSuspended: instance.isSuspended,
+			softwareName: instance.softwareName,
+			softwareVersion: instance.softwareVersion,
+			openRegistrations: instance.openRegistrations,
+			name: instance.name,
+			description: instance.description,
+			maintainerName: instance.maintainerName,
+			maintainerEmail: instance.maintainerEmail,
+			iconUrl: instance.iconUrl,
+			infoUpdatedAt: instance.infoUpdatedAt ? instance.infoUpdatedAt.toISOString() : null,
+		};
+	}
+
+	public packMany(
+		instances: Instance[],
+	) {
+		return Promise.all(instances.map(x => this.pack(x)));
+	}
+}
diff --git a/packages/backend/src/models/schema/federation-instance.ts b/packages/backend/src/models/schema/federation-instance.ts
index eef2f9e24fce24a9b043d352be1797a89639fc94..41fc9d3ef73bd502c19c6644749ae036b9b7a03a 100644
--- a/packages/backend/src/models/schema/federation-instance.ts
+++ b/packages/backend/src/models/schema/federation-instance.ts
@@ -34,14 +34,6 @@ export const packedFederationInstanceSchema = {
 			type: 'number',
 			optional: false, nullable: false,
 		},
-		driveUsage: {
-			type: 'number',
-			optional: false, nullable: false,
-		},
-		driveFiles: {
-			type: 'number',
-			optional: false, nullable: false,
-		},
 		latestRequestSentAt: {
 			type: 'string',
 			optional: false, nullable: true,