diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 73f9718aac..75b09698e8 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -951,6 +951,7 @@ joinThisServer: "このサーバーに登録する"
 exploreOtherServers: "他のサーバーを探す"
 letsLookAtTimeline: "タイムラインを見てみる"
 disableFederationWarn: "連合が無効になっています。無効にしても投稿が非公開にはなりません。ほとんどの場合、このオプションを有効にする必要はありません。"
+invitationRequiredToRegister: "現在このサーバーは招待制です。招待コードをお持ちの方のみ登録できます。"
 
 _achievements:
   earnedAt: "獲得日時"
diff --git a/packages/frontend/src/pages/welcome.entrance.a.vue b/packages/frontend/src/pages/welcome.entrance.a.vue
index f62a6461c5..b6f9b3eb23 100644
--- a/packages/frontend/src/pages/welcome.entrance.a.vue
+++ b/packages/frontend/src/pages/welcome.entrance.a.vue
@@ -26,6 +26,9 @@
 					<!-- eslint-disable-next-line vue/no-v-html -->
 					<div class="desc" v-html="meta.description || i18n.ts.headlineMisskey"></div>
 				</div>
+				<div v-if="instance.disableRegistration" class="warn">
+					<MkInfo warn>{{ i18n.ts.invitationRequiredToRegister }}</MkInfo>
+				</div>
 				<div class="action _gaps_s">
 					<MkButton full rounded gradate data-cy-signup style="margin-right: 12px;" @click="signup()">{{ i18n.ts.joinThisServer }}</MkButton>
 					<MkButton full rounded @click="exploreOtherServers()">{{ i18n.ts.exploreOtherServers }}</MkButton>
@@ -62,6 +65,7 @@ import XSignupDialog from '@/components/MkSignupDialog.vue';
 import MkButton from '@/components/MkButton.vue';
 import MkFeaturedPhotos from '@/components/MkFeaturedPhotos.vue';
 import MkTimeline from '@/components/MkTimeline.vue';
+import MkInfo from '@/components/MkInfo.vue';
 import { instanceName } from '@/config';
 import * as os from '@/os';
 import { i18n } from '@/i18n';
@@ -249,6 +253,10 @@ function exploreOtherServers() {
 					padding: 0 32px;
 				}
 
+				> .warn {
+					padding: 32px 32px 0 32px;
+				}
+
 				> .action {
 					padding: 32px;