Add 0.30 release notes (#7300)
In this PR: - update your environment variables to default `CACHE_STORAGE_TYPE` to `redis` and `MESSAGE_QUEUE_TYPE` to `bull-mq` - add redis container to our default docker-compose - add `REDIS_HOST` and `REDIS_PORT` to docker-compose yaml - add upgrade instructions
This commit is contained in:
@ -5,6 +5,8 @@ TAG=latest
|
|||||||
PG_DATABASE_HOST=db:5432
|
PG_DATABASE_HOST=db:5432
|
||||||
|
|
||||||
SERVER_URL=http://localhost:3000
|
SERVER_URL=http://localhost:3000
|
||||||
|
# REDIS_HOST=redis
|
||||||
|
# REDIS_PORT=6379
|
||||||
|
|
||||||
# Use openssl rand -base64 32 for each secret
|
# Use openssl rand -base64 32 for each secret
|
||||||
# ACCESS_TOKEN_SECRET=replace_me_with_a_random_string_access
|
# ACCESS_TOKEN_SECRET=replace_me_with_a_random_string_access
|
||||||
@ -19,5 +21,3 @@ STORAGE_TYPE=local
|
|||||||
# STORAGE_S3_REGION=eu-west3
|
# STORAGE_S3_REGION=eu-west3
|
||||||
# STORAGE_S3_NAME=my-bucket
|
# STORAGE_S3_NAME=my-bucket
|
||||||
# STORAGE_S3_ENDPOINT=
|
# STORAGE_S3_ENDPOINT=
|
||||||
|
|
||||||
MESSAGE_QUEUE_TYPE=pg-boss
|
|
||||||
|
|||||||
@ -25,7 +25,8 @@ services:
|
|||||||
PG_DATABASE_URL: postgres://twenty:twenty@${PG_DATABASE_HOST}/default
|
PG_DATABASE_URL: postgres://twenty:twenty@${PG_DATABASE_HOST}/default
|
||||||
SERVER_URL: ${SERVER_URL}
|
SERVER_URL: ${SERVER_URL}
|
||||||
FRONT_BASE_URL: ${FRONT_BASE_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"
|
ENABLE_DB_MIGRATIONS: "true"
|
||||||
|
|
||||||
@ -34,6 +35,7 @@ services:
|
|||||||
STORAGE_S3_REGION: ${STORAGE_S3_REGION}
|
STORAGE_S3_REGION: ${STORAGE_S3_REGION}
|
||||||
STORAGE_S3_NAME: ${STORAGE_S3_NAME}
|
STORAGE_S3_NAME: ${STORAGE_S3_NAME}
|
||||||
STORAGE_S3_ENDPOINT: ${STORAGE_S3_ENDPOINT}
|
STORAGE_S3_ENDPOINT: ${STORAGE_S3_ENDPOINT}
|
||||||
|
|
||||||
ACCESS_TOKEN_SECRET: ${ACCESS_TOKEN_SECRET}
|
ACCESS_TOKEN_SECRET: ${ACCESS_TOKEN_SECRET}
|
||||||
LOGIN_TOKEN_SECRET: ${LOGIN_TOKEN_SECRET}
|
LOGIN_TOKEN_SECRET: ${LOGIN_TOKEN_SECRET}
|
||||||
REFRESH_TOKEN_SECRET: ${REFRESH_TOKEN_SECRET}
|
REFRESH_TOKEN_SECRET: ${REFRESH_TOKEN_SECRET}
|
||||||
@ -57,7 +59,8 @@ services:
|
|||||||
PG_DATABASE_URL: postgres://twenty:twenty@${PG_DATABASE_HOST}/default
|
PG_DATABASE_URL: postgres://twenty:twenty@${PG_DATABASE_HOST}/default
|
||||||
SERVER_URL: ${SERVER_URL}
|
SERVER_URL: ${SERVER_URL}
|
||||||
FRONT_BASE_URL: ${FRONT_BASE_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
|
ENABLE_DB_MIGRATIONS: "false" # it already runs on the server
|
||||||
|
|
||||||
@ -65,6 +68,7 @@ services:
|
|||||||
STORAGE_S3_REGION: ${STORAGE_S3_REGION}
|
STORAGE_S3_REGION: ${STORAGE_S3_REGION}
|
||||||
STORAGE_S3_NAME: ${STORAGE_S3_NAME}
|
STORAGE_S3_NAME: ${STORAGE_S3_NAME}
|
||||||
STORAGE_S3_ENDPOINT: ${STORAGE_S3_ENDPOINT}
|
STORAGE_S3_ENDPOINT: ${STORAGE_S3_ENDPOINT}
|
||||||
|
|
||||||
ACCESS_TOKEN_SECRET: ${ACCESS_TOKEN_SECRET}
|
ACCESS_TOKEN_SECRET: ${ACCESS_TOKEN_SECRET}
|
||||||
LOGIN_TOKEN_SECRET: ${LOGIN_TOKEN_SECRET}
|
LOGIN_TOKEN_SECRET: ${LOGIN_TOKEN_SECRET}
|
||||||
REFRESH_TOKEN_SECRET: ${REFRESH_TOKEN_SECRET}
|
REFRESH_TOKEN_SECRET: ${REFRESH_TOKEN_SECRET}
|
||||||
@ -89,6 +93,12 @@ services:
|
|||||||
retries: 10
|
retries: 10
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis
|
||||||
|
ports:
|
||||||
|
- "6379:6379"
|
||||||
|
restart: always
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
docker-data:
|
docker-data:
|
||||||
db-data:
|
db-data:
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "twenty-emails",
|
"name": "twenty-emails",
|
||||||
"version": "0.24.2",
|
"version": "0.30.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"author": "",
|
"author": "",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "twenty-front",
|
"name": "twenty-front",
|
||||||
"version": "0.24.2",
|
"version": "0.30.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "twenty-server",
|
"name": "twenty-server",
|
||||||
"version": "0.24.2",
|
"version": "0.30.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"author": "",
|
"author": "",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|||||||
@ -391,7 +391,7 @@ export class EnvironmentVariables {
|
|||||||
@CastToBoolean()
|
@CastToBoolean()
|
||||||
MESSAGING_PROVIDER_GMAIL_ENABLED = false;
|
MESSAGING_PROVIDER_GMAIL_ENABLED = false;
|
||||||
|
|
||||||
MESSAGE_QUEUE_TYPE: string = MessageQueueDriverType.Sync;
|
MESSAGE_QUEUE_TYPE: string = MessageQueueDriverType.BullMQ;
|
||||||
|
|
||||||
EMAIL_FROM_ADDRESS = 'noreply@yourdomain.com';
|
EMAIL_FROM_ADDRESS = 'noreply@yourdomain.com';
|
||||||
|
|
||||||
@ -426,7 +426,7 @@ export class EnvironmentVariables {
|
|||||||
@CastToPositiveNumber()
|
@CastToPositiveNumber()
|
||||||
API_RATE_LIMITING_LIMIT = 500;
|
API_RATE_LIMITING_LIMIT = 500;
|
||||||
|
|
||||||
CACHE_STORAGE_TYPE: CacheStorageType = CacheStorageType.Memory;
|
CACHE_STORAGE_TYPE: CacheStorageType = CacheStorageType.Redis;
|
||||||
|
|
||||||
@CastToPositiveNumber()
|
@CastToPositiveNumber()
|
||||||
CACHE_STORAGE_TTL: number = 3600 * 24 * 7;
|
CACHE_STORAGE_TTL: number = 3600 * 24 * 7;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "twenty-ui",
|
"name": "twenty-ui",
|
||||||
"version": "0.24.2",
|
"version": "0.30.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./src/index.ts",
|
"main": "./src/index.ts",
|
||||||
"exports": {
|
"exports": {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "twenty-website",
|
"name": "twenty-website",
|
||||||
"version": "0.24.2",
|
"version": "0.30.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"nx": "NX_DEFAULT_PROJECT=twenty-website node ../../node_modules/nx/bin/nx.js",
|
"nx": "NX_DEFAULT_PROJECT=twenty-website node ../../node_modules/nx/bin/nx.js",
|
||||||
|
|||||||
@ -41,7 +41,7 @@ yarn command:prod cron:calendar:calendar-event-list-fetch
|
|||||||
['FRONT_BASE_URL', 'http://localhost:3001', 'Url to the hosted frontend'],
|
['FRONT_BASE_URL', 'http://localhost:3001', 'Url to the hosted frontend'],
|
||||||
['SERVER_URL', 'http://localhost:3000', 'Url to the hosted server'],
|
['SERVER_URL', 'http://localhost:3000', 'Url to the hosted server'],
|
||||||
['PORT', '3000', 'Port'],
|
['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']
|
['CACHE_STORAGE_TTL', '3600 * 24 * 7', 'Cache TTL in seconds']
|
||||||
]}></ArticleTable>
|
]}></ArticleTable>
|
||||||
|
|
||||||
@ -162,7 +162,7 @@ yarn command:prod cron:calendar:calendar-event-list-fetch
|
|||||||
### Message Queue
|
### Message Queue
|
||||||
|
|
||||||
<ArticleTable options={[
|
<ArticleTable options={[
|
||||||
['MESSAGE_QUEUE_TYPE', 'pg-boss', "Queue driver: 'pg-boss' or 'bull-mq'"],
|
['MESSAGE_QUEUE_TYPE', 'bull-mq', "Queue driver: 'pg-boss' or 'bull-mq'"],
|
||||||
]}></ArticleTable>
|
]}></ArticleTable>
|
||||||
|
|
||||||
### Logging
|
### Logging
|
||||||
|
|||||||
@ -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 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.
|
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.
|
||||||
|
|
||||||
<ArticleEditContent></ArticleEditContent>
|
<ArticleEditContent></ArticleEditContent>
|
||||||
|
|||||||
Reference in New Issue
Block a user