diff --git a/packages/client/src/pages/about.federation.vue b/packages/client/src/components/federation.vue
similarity index 100%
rename from packages/client/src/pages/about.federation.vue
rename to packages/client/src/components/federation.vue
diff --git a/packages/client/src/pages/about.vue b/packages/client/src/pages/about.vue
index b373414b1..c93450448 100644
--- a/packages/client/src/pages/about.vue
+++ b/packages/client/src/pages/about.vue
@@ -83,7 +83,7 @@
import { computed } from 'vue';
import * as foundkey from 'foundkey-js';
import XEmojis from './about.emojis.vue';
-import XFederation from './about.federation.vue';
+import XFederation from '@/components/federation.vue';
import { version, host } from '@/config';
import FormLink from '@/components/form/link.vue';
import FormSection from '@/components/form/section.vue';
diff --git a/packages/client/src/pages/admin/federation.vue b/packages/client/src/pages/admin/federation.vue
new file mode 100644
index 000000000..cf6922464
--- /dev/null
+++ b/packages/client/src/pages/admin/federation.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/client/src/pages/admin/index.vue b/packages/client/src/pages/admin/index.vue
index 279be74aa..ff3b73075 100644
--- a/packages/client/src/pages/admin/index.vue
+++ b/packages/client/src/pages/admin/index.vue
@@ -189,6 +189,7 @@ const component = $computed(() => {
case 'overview': return defineAsyncComponent(() => import('./overview.vue'));
case 'users': return defineAsyncComponent(() => import('./users.vue'));
case 'emojis': return defineAsyncComponent(() => import('./emojis.vue'));
+ case 'federation': return defineAsyncComponent(() => import('./federation.vue'));
case 'queue': return defineAsyncComponent(() => import('./queue.vue'));
case 'files': return defineAsyncComponent(() => import('./files.vue'));
case 'announcements': return defineAsyncComponent(() => import('./announcements.vue'));