.circleci | ||
front | ||
infra | ||
server | ||
.gitignore | ||
package-lock.json | ||
package.json | ||
README.md |
Twenty
Welcome to Twenty documentation!
High Level Overview
Twenty development stack is composed of 3 different layers
- front: our frontend React app
- server: our backend that contain endpoint, crm logic, scripts, jobs...
- storages: postgres
Development environment setup with npm (Alternative 1)
This is the easiest way to get started contributing to twenty
Make sure you have node@18
installed on your machine. You can use nvm
to manage your nvm versions in case you have projects that require different node versions.
npm install
npm start
You'll need to provide your own postgres storage.
Once this is completed you should have:
- front available on: http://localhost:3001
- server available on: http://localhost:3000/health
Development environment setup with docker-compose (Alternative 2)
We also provide a containerized environment with Docker and orchestrated with docker-compose in case it is easier for you. This install will also provision a postgres container out of the box.
Step 1: pre-requesites
Make sure to have the latest Docker and Docker-compose versions installed on your computer.
Step 2: docker build
Build docker containers.
The whole setup experience is happening in infra/dev
folder. Make sure to be in this folder:
cd infra/dev
docker-compose up --build --force-recreate
Once this is completed you should have:
- front available on: http://localhost:3001
- server available on: http://localhost:3000/health
- postgres: available on http://localhost:5432 that should contain
twenty
database
Step 3: environment file
Configure your environment by copying the .env.example
file located in infra/dev
folder into .env
.
cp infra/dev/.env.example infra/dev/.env
Then, you'll need to replace all REPLACE_ME variable by their development value. Please reach out to another engineer to get these values (as most of them are third party credentials, sensitive data)
Note
If you are using Docker install, make sure to ssh in the docker container during development to execute commands. You can also use Makefile
to help you
Development
Tests
Unit tests:
make front-test
# coverage
make front-coverage
Storybook:
make front-storybook
Developping on server
Section TBD