Skip to main content

Exporting & Importing DB

If you need to migrate your Open WebUI data (e.g., chat histories, configurations, etc.) from one server to another or back it up for later use, you can export and import the database. This guide assumes you're running Open WebUI using the internal SQLite database (not PostgreSQL).

Follow the steps below to export and import the webui.db file, which contains your database.


Exporting Database

To export the database from your current Open WebUI instance:

  1. Stop Open WebUI before copying the database: SQLite can use write-ahead logging (WAL), which may keep recent committed changes in sidecar files while the application is running. Stop the container first so the database is in a consistent state before export:

    docker stop open-webui
  2. Use docker cp to copy the database file: The webui.db file is located in the container inside the directory /app/backend/data. Run the following command to copy it into your local machine:

    docker cp open-webui:/app/backend/data/webui.db ./webui.db
  3. Start Open WebUI again on the source server:

    docker start open-webui
  4. Transfer the exported file to the new server: You can use FileZilla or any other file transfer tool of your choice to move the webui.db file to the new server.

    info

    FileZilla is recommended for its ease of use when transferring files to the new server.


Importing Database

After moving the webui.db file to the new server, follow these steps:

  1. Install and Run Open WebUI on the New Server: Set up and run Open WebUI using a Docker container. Follow the instructions provided in the 🚀 Getting Started to install and start the Open WebUI container. Once it's running, stop it before performing the import step.

    docker stop open-webui
  2. Remove destination SQLite sidecar files: If the destination container has already created webui.db-wal or webui.db-shm, remove those files before replacing webui.db. They belong to the old destination database state and must not be mixed with the imported database.

    docker run --rm --volumes-from open-webui --entrypoint rm "$(docker inspect -f '{{.Config.Image}}' open-webui)" -f /app/backend/data/webui.db-wal /app/backend/data/webui.db-shm
  3. Use docker cp to copy the database file to the container: Assuming the exported webui.db file is in your current working directory, copy it into the container:

    docker cp ./webui.db open-webui:/app/backend/data/webui.db
  4. Start the Open WebUI container: Start the container again to use the imported database.

    docker start open-webui

    The new server should now be running Open WebUI with your imported database.


Notes

  • This export/import process only works if you're using the internal SQLite database (webui.db).
  • If you're using an external PostgreSQL database, this method is not applicable because the database is managed outside the container. For PostgreSQL, you'd need to follow PostgreSQL-specific tools and procedures to back up and restore your database.
  • Do not mix webui.db-wal or webui.db-shm files from a different database copy. When replacing webui.db on the destination, remove any existing destination sidecar files before starting Open WebUI.

Why It's Important

This approach is particularly useful when:

  • Migrating your Open WebUI data to a new server or machine.
  • Creating backups of your data before an update or modification.
  • Testing Open WebUI on multiple servers with the same setup.

# Quick commands summary for export and import

# Export:
docker stop open-webui
docker cp open-webui:/app/backend/data/webui.db ./webui.db
docker start open-webui

# Stop container on the new server:
docker stop open-webui

# Import:
docker run --rm --volumes-from open-webui --entrypoint rm "$(docker inspect -f '{{.Config.Image}}' open-webui)" -f /app/backend/data/webui.db-wal /app/backend/data/webui.db-shm
docker cp ./webui.db open-webui:/app/backend/data/webui.db

# Start container:
docker start open-webui

With these steps, you can easily manage your Open WebUI migration or backup process. Keep in mind the database format you're using to ensure compatibility.


This content is for informational purposes only and does not constitute a warranty, guarantee, or contractual commitment. Open WebUI is provided "as is." See your license for applicable terms.