Running Vvveb with Docker is the fastest way to get a fully configured environment without manually installing PHP, Apache, or a database server.

You can run Vvveb with SQLite for a lightweight setup or connect it to MySQL/PostgreSQL for production use.


1. Quick Start - Run Vvveb with a Single Command

To start Vvveb instantly using the official Docker image:

docker run -p 8080:80 vvveb/vvvebcms

Then open:

http://localhost:8080

The installation wizard will appear automatically.

Choosing a Database

  • Select SQLite if you want a simple, zero‑configuration setup.
  • Choose MySQL or PostgreSQL if you plan to run a production site or need advanced features.

Docker Hub:
https://hub.docker.com/r/vvveb/vvvebcms


2. Docker Compose Example (with MySQL)

The following docker-compose.yaml file sets up:

  • A MySQL database container
  • A Vvveb CMS container
  • Persistent volumes for data
  • An internal Docker network
services:
  db:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: vvveb
      MYSQL_DATABASE: vvveb
      MYSQL_USER: vvveb
      MYSQL_PASSWORD: vvveb
    volumes:
      - db:/var/lib/mysql
    networks:
      - internal

  php:
    image: vvveb/vvvebcms:latest
    environment:
      DB_HOST: db
      DB_DATABASE: vvveb
      DB_USER: vvveb
      DB_PASSWORD: vvveb
      DB_ENGINE: mysqli # sqlite, pgsql also supported
    volumes:
      - vvveb-volume:/var/www/html
      - db:/var/lib/mysql
    ports:
      - "8080:80"
    links:
      - db:mysql
    depends_on:
      - db
    networks:
      - internal

volumes:
  vvveb-volume:
  db:

networks:
  internal:
    driver: bridge

Start the stack

docker compose up -d

Then open:

http://localhost:8080


3. Development Environment with Docker

If you're working on Vvveb’s source code, you can run the development environment directly from the project root.

Start the dev environment

sudo docker-compose up -d

Access the site

Auto‑install & other options

If you want to enable auto‑installation or modify environment variables:

  1. Open docker-compose.yaml
  2. Uncomment or edit the relevant configuration lines
  3. Rebuild or restart the containers

4. Tips & Best Practices

Persistent Storage

  • The vvveb-volume stores your Vvveb files
  • The db volume stores your MySQL data

This ensures your site survives container restarts.

Using PostgreSQL

Set:

DB_ENGINE=pgsql

And replace the MySQL container with a PostgreSQL one.

Production Deployment

For production, consider:

  • Adding HTTPS via Traefik, Caddy, or Nginx reverse proxy
  • Using external volumes or bind mounts
  • Running MySQL/PostgreSQL on a separate managed service