diff --git a/_includes/docker-compose.yml b/_includes/docker-compose.yml index 9e77dd1..8c2a0b4 100644 --- a/_includes/docker-compose.yml +++ b/_includes/docker-compose.yml @@ -30,6 +30,7 @@ services: - POSTGRES_USER=pguser - POSTGRES_PASSWORD=pgpassword volumes: + # Map 'data' volume such that postgres database is stored externally - data:/var/lib/postgresql/data/ restart: unless-stopped @@ -43,8 +44,8 @@ services: depends_on: - inventree-db volumes: + # Data volume must map to /home/inventree/data - data:/home/inventree/data - - static:/home/inventree/static environment: # Default environment variables are configured to match the 'db' container # Note: If you change the database image, these will need to be adjusted @@ -66,8 +67,8 @@ services: - inventree-db - inventree-server volumes: + # Data volume must map to /home/inventree/data - data:/home/inventree/data - - static:/home/inventree/static environment: # Default environment variables are configured to match the 'db' container # Note: If you change the database image, these will need to be adjusted @@ -81,7 +82,8 @@ services: restart: unless-stopped # nginx acts as a reverse proxy - # static files are served by nginx + # static files are served directly by nginx + # media files are served by nginx, although authentication is redirected to inventree-server # web requests are redirected to gunicorn # NOTE: You will need to provide a working nginx.conf file! inventree-proxy: @@ -93,11 +95,11 @@ services: # Change "1337" to the port that you want InvenTree web server to be available on - 1337:80 volumes: - # Provide nginx.conf file to the container + # Provide ./nginx.conf file to the container # Refer to the provided example file as a starting point - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro - # Static data volume is mounted to /var/www/static - - static:/var/www/static:ro + # nginx proxy needs access to static and media files + - data:/var/www restart: unless-stopped volumes: @@ -110,6 +112,4 @@ volumes: o: bind # This directory specified where InvenTree data are stored "outside" the docker containers # Change this path to a local system path where you want InvenTree data stored - device: /path/to/data - # Static files, shared between containers - static: \ No newline at end of file + device: /path/to/data \ No newline at end of file diff --git a/_includes/nginx.conf b/_includes/nginx.conf index a9eff10..2703787 100644 --- a/_includes/nginx.conf +++ b/_includes/nginx.conf @@ -1,3 +1,4 @@ + server { # Listen for connection on (internal) port 80 @@ -10,17 +11,17 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; - + proxy_redirect off; - + client_max_body_size 100M; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; - + proxy_buffering off; proxy_request_buffering off; - + } # Redirect any requests for static files @@ -34,4 +35,23 @@ server { add_header Cache-Control "public"; } + # Redirect any requests for media files + location /media/ { + alias /var/www/media/; + + # Media files require user authentication + auth_request /auth; + } + + # Use the 'user' API endpoint for auth + location /auth { + internal; + + proxy_pass http://inventree-server:8000/auth/; + + proxy_pass_request_body off; + proxy_set_header Content-Length ""; + proxy_set_header X-Original-URI $request_uri; + } + } \ No newline at end of file diff --git a/docs/start/docker.md b/docs/start/docker.md index 53eae8c..6508ea1 100644 --- a/docs/start/docker.md +++ b/docs/start/docker.md @@ -40,10 +40,6 @@ InvenTree data are stored inside the container at `/home/inventree/data`. This directory should be mounted as a volume which points to a directory on your local machine. -### Static Directory - -Static files are stored internal to the container instance, at the location `/home/inventree/static` - ### Configuration File As discussed in the [configuration documentation](./config.md), InvenTree run-time settings can be provided in a configuration file. @@ -63,227 +59,15 @@ By default, the InvenTree container expects the `INVENTREE_SECRET_KEY_FILE` to e !!! warning "Same Key" Each InvenTree container instance must use the same secret key value, otherwise unexpected behavior will occur. -## Docker Compose -It is strongly recommended that you use a [docker-compose](https://docs.docker.com/compose/) script to manage your InvenTree docker image. +## Docker Setup Guides -An example docker compose script is provided below, which provides a robust "out of the box" setup for running InvenTree. +With these basics in mind, refer to the following installation guides: -Firstly, here is the complete `docker-compose.yml` file which can be used "as is" or as a starting point for a custom setup: +### Development Server -``` yaml -{% include 'docker-compose.yml' %} -``` +Refer to the [docker development server setup guide](./docker_dev.md) for instructions on configuring a development server using docker. -### Containers +### Production Server -The following containers are created: - -#### PostgreSQL Database - -A postgresql database container which creates a postgres user:password combination (which can be changed). This uses the official [PostgreSQL image](https://hub.docker.com/_/postgres). - -*__Note__: An empty database must be manually created as part of the setup (below)*. - -#### Web Server - -Runs an InvenTree web server instance, powered by a Gunicorn web server. In the default configuration, the web server listens on port `8000`. - -#### Background Worker - -Runs the InvenTree background worker process. This spins up a second instance of the *inventree* container, with a different entrypoint command. - -#### Nginx - -Nginx working as a reverse proxy, separating requests for static files and directing everything else to Gunicorn. - -This container uses the official [nginx image](https://hub.docker.com/_/nginx). - -An nginx configuration file must be provided to the image. Use the example configuration below as a starting point: - -``` -{% include 'nginx.conf' %} -``` - -*__Note__: You must save this conf file in the same directory as your docker-compose.yml file* - -!!! info "Proxy Pass" - If you change the name (or port) of the InvenTree web server container, you will need to also adjust the `proxy_pass` setting in the nginx.conf file! - -### 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). - -## Production Setup - -With the docker-compose recipe above, follow the instructions below to initialize a complete production server for InvenTree. - -### Required Files - -The following files are required on your local machine (use the examples above, or edit as required): - -- docker-compose.yml -- nginx.conf - -!!! info "Command 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. - -!!! info "Database Credentials" - You may also wish to change the default postgresql username and password! - -### Launch Database Container - -Before we can create the database, we need to launch the database server container: - -``` -docker-compose up -d inventree-db -``` - -This starts the database container. - -### Create Database - -As this is the first time we are interacting with the docker containers, the InvenTree database has not yet been created. - -Run the following command to open a shell session for the database: - -``` -docker-compose run inventree-server pgcli -h inventree-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). - -Once logged in, run the following command in the database shell: - -``` -create database inventree; -``` - -Then exit the shell with Ctrl+d - -### Perform Database Migrations - -The database has now been created, but it is empty! We need to perform the initial database migrations: - -``` -docker-compose run inventree-server 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-server 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-server 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](./config.md)). - -### 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 containers: - -- `inventree-server` - InvenTree web server -- `inventree-worker` - Background worker -- `inventree-nginx` - Nginx reverse proxy - -!!! success "Up and Running!" - You should now be able to view the InvenTree login screen at [http://localhost:1337](http://localhost:1337) - -## Updating InvenTree - -To update your InvenTree installation to the latest version, follow these steps: - -### Stop Containers - -Stop all running containers as below: - -``` -docker-compose down -``` - -### Update Images - -Pull down the latest version of the InvenTree docker image - -``` -docker-compose pull -``` - -This ensures that the InvenTree containers will be running the latest version of the InvenTree source code. - -### Start Containers - -Now restart the containers. - -As part of the server initialization process, data migrations and static file updates will be performed automatically. - -``` -docker-compose up -d -``` - -## Data Backup - -Database and media files are stored external to the container, in the volume location specified in the `docker-compose.yml` file. It is strongly recommended that a backup of the files in this volume is performed on a regular basis. - -### Exporting Database as JSON - -To export the database to an agnostic JSON file, perform the following command: - -``` -docker-compose run inventree-server invoke export-records /home/inventree/data/data.json -``` - -This will export database records to the file `data.json` in your mounted volume directory. +Refer to the [docker production server setup guide](./docker_prod.md) for instructions on configuring a production server using docker. diff --git a/docs/start/docker_dev.md b/docs/start/docker_dev.md index 4b0344f..9309f32 100644 --- a/docs/start/docker_dev.md +++ b/docs/start/docker_dev.md @@ -1,12 +1,12 @@ --- -title: Docker Development Setup +title: Docker Development Server --- -## Docker Development Setup +## Docker Development Server -You can also use docker to launch and manage a development server, in a similar fashion to managing a production server. +You can use docker to launch and manage a development server, in a similar fashion to managing a production server. -There are some key differences compared to the docker production setup: +There are some key differences compared to the [docker production setup](./docker_prod.md): - The docker image is built locally, rather than being downloaded from DockerHub - The docker image points to the source code on your local machine, instead of cloning from GitHub @@ -15,65 +15,145 @@ There are some key differences compared to the docker production setup: The [InvenTree docker image](https://github.com/inventree/InvenTree/blob/master/docker/Dockerfile) uses a [multi-stage build](https://docs.docker.com/develop/develop-images/multistage-build/) process to allow both production and development setups from the same image. The key difference is that the production image is pre-built using InvenTree source code from GitHub, while the development image uses the source code from your local machine (allowing live code updates). -### Docker Compose +## Docker Compose -A docker compose script for running a development server is provided at `docker/docker-compose.dev.yml`: +A docker compose script for running a development server is provided in the source repository at [./docker/docker-compose.dev.yml](https://github.com/inventree/InvenTree/blob/master/docker/docker-compose.dev.yml). -### Setup +This script specifies the following containers: -#### Download Source Code +| Container | Description | +| --- | --- | +| inventree-dev-server | Web server using the django development server | +| inventree-dev-worker | Background task manager | + +## Setup + +### Download Source Code First download the source code from GitHub: ``` -git clone git@github.com:inventree/InvenTree.git +git clone git@github.com:inventree/InvenTree.git inventree cd inventree/docker ``` -#### Edit docker-compose File +### (Optional) Edit docker-compose File + +The default docker-compose recipe should work "out of the box". However you may want to edit this file to test some custom functionality. Now, edit the `docker-compose.dev.yml` file (in the `docker` subdirectory), ensuring that the `src` volume points to the directory on your local machine where you have just cloned the source code. -#### Launch Development Server +!!! warning "Beware Changes" + Ensure that you do not commit any changes to the docker-compose.dev.yml file to git! + +### (Optional) Edit Environment Variables + +Environment variables for the development server docker images are set in the file [dev-config.env](https://github.com/inventree/InvenTree/blob/master/docker/dev-config.env). + +In the default configuration these should not need to be adjusted. + +### Launch Development Server Launch the development server with the following command: ``` -docker-compose -f docker-compose.dev.yml up -d inventree-server +docker-compose -f docker-compose.dev.yml up -d inventree-dev-server ``` -This launches the InvenTree server (in development mode) and also performs the following tasks: +This command will perform the following actions, in sequence: -- Creates an sqlite database -- Creates a `config.yaml` file -- Creates a `secret_key.txt` file -- Creates `inventree_media` directory for uploaded media files -- Creates `inventree_static` directory for storing static files +#### Create Required Files + +The following required files are created (if they do not already exist): + +!!! success "File Creation" + The following files are created (paths are relative to the top-level InvenTree source directory). + +| File | Description | +| --- | --- | +| ./dev/config.yaml | InvenTree configuration file | +| ./dev/secret_key.txt | Secret key file | +| ./dev/media | Directory for storing uploaded media files | +| ./dev/static | Directory for storing static files | +| ./dev/env | Python virtual environment | + +#### Install Required Python Packages + +The required python packages will be installed into the `./dev/env/` directory. !!! info "Wait for Install" The first time the server is launched, it will take a few minutes to install the required python packages. -Check that the server is running at [http://localhost:8000](http://localhost:8000) +#### Perform Database Migrations -#### Create Superuser +Database schema migrations are automatically performed. -Once the development server is running, create a superuser (admin) account: +#### Launch Development Server + +Once the required python packages are installed, the development web server is then started. + +!!! success "Check Connection" + Check that the server is running at [http://localhost:8000](http://localhost:8000) before proceeding. + +### Create Superuser + +Once the development server is running, you can now create a superuser (admin) account: ``` -docker-compose -f docker-compose.dev.yml run inventree-server bash +docker-compose -f docker-compose.dev.yml run inventree-dev-server bash ``` Inside the docker shell, run the following commands: ``` -source ./inventree-docker-dev/bin/activate +source ./dev/env/bin/activate invoke superuser ``` -#### Start Background Worker +Once you have entered the credentials for the superuser account, type `exit` to exit the bash shell. + +### Start Background Worker + +The InvenTree web server should now be running - but the background worker has not yet been started: To launch the backround worker process: ``` -docker-compose -f docker-compose.dev.yml up -d inventree-worker +docker-compose -f docker-compose.dev.yml up -d inventree-dev-worker +``` + +## Restarting Services + +Once initial setup is complete, restarting the services is much simpler: + +### Start InvenTree Services + +To restart the InvenTree development server, simply run the following command: + +``` +docker-compose -f docker-compose.dev.yml up -d +``` + +### Stop InvenTree Services + +To stop the InvenTree development server, simply run the following command: + +``` +docker-compose -f docker-compose-dev.yml down +``` + +## Editing InvenTree Source + +Any changes made to the InvenTree source code are automatically detected by the services running under docker. + +Thus, you can freely edit the InvenTree source files in your editor of choice. + +### Database Updates + +Any updates which require a database schema change must be reflected in the database itself. + +To run database migrations inside the docker container, run the following command: + +``` +docker-compose -f docker-compose.dev.yml run inventree-dev-server invoke update ``` diff --git a/docs/start/docker_prod.md b/docs/start/docker_prod.md new file mode 100644 index 0000000..3c72b86 --- /dev/null +++ b/docs/start/docker_prod.md @@ -0,0 +1,240 @@ +--- +title: Docker Production Server +--- + +## Docker Production Server + +Using the [InvenTree docker image](./docker.md) streamlines the setup process for an InvenTree production server. + +## Docker Compose + +It is strongly recommended that you use a [docker-compose](https://docs.docker.com/compose/) script to manage your InvenTree docker image. + +An example docker compose script is provided below, which provides a robust "out of the box" setup for running InvenTree. + +Firstly, here is the complete `docker-compose.yml` file which can be used "as is" or as a starting point for a custom setup: + +``` yaml +{% include 'docker-compose.yml' %} +``` + +### Containers + +The following containers are created: + +| Container | Description | +| --- | --- | +| inventree-db | PostgreSQL database | +| inventree-server | Gunicorn web server | +| invenrtee-worker | django-q background worker | +| inventree-proxy | nginx proxy | + +#### PostgreSQL Database + +A postgresql database container which creates a postgres user:password combination (which can be changed). This uses the official [PostgreSQL image](https://hub.docker.com/_/postgres). + +*__Note__: An empty database must be manually created as part of the setup (below)*. + +#### Web Server + +Runs an InvenTree web server instance, powered by a Gunicorn web server. In the default configuration, the web server listens on port `8000`. + +#### Background Worker + +Runs the InvenTree background worker process. This spins up a second instance of the *inventree* container, with a different entrypoint command. + +#### Nginx + +Nginx working as a reverse proxy, separating requests for static and media files, and directing everything else to Gunicorn. + +This container uses the official [nginx image](https://hub.docker.com/_/nginx). + +An nginx configuration file must be provided to the image. Use the example configuration below as a starting point: + +``` +{% include 'nginx.conf' %} +``` + +*__Note__: You must save this conf file in the same directory as your docker-compose.yml file* + +!!! info "Proxy Pass" + If you change the name (or port) of the InvenTree web server container, you will need to also adjust the `proxy_pass` setting in the nginx.conf file! + +### Data Volume + +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. + +The InvenTree docker server will manage the following directories and files within the 'data' volume: + +| Path | Description | +| --- | --- | +| ./config.yaml | InvenTree server configuration file | +| ./secret_key.txt | Secret key file | +| ./media | Directory for storing uploaded media files | +| ./static | Directory for storing static files | + +## Production Setup + +With the docker-compose recipe above, follow the instructions below to initialize a complete production server for InvenTree. + +### Required Files + +The following files are required on your local machine (use the examples above, or edit as required): + +- [docker-compose.yml](https://github.com/inventree/InvenTree/blob/master/docker/docker-compose.yml) +- [nginx.conf](https://github.com/inventree/InvenTree/blob/master/docker/nginx.conf) + +!!! info "Command 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. + +!!! info "Database Credentials" + You may also wish to change the default postgresql username and password! + +### Launch Database Container + +Before we can create the database, we need to launch the database server container: + +``` +docker-compose up -d inventree-db +``` + +This starts the database container. + +### Create Database + +As this is the first time we are interacting with the docker containers, the InvenTree database has not yet been created. + +Run the following command to open a shell session for the database: + +``` +docker-compose run inventree-server pgcli -h inventree-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). + +Once logged in, run the following command in the database shell: + +``` +create database inventree; +``` + +Then exit the shell with Ctrl+d + +### Perform Database Migrations + +The database has now been created, but it is empty! We need to perform the initial database migrations: + +``` +docker-compose run inventree-server 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-server 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-server 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](./config.md)). + +### 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 containers: + +- `inventree-server` - InvenTree web server +- `inventree-worker` - Background worker +- `inventree-nginx` - Nginx reverse proxy + +!!! success "Up and Running!" + You should now be able to view the InvenTree login screen at [http://localhost:1337](http://localhost:1337) + +## Updating InvenTree + +To update your InvenTree installation to the latest version, follow these steps: + +### Stop Containers + +Stop all running containers as below: + +``` +docker-compose down +``` + +### Update Images + +Pull down the latest version of the InvenTree docker image + +``` +docker-compose pull +``` + +This ensures that the InvenTree containers will be running the latest version of the InvenTree source code. + +### Start Containers + +Now restart the containers. + +As part of the server initialization process, data migrations and static file updates will be performed automatically. + +``` +docker-compose up -d +``` + +## Data Backup + +Database and media files are stored external to the container, in the volume location specified in the `docker-compose.yml` file. It is strongly recommended that a backup of the files in this volume is performed on a regular basis. + +### Exporting Database as JSON + +To export the database to an agnostic JSON file, perform the following command: + +``` +docker-compose run inventree-server invoke export-records /home/inventree/data/data.json +``` + +This will export database records to the file `data.json` in your mounted volume directory. diff --git a/docs/start/intro.md b/docs/start/intro.md index ebaea15..12dccf8 100644 --- a/docs/start/intro.md +++ b/docs/start/intro.md @@ -101,8 +101,7 @@ source env/bin/activate This will place the current shell session inside a virtual environment - the terminal should display the ``(env)`` prefix. - -## Downloading Source Code +## InvenTree Source Code InvenTree source code is distributed on [GitHub](https://github.com/inventree/inventree/), and the latest version can be downloaded (using Git) with the following command: @@ -123,8 +122,46 @@ There are multiple ways to get an InvenTree server up and running, of various co The recommended method of installing InvenTree is to use [docker](https://www.docker.com). InvenTree provides out-of-the-box support for docker and docker-compose, which provides a simple, reliable and repeatable pipeline for integration into your production environment. -Refer to the [docker setup instructions](./docker.md) for further information. +Refer to the following guides for further instructions: + +- [**Docker development server setup guide**](./docker_dev.md) +- [**Docker production server setup guide**](./docker.md) ### Bare Metal -If you do not wish to use the docker container, you will need to manually install the required packages and follow through the installation guide. Refer to the [InvenTree installation instructions](../install) for more details. +If you do not wish to use the docker container, you will need to manually install the required packages and follow through the installation guide. + +Refer to the following guides for further instructions: + +- [**Bare metal development server setup guide**](./development.md) +- [**Bare metal production server setup guide**](./install.md) + +## Debug Mode + +By default, the InvenTree web server is configured to run in [DEBUG mode](https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-DEBUG). + +Running in DEBUG mode provides many handy development features, however it is strongly recommended *NOT* to run in DEBUG mode in a production environment. This recommendation is made because DEBUG mode leaks a lot of information about your installation and may pose a security risk. + +So, for a production setup, you should set `INVENTREE_DEBUG=false` in the [configuration options](./config.md). + +### Potential Issues + +However, turning off DEBUG mode creates further work for the system administrator. In particular, when running in DEBUG mode, the InvenTree web server natively manages *static* and *media* files, which means that the InvenTree server can run "monolithically" without the need for a separate web server. + +With DEBUG mode turned off, a separate web server is required for serving *static* and *media* files. You can find further information in the [django documentation](https://docs.djangoproject.com/en/dev/howto/static-files/deployment/). + +There are *many* different ways that a sysadmin might wish to handle this. + +The [docker production example](./docker_prod.md) provides an example using [Nginx](https://www.nginx.com/) to serve *static* and *media* files, and redirecting other requests to the InvenTree web server itself. + +You may use this as a jumping off point, or use an entirely different server setup. + +#### Static Files + +Static files can be served without any need for authentication. In fact, they must be accessible *without* authentication, otherwise the unauthenticated views (such as the login screen) will not function correctly. + +#### Media Files + +It is highly recommended that the *media* files are served in such a way that user authentication is required. + +Refer to the [docker production example](./docker_prod.md) for a demonstration of using nginx to serve media files only to authenticated users, and forward authentication requests to the InvenTree web server. diff --git a/docs/start/production.md b/docs/start/production.md index 1e72e57..29b650b 100644 --- a/docs/start/production.md +++ b/docs/start/production.md @@ -92,3 +92,13 @@ The process status can be viewed [in your web browser](http://localhost:9001). ## Production Ready The InvenTree server (and background task manager) should now be running! + +### Next Steps + +You (or your system administrator) may wish to perform further steps such as placing the InvenTree server behind a reverse-proxy such as [nginx](https://www.nginx.com/). + +As production environment options are many and varied, such tasks are outside the scope of this documentation. + +There are many great online tutorials about running django applications in production! + +As a starting point, you can refer to the [docker production example](./docker_prod.md) for a demonstration of running InvenTree behind a nginx proxy. diff --git a/mkdocs.yml b/mkdocs.yml index d6bfd1f..cb04ef4 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -47,11 +47,8 @@ nav: - Installation: - Introduction: start/intro.md - Configuration: start/config.md - - Docker Installation: start/docker.md - - Docker Development: start/docker_dev.md - - Manual Installation: start/install.md - - Development Server: start/development.md - - Production Server: start/production.md + - Docker Setup: start/docker.md + - Bare Metal Setup: start/install.md - Updating: start/update.md - Migrating: start/migrate.md - Parts: