Documentation Index
Fetch the complete documentation index at: https://docs.twenty.com/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Linux and macOS
Windows (WSL)
Before you can install and use Twenty, make sure you install the following on your computer:npm won’t work, you should use yarn instead. Yarn is now shipped with Node.js, so you don’t need to install it separately.
You only have to run corepack enable to enable Yarn if you haven’t done it yet.
- Install WSL
Open PowerShell as Administrator and run:
You should now see a prompt to restart your computer. If not, restart it manually.Upon restart, a PowerShell window will open and install Ubuntu. This may take up some time.
You’ll see a prompt to create a username and password for your Ubuntu installation.
- Install and configure git
sudo apt-get install git
git config --global user.name "Your Name"
git config --global user.email "youremail@domain.com"
- Install nvm, node.js and yarn
Use nvm to install the correct node version. The .nvmrc ensures all contributors use the same version.
sudo apt-get install curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
Close and reopen your terminal to use nvm. Then run the following commands.
nvm install # installs recommended node version
nvm use # use recommended node version
corepack enable
Step 1: Git Clone
In your terminal, run the following command.
If you haven’t already set up SSH keys, you can learn how to do so here.git clone git@github.com:twentyhq/twenty.git
git clone https://github.com/twentyhq/twenty.git
Step 2: Position yourself at the root
You should run all commands in the following steps from the root of the project.
Step 3: Set up a PostgreSQL Database
Linux
Mac OS
Windows (WSL)
Option 1 (preferred): To provision your database locally:
Use the following link to install PostgreSQL on your Linux machine: PostgreSQL Installation psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
Note: You might need to add sudo -u postgres to the command before psql to avoid permission errors.Option 2: If you have docker installed: make -C packages/twenty-docker postgres-on-docker
Option 1 (preferred): To provision your database locally with brew: brew install postgresql@16
export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH"
brew services start postgresql@16
psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
You can verify if the PostgreSQL server is running by executing:The installer might not create the postgres user by default when installing
via Homebrew on macOS. Instead, it creates a PostgreSQL role that matches your macOS
username (e.g., “john”).
To check and create the postgres user if necessary, follow these steps: # Connect to PostgreSQL
psql postgres
or
psql -U $(whoami) -d postgres
Once at the psql prompt (postgres=#), run: # List existing PostgreSQL roles
\du
You’ll see output similar to: Role name | Attributes | Member of
-----------+-------------+-----------
john | Superuser | {}
If you do not see a postgres role listed, proceed to the next step.
Create the postgres role manually: CREATE ROLE postgres WITH SUPERUSER LOGIN;
This creates a superuser role named postgres with login access.Role name | Attributes | Member of
-----------+-------------+-----------
postgres | Superuser | {}
john | Superuser | {}
Option 2: If you have docker installed: make -C packages/twenty-docker postgres-on-docker
All the following steps are to be run in the WSL terminal (within your virtual machine)Option 1: To provision your PostgreSQL locally:
Use the following link to install PostgreSQL on your Linux virtual machine: PostgreSQL Installation psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
Note: You might need to add sudo -u postgres to the command before psql to avoid permission errors.Option 2: If you have docker installed:
Running Docker on WSL adds an extra layer of complexity.
Only use this option if you are comfortable with the extra steps involved, including turning on Docker Desktop WSL2. make -C packages/twenty-docker postgres-on-docker
You can now access the database at localhost:5432.
If you used the Docker option above, the default credentials are user postgres and password postgres. For native PostgreSQL installations, use the credentials and roles configured on your machine.
Step 4: Set up a Redis Database (cache)
Twenty requires a Redis cache to provide the best performance.
Linux
Mac OS
Windows (WSL)
Option 1: To provision your Redis locally:
Use the following link to install Redis on your Linux machine: Redis InstallationOption 2: If you have docker installed: make -C packages/twenty-docker redis-on-docker
Option 1 (preferred): To provision your Redis locally with brew:Start your Redis server:brew services start redis
Option 2: If you have docker installed: make -C packages/twenty-docker redis-on-docker
Option 1: To provision your Redis locally:
Use the following link to install Redis on your Linux virtual machine: Redis InstallationOption 2: If you have docker installed: make -C packages/twenty-docker redis-on-docker
If you need a client GUI, we recommend Redis Insight (free version available).
Step 5: Set up environment variables
Use environment variables or .env files to configure your project. More info here.
Copy the .env.example files in /front and /server:
cp ./packages/twenty-front/.env.example ./packages/twenty-front/.env
cp ./packages/twenty-server/.env.example ./packages/twenty-server/.env
Multi-Workspace Mode: By default, Twenty runs in single-workspace mode where only one workspace can be created. To enable multi-workspace support (useful for testing subdomain-based features), set IS_MULTIWORKSPACE_ENABLED=true in your server .env file. See Multi-Workspace Mode for details.
Step 6: Installing dependencies
To build Twenty server and seed some data into your database, run the following command:
Note that npm or pnpm won’t work
Step 7: Running the project
Linux
Mac OS
Windows (WSL)
Depending on your Linux distribution, Redis server might be started automatically.
If not, check the Redis installation guide for your distro. Redis should already be running. If not, run:brew services start redis
Depending on your Linux distribution, Redis server might be started automatically.
If not, check the Redis installation guide for your distro.
Set up your database with the following command:
npx nx database:reset twenty-server
Start the server, the worker and the frontend services:
npx nx start twenty-server
npx nx worker twenty-server
npx nx start twenty-front
Alternatively, you can start all services at once:
Step 8: Use Twenty
Frontend
Twenty’s frontend will be running at http://localhost:3001.
You can log in using the default demo account: tim@apple.dev (password: tim@apple.dev)
Backend
Troubleshooting
If you encounter any problem, check Troubleshooting for solutions.