diff --git a/packages/twenty-website/src/content/developers/constants/DocsIndex.ts b/packages/twenty-website/src/content/developers/constants/DocsIndex.ts index caa1579cdd95..6d181710dee1 100644 --- a/packages/twenty-website/src/content/developers/constants/DocsIndex.ts +++ b/packages/twenty-website/src/content/developers/constants/DocsIndex.ts @@ -3,10 +3,11 @@ export const DOCS_INDEX = { 'Local Setup': [{ fileName: 'local-setup' }], 'Self-Hosting': [ { fileName: 'self-hosting' }, - { fileName: 'self-hosting-var' }, { fileName: 'docker-compose' }, - { fileName: 'cloud-providers' }, { fileName: 'upgrade-guide' }, + { fileName: 'self-hosting-var' }, + { fileName: 'cloud-providers' }, + { fileName: 'troubleshooting' }, ], }, Extending: { diff --git a/packages/twenty-website/src/content/developers/local-setup.mdx b/packages/twenty-website/src/content/developers/local-setup.mdx index d54fd04e0a8f..e74464907fff 100644 --- a/packages/twenty-website/src/content/developers/local-setup.mdx +++ b/packages/twenty-website/src/content/developers/local-setup.mdx @@ -5,7 +5,7 @@ image: /images/user-guide/fields/field.png info: Mostly for contributors or curious developers --- -Follow this guide if you would like to setup the project locally to contribute. +Follow this guide if you would like to set up the project locally to contribute. ## Prerequisites @@ -225,7 +225,7 @@ Start your redis server: -Setup your database with the following command: +Set up your database with the following command: ```bash npx nx database:reset twenty-server ``` @@ -246,47 +246,8 @@ Twenty's server will be up and running at [http://localhost:3000](http://localho Twenty's frontend will be running at [http://localhost:3001](http://localhost:3001). Just log in using the seeded demo account: `tim@apple.dev` (password: `Applecar2025`) to start using Twenty. - ## Troubleshooting -#### CR line breaks found [Windows] - -This is due to the line break characters of Windows and the git configuration. Try running: - -``` -git config --global core.autocrlf false -``` - -Then delete the repository and clone it again. - -#### Missing metadata schema - -During Twenty installation, you need to provision your postgres database with the right schemas, extensions, and users. -If you're successful in running this provisioning, you should have `default` and `metadata` schemas in your database. -If you don't, make sure you don't have more than one postgres instance running on your computer. - -#### Cannot find module 'twenty-emails' or its corresponding type declarations. - -You have to build the package `twenty-emails` before running the initialization of the database with `npx nx run twenty-emails:build` - -#### Missing twenty-x package - -Make sure to run yarn in the root directory and then run `npx nx server:dev twenty-server`. If this still doesn't work try building the missing package manually. - -#### Lint on Save not working - -This should work out of the box with the eslint extension installed. If this doesn't work try adding this to your vscode setting (on the dev container scope): - -#### While running `npx nx start` or `npx nx start twenty-front`, Out of memory error is thrown - -In `packages/twenty-front/.env` uncomment `VITE_DISABLE_TYPESCRIPT_CHECKER=true` and `VITE_DISABLE_ESLINT_CHECKER=true` to disable background checks thus reducing amount of needed RAM. - -``` -"editor.codeActionsOnSave": { - - "source.fixAll.eslint": "explicit" - -} -``` +If you encounter any problem, check [Troubleshooting](https://twenty.com/developers/section/self-hosting/troubleshooting) for solutions. \ No newline at end of file diff --git a/packages/twenty-website/src/content/developers/self-hosting/cloud-providers.mdx b/packages/twenty-website/src/content/developers/self-hosting/cloud-providers.mdx index df3bb2b2548e..9e0423aa5c50 100644 --- a/packages/twenty-website/src/content/developers/self-hosting/cloud-providers.mdx +++ b/packages/twenty-website/src/content/developers/self-hosting/cloud-providers.mdx @@ -1,5 +1,5 @@ --- -title: Vendor-Specific Instructions +title: Other methods icon: TbCloud image: /images/user-guide/notes/notes_header.png --- @@ -12,413 +12,6 @@ image: /images/user-guide/notes/notes_header.png Community-led documentation for Kubernetes deployment is available [here](https://github.com/twentyhq/twenty/tree/main/packages/twenty-docker/k8s) -## Render - -Community-led, might not be up to date - -[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/twentyhq/twenty) - -## RepoCloud - -Community-led, might not be up to date - -[![Deploy on RepoCloud](https://d16t0pc4846x52.cloudfront.net/deploy.png)](https://repocloud.io/details/?app_id=259) - -## Azure Container Apps - -Community-led, might not be up to date - -### About - -Hosts Twenty CRM using Azure Container Apps. -The solution provisions file shares, a container apps environment with three containers, and a log analytics workspace. - -The file shares are used to store uploaded images and files through the UI, and to store database backups. - -### Prerequisites - -- Terraform installed https://developer.hashicorp.com/terraform/install -- An Azure subscription with permissions to create resources - -### Step by step instructions: - -1. Create a new folder and copy all the files from below -2. Run `terraform init` -3. Run `terraform plan -out tfplan` -4. Run `terraform apply tfplan` -5. Connect to server `az containerapp exec --name twenty-server -g twenty-crm-rg` -6. Initialize the database from the server `yarn database:init:prod` -7. Go to https://your-twenty-front-fqdn - located in the portal - -#### Production docker containers - -This uses the prebuilt images found on [docker hub](https://hub.docker.com/r/twentycrm/). - -#### Environment Variables - -- Is set in respective tf-files -- See docs [Setup Environment Variables](https://twenty.com/developers/section/self-hosting/self-hosting-var) for usage -- After deployment you could can set `IS_SIGN_UP_DISABLED=true` (and run `terraform plan/apply` again) to disable new workspaces from being created - -#### Security and networking - -- Container `twenty-db` accepts only ingress TCP traffic from other containers in the environment. No external ingress traffic allowed -- Container `twenty-server` accepts external traffic over HTTPS -- Container `twenty-front` accepts external traffic over HTTPS - -It´s highly recommended to enable [built-in authentication](https://learn.microsoft.com/en-us/azure/container-apps/authentication) for `twenty-front` using one of the supported providers. - -Use the [custom domain](https://learn.microsoft.com/en-us/azure/container-apps/custom-domains-certificates) feature on the `twenty-front` container if you would like an easier domain name. - -#### Files - -##### providers.tf - -```hcl -# providers.tf - -terraform { - required_providers { - azapi = { - source = "Azure/azapi" - } - } -} - -provider "azapi" { -} - -provider "azurerm" { - features {} -} - -provider "azuread" { -} - -provider "random" { -} -``` - -##### main.tf - -```hcl -# main.tf - -# Create a resource group -resource "azurerm_resource_group" "main" { - name = "twenty-crm-rg" - location = "North Europe" -} - -# Variables -locals { - app_env_name = "twenty" - - server_name = "twenty-server" - server_tag = "latest" - - front_app_name = "twenty-front" - front_tag = "latest" - - db_app_name = "twenty-postgres" - db_tag = "latest" - - db_user = "twenty" - db_password = "twenty" - - storage_mount_db_name = "twentydbstoragemount" - storage_mount_server_name = "twentyserverstoragemount" - - cpu = 1.0 - memory = "2Gi" -} - -# Set up a Log Analytics workspace -resource "azurerm_log_analytics_workspace" "main" { - name = "${local.app_env_name}-law" - location = azurerm_resource_group.main.location - resource_group_name = azurerm_resource_group.main.name - sku = "PerGB2018" - retention_in_days = 30 -} - -# Create a storage account -resource "random_pet" "example" { - length = 2 - separator = "" -} - -resource "azurerm_storage_account" "main" { - name = "twentystorage${random_pet.example.id}" - resource_group_name = azurerm_resource_group.main.name - location = azurerm_resource_group.main.location - account_tier = "Standard" - account_replication_type = "LRS" - large_file_share_enabled = true -} - -# Create db file storage -resource "azurerm_storage_share" "db" { - name = "twentydatabaseshare" - storage_account_name = azurerm_storage_account.main.name - quota = 50 - enabled_protocol = "SMB" -} - -# Create backend file storage -resource "azurerm_storage_share" "server" { - name = "twentyservershare" - storage_account_name = azurerm_storage_account.main.name - quota = 50 - enabled_protocol = "SMB" -} - -# Create a Container App Environment -resource "azurerm_container_app_environment" "main" { - name = "${local.app_env_name}-env" - location = azurerm_resource_group.main.location - resource_group_name = azurerm_resource_group.main.name - log_analytics_workspace_id = azurerm_log_analytics_workspace.main.id -} - -# Connect the db storage share to the container app environment -resource "azurerm_container_app_environment_storage" "db" { - name = local.storage_mount_db_name - container_app_environment_id = azurerm_container_app_environment.main.id - account_name = azurerm_storage_account.main.name - share_name = azurerm_storage_share.db.name - access_key = azurerm_storage_account.main.primary_access_key - access_mode = "ReadWrite" -} - -# Connect the server storage share to the container app environment -resource "azurerm_container_app_environment_storage" "server" { - name = local.storage_mount_server_name - container_app_environment_id = azurerm_container_app_environment.main.id - account_name = azurerm_storage_account.main.name - share_name = azurerm_storage_share.server.name - access_key = azurerm_storage_account.main.primary_access_key - access_mode = "ReadWrite" -} -``` - -##### frontend.tf - -```hcl -# frontend.tf - -resource "azurerm_container_app" "twenty_front" { - name = local.front_app_name - container_app_environment_id = azurerm_container_app_environment.main.id - resource_group_name = azurerm_resource_group.main.name - revision_mode = "Single" - - depends_on = [azurerm_container_app.twenty_server] - - ingress { - allow_insecure_connections = false - external_enabled = true - target_port = 3000 - transport = "http" - traffic_weight { - percentage = 100 - latest_revision = true - } - } - - template { - min_replicas = 1 - # things starts to fail when using more than 1 replica - max_replicas = 1 - container { - name = "twenty-front" - image = "docker.io/twentycrm/twenty-front:${local.front_tag}" - cpu = local.cpu - memory = local.memory - - env { - name = "REACT_APP_SERVER_BASE_URL" - value = "https://${azurerm_container_app.twenty_server.ingress[0].fqdn}" - } - } - } -} - -# Set CORS rules for frontend app using AzAPI -resource "azapi_update_resource" "cors" { - type = "Microsoft.App/containerApps@2023-05-01" - resource_id = azurerm_container_app.twenty_front.id - body = jsonencode({ - properties = { - configuration = { - ingress = { - corsPolicy = { - allowedOrigins = ["*"] - } - } - } - } - }) - depends_on = [azurerm_container_app.twenty_front] -} -``` - -##### backend.tf - -```hcl -# backend.tf - -# Create a random UUID -resource "random_uuid" "app_secret" {} - -resource "azurerm_container_app" "twenty_server" { - name = local.server_name - container_app_environment_id = azurerm_container_app_environment.main.id - resource_group_name = azurerm_resource_group.main.name - revision_mode = "Single" - - depends_on = [azurerm_container_app.twenty_db, azurerm_container_app_environment_storage.server] - - ingress { - allow_insecure_connections = false - external_enabled = true - target_port = 3000 - transport = "http" - traffic_weight { - percentage = 100 - latest_revision = true - } - } - - template { - min_replicas = 1 - max_replicas = 1 - volume { - name = "twenty-server-data" - storage_type = "AzureFile" - storage_name = local.storage_mount_server_name - } - - container { - name = local.server_name - image = "docker.io/twentycrm/twenty-server:${local.server_tag}" - cpu = local.cpu - memory = local.memory - - volume_mounts { - name = "twenty-server-data" - path = "/app/packages/twenty-server/.local-storage" - } - - # Environment variables - env { - name = "IS_SIGN_UP_DISABLED" - value = false - } - env { - name = "SIGN_IN_PREFILLED" - value = false - } - env { - name = "STORAGE_TYPE" - value = "local" - } - env { - name = "STORAGE_LOCAL_PATH" - value = ".local-storage" - } - env { - name = "PG_DATABASE_URL" - value = "postgres://${local.db_user}: - ${local.db_password}@${local.db_app_name}:5432/default" - } - env { - name = "FRONT_BASE_URL" - value = "https://${local.front_app_name}" - } - env { - name = "APP_SECRET" - value = random_uuid.app_secret.result - } - } - } -} - -# Set CORS rules for server app using AzAPI -resource "azapi_update_resource" "server_cors" { - type = "Microsoft.App/containerApps@2023-05-01" - resource_id = azurerm_container_app.twenty_server.id - body = jsonencode({ - properties = { - configuration = { - ingress = { - corsPolicy = { - allowedOrigins = ["*"] - } - } - } - } - }) - depends_on = [azurerm_container_app.twenty_server] -} -``` - -##### database.tf - -```hcl -# database.tf - -resource "azurerm_container_app" "twenty_db" { - name = local.db_app_name - container_app_environment_id = azurerm_container_app_environment.main.id - resource_group_name = azurerm_resource_group.main.name - revision_mode = "Single" - - depends_on = [azurerm_container_app_environment_storage.db] - - ingress { - allow_insecure_connections = false - external_enabled = false - target_port = 5432 - transport = "tcp" - traffic_weight { - percentage = 100 - latest_revision = true - } - } - - template { - min_replicas = 1 - max_replicas = 1 - container { - name = local.db_app_name - image = "docker.io/twentycrm/twenty-postgres-spilo:${local.db_tag}" - cpu = local.cpu - memory = local.memory - - volume_mounts { - name = "twenty-db-data" - path = "/var/lib/postgresql/data" - } - - env { - name = "PGUSER_SUPERUSER" - value = "postgres" - } - env { - name = "PGPASSWORD_SUPERUSER" - value = "twenty" - } - } - - volume { - name = "twenty-db-data" - storage_type = "AzureFile" - storage_name = local.storage_mount_db_name - } - } -} -``` ## Others diff --git a/packages/twenty-website/src/content/developers/self-hosting/docker-compose.mdx b/packages/twenty-website/src/content/developers/self-hosting/docker-compose.mdx index 9fdfb2fcb229..6f8a0933cc6f 100644 --- a/packages/twenty-website/src/content/developers/self-hosting/docker-compose.mdx +++ b/packages/twenty-website/src/content/developers/self-hosting/docker-compose.mdx @@ -1,5 +1,5 @@ --- -title: 1-Click Docker Compose +title: 1-Click w/ Docker Compose icon: TbBrandDocker image: /images/user-guide/objects/objects.png --- @@ -16,7 +16,6 @@ This guide provides step-by-step instructions to install and configure the Twent See docs [Setup Environment Variables](https://twenty.com/developers/section/self-hosting/self-hosting-var) for advanced configuration. - ## System Requirements - RAM: Ensure your environment has at least 2GB of RAM. Insufficient memory can cause processes to crash. @@ -45,7 +44,7 @@ Follow these steps for a manual setup. Copy the example environment file to a new .env file in your working directory: ```bash - curl -o .env https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/.env.example + curl -o .env https://raw.githubusercontent.com/twentyhq/twenty/refs/tags/v0.32.0/packages/twenty-docker/.env.example ``` 2. **Generate Secret Tokens** @@ -77,7 +76,7 @@ Follow these steps for a manual setup. Download the `docker-compose.yml` file to your working directory: ```bash -curl -O https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/docker-compose.yml +curl -O https://raw.githubusercontent.com/twentyhq/twenty/refs/tags/v0.32.0/packages/twenty-docker/docker-compose.yml ``` ### Step 3: Launch the Application @@ -177,41 +176,7 @@ We strongly recommend setting up Twenty behind a reverse proxy with SSL terminat The `SERVER_URL` must match how users access your application in their browsers. -## Troubleshooting - -### Unable to Log In - -If you can't log in after setup: -1. Run the following commands: - ```bash - docker exec -it twenty-server-1 yarn - docker exec -it twenty-server-1 npx nx database:reset - ``` -2. Restart the Docker containers: - ```bash - docker-compose down - docker-compose up -d - ``` - - -### Connection Issues Behind a Reverse Proxy - -If you're running Twenty behind a reverse proxy and experiencing connection issues: - -1. **Verify SERVER_URL:** - - Ensure `SERVER_URL` in your `.env` file matches your external access URL, including `https` if SSL is enabled. - -2. **Check Reverse Proxy Settings:** - - - Confirm that your reverse proxy is correctly forwarding requests to the Twenty server. - - Ensure headers like `X-Forwarded-For` and `X-Forwarded-Proto` are properly set. - -3. **Restart Services:** - - After making changes, restart both the reverse proxy and Twenty containers. - -## Persistence +#### Persistence - **Data Volumes:** @@ -221,19 +186,9 @@ If you're running Twenty behind a reverse proxy and experiencing connection issu If deploying to a stateless environment (e.g., certain cloud services), configure external storage to persist data. -## Getting Help -If you encounter issues not covered in this guide: - -- Check Logs: - - View container logs for error messages: - ```bash - docker-compose logs - ``` - -- Community Support: +## Troubleshooting - Reach out to the Twenty community or support channels for assistance. +If you encounter any problem, check [Troubleshooting](https://twenty.com/developers/section/self-hosting/troubleshooting) for solutions. diff --git a/packages/twenty-website/src/content/developers/self-hosting/troubleshooting.mdx b/packages/twenty-website/src/content/developers/self-hosting/troubleshooting.mdx new file mode 100644 index 000000000000..74304c2aac83 --- /dev/null +++ b/packages/twenty-website/src/content/developers/self-hosting/troubleshooting.mdx @@ -0,0 +1,112 @@ +--- +title: Troubleshooting +icon: TbCloud +image: /images/user-guide/what-is-twenty/20.png +--- + +## Troubleshooting + +If you encounter any problem while setting up environment for development, upgrading your instance or self-hosting, +here are some solutions for common problems. + +### Self-hosting + +#### CR line breaks found [Windows] + +This is due to the line break characters of Windows and the git configuration. Try running: + +``` +git config --global core.autocrlf false +``` + +Then delete the repository and clone it again. + +#### Missing metadata schema + +During Twenty installation, you need to provision your postgres database with the right schemas, extensions, and users. +If you're successful in running this provisioning, you should have `default` and `metadata` schemas in your database. +If you don't, make sure you don't have more than one postgres instance running on your computer. + +#### Cannot find module 'twenty-emails' or its corresponding type declarations. + +You have to build the package `twenty-emails` before running the initialization of the database with `npx nx run twenty-emails:build` + +#### Missing twenty-x package + +Make sure to run yarn in the root directory and then run `npx nx server:dev twenty-server`. If this still doesn't work try building the missing package manually. + +#### Lint on Save not working + +This should work out of the box with the eslint extension installed. If this doesn't work try adding this to your vscode setting (on the dev container scope): + +``` +"editor.codeActionsOnSave": { + + "source.fixAll.eslint": "explicit" + +} +``` + +#### While running `npx nx start` or `npx nx start twenty-front`, Out of memory error is thrown + +In `packages/twenty-front/.env` uncomment `VITE_DISABLE_TYPESCRIPT_CHECKER=true` and `VITE_DISABLE_ESLINT_CHECKER=true` to disable background checks thus reducing amount of needed RAM. + +#### While running `npx nx start` there are weird [0] and [1] in logs + +That's expected as command `npx nx start` is running more commands under the hood + +#### While running `yarn` warnings appear in console + +Warnings are informing about pulling additional dependencies which aren't explicitly stated in `package.json`, so as long as no breaking error appears, everything should work as expected. + +#### When user accesses login page, error about unauthorized user trying to access workspace appears in logs + +That's expected as user is unauthorized when logged out since its identity is not verified. + +### 1-click Docker compose + +#### Unable to Log In + +If you can't log in after setup: +1. Run the following commands: + ```bash + docker exec -it twenty-server-1 yarn + docker exec -it twenty-server-1 npx nx database:reset + ``` +2. Restart the Docker containers: + ```bash + docker-compose down + docker-compose up -d + ``` + +#### Connection Issues Behind a Reverse Proxy + +If you're running Twenty behind a reverse proxy and experiencing connection issues: + +1. **Verify SERVER_URL:** + + Ensure `SERVER_URL` in your `.env` file matches your external access URL, including `https` if SSL is enabled. + +2. **Check Reverse Proxy Settings:** + + - Confirm that your reverse proxy is correctly forwarding requests to the Twenty server. + - Ensure headers like `X-Forwarded-For` and `X-Forwarded-Proto` are properly set. + +3. **Restart Services:** + + After making changes, restart both the reverse proxy and Twenty containers. + +## Getting Help + +If you encounter issues not covered in this guide: + +- Check Logs: + + View container logs for error messages: + ```bash + docker-compose logs + ``` + +- Community Support: + + Reach out to the [Twenty community](https://github.com/twentyhq/twenty/issues) or [support channels](https://discord.gg/cx5n4Jzs57) for assistance. 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 894f173a0b07..5c8c9e740b69 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 @@ -4,11 +4,12 @@ icon: TbCloud image: /images/user-guide/notes/notes_header.png --- + ## General guidelines -Always make sure to backup your database before starting the upgrade process. +Always make sure to back up your database before starting the upgrade process. -## If you used Docker Compose +If you used Docker Compose, follow these steps: 1. In a terminal, on the host where Twenty is running, turn off Twenty: `docker compose down` @@ -16,55 +17,72 @@ Always make sure to backup your database before starting the upgrade process. 3. Bring Twenty back online with `docker-compose up -d` -## Data Migration - -Migrating a CRM is a bit trickier than migrating a traditional software, because the data model of Standard Object has to evolve smoothly along your custom objects. -## v0.21.0 to v0.22.0 +## Version-specific upgrade steps -Upgrade your Twenty instance to use v0.22.0 image +### v0.32.0 to v0.33.0 -Run the following commands: +Upgrade your Twenty instance to use v0.33.0 image ``` -yarn database:migrate:prod -yarn command:prod workspace:sync-metadata -f -yarn command:prod upgrade-0.22 +yarn command:prod cache:flush +yarn database:migrate:prod +yarn command:prod upgrade-0.33 ``` -The `yarn database:migrate:prod` command will apply the migrations to the Database. -The `yarn command:prod workspace:sync-metadata -f` command will sync the definition of standard objects to the metadata tables and apply to required migrations to existing workspaces. -The `yarn command:prod upgrade-0.22` command will apply specific data transformations to adapt to the new object defaultRequestInstrumentationOptions. +The `yarn command:prod cache:flush` command will flush the Redis cache. +The `yarn database:migrate:prod` command will apply the migrations to the database structure (core and metadata schemas) +The `yarn command:prod upgrade-0.33` takes care of the data migration of all workspaces. -## v0.22.0 to v0.23.0 -Upgrade your Twenty instance to use v0.23.0 image +### v0.31.0 to v0.32.0 -Run the following commands: +Upgrade your Twenty instance to use v0.32.0 image +**Schema and data migration** ``` -yarn database:migrate:prod -yarn command:prod upgrade-0.23 +yarn database:migrate:prod +yarn command:prod upgrade-0.32 ``` -The `yarn database:migrate:prod` command will apply the migrations to the Database. -The `yarn command:prod upgrade-0.23` takes care of the data migration, including transferring activities to tasks/notes. +The `yarn database:migrate:prod` command will apply the migrations to the database structure (core and metadata schemas) +The `yarn command:prod upgrade-0.32` takes care of the data migration of all workspaces. -## v0.23.0 to v0.24.0 +**Environment Variables** -Upgrade your Twenty instance to use v0.24.0 image +We have updated the way we handle the Redis connection. -Run the following commands: +- Removed: `REDIS_HOST`, `REDIS_PORT`, `REDIS_USERNAME`, `REDIS_PASSWORD` +- Added: `REDIS_URL` + +Update your `.env` file to use the new `REDIS_URL` variable instead of the individual Redis connection parameters. + +We have also simplified the way we handle the JWT tokens. + +- Removed: `ACCESS_TOKEN_SECRET`, `LOGIN_TOKEN_SECRET`, `REFRESH_TOKEN_SECRET`, `FILE_TOKEN_SECRET` +- Added: `APP_SECRET` + +Update your `.env` file to use the new `APP_SECRET` variable instead of the individual tokens secrets (you can use the same secret as before or generate a new random string) + +**Connected Account** + +If you are using connected account to synchronize your Google emails and calendars, you will need to activate the [People API](https://developers.google.com/people) on your Google Admin console. + +### v0.30.0 to v0.31.0 + +Upgrade your Twenty instance to use v0.31.0 image + +**Schema and data migration**: ``` yarn database:migrate:prod -yarn command:prod upgrade-0.24 +yarn command:prod upgrade-0.31 ``` 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.31` takes care of the data migration of all workspaces. -## v0.24.0 to v0.30.0 +### v0.24.0 to v0.30.0 Upgrade your Twenty instance to use v0.30.0 image @@ -86,66 +104,51 @@ 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-0.30` takes care of the data migration of all workspaces. -## v0.30.0 to v0.31.0 +### v0.23.0 to v0.24.0 -Upgrade your Twenty instance to use v0.31.0 image - -**Schema and data migration**: -``` -yarn database:migrate:prod -yarn command:prod upgrade-0.31 -``` - -The `yarn database:migrate:prod` command will apply the migrations to the database structure (core and metadata schemas) -The `yarn command:prod upgrade-0.31` takes care of the data migration of all workspaces. - -## v0.31.0 to v0.32.0 +Upgrade your Twenty instance to use v0.24.0 image -Upgrade your Twenty instance to use v0.32.0 image +Run the following commands: -**Schema and data migration**: ``` yarn database:migrate:prod -yarn command:prod upgrade-0.32 +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.32` 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.32.0 to v0.33.0 +### v0.22.0 to v0.23.0 -Upgrade your Twenty instance to use v0.33.0 image +Upgrade your Twenty instance to use v0.23.0 image + +Run the following commands: -**Schema and data migration**: ``` -yarn command:prod cache:flush -yarn database:migrate:prod -yarn command:prod upgrade-0.33 +yarn database:migrate:prod +yarn command:prod upgrade-0.23 ``` -The `yarn command:prod cache:flush` command will flush the Redis cache. -The `yarn database:migrate:prod` command will apply the migrations to the database structure (core and metadata schemas) -The `yarn command:prod upgrade-0.33` takes care of the data migration of all workspaces. - -### Environment Variables +The `yarn database:migrate:prod` command will apply the migrations to the Database. +The `yarn command:prod upgrade-0.23` takes care of the data migration, including transferring activities to tasks/notes. -We have updated the way we handle the Redis connection. +### v0.21.0 to v0.22.0 -- Removed: `REDIS_HOST`, `REDIS_PORT`, `REDIS_USERNAME`, `REDIS_PASSWORD` -- Added: `REDIS_URL` +Upgrade your Twenty instance to use v0.22.0 image -Update your `.env` file to use the new `REDIS_URL` variable instead of the individual Redis connection parameters. +Run the following commands: -We have also simplifed the way we handle the JWT tokens. +``` +yarn database:migrate:prod +yarn command:prod workspace:sync-metadata -f +yarn command:prod upgrade-0.22 +``` -- Removed: `ACCESS_TOKEN_SECRET`, `LOGIN_TOKEN_SECRET`, `REFRESH_TOKEN_SECRET`, `FILE_TOKEN_SECRET` -- Added: `APP_SECRET` +The `yarn database:migrate:prod` command will apply the migrations to the Database. +The `yarn command:prod workspace:sync-metadata -f` command will sync the definition of standard objects to the metadata tables and apply to required migrations to existing workspaces. +The `yarn command:prod upgrade-0.22` command will apply specific data transformations to adapt to the new object defaultRequestInstrumentationOptions. -Update your `.env` file to use the new `APP_SECRET` variable instead of the individual tokens secrets (you can use the same secret as before or generate a new random string) -*Note*: Keep the `ACCESS_TOKEN_SECRET` variable to keep the backward compatibility with the previous API tokens. -### Connected Account -If you are using connected account to synchronize your Google emails and calendars, you will need to activate the [People API](https://developers.google.com/people) on your Google Admin console. \ No newline at end of file diff --git a/packages/twenty-website/src/content/user-guide/functions/notes.mdx b/packages/twenty-website/src/content/user-guide/functions/notes.mdx index a1b55b9acf32..3f6f943dcb35 100644 --- a/packages/twenty-website/src/content/user-guide/functions/notes.mdx +++ b/packages/twenty-website/src/content/user-guide/functions/notes.mdx @@ -24,7 +24,7 @@ Start typing directly or press '/' to add elements like headings, files, or imag ### Format Content -You can format your notes right from the editor. Use markdown syntax, press the `/` key or click on the `+` icon on the editor to see the different block options, such as headings, tables, and lists. You can also attach images to your note. +You can format your notes right from the editor. Use Markdown syntax, press the `/` key or click on the `+` icon on the editor to see the different block options, such as headings, tables, and lists. You can also attach images to your note. Highlight the text to see more formatting options like bold, italics, and alignment options. diff --git a/packages/twenty-website/src/content/user-guide/objects/fields.mdx b/packages/twenty-website/src/content/user-guide/objects/fields.mdx index 7039db1d6095..01673d1fa130 100644 --- a/packages/twenty-website/src/content/user-guide/objects/fields.mdx +++ b/packages/twenty-website/src/content/user-guide/objects/fields.mdx @@ -76,7 +76,7 @@ Here's how you can do it: -And, voila! You've deactivated a field. But what does this imply for your CRM operations? +And, voilà! You've deactivated a field. But what does this imply for your CRM operations? 1. **In-App Functionality:** A deactivated field will no longer be functional within the app. You won't be able to assign values to these fields anymore. diff --git a/packages/twenty-website/src/content/user-guide/objects/import-export-data.mdx b/packages/twenty-website/src/content/user-guide/objects/import-export-data.mdx index 2be56f50a4f5..55736fa413c4 100644 --- a/packages/twenty-website/src/content/user-guide/objects/import-export-data.mdx +++ b/packages/twenty-website/src/content/user-guide/objects/import-export-data.mdx @@ -8,7 +8,7 @@ sectionInfo: Discover how to use standard and custom objects in your workspace. ## Import data -You can import People and Companies data into Twenty from other apps using a .csv, .xslx, or .xsl file. In the Companies or People page, click on Options and then on Import. +You can import People and Companies data into Twenty from other apps using a .csv, .xlsx, or .xls file. In the Companies or People page, click on Options and then on Import. Upload your file, match the columns, check your data and import it. diff --git a/packages/twenty-website/src/content/user-guide/objects/views-sort-filter.mdx b/packages/twenty-website/src/content/user-guide/objects/views-sort-filter.mdx index f8ffbc6bbe27..250e25b395b6 100644 --- a/packages/twenty-website/src/content/user-guide/objects/views-sort-filter.mdx +++ b/packages/twenty-website/src/content/user-guide/objects/views-sort-filter.mdx @@ -55,7 +55,7 @@ The newly created view opens automatically. #### From Sorting and Filtering -When you change the `Sorting` and `Filtering` of an existing view, a `Save as new view` button will appear at the right edge of the `View Bar`. This will opens the New View menu mentioned above, allowing you to create a new view out of an existing one. +When you change the `Sorting` and `Filtering` of an existing view, a `Save as new view` button will appear at the right edge of the `View Bar`. This will open the New View menu mentioned above, allowing you to create a new view out of an existing one.