Self-Hosting

Visiban is designed for self-hosting. Your data stays on your infrastructure.

Requirements

A server with Docker and Docker Compose v2 is all you need. A 1 vCPU / 1 GB RAM machine handles a small team comfortably.

Docker
24+
Compose
v2
Postgres
16 (bundled)
Redis
7 (bundled)

Quick start

  1. 1

    Clone the repo

    git clone https://gitlab.com/visiban/visiban
    cd visiban
  2. 2

    Configure environment

    cp .env.example .env
    # Edit .env — set DJANGO_SECRET_KEY and SITE_DOMAIN at minimum
  3. 3

    Start the stack

    docker compose up --build -d
  4. 4

    Open the app

    # Visit http://localhost:5173
    # The site admin account is in .env (SITE_ADMIN_EMAIL / _PASSWORD)

Production deployment

For production, use docker-compose.prod.yml which adds an Nginx reverse proxy, serves the built frontend as static files, and uses daphne (ASGI) for WebSocket support.

docker compose -f docker-compose.prod.yml up --build -d

Set SITE_DOMAIN and FRONTEND_URL in your .env to your public hostname. TLS termination can be handled by Nginx with Let's Encrypt (see the full installation guide).

Kubernetes / Helm

A Helm chart is included in the repository under helm/visiban/.

helm repo add bitnami https://charts.bitnami.com/bitnami
helm dependency update helm/visiban
helm install visiban helm/visiban \
  --set ingress.host=visiban.example.com \
  --set secret.djangoSecretKey=$(python3 -c "import secrets; print(secrets.token_urlsafe(50))") \
  --set postgresql.auth.password=strong-password

Need the complete guide? The full documentation covers upgrades, backups, OAuth setup, environment variables, and more.

Read the Full Docs →