diff --git a/packages/twenty-docker/.env.example b/packages/twenty-docker/.env.example
index c25482220fce..59d8d03f93a7 100644
--- a/packages/twenty-docker/.env.example
+++ b/packages/twenty-docker/.env.example
@@ -5,6 +5,8 @@ TAG=latest
PG_DATABASE_HOST=db:5432
SERVER_URL=http://localhost:3000
+# REDIS_HOST=redis
+# REDIS_PORT=6379
# Use openssl rand -base64 32 for each secret
# ACCESS_TOKEN_SECRET=replace_me_with_a_random_string_access
@@ -19,5 +21,3 @@ STORAGE_TYPE=local
# STORAGE_S3_REGION=eu-west3
# STORAGE_S3_NAME=my-bucket
# STORAGE_S3_ENDPOINT=
-
-MESSAGE_QUEUE_TYPE=pg-boss
diff --git a/packages/twenty-docker/docker-compose.yml b/packages/twenty-docker/docker-compose.yml
index 553d8ca6c9fa..b2efc1a168e4 100644
--- a/packages/twenty-docker/docker-compose.yml
+++ b/packages/twenty-docker/docker-compose.yml
@@ -25,7 +25,8 @@ services:
PG_DATABASE_URL: postgres://twenty:twenty@${PG_DATABASE_HOST}/default
SERVER_URL: ${SERVER_URL}
FRONT_BASE_URL: ${FRONT_BASE_URL:-$SERVER_URL}
- MESSAGE_QUEUE_TYPE: ${MESSAGE_QUEUE_TYPE}
+ REDIS_PORT: ${REDIS_PORT:-6379}
+ REDIS_HOST: ${REDIS_HOST:-redis}
ENABLE_DB_MIGRATIONS: "true"
@@ -34,6 +35,7 @@ services:
STORAGE_S3_REGION: ${STORAGE_S3_REGION}
STORAGE_S3_NAME: ${STORAGE_S3_NAME}
STORAGE_S3_ENDPOINT: ${STORAGE_S3_ENDPOINT}
+
ACCESS_TOKEN_SECRET: ${ACCESS_TOKEN_SECRET}
LOGIN_TOKEN_SECRET: ${LOGIN_TOKEN_SECRET}
REFRESH_TOKEN_SECRET: ${REFRESH_TOKEN_SECRET}
@@ -57,7 +59,8 @@ services:
PG_DATABASE_URL: postgres://twenty:twenty@${PG_DATABASE_HOST}/default
SERVER_URL: ${SERVER_URL}
FRONT_BASE_URL: ${FRONT_BASE_URL:-$SERVER_URL}
- MESSAGE_QUEUE_TYPE: ${MESSAGE_QUEUE_TYPE}
+ REDIS_PORT: ${REDIS_PORT:-6379}
+ REDIS_HOST: ${REDIS_HOST:-redis}
ENABLE_DB_MIGRATIONS: "false" # it already runs on the server
@@ -65,6 +68,7 @@ services:
STORAGE_S3_REGION: ${STORAGE_S3_REGION}
STORAGE_S3_NAME: ${STORAGE_S3_NAME}
STORAGE_S3_ENDPOINT: ${STORAGE_S3_ENDPOINT}
+
ACCESS_TOKEN_SECRET: ${ACCESS_TOKEN_SECRET}
LOGIN_TOKEN_SECRET: ${LOGIN_TOKEN_SECRET}
REFRESH_TOKEN_SECRET: ${REFRESH_TOKEN_SECRET}
@@ -89,6 +93,12 @@ services:
retries: 10
restart: always
+ redis:
+ image: redis
+ ports:
+ - "6379:6379"
+ restart: always
+
volumes:
docker-data:
db-data:
diff --git a/packages/twenty-emails/package.json b/packages/twenty-emails/package.json
index 36af44f3da6e..dc0b89328e3c 100644
--- a/packages/twenty-emails/package.json
+++ b/packages/twenty-emails/package.json
@@ -1,6 +1,6 @@
{
"name": "twenty-emails",
- "version": "0.24.2",
+ "version": "0.30.0",
"description": "",
"author": "",
"private": true,
diff --git a/packages/twenty-front/package.json b/packages/twenty-front/package.json
index 434934ed719d..e1a632247380 100644
--- a/packages/twenty-front/package.json
+++ b/packages/twenty-front/package.json
@@ -1,6 +1,6 @@
{
"name": "twenty-front",
- "version": "0.24.2",
+ "version": "0.30.0",
"private": true,
"type": "module",
"scripts": {
diff --git a/packages/twenty-server/package.json b/packages/twenty-server/package.json
index 1a60930c4a18..d77b2faf4d78 100644
--- a/packages/twenty-server/package.json
+++ b/packages/twenty-server/package.json
@@ -1,6 +1,6 @@
{
"name": "twenty-server",
- "version": "0.24.2",
+ "version": "0.30.0",
"description": "",
"author": "",
"private": true,
diff --git a/packages/twenty-server/src/engine/core-modules/environment/environment-variables.ts b/packages/twenty-server/src/engine/core-modules/environment/environment-variables.ts
index 4e30e84bd83e..cb5b2fbe2822 100644
--- a/packages/twenty-server/src/engine/core-modules/environment/environment-variables.ts
+++ b/packages/twenty-server/src/engine/core-modules/environment/environment-variables.ts
@@ -391,7 +391,7 @@ export class EnvironmentVariables {
@CastToBoolean()
MESSAGING_PROVIDER_GMAIL_ENABLED = false;
- MESSAGE_QUEUE_TYPE: string = MessageQueueDriverType.Sync;
+ MESSAGE_QUEUE_TYPE: string = MessageQueueDriverType.BullMQ;
EMAIL_FROM_ADDRESS = 'noreply@yourdomain.com';
@@ -426,7 +426,7 @@ export class EnvironmentVariables {
@CastToPositiveNumber()
API_RATE_LIMITING_LIMIT = 500;
- CACHE_STORAGE_TYPE: CacheStorageType = CacheStorageType.Memory;
+ CACHE_STORAGE_TYPE: CacheStorageType = CacheStorageType.Redis;
@CastToPositiveNumber()
CACHE_STORAGE_TTL: number = 3600 * 24 * 7;
diff --git a/packages/twenty-ui/package.json b/packages/twenty-ui/package.json
index 132d5b99edaf..b004cba081fc 100644
--- a/packages/twenty-ui/package.json
+++ b/packages/twenty-ui/package.json
@@ -1,6 +1,6 @@
{
"name": "twenty-ui",
- "version": "0.24.2",
+ "version": "0.30.0",
"type": "module",
"main": "./src/index.ts",
"exports": {
diff --git a/packages/twenty-website/package.json b/packages/twenty-website/package.json
index 3219867baf33..c235f812a142 100644
--- a/packages/twenty-website/package.json
+++ b/packages/twenty-website/package.json
@@ -1,6 +1,6 @@
{
"name": "twenty-website",
- "version": "0.24.2",
+ "version": "0.30.0",
"private": true,
"scripts": {
"nx": "NX_DEFAULT_PROJECT=twenty-website node ../../node_modules/nx/bin/nx.js",
diff --git a/packages/twenty-website/src/content/developers/self-hosting/self-hosting-var.mdx b/packages/twenty-website/src/content/developers/self-hosting/self-hosting-var.mdx
index d5219e511fba..6eb28b045504 100644
--- a/packages/twenty-website/src/content/developers/self-hosting/self-hosting-var.mdx
+++ b/packages/twenty-website/src/content/developers/self-hosting/self-hosting-var.mdx
@@ -41,7 +41,7 @@ yarn command:prod cron:calendar:calendar-event-list-fetch
['FRONT_BASE_URL', 'http://localhost:3001', 'Url to the hosted frontend'],
['SERVER_URL', 'http://localhost:3000', 'Url to the hosted server'],
['PORT', '3000', 'Port'],
- ['CACHE_STORAGE_TYPE', 'memory', 'Cache type (memory, redis...)'],
+ ['CACHE_STORAGE_TYPE', 'redis', 'Cache type (memory, redis...)'],
['CACHE_STORAGE_TTL', '3600 * 24 * 7', 'Cache TTL in seconds']
]}>
@@ -162,7 +162,7 @@ yarn command:prod cron:calendar:calendar-event-list-fetch
### Message Queue
### Logging
diff --git a/packages/twenty-website/src/content/developers/self-hosting/upgrade-guide.mdx b/packages/twenty-website/src/content/developers/self-hosting/upgrade-guide.mdx
index d22c3384f0dd..8a71df02a433 100644
--- a/packages/twenty-website/src/content/developers/self-hosting/upgrade-guide.mdx
+++ b/packages/twenty-website/src/content/developers/self-hosting/upgrade-guide.mdx
@@ -58,4 +58,26 @@ yarn command:prod upgrade-0.24
The `yarn database:migrate:prod` command will apply the migrations to the database structure (core and metadata schemas)
The `yarn command:prod upgrade-0.24` takes care of the data migration of all workspaces.
+# v0.24.0 to v0.30.0
+
+Upgrade your Twenty instance to use v0.30.0 image
+
+**Breaking change**:
+To enhance performances, Twenty now requires redis cache to be configured. We have updated our [docker-compose.yml](https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/docker-compose.yml) to reflect this.
+Make sure to update your configuration and to update your environment variables accordingly:
+```
+REDIS_HOST={your-redis-host}
+REDIS_PORT={your-redis-port}
+CACHE_STORAGE_TYPE=redis
+```
+
+**Schema and data migration**:
+```
+yarn database:migrate:prod
+yarn command:prod upgrade-0.30
+```
+
+The `yarn database:migrate:prod` command will apply the migrations to the database structure (core and metadata schemas)
+The `yarn command:prod upgrade-30` takes care of the data migration of all workspaces.
+