Skip to content
Merged
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
150 changes: 150 additions & 0 deletions tutorials/deploy-openwebui-with-generative-apis/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
---
meta:
title: Deploying Open WebUI with Scaleway's Generative APIs
description: This guide explains how to deploy Open WebUI with Scaleway's Generative APIs using Docker or Scaleway's Serverless Containers.
content:
h1: Deploying Open WebUI with Scaleway's Generative APIs
paragraph: Learn how to integrate Scaleway's Generative APIs with Open WebUI for a seamless AI-powered experience using Docker or Scaleway's Serverless Containers.
tags: open-webui docker scaleway generative-apis
categories:
- generative-apis
dates:
validation: 2025-02-17
posted: 2025-02-17
---

Integrating Scaleway's Generative APIs with Open WebUI allows you to leverage powerful AI models in a user-friendly, self-hosted interface.
Open WebUI is an open-source frontend that simplifies interactions with AI models, providing an intuitive alternative to proprietary AI interfaces.

This tutorial will guide you through:

- Configuring Generative APIs on Scaleway
- Installing Open WebUI locally
- Deploying Open WebUI using Scaleway's Serverless Containers


By the end, you'll have a fully functional AI-powered setup.

<Macro id="requirements" />

### Prerequisites

- A Scaleway account logged into the [console](https://console.scaleway.com)
- [Owner](/iam/concepts/#owner) status or appropriate [IAM permissions](/iam/concepts/#permission)
- [Docker](https://docs.docker.com/get-docker/) installed on your system

## Configuring Generative APIs on Scaleway

Scaleway's Generative APIs provide access to advanced AI models via simple API calls. Follow the instructions below to set up Generative APIs

### Creating an API key

1. Log in to the [Scaleway console](https://console.scaleway.com/).
2. Click on your **Organization name** in the top right corner of the console to display the menu.
3. Click **API keys** in the pop-up menu.
4. Click **Generate a New API Key**, provide a name, and store the key securely.

<Message type="tip">
For detailed information about creating API keys, refer to the [how to create API keys documentation](/iam/how-to/create-api-keys/).
</Message>

### Identifying the API endpoint

Scaleway assigns a unique endpoint for your Generative API access. This can be found in the Generative APIs section of the console. The format typically follows:

```
https://api.scaleway.ai/<YOUR_PROJECT_ID>/v1
```

If you have not created a dedicated Project and are using the `default` Project created with your Scaleway account, you can use the following URL: `https://api.scaleway.ai/v1`.
You can also find the exact URL snippet including your `project_id` by visiting the [Generative API Playground](https://console.scaleway.com/generative-api/models/fr-par/playground) and clicking **View Code**.

<Message type="note">
Refer to our [dedicated documentation](/organizations-and-projects/how-to/create-a-project/) to retrieve your Project ID.
</Message>

## Installing Open WebUI locally

Open WebUI provides an easy-to-use interface for interacting with AI models. The recommended installation method is via Docker.

### Running Open WebUI with Scaleway integration

1. Pull and run the Docker container:

```bash
docker run -p 3000:8080 \
-e OPENAI_API_BASE_URL=https://api.scaleway.ai/<YOUR_PROJECT_ID>/v1 \
-e OPENAI_API_KEY=<YOUR_API_KEY> \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
```

<Message type="note">
Replace `<YOUR_PROJECT_ID>` and `<YOUR_API_KEY>` with your actual values.
</Message>

2. Navigate to `http://localhost:3000` in your browser to access the Open WebUI interface.

3. Click **Sign Up** to create an administrator account.
4. Select a model from the available Scaleway AI models and start interacting.

For more details, refer to the [Open WebUI Quick Start Guide](https://docs.openwebui.com/getting-started/quick-start/).

## Deploying Open WebUI using Scaleway's Serverless Containers (Optional)

For cloud-based deployment, Scaleway's Serverless Containers offer a scalable solution.

### Deploying on Scaleway via the console

1. In the Scaleway console, navigate to **Serverless** > **Containers**.
2. Click **Deploy Container** to display the container creation wizard.
3. Select an external registry and use the `ghcr.io/open-webui/open-webui:main` image.
<Message type="note">
The default port `8080` is used by the `ghcr.io/open-webui/open-webui:main` image, so no further configuration is needed.
</Message>
4. Enter a name for your container and configure its resources.
5. Click **Advanced options** and configure secrets:
- Set `OPENAI_API_BASE_URL` and `OPENAI_API_KEY` with your specific values.

6. Click **Deploy container** to launch deployment. Once deployed, note the provided endpoint to access Open WebUI.

<Message type="note">
Since the Open WebUI default image is around 5 GB size, deployment can take a couple of minutes before being ready.
</Message>

### Deploying on Scaleway using the ClI

#### Ensure you have a Scaleway Serverless Containers namespace

Scaleway Serverless Containers are deployed inside a **namespace**. Run the following command to create a namespace:

```bash
scw container namespace create name=openwebui-ns region=fr-par
```
Run the following command to retrieve the namespace ID:
```bash
scw container namespace list
```

### Create the Serverless Container

Run the following command to create the container with your **Docker image and secret injection**:

```bash

$ scw container container create name=open-webui \
namespace-id=<YOUR_NAMESPACE_ID> \
registry-image="ghcr.io/open-webui/open-webui:main" \
environment-variables.OPENAI_API_BASE_URL="https://api.scaleway.ai/<YOUR_PROJECT_ID>/v1" \
secret-environment-variables.0.key="OPENAI_API_KEY" \
secret-environment-variables.0.value="<YOUR_SECRET_KEY>" \
region=fr-par
```

<Message type="note">
Replace `<YOUR_PROJECT_ID>` and `<YOUR_API_KEY>` with your actual values.
</Message>

For more information, refer to Scaleway's [Serverless Containers documentation](/serverless-containers/).