Help Center

Step-by-step guides for servers, networks and your account.

Use Cases & Solutions

Self-Host an AI Chat Workspace on a Tokyo or Seoul VPS (Open WebUI, LibreChat, Dify)

To run a private self-hosted AI chat workspace for your team, put Open WebUI, LibreChat or Dify on a small VPS in Tokyo, Japan or Seoul, South Korea and connect it to the OpenAI, Anthropic (Claude) and Google Gemini APIs with your own keys. JUSTG offers Tokyo and Seoul cloud VPS with native local IPs from $19.99/mo, including 1 IPv4 + free IPv6 and instant setup after payment, which is enough for an API-based workspace serving a small or mid-sized team. This guide covers why Japan or Korea, a working Docker Compose example, HTTPS, user accounts, API key protection, cost control and data privacy.

Key facts
  • Locations for AI APIs: Tokyo, Japan and Seoul, South Korea (OpenAI, Claude and Gemini APIs are officially available in both countries).
  • Moscow, Russia is not suitable: these AI APIs are not available in Russia.
  • IP type: native Japanese or Korean IP, dedicated to your VPS, not a shared proxy.
  • Price: JUSTG Tokyo Cloud VPS and JUSTG Seoul Cloud VPS from $19.99/mo (1 core / 512 MB) up to 7 cores / 24 GB at $169.99/mo, KVM, Linux or Windows, auto-deployed after payment.
  • Network: 1 native IPv4 + free IPv6, 500 Mbps port, Asia-optimized routes; Seoul runs on the KT network.
  • Tested: JUSTG tested its Tokyo and Seoul IPs with ChatGPT, Claude and Gemini in October 2026 and they worked.
  • No GPUs: use cloud APIs, or small quantized CPU models via Ollama.

Why host your AI workspace in Tokyo or Seoul

The short answer: the major AI APIs are officially supported in Japan and South Korea, and the latency to East-Asian teams is low.

  • Official API availability. OpenAI, Anthropic and Google list Japan and South Korea as supported regions, so your server calls the APIs from a supported country, as their terms expect. JUSTG tested its Tokyo and Seoul native IPs with ChatGPT, Claude and Gemini in October 2026 and they worked; providers can change their policies, and account, payment and phone checks still apply.
  • Low latency for East Asia. A workspace in Tokyo or Seoul is close to users in Japan, Korea, Taiwan, Hong Kong and Southeast Asia, so the chat interface, file uploads and streaming tokens feel responsive.
  • Stable native IP. Your VPS has its own IPv4 registered in Japan or Korea. Unlike a shared proxy or VPN exit, the address is not used by hundreds of strangers, which keeps behaviour predictable and makes it easy to add to allowlists.
  • One place for keys and logs. Staff use a browser login; the API keys never leave the server.

Moscow, Russia is not a suitable location for this project: OpenAI, Claude and Gemini APIs are not available in Russia. If your team also works in Russia, host the workspace in Tokyo or Seoul and let users reach it over HTTPS.

Choose the software: Open WebUI, LibreChat or Dify

All three are open source and run in Docker; pick based on whether you need a chat UI or an app builder.

ToolBest forProvidersTypical RAM need
Open WebUITeam ChatGPT-style chat, document chat (RAG), Ollama supportOpenAI-compatible APIs, Ollama; Claude/Gemini via a gateway such as LiteLLM2 GB+ (4 GB with RAG)
LibreChatMulti-provider chat with native OpenAI, Anthropic and Google endpointsOpenAI, Anthropic, Google, custom endpoints4 GB (includes MongoDB, search)
DifyBuilding AI apps, workflows, knowledge bases and an API for other systemsMost major providers via plugins4-8 GB (many containers)

Hands-on: Open WebUI + LiteLLM with Docker Compose

This stack gives you one chat UI and one OpenAI-compatible gateway that routes to OpenAI, Claude and Gemini.

On a fresh Ubuntu 24.04 JUSTG Tokyo Cloud VPS with Docker installed, create a project folder:

mkdir -p /opt/ai && cd /opt/ai
openssl rand -hex 32   # use output as WEBUI_SECRET_KEY
openssl rand -hex 24   # use output as LITELLM_MASTER_KEY

Create .env (permissions chmod 600 .env):

OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GEMINI_API_KEY=...
LITELLM_MASTER_KEY=change-me
WEBUI_SECRET_KEY=change-me

Create litellm.yaml:

model_list:
  - model_name: gpt-4o-mini
    litellm_params: { model: openai/gpt-4o-mini, api_key: os.environ/OPENAI_API_KEY }
  - model_name: claude-sonnet
    litellm_params: { model: anthropic/claude-sonnet-4-5, api_key: os.environ/ANTHROPIC_API_KEY }
  - model_name: gemini-flash
    litellm_params: { model: gemini/gemini-2.5-flash, api_key: os.environ/GEMINI_API_KEY }

Create docker-compose.yml:

services:
  litellm:
    image: ghcr.io/berriai/litellm:main-stable
    command: ["--config", "/app/config.yaml", "--port", "4000"]
    env_file: .env
    volumes: ["./litellm.yaml:/app/config.yaml:ro"]
    restart: unless-stopped
  openwebui:
    image: ghcr.io/open-webui/open-webui:main
    environment:
      - OPENAI_API_BASE_URL=http://litellm:4000/v1
      - OPENAI_API_KEY=${LITELLM_MASTER_KEY}
      - WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY}
      - ENABLE_SIGNUP=false
    volumes: ["webui:/app/backend/data"]
    ports: ["127.0.0.1:3000:8080"]
    depends_on: [litellm]
    restart: unless-stopped
volumes:
  webui:
