Deploy using Docker

1

Generate a random `APP_KEY`

Before running the Docker container, you need to generate a random APP_KEY for your Data Wizard instance. This key is used for encryption and security purposes.

Run the following command to generate a random APP_KEY:

openssl rand -base64 32


2

Run the Docker Container

docker run \
  --name data-wizard \
  -p 9090:80 \
  -p 4430:443 \
  -p 4430:443/udp \
  -v data_wizard_storage:/app/storage \
  -v data_wizard_sqlite_data:/app/database \
  -v data_wizard_caddy_data:/data \
  -v data_wizard_caddy_config:/config \
  -e APP_KEY=[REPLACE_WITH_APP_KEY] \
  mateffy/data-wizard:latest
OptionDescription
-p 9090:80,
-p 4430:443,
-p 4430:443/udp
Maps ports on your host machine to ports in the container for HTTP and HTTPS access.
-v ...:...Creates named volumes for persistent storage of application files, SQLite database, and Caddy server data and configuration.
-e APP_KEY=[APP_KEY]Sets the APP_KEY environment variable, essential for application security.


3

Access Data Wizard

Once the container is running, open your web browser and navigate to https://localhost:4430. You might see a warning about an invalid HTTPS certificate because it’s a self-signed certificate for local development. You can safely ignore this warning for local testing.

Updating Data Wizard

When updating Data Wizard, you can pull the latest Docker image and restart the container. Make sure to back up your data before updating to prevent data loss.

docker pull mateffy/data-wizard:latest
docker stop data-wizard
docker rm data-wizard
docker run ... (same run command as before)

You may need to change data-wizard to your docker container name if you have changed it or are using a random name.

Migrating the Database

You may need to migrate the database when updating to a new version of Data Wizard. To do this, run the following command:

docker exec -it data-wizard php artisan migrate

With container ID:

docker exec -it <container-id> php artisan migrate

Manual Installation (for Development)

While Docker is highly recommended, advanced users can also run Data Wizard as a standard Laravel application. This requires a PHP environment, a web server (like Nginx or Apache), and more manual configuration. Detailed instructions for this method are beyond the scope of this basic installation guide, but you can refer to standard Laravel deployment documentation for guidance.

Data Wizard works with both SQLite and PostgreSQL databases. By default, the Docker image uses SQLite for simplicity, but you can configure it to use PostgreSQL by setting the appropriate environment variables.




Next Steps

Learn how to extract some data

Step by step guide to extract data from documents using Data Wizard.