mirror of
https://github.com/lingble/twenty.git
synced 2025-10-29 20:02:29 +00:00
* Add KanbanFieldMetadataId on View standard object * Deprecate Pipeline step * Fix * Use Constants instead of raw ids * Fix * Fix query runner * Fix according to review * Fix tests * Fix tests * Fix tests
93 lines
3.1 KiB
Plaintext
93 lines
3.1 KiB
Plaintext
---
|
|
title: Docker Compose
|
|
sidebar_position: 3
|
|
sidebar_custom_props:
|
|
icon: TbBrandDocker
|
|
---
|
|
# Step by step instructions:
|
|
|
|
1. Copy the [.env.example](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/.env.example) into a `.env` in the same directory where your `docker-compose.yml` file will be
|
|
2. Run the command `openssl rand -base64 32` three times, make note of the string for each
|
|
3. In your .env file, replace the three "replace_me_with_a_random_string_access" with the three random strings you just generated.
|
|
|
|
```
|
|
ACCESS_TOKEN_SECRET=replace_me_with_a_random_string_access
|
|
LOGIN_TOKEN_SECRET=replace_me_with_a_random_string_login
|
|
REFRESH_TOKEN_SECRET=replace_me_with_a_random_string_refresh
|
|
```
|
|
|
|
4. Create a `docker-compose.yml` file from the example below.
|
|
5. Run the command `docker-compose up -d`
|
|
6. Go to http://localhost:3001 and see your docker instance.
|
|
|
|
## Troubleshooting
|
|
|
|
### Not able to login
|
|
|
|
If you encounter errors, (not able to log into the application after inputting an email) after the inital setup, try running `docker exec -it twenty-backend-1 yarn database:reset` and see if that solves your issue.
|
|
|
|
### Cannot connect to server, running behind a reverse proxy
|
|
|
|
Complete step three and four with :
|
|
|
|
3. Add `SERVER_URL=https://<your-api-url.com>` to your `.env`
|
|
4. Uncomment `SERVER_URL=${SERVER_URL}` in your `docker-compose.yml`
|
|
|
|
## Production docker containers
|
|
|
|
Prebuilt images for both Postgres, frontend, and back-end can be found on [docker hub](https://hub.docker.com/r/twentycrm/). Note that the Postgres container will not persist data if your server is not configured to be stateful (for example Heroku). You probably want to configure a special stateful resource for the database.
|
|
|
|
## Environment Variables
|
|
|
|
- Copy this `.env.example` file into a `.env` in the same directory as your `docker-compose.yml` file
|
|
- Find the `.env.example` [here](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/.env.example).
|
|
|
|
## Docker Compose file
|
|
|
|
We will soon update the documentation with an up-to-date docker compose file.
|
|
Here is one that was proposed on Discord by a community member:
|
|
|
|
|
|
```yaml
|
|
version: "3.9"
|
|
services:
|
|
|
|
twenty:
|
|
image: twentycrm/twenty-front:${TAG}
|
|
ports:
|
|
- 3001:3000
|
|
environment:
|
|
- SIGN_IN_PREFILLED=${SIGN_IN_PREFILLED}
|
|
- REACT_APP_SERVER_BASE_URL=${LOCAL_SERVER_URL}
|
|
depends_on:
|
|
- backend
|
|
|
|
backend:
|
|
image: twentycrm/twenty-server:${TAG}
|
|
ports:
|
|
- 3000:3000
|
|
environment:
|
|
- SIGN_IN_PREFILLED=${SIGN_IN_PREFILLED}
|
|
- PG_DATABASE_URL=${PG_DATABASE_URL}
|
|
- FRONT_BASE_URL=${FRONT_BASE_URL}
|
|
- PORT=3000
|
|
- STORAGE_TYPE=local
|
|
- STORAGE_LOCAL_PATH=.local-storage
|
|
- ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}
|
|
- LOGIN_TOKEN_SECRET=${LOGIN_TOKEN_SECRET}
|
|
- REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}
|
|
# Uncomment if behind a reverse proxy
|
|
# - SERVER_URL=${SERVER_URL}
|
|
depends_on:
|
|
- db
|
|
|
|
db:
|
|
image: twentycrm/twenty-postgres:${TAG}
|
|
volumes:
|
|
- twenty-db-data:/var/lib/postgresql/data
|
|
environment:
|
|
- POSTGRES_PASSWORD=${POSTGRES_ADMIN_PASSWORD}
|
|
volumes:
|
|
twenty-db-data:
|
|
```
|