Self-Hosting Private Claude Artifacts: A Secure Enterprise Solution Using OpenWebUI, Ollama, and VPS
Introduction: The Enterprise Need for Private AI Environments
In the modern business landscape, Artificial Intelligence (AI) has transitioned from an experimental tool to a core operational necessity. Among the various innovations in user interface design, Anthropic's Claude Artifacts has emerged as a standout feature. It allows users to generate, view, and iterate on code, dashboards, documents, and visual designs in a dedicated, side-by-side workspace. However, for enterprises handling proprietary data, financial records, or strict client confidentiality, utilizing public cloud AI interfaces presents a significant compliance risk.
Data leaks, regulatory fines, and the loss of intellectual property are real dangers when sensitive information is fed into external servers. The solution? Self-hosting. By combining the powerful frontend capabilities of OpenWebUI with the local LLM orchestration of Ollama on a Virtual Private Server (VPS), your organization can achieve complete data sovereignty while retaining the highly productive 'Artifacts' workflow.
---Understanding the Architecture: OpenWebUI and Ollama
Before diving into the deployment phase, it is essential to understand how these open-source tools interact to replicate the Claude Artifacts experience:
- Ollama: This serves as the engine room. Ollama is an open-source framework designed for running large language models (LLMs) locally. It manages model weights, memory allocation, and hardware acceleration efficiently, exposing a clean API for front-end applications.
- OpenWebUI: This is the user interface. It is a highly customizable, feature-rich web UI that acts as a drop-in replacement for premium AI interfaces. Crucially, OpenWebUI includes a native feature called Controls/Pipelines or HTML/Web Pages previewing, which effectively mimics Anthropic's Artifacts by rendering HTML, CSS, JavaScript, and SVG code in real-time.
- VPS (Virtual Private Server): The infrastructure layer. Hosting this stack on a private VPS ensures that all data baseline interactions, system logs, and model inferences remain strictly within your organizational boundaries.
Prerequisites and System Requirements
To ensure a smooth deployment and optimal performance, your VPS should meet the following minimum specifications:
| Component | Minimum Requirement | Recommended for Production |
|---|---|---|
| CPU | 4 Cores (Modern Architecture) | 8 Cores+ or Dedicated vCPU |
| RAM | 8 GB (For 7B/8B models) | 16 GB to 32 GB (For 14B+ models) |
| Storage | 50 GB SSD / NVMe | 100 GB+ NVMe SSD |
| OS | Ubuntu 22.04 LTS | Ubuntu 24.04 LTS |
Note on GPUs: While Ollama can run on CPU-only environments using quantized models (like Qwen2.5 or Llama3), integrating an NVIDIA GPU (e.g., T4, A10G) will drastically reduce Time-to-First-Token (TTFT) and increase generation speed for multiple concurrent enterprise users.---
Step-by-Step Deployment Guide
Step 1: Preparing the Server and Installing Docker
Using Docker simplifies the orchestration and scaling of both OpenWebUI and Ollama. Connect to your VPS via SSH and execute the following commands to update the system and install Docker:
sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io -y
sudo systemctl enable docker && sudo systemctl start dockerStep 2: Deploying Ollama via Docker
If you are using a CPU-only server, deploy Ollama with the following command. This creates a persistent volume to store your AI models so they do not download again upon container restarts:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama --restart always ollama/ollamaFor servers equipped with an NVIDIA GPU, ensure the NVIDIA Container Toolkit is installed first, then run:
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama --restart always ollama/ollamaStep 3: Downloading Optimized Models
To closely match Claude's capabilities in coding and text generation, we recommend using the Qwen2.5-Coder series or Llama-3.1. Execute the following command inside the Ollama container to download a highly capable 7-billion parameter coding model:
docker exec -it ollama ollama run qwen2.5-coder:7bStep 4: Deploying OpenWebUI with Artifacts Capability
Now, run the OpenWebUI container. We will link it to the Ollama container using the internal network address to ensure low latency and security:
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --e OLLAMA_BASE_URL=[http://host.docker.internal:11434](http://host.docker.internal:11434) --add-host=host.docker.internal:host-gateway --name open-webui --restart always ghcr.io/open-webui/open-webui:main---Configuring the 'Private Claude Artifacts' Experience
Once the containers are running, navigate to http://your-vps-ip:3000 in your web browser. The first account created will automatically be assigned the Administrator role.
Activating the Visual Preview Dashboard
To achieve the exact look and feel of Claude Artifacts, follow these internal configurations within OpenWebUI:
- Navigate to Admin Settings via the user profile menu in the bottom-left corner.
- Go to the Interface or Web Pages tab.
- Enable the HTML/SVG/Web Previewing Feature. This allows OpenWebUI to capture any code blocks containing HTML, CSS, JavaScript, or React, and render them natively on the right-hand side of the chat window.
- Set the default model to
qwen2.5-coder:7bfor robust code generation and multi-file logic separation.
Now, when you prompt your private AI with a request such as: "Create an interactive sales dashboard for my quarterly report using Tailwind CSS," OpenWebUI will not just spit out raw code. It will open a dedicated side panel rendering the fully functional interactive dashboard in real-time—matching the exact core value proposition of Claude Artifacts.
---Securing and Optimizing Your Private AI Stack
Deploying the software is only half the battle; securing it for enterprise use is paramount. Consider implementing the following infrastructure enhancements:
- Reverse Proxy with Nginx and SSL: Do not leave port 3000 exposed directly to the public internet. Set up an Nginx reverse proxy paired with a Let's Encrypt SSL certificate to encrypt all data in transit via HTTPS.
- Strict Authentication: Disable public registration in the OpenWebUI Admin Panel. Force users to be added manually or integrate your company's existing OAuth/SAML identity providers (like Google Workspace, Okta, or Microsoft Entra ID).
- System Monitoring: Monitor RAM and CPU utilization closely. If your team experiences high latency, consider offloading embedding generation to separate lightweight microservices or adjusting Ollama's
NUM_PARALLELparameters to handle simultaneous inferences.
Conclusion: Complete Independence and Control
By hosting your own private Claude Artifacts alternative using OpenWebUI and Ollama on a VPS, your organization reaps the ultimate dual benefit: cutting-edge productivity without cloud compliance liabilities. You control the logs, you control the data, and you control the model updates. As open-source models continue to narrow the gap with proprietary giants, self-hosting is no longer just a hobbyist endeavor—it is a strategic business advantage.
