# Upgrading to GROWI v8.0.x
GROWI v8.0 is a major update that redesigns GROWI AI around an agent-driven architecture and introduces GROWI Vault. It also changes some default values as part of optimizing the server's memory usage, and ends support for Elasticsearch v7.
# Table of Contents
# [Deprecated] Legacy GROWI AI features and settings
As part of redesigning GROWI AI around an agent-driven architecture, some of the legacy AI features have been removed. Their roles are taken over by the new GROWI AI Agent (see "[New Feature] GROWI AI Agent" below).
- Knowledge assistant creation: The ability to create new knowledge assistants has been removed.
- Editor assistant: The editor assistant has been removed.
WARNING
The legacy AI integration settings have been removed and the configuration method has been overhauled. If you use the AI integration features, they will not work as-is after the upgrade and reconfiguration is required. For the configuration steps, see Setting up and managing GROWI AI Agent.
# For Users
# [New Feature] GROWI Vault
GROWI Vault is a read-only Git interface that lets you retrieve the pages you are allowed to view as a Git repository. When you clone it with your Git client, you get the pages within your permissions as a tree of Markdown files. For usage, see GROWI Vault.
To use GROWI Vault, you need to deploy and enable a dedicated container. For the setup steps, see Setting up GROWI Vault.
WARNING
The setup involves configuring a secret for internal communication. Keep this secret confidential and manage it securely.
# [New Feature] GROWI AI Agent
GROWI AI has been redesigned into an agent-driven system that searches and reasons on its own to meet your goal, actively exploring pages within the wiki as it answers.
In addition, in the AI chat input field you can now type @ followed by text to search for pages and pass a selected page to the AI as context. For usage, see GROWI AI Agent.
With GROWI AI Agent, you can choose the LLM provider from OpenAI / Anthropic / Google / Azure OpenAI. For configuration, see Setting up and managing GROWI AI Agent.
# For Administrators
# [Action Required] MongoDB replica set is now required
Because GROWI Vault uses MongoDB change streams, v8.0 requires MongoDB to run as a replica set. Change streams are only available on a replica set.
If you run a single-node standalone configuration (such as the default of growi-docker-compose (opens new window)), you need to migrate to a replica set. A single-node replica set is acceptable. For how to migrate, refer to the updates in growi-docker-compose (opens new window).
# [Action Required] Reduced default MongoDB connection pool size
To optimize the server's memory usage, the default upper limit of the MongoDB connection pool has been reduced. Most environments need no additional action.
The required pool size depends on the concurrency of database operations being processed at the same time. The more active users, total pages, and access frequency you have, the higher the concurrency tends to be. As a rough guide, once you exceed several hundred active users (roughly 500), the default may be insufficient. In that case, raise the connection pool limit with an environment variable. For the environment variable to set, see the Environment variables page.
# [Action Required] Elasticsearch v7 support has ended
GROWI v8.0 removes the code for Elasticsearch v7. The only supported versions are now v8 and v9 (the default remains v9).
| GROWI | <= v7.5.x | v8.0.x |
|---|---|---|
| Elasticsearch | 7.x, 8.x, 9.x | 8.x, 9.x |
If you run Elasticsearch v7, migrate to v8 or v9 before upgrading. If you leave the ELASTICSEARCH_VERSION environment variable set to 7 or lower without migrating, full-text search will fail to initialize and become unavailable (the server process itself still starts, but an error is logged). For details on the environment variable, see Environment variables.
# [Specification Change] Fixed OpenTelemetry instrumentation set
To reduce memory usage, OpenTelemetry instrumentation has been fixed to the minimal set that GROWI actually uses. Standard usage needs no additional action.
If you previously switched the scope of auto-instrumentation with an environment variable, that variable has been removed. If you need to customize instrumentation, note that the configuration method has changed.
# [Note] Locking the AI feature on or off with environment variables alone
AI_ENABLED provides the initial value for the AI feature. In GROWI, configuration values are resolved in the order "environment variable → admin panel (DB) value", so a value saved from the admin panel takes precedence over the environment variable. As a result, AI_ENABLED=false alone does not prevent an administrator from enabling the AI feature from AI Settings in the admin panel.
To make GROWI reference only the environment variable value and reject changes from the admin panel, also set AI_USES_ONLY_ENV_VARS_FOR_SOME_OPTIONS=true. When this flag is true, enabling/disabling the AI feature, enabling providers, and the API keys are read only from the environment variables, and changes from the admin panel are rejected.
To completely disable the AI feature and prevent it from being enabled via the admin panel, set both:
AI_ENABLED: "false"
AI_USES_ONLY_ENV_VARS_FOR_SOME_OPTIONS: "true"
For details on each environment variable, see Environment variables.
# Things to Check Before Upgrading
- Are you running MongoDB as a replica set? (If standalone, migration is required.)
- Do you use the AI integration features? (If so, reconfiguration with the new method is required after the upgrade.)
- Are you a large-scale environment with many active users? (If so, consider raising the MongoDB connection pool limit.)
- Do you run Elasticsearch v7? (If so, migrate to v8 or v9 before upgrading.)