docker compose up -d
docker compose logs -f openwebui

Note that both services listen only on the internal Docker network or on 127.0.0.1; nothing is exposed until the reverse proxy is in place. Model names change over time, so check each provider's current model list before copying the IDs above.

Add HTTPS with a reverse proxy

Never expose an AI workspace over plain HTTP; Caddy gets a free Let's Encrypt certificate automatically.

Point an A record such as ai.example.com to your VPS IP (for example 203.0.113.10) and an AAAA record to its IPv6, then:

apt install -y caddy
cat > /etc/caddy/Caddyfile <<'CFG'
ai.example.com {
    reverse_proxy 127.0.0.1:3000
    encode gzip
}
CFG
systemctl reload caddy
ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp && ufw enable

Open https://ai.example.com. The first account you create becomes the administrator; because ENABLE_SIGNUP=false is set, create further users from the admin panel. Streaming responses work through Caddy without extra settings.

User accounts, roles and protecting API keys

Keep provider keys on the server only, and give people accounts instead of keys.

  • Create one account per person; use groups or roles to limit who can use expensive models.
  • Store keys in .env with mode 600; never paste them into the browser UI on shared machines or commit them to Git.
  • Use separate API keys per project or per workspace so you can revoke one without breaking others.
  • Restrict SSH to key login (PasswordAuthentication no) and install fail2ban.
  • If your company uses SSO, Open WebUI, LibreChat and Dify all support OAuth/OIDC login.
  • Because the VPS has a fixed native IP, you can whitelist it in provider dashboards that support IP restrictions, or in your own internal APIs.

Cost control and monitoring

API spend grows with users and context length, so set limits before you invite the whole team.

  • Set monthly budgets and usage alerts in each provider console (OpenAI, Anthropic Console, Google AI Studio / Cloud billing).
  • Use LiteLLM virtual keys with per-key budgets (max_budget) and rate limits for departments.
  • Make a cheaper model (a "mini" or "flash" tier) the default and reserve top models for tasks that need them.
  • Limit uploaded file size and RAG chunk counts; long contexts are the main cost driver.
  • Review per-user usage weekly in the admin dashboards.

Data privacy and small local models

Self-hosting keeps chat history, uploaded files and embeddings on a server you control, but prompts sent to an API still go to that provider.

  • Read each provider's API data-use policy; business API traffic is generally handled differently from consumer apps, but confirm retention terms for your plan.
  • Back up the webui volume and encrypt backups; delete old conversations on a schedule.
  • For sensitive drafts, run a small quantized model on CPU with Ollama, for example a 3B-8B model in Q4 format. JUSTG does not offer GPUs, so expect a few tokens per second: fine for classification, short summaries or redaction, not for heavy chat.
docker run -d --name ollama -v ollama:/root/.ollama -p 127.0.0.1:11434:11434 ollama/ollama
docker exec ollama ollama pull qwen2.5:3b

Then add http://host.docker.internal:11434 (or the container name on a shared network) as an Ollama connection in Open WebUI.

Which JUSTG plan fits

Choose Tokyo or Seoul based on where most users sit, then size RAM by stack.

RAMSuitable forNot suitable for
2 GBOpen WebUI + LiteLLM, API-only, up to about 10-20 light usersDify, local models, large RAG libraries
4 GBLibreChat or Open WebUI with RAG; a 1.5B-3B model in Ollama for small tasksFull Dify with many workflows plus local models
8 GBDify with knowledge bases, or Open WebUI + a 7B-8B Q4 model on CPUGPU-class inference or large models

The 512 MB and 1 GB entry plans are too small for these stacks; start at 2 GB. Plans scale up to 7 cores / 24 GB RAM at $169.99/mo. Choose the JUSTG Tokyo Cloud VPS for teams in Japan, Taiwan and Hong Kong, or the JUSTG Seoul Cloud VPS (KT network) for teams in Korea; both use Asia-optimized routes. See also our AI VPS overview. Need more CPU, RAM, disk or bandwidth, or extra IPs? Custom configurations are available on request: contact sales via ticket for a custom quote. Johannesburg, South Africa cloud VPS is coming soon (Johannesburg dedicated servers are already available from $199/mo); open a ticket if you would like to be notified.

FAQ

Which VPS location is best for calling the OpenAI or Claude API from Asia?

Tokyo, Japan and Seoul, South Korea are both officially supported regions for the OpenAI, Anthropic Claude and Google Gemini APIs. JUSTG offers cloud VPS in both cities with native local IPs from $19.99/mo, so pick the one closest to your users.

Can I use a Moscow VPS for ChatGPT or Claude API access?

No. OpenAI, Claude and Gemini APIs are not available in Russia, so a Moscow, Russia VPS is not suitable for these services. Host the AI workspace on a JUSTG Tokyo or Seoul Cloud VPS instead.

Do I need a GPU server to self-host an AI chat workspace?

No. Open WebUI, LibreChat and Dify only forward requests to cloud APIs, so a 2-4 GB CPU VPS is enough. JUSTG does not offer GPUs; small quantized models via Ollama on CPU work for light tasks only.

Is a self-hosted AI workspace more private than using ChatGPT directly?

It keeps chat history, files and user accounts on your own server and keys out of employees' hands. Prompts still reach the API provider, so review their data-retention terms and use a local model for content that must never leave your server.

Get started

A private AI workspace with HTTPS, user accounts and budget limits can be live in under an hour. Deploy a JUSTG Tokyo Cloud VPS or a JUSTG Seoul Cloud VPS, follow the steps above, and contact our 24/7 support team via ticket if you need help.

Was this answer helpful?
Help Center
AlipayUnionPayVISAMastercardPayPalUSDTstripe