Skip to content

Upgrading to Materia v10.3.0

Corey Peterson edited this page Dec 12, 2024 · 1 revision

Note and Disclaimer

Materia is open sourced under the AGPL v3.0 license, and use of Materia does not entitle you to support associated with the installation, upgrading, or use of our software.

Our documentation (including this document) assumes you are operating Materia in a docker environment and making use of best practices associated with Materia in production. We are not liable for data loss associated with this upgrade process.

For Local Developers

Most notably, v10.3.0 reconfigures docker compose files and .env variable locations. If you are coming from an earlier version of Materia v10.x, it should be sufficient to run the docker/run_first_for_dev.sh script.

We highly recommend starting your development environment from scratch by first stopping and removing all containers associated with Materia in dev (app, webserver, fakes3, mysql, and memcached.)

For Administrators

Refer to guidance for updating Materia in production in the docker README. Note that while we made significant modifications to first-time setup, no existing environment variable configuration values were modified.

Important

10.3.0 includes two database migrations. If using an existing database, you must perform a DB migration or your Materia instance will be > rendered inoperable. Additionally, we modified references to ReactDOM's render method to comply with React 18 requirements. End users may note pages do not load if they continue to use browser cached versions from prior to 10.3. We updated the production NGINX configuration with new expiration values for cache headers, but you may need to add more aggressive cache headers in the short term.

New Configuration Values

We added numerous optional environment variable configurations associated with S3 asset storage and AI generation:

Asset Storage with S3

The following additions are available when ASSET_STORAGE_DRIVER=s3 is set:

# ASSET_STORAGE_S3_CREDENTIAL_PROVIDER=		        # must be 'env' or 'imds'.
# ASSET_STORAGE_S3_BUCKET=<MUST_SET>                    # refers to the S3 bucket name on AWS.
# ASSET_STORAGE_S3_ENDPOINT=				# not required for S3 on AWS, but used for fakes3.
# ASSET_STORAGE_S3_KEY=<MUST_SET>                       # must be set if credential provider is 'env'. Recommend using imds if possible.
# ASSET_STORAGE_S3_SECRET=<MUST_SET>                    # must be set if credential provider is 'env'. Recommend using imds if possible.
# ASSET_STORAGE_S3_REGION=                              # optional.                           
# ASSET_STORAGE_S3_BASEPATH=                            # optional.
# AWS_SESSION_TOKEN=<MUST_SET> 				# STS token for S3. Not required if using imds.

Question Generation

#GENERATION_ENABLED=true                                # Master flag, other values are only required if this is true.
#GENERATION_ALLOW_IMAGES=false                          # While image generation is possible, it is not recommended. It is VERY expensive.
#GENERATION_API_PROVIDER=<MUST_SET>			# Must be 'openai' or 'azure_openai'.
#GENERATION_API_KEY=<MUST_SET>                          # Required.
#GENERATION_API_ENDPOINT=				# Required for azure openai.Ex: my-azure-portal.openai.azure.com/openai/deployments/gpt-4o-mini
#GENERATION_API_VERSION=				# Required for azure openai. Ex: 2023-03-15-preview
#GENERATION_API_MODEL=					# required for openai.
#GENERATION_LOG_STATS=true				# optional. stats are logged to debug threshold.