Add a password-gated private instance mode for xaigen.
Keep Authentik on aigen, isolate library data per instance, and purge Comfy outputs from the desktop after they are saved on the server. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+9
-2
@@ -5,7 +5,7 @@
|
||||
<div class="flex items-center gap-3">
|
||||
<div class="flex h-10 w-10 items-center justify-center rounded-xl bg-amber-400 text-zinc-950 font-display font-extrabold">A</div>
|
||||
<div>
|
||||
<h1 class="font-display text-xl font-bold leading-none">AIGen</h1>
|
||||
<h1 class="font-display text-xl font-bold leading-none">{{ instanceName }}</h1>
|
||||
<p class="text-[11px] uppercase tracking-[0.22em] text-zinc-500">MiniMax H3 · ComfyUI relay</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -302,9 +302,12 @@
|
||||
<SettingsModal
|
||||
v-if="settingsOpen"
|
||||
:folders="folders"
|
||||
:auth-mode="authMode"
|
||||
:username="userName"
|
||||
@close="settingsOpen = false"
|
||||
@updated="applyLibrary"
|
||||
@error="toast"
|
||||
@renamed="userName = $event"
|
||||
/>
|
||||
<ImagePickerModal
|
||||
v-if="pickerOpen"
|
||||
@@ -412,6 +415,8 @@ const toasts = ref<{ id: string; message: string }[]>([])
|
||||
const comfyOk = ref(false)
|
||||
const userName = ref('')
|
||||
const authEnabled = ref(false)
|
||||
const authMode = ref('')
|
||||
const instanceName = ref('AIGen')
|
||||
const folders = ref<LibraryFolder[]>([])
|
||||
const clips = ref<LibraryClip[]>([])
|
||||
const stills = ref<LibraryStill[]>([])
|
||||
@@ -495,12 +500,14 @@ async function loadLibrary() {
|
||||
onMounted(async () => {
|
||||
const [health, me] = await Promise.all([
|
||||
$fetch<{ comfy?: { ok?: boolean } }>('/api/health').catch(() => ({ comfy: { ok: false } })),
|
||||
$fetch<{ user?: { name?: string; email?: string }; authEnabled?: boolean }>('/api/auth/me').catch(() => ({ user: null })),
|
||||
$fetch<{ user?: { name?: string; email?: string }; authEnabled?: boolean; authMode?: string; instanceName?: string }>('/api/auth/me').catch(() => ({ user: null })),
|
||||
loadLibrary().catch(() => applyLibrary({ folders: [], clips: [], stills: [] }))
|
||||
])
|
||||
comfyOk.value = Boolean(health.comfy?.ok)
|
||||
userName.value = me.user?.name || me.user?.email || ''
|
||||
authEnabled.value = Boolean(me.authEnabled)
|
||||
authMode.value = me.authMode || ''
|
||||
instanceName.value = me.instanceName || 'AIGen'
|
||||
})
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
|
||||
Reference in New Issue
Block a user