Skip to content

Commit adf76d2

Browse files
committed
fix: remove Open WebUI
1 parent 0da050c commit adf76d2

File tree

8 files changed

+2040
-2123
lines changed

8 files changed

+2040
-2123
lines changed

admin/app/services/docker_service.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ export class DockerService {
1414
public static KIWIX_SERVICE_NAME = 'nomad_kiwix_serve'
1515
public static OLLAMA_SERVICE_NAME = 'nomad_ollama'
1616
public static QDRANT_SERVICE_NAME = 'nomad_qdrant'
17-
public static OPEN_WEBUI_SERVICE_NAME = 'nomad_open_webui'
1817
public static CYBERCHEF_SERVICE_NAME = 'nomad_cyberchef'
1918
public static FLATNOTES_SERVICE_NAME = 'nomad_flatnotes'
2019
public static KOLIBRI_SERVICE_NAME = 'nomad_kolibri'

admin/database/migrations/1769300000002_update_services_friendly_names.ts

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ export default class extends BaseSchema {
2626
await this.db.rawQuery(`
2727
UPDATE services SET
2828
friendly_name = 'AI Assistant',
29-
powered_by = 'Open WebUI + Ollama',
29+
powered_by = 'Ollama',
3030
display_order = 3,
3131
description = 'Local AI chat that runs entirely on your hardware - no internet required'
32-
WHERE service_name = 'nomad_open_webui'
32+
WHERE service_name = 'nomad_ollama'
3333
`)
3434

3535
await this.db.rawQuery(`
@@ -49,12 +49,6 @@ export default class extends BaseSchema {
4949
description = 'Swiss Army knife for data encoding, encryption, and analysis'
5050
WHERE service_name = 'nomad_cyberchef'
5151
`)
52-
53-
await this.db.rawQuery(`
54-
UPDATE services SET
55-
display_order = 100
56-
WHERE service_name = 'nomad_ollama'
57-
`)
5852
}
5953

6054
async down() {
@@ -79,11 +73,11 @@ export default class extends BaseSchema {
7973

8074
await this.db.rawQuery(`
8175
UPDATE services SET
82-
friendly_name = 'Open WebUI',
76+
friendly_name = 'Ollama',
8377
powered_by = NULL,
8478
display_order = NULL,
85-
description = 'A web interface for interacting with local AI models served by Ollama'
86-
WHERE service_name = 'nomad_open_webui'
79+
description = 'Local AI chat that runs entirely on your hardware - no internet required'
80+
WHERE service_name = 'nomad_ollama'
8781
`)
8882

8983
await this.db.rawQuery(`
@@ -103,11 +97,5 @@ export default class extends BaseSchema {
10397
description = 'The Cyber Swiss Army Knife - a web app for encryption, encoding, and data analysis'
10498
WHERE service_name = 'nomad_cyberchef'
10599
`)
106-
107-
await this.db.rawQuery(`
108-
UPDATE services SET
109-
display_order = NULL
110-
WHERE service_name = 'nomad_ollama'
111-
`)
112100
}
113101
}

admin/database/seeders/service_seeder.ts

Lines changed: 6 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { DockerService } from '#services/docker_service'
33
import { BaseSeeder } from '@adonisjs/lucid/seeders'
44
import { ModelAttributes } from '@adonisjs/lucid/types/model'
55
import env from '#start/env'
6-
import { RagService } from '#services/rag_service'
76

87
export default class ServiceSeeder extends BaseSeeder {
98
// Use environment variable with fallback to production default
@@ -64,11 +63,11 @@ export default class ServiceSeeder extends BaseSeeder {
6463
},
6564
{
6665
service_name: DockerService.OLLAMA_SERVICE_NAME,
67-
friendly_name: 'Ollama',
68-
powered_by: null,
69-
display_order: 100, // Dependency service, not shown directly
70-
description: 'Run local LLMs (AI models) with ease on your own hardware',
71-
icon: 'IconRobot',
66+
friendly_name: 'AI Assistant',
67+
powered_by: 'Ollama',
68+
display_order: 3,
69+
description: 'Local AI chat that runs entirely on your hardware - no internet required',
70+
icon: 'IconWand',
7271
container_image: 'ollama/ollama:latest',
7372
container_command: 'serve',
7473
container_config: JSON.stringify({
@@ -82,40 +81,8 @@ export default class ServiceSeeder extends BaseSeeder {
8281
ui_location: null,
8382
installed: false,
8483
installation_status: 'idle',
85-
is_dependency_service: true,
86-
depends_on: DockerService.QDRANT_SERVICE_NAME,
87-
},
88-
{
89-
service_name: DockerService.OPEN_WEBUI_SERVICE_NAME,
90-
friendly_name: 'AI Assistant',
91-
powered_by: 'Open WebUI + Ollama',
92-
display_order: 3,
93-
description: 'Local AI chat that runs entirely on your hardware - no internet required',
94-
icon: 'IconWand',
95-
container_image: 'ghcr.io/open-webui/open-webui:main',
96-
container_command: null,
97-
container_config: JSON.stringify({
98-
HostConfig: {
99-
RestartPolicy: { Name: 'unless-stopped' },
100-
NetworkMode: 'host',
101-
Binds: [`${ServiceSeeder.NOMAD_STORAGE_ABS_PATH}/open-webui:/app/backend/data`],
102-
PortBindings: { '8080/tcp': [{ HostPort: '3000' }] },
103-
},
104-
Env: [
105-
'WEBUI_AUTH=False',
106-
'PORT=3000',
107-
'OLLAMA_BASE_URL=http://127.0.0.1:11434',
108-
'VECTOR_DB=qdrant',
109-
'QDRANT_URI=http://127.0.0.1:6333',
110-
'RAG_EMBEDDING_ENGINE=ollama',
111-
`RAG_EMBEDDING_MODEL=${RagService.EMBEDDING_MODEL}`,
112-
],
113-
}),
114-
ui_location: '3000',
115-
installed: false,
116-
installation_status: 'idle',
11784
is_dependency_service: false,
118-
depends_on: DockerService.OLLAMA_SERVICE_NAME,
85+
depends_on: DockerService.QDRANT_SERVICE_NAME,
11986
},
12087
{
12188
service_name: DockerService.CYBERCHEF_SERVICE_NAME,

admin/inertia/pages/easy-setup/index.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,15 @@ const CORE_CAPABILITIES: Capability[] = [
6262
{
6363
id: 'ai',
6464
name: 'AI Assistant',
65-
technicalName: 'Open WebUI + Ollama',
65+
technicalName: 'Ollama',
6666
description: 'Local AI chat that runs entirely on your hardware - no internet required',
6767
features: [
6868
'Private conversations that never leave your device',
6969
'No internet connection needed after setup',
7070
'Ask questions, get help with writing, brainstorm ideas',
7171
'Runs on your own hardware with local AI models',
7272
],
73-
services: ['nomad_open_webui'], // ollama is auto-installed as dependency
73+
services: ['nomad_ollama'],
7474
icon: 'IconRobot',
7575
},
7676
]
@@ -822,10 +822,10 @@ export default function EasySetupWizard(props: { system: { services: ServiceSlim
822822

823823
const renderStep3 = () => {
824824
// Check if AI or Information capabilities are selected OR already installed
825-
const isAiSelected = selectedServices.includes('nomad_open_webui') ||
826-
installedServices.some((s) => s.service_name === 'nomad_open_webui')
827-
const isInformationSelected = selectedServices.includes('nomad_kiwix_serve') ||
828-
installedServices.some((s) => s.service_name === 'nomad_kiwix_serve')
825+
const isAiSelected = selectedServices.includes('nomad_ollama') ||
826+
installedServices.some((s) => s.service_name === 'nomad_ollama')
827+
const isInformationSelected = selectedServices.includes('nomad_kiwix') ||
828+
installedServices.some((s) => s.service_name === 'nomad_kiwix')
829829

830830
return (
831831
<div className="space-y-6">

admin/inertia/pages/home.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ export default function Home(props: {
126126

127127
// Add system items
128128
items.push(...SYSTEM_ITEMS)
129-
if (props.system.services.find((s) => s.service_name === 'nomad_open_webui' && s.installed)) {
129+
if (props.system.services.find((s) => s.service_name === 'nomad_ollama' && s.installed)) {
130130
items.push(KNOWLEDGE_BASE_ITEM)
131131
}
132132

admin/inertia/pages/settings/models.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { ModelResponse } from 'ollama'
1414
export default function ModelsPage(props: {
1515
models: { availableModels: NomadOllamaModel[]; installedModels: ModelResponse[] }
1616
}) {
17-
const { isInstalled } = useServiceInstalledStatus('nomad_open_webui')
17+
const { isInstalled } = useServiceInstalledStatus('nomad_ollama')
1818
const { addNotification } = useNotifications()
1919
const { openModal, closeAllModals } = useModals()
2020

@@ -85,12 +85,12 @@ export default function ModelsPage(props: {
8585
<main className="px-12 py-6">
8686
<h1 className="text-4xl font-semibold mb-4">AI Model Manager</h1>
8787
<p className="text-gray-500 mb-4">
88-
Easily manage the AI models available for Open WebUI. We recommend starting with smaller
88+
Easily manage the AI models available for AI Assistant. We recommend starting with smaller
8989
models first to see how they perform on your system before moving on to larger ones.
9090
</p>
9191
{!isInstalled && (
9292
<Alert
93-
title="The Open WebUI service is not installed. Please install it to manage AI models."
93+
title="AI Assistant's dependencies are not installed. Please install them to manage AI models."
9494
type="warning"
9595
variant="solid"
9696
className="!mt-6"
@@ -179,7 +179,7 @@ export default function ModelsPage(props: {
179179
confirmDeleteModel(tag.name)
180180
}
181181
}}
182-
icon={isInstalled ? 'TrashIcon' : 'ArrowDownTrayIcon'}
182+
icon={isInstalled ? 'IconTrash' : 'IconDownload'}
183183
>
184184
{isInstalled ? 'Delete' : 'Install'}
185185
</StyledButton>

0 commit comments

Comments
 (0)