4.4 KiB
title
title |
---|
Docker Setup |
Docker Image
The most convenient method of installing and running InvenTree is to use the official docker image.
The InvenTree docker image contains all the required system packages, python modules, and configuration files for running InvenTree.
Docker Compose
An example docker compose script is provided below, which provides a robust "out of the box" setup for running InvenTree.
Containers
The following containers are created:
PostgreSQL Database
A postgresql database container which creates a postgres user:password combination (which can be changed)
Web Server
InvenTree web server running on a Gunicorn backend
Background Worker
InvenTree background worker process manager
Nginx
Nginx working as a reverse proxy, separating requests for static files and directing everything else to Gunicorn
Volumes
There are two container volumes created:
Data
InvenTree stores data which is meant to be persistent (e.g. uploaded media files, database data, etc) in a volume which is mapped to a local system directory.
!!! info "Data Directory" Make sure you change the path to the local directory where you want persistent data to be stored.
Static
Static files are shared between multiple containers (but not exposed to the local file system).
Docker Compose File
Use the following docker-compose file as a starting point:
{% include 'docker-compose.yml' %}
Initial Setup Process
Follow the instructions below to initialize a complete docker deployment for InvenTree.
!!! info "Directory"
It is assumed that all commands will be run from the directory where docker-compose.yml
is located.
Configure Compose File
Save and edit the docker-compose.yml
file as required.
The only required change is to ensure that the /path/to/data
entry (at the end of the file) points to the correct directory on your local file system, where you want InvenTree data to be stored.
Launch Database Server
Before we can create the database, we need to launch the database server container:
docker-compose up -d db
This starts the database container.
Create Database
Run the following command to open a shell session for the database:
docker-compose run inventree pgcli -h db -p 5432 -u pguser
!!! info "User"
If you have changed the POSTGRES_USER
variable in the compose file, replace pguser
with the different user.
You will be prompted to enter the database user password (default="pgpassword", unless altered in the compose file).
Next, run the following command in the database shell:
create database inventree;
Then exit the shell with Ctrl+d
Perform Database Migrations
The database has been created, but it is empty! We need to perform the initial database migrations.
docker-compose run inventree invoke migrate
This will perform the required schema updates to create the required database tables.
Collect Static Files
On first run, the required static files must be collected into the static
volume:
docker-compose run inventree invoke static
Create Admin Account
You need to create an admin (superuser) account for the database. Run the command below, and follow the prompts:
docker-compose run inventree invoke superuser
Configure InvenTree Options
By default, all required InvenTree settings are specified in the docker compose file, with the INVENTREE_DB_
prefix.
You are free to skip this step, if these InvenTree settings meet your requirements.
If you wish to tweak the InvenTree configuration options, you can either:
Environment Variables
Alter (or add) environment variables into the docker-compose environment
section
Configuration File
A configuration file config.yaml
has been created in the data volume (at the location specified on your local disk).
Edit this file (as per the configuration guidelines).
Run Web Server
Now that the database has been created, migrations applied, and you have created an admin account, we are ready to launch the web server:
docker-compose up -d
This command launches the remaining container processes:
inventree
- InvenTree web serverworker
- Background workernginx
- Nginx reverse proxy
!!! success "Up and Running!" You should now be able to view the InvenTree login screen at http://localhost:1337