A great UI for my OpenAI

A great UI for my OpenAI
Photo by Jonathan Kemper / Unsplash

In today's competitive digital landscape, leveraging AI tools like OpenAI's ChatGPT-4 can significantly enhance productivity and innovation. However, for companies with API-only subscriptions, creating a user-friendly interface becomes essential to interact effectively with the AI. OpenWebUI provides such a solution, offering a customizable UI that utilizes the provided API keys. Additionally, to secure the setup and make it accessible online, Cloudflare Tunnel can be used. Here's how you can get it set up, along with some configuration tips and security recommendations.

Installation Guide using Docker Compose

Prerequisites

  1. API Keys: Ensure you have your OpenAI API key.
  2. Docker and Docker Compose: Make sure Docker and Docker Compose are installed on your machine.
  3. Cloudflare Account: Required for setting up the Cloudflare Tunnel.

Step-by-Step Installation

1. Create a Docker Compose File

Create a docker-compose.yml file to define the services and configurations.

version: '3.7'
services:
  openwebui:
    image: openwebui/openwebui:latest
    environment:
      - OPENAI_API_KEY=your_openai_api_key_here
      - PORT=3000  # Change this if you prefer another port
      - DISABLE_SIGNUPS=true  # Assuming OpenWebUI supports this env variable
    ports:
      - "3000:3000"
    volumes:
      - ./config:/app/config  # Adjust volume paths as needed
    restart: always

2. Start the Services

Deploy the services defined in your docker-compose.yml.

docker-compose up -d

This command starts the OpenWebUI service in detached mode.

3. Set Up Cloudflare Tunnel

Install Cloudflare’s cloudflared:
Follow the installation guide at Cloudflare’s documentation.

Authenticate with Cloudflare:

cloudflared login

Create and configure the Tunnel:

cloudflared tunnel create mytunnel

Edit the Cloudflare Tunnel configuration file:

vim ~/.cloudflared/config.yml

Adjust the configuration similar to this:

tunnel: mytunnel
credentials-file: /home/user/.cloudflared/mytunnel.json

ingress:
  - hostname: yourdomain.com
    service: http://localhost:3000
  - service: http_status:404

Run the Tunnel:

cloudflared tunnel run mytunnel

Securing the Setup

  1. Disable Signups: Ensure that the signups are disabled to prevent unauthorized access. If OpenWebUI does not support the DISABLE_SIGNUPS environment variable directly, you might need to edit the application’s configuration file manually or via an init script.
  2. Restrict API Key Access: Keep your OpenAI API keys secure and rotate them periodically.
  3. Monitor Access: Use Cloudflare’s logging and monitoring tools to keep an eye on access patterns and potential security issues.
  4. Regular Backups: Regularly back up your configuration and data.

Conclusion

By deploying OpenWebUI via Docker Compose and securing it with Cloudflare Tunnel, you've set up a robust and accessible interface for interacting with OpenAI’s GPT-4 API. This method streamlines deployments, ensures consistency across environments, and offers an additional layer of security.

Next Steps:

  • Regularly update your Docker images and dependencies.
  • Monitor access logs for any unauthorized attempts.
  • Continuously review and improve your security measures.

Feel free to reach out if you encounter any challenges or need further assistance. Enjoy utilizing the power of GPT-4 with a convenient and secure UI!