Deploying OpenWebUI Local AI Interface on Ubuntu 24.04 A developer deployed Open WebUI, a self-hosted ChatGPT-style interface for local and remote AI models, on Ubuntu 24.04 using Docker Compose with Traefik for automatic HTTPS. The setup provides a secure instance at a specified domain with per-user authentication, where the first registered user becomes the administrator. The deployment supports Ollama and OpenAI-compatible endpoints for model backend integration. Open WebUI is a self-hosted, ChatGPT-style interface for local and remote AI models, supporting Ollama, OpenAI-compatible endpoints, and per-user authentication. This guide deploys Open WebUI using Docker Compose with Traefik handling automatic HTTPS. By the end, you'll have an Open WebUI instance running securely at your domain, ready to point at a model backend. 1. Create the project directory: bash $ mkdir -p ~/openwebui/data $ cd ~/openwebui 2. Create the environment file: bash $ nano .env DOMAIN=openwebui.example.com LETSENCRYPT EMAIL=admin@example.com 1. Create the Docker Compose manifest: bash $ nano docker-compose.yaml services: traefik: image: traefik:v3.6 container name: traefik command: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--entrypoints.web.http.redirections.entrypoint.to=websecure" - "--entrypoints.web.http.redirections.entrypoint.scheme=https" - "--certificatesresolvers.letsencrypt.acme.httpchallenge=true" - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web" - "--certificatesresolvers.letsencrypt.acme.email=${LETSENCRYPT EMAIL}" - "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json" ports: - "80:80" - "443:443" volumes: - "letsencrypt:/letsencrypt" - "/var/run/docker.sock:/var/run/docker.sock:ro" restart: unless-stopped openwebui: image: ghcr.io/open-webui/open-webui:main container name: openwebui hostname: openwebui expose: - "8080" volumes: - "./data:/app/backend/data" environment: - WEBUI AUTH=true labels: - "traefik.enable=true" - "traefik.http.routers.openwebui.rule=Host ${DOMAIN} " - "traefik.http.routers.openwebui.entrypoints=websecure" - "traefik.http.routers.openwebui.tls.certresolver=letsencrypt" - "traefik.http.services.openwebui.loadbalancer.server.port=8080" restart: unless-stopped volumes: letsencrypt: 2. Start the services: bash $ docker compose up -d 3. Verify the services are running: bash $ docker compose ps 4. View the logs: bash $ docker compose logs Open https://openwebui.example.com in a browser. The first user you register becomes the administrator. Additional users sign up through the same flow and can be managed from Admin Panel → Users . Open WebUI is running and served securely over HTTPS. From here you can: For the full guide with additional tips, visit the original article on Vultr Docs .