T
Twenty4mo ago
Uranium

Error 404 after commands

Hello, after a new installation under docker i couldn't connect so i did the commands mentioned on the documentation but now i have a 404 error. Before doing the commands I had the interfaces just I could not create accounts or connect. and in the logs no errors
No description
42 Replies
Uranium
Uranium4mo ago
No description
Uranium
Uranium4mo ago
I think I've found the solution by modifying my docker-compose, so I'm posting it below in case I'm not the only one. Personally I use coolify for deployment so I modified the docker-compose accordingly. Here it is.
services:
server:
image: 'twentycrm/twenty:${TAG}'
volumes:
- 'server-local-data:/app/packages/twenty-server/$${STORAGE_LOCAL_PATH:-.local-storage}'
- 'docker-data:/app/docker-data'
ports:
- '3000:3000'
environment:
- PORT=3000
- 'PG_DATABASE_URL=postgres://twenty:twenty@${PG_DATABASE_HOST}/default'
- 'SERVER_URL=${SERVER_URL}'
- 'IS_SIGN_UP_DISABLED=${IS_SIGN_UP_DISABLED}'
- 'FRONT_BASE_URL=${FRONT_BASE_URL:-$SERVER_URL}'
- 'MESSAGE_QUEUE_TYPE=${MESSAGE_QUEUE_TYPE}'
- ENABLE_DB_MIGRATIONS=true
- 'STORAGE_TYPE=${STORAGE_TYPE}'
- 'STORAGE_S3_REGION=${STORAGE_S3_REGION}'
- 'STORAGE_S3_NAME=${STORAGE_S3_NAME}'
- 'STORAGE_S3_ENDPOINT=${STORAGE_S3_ENDPOINT}'
- 'MESSAGING_PROVIDER_GMAIL_ENABLED=${MESSAGING_PROVIDER_GMAIL_ENABLED}'
- 'CALENDAR_PROVIDER_GOOGLE_ENABLED=${CALENDAR_PROVIDER_GOOGLE_ENABLED}'
- 'AUTH_GOOGLE_APIS_CALLBACK_URL=${AUTH_GOOGLE_APIS_CALLBACK_URL}'
- 'AUTH_GOOGLE_CLIENT_ID=${AUTH_GOOGLE_CLIENT_ID}'
- 'AUTH_GOOGLE_CLIENT_SECRET=${AUTH_GOOGLE_CLIENT_SECRET}'
- 'AUTH_GOOGLE_CALLBACK_URL=${AUTH_GOOGLE_CALLBACK_URL}'
- 'AUTH_GOOGLE_ENABLED=${AUTH_GOOGLE_ENABLED}'
- 'ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}'
- 'LOGIN_TOKEN_SECRET=${LOGIN_TOKEN_SECRET}'
- 'REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}'
- 'FILE_TOKEN_SECRET=${FILE_TOKEN_SECRET}'
depends_on:
db:
condition: service_healthy
healthcheck:
test: 'curl --fail http://localhost:3000/healthz'
interval: 5s
timeout: 5s
retries: 10
restart: always
db:
image: 'twentycrm/twenty-postgres:${TAG}'
volumes:
- 'db-data:/bitnami/postgresql'
environment:
- 'POSTGRES_PASSWORD=${POSTGRES_ADMIN_PASSWORD}'
healthcheck:
test: 'pg_isready -U twenty -d default'
interval: 5s
timeout: 5s
retries: 10
restart: always
volumes:
docker-data: { }
db-data: { }
server-local-data: { }
services:
server:
image: 'twentycrm/twenty:${TAG}'
volumes:
- 'server-local-data:/app/packages/twenty-server/$${STORAGE_LOCAL_PATH:-.local-storage}'
- 'docker-data:/app/docker-data'
ports:
- '3000:3000'
environment:
- PORT=3000
- 'PG_DATABASE_URL=postgres://twenty:twenty@${PG_DATABASE_HOST}/default'
- 'SERVER_URL=${SERVER_URL}'
- 'IS_SIGN_UP_DISABLED=${IS_SIGN_UP_DISABLED}'
- 'FRONT_BASE_URL=${FRONT_BASE_URL:-$SERVER_URL}'
- 'MESSAGE_QUEUE_TYPE=${MESSAGE_QUEUE_TYPE}'
- ENABLE_DB_MIGRATIONS=true
- 'STORAGE_TYPE=${STORAGE_TYPE}'
- 'STORAGE_S3_REGION=${STORAGE_S3_REGION}'
- 'STORAGE_S3_NAME=${STORAGE_S3_NAME}'
- 'STORAGE_S3_ENDPOINT=${STORAGE_S3_ENDPOINT}'
- 'MESSAGING_PROVIDER_GMAIL_ENABLED=${MESSAGING_PROVIDER_GMAIL_ENABLED}'
- 'CALENDAR_PROVIDER_GOOGLE_ENABLED=${CALENDAR_PROVIDER_GOOGLE_ENABLED}'
- 'AUTH_GOOGLE_APIS_CALLBACK_URL=${AUTH_GOOGLE_APIS_CALLBACK_URL}'
- 'AUTH_GOOGLE_CLIENT_ID=${AUTH_GOOGLE_CLIENT_ID}'
- 'AUTH_GOOGLE_CLIENT_SECRET=${AUTH_GOOGLE_CLIENT_SECRET}'
- 'AUTH_GOOGLE_CALLBACK_URL=${AUTH_GOOGLE_CALLBACK_URL}'
- 'AUTH_GOOGLE_ENABLED=${AUTH_GOOGLE_ENABLED}'
- 'ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}'
- 'LOGIN_TOKEN_SECRET=${LOGIN_TOKEN_SECRET}'
- 'REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}'
- 'FILE_TOKEN_SECRET=${FILE_TOKEN_SECRET}'
depends_on:
db:
condition: service_healthy
healthcheck:
test: 'curl --fail http://localhost:3000/healthz'
interval: 5s
timeout: 5s
retries: 10
restart: always
db:
image: 'twentycrm/twenty-postgres:${TAG}'
volumes:
- 'db-data:/bitnami/postgresql'
environment:
- 'POSTGRES_PASSWORD=${POSTGRES_ADMIN_PASSWORD}'
healthcheck:
test: 'pg_isready -U twenty -d default'
interval: 5s
timeout: 5s
retries: 10
restart: always
volumes:
docker-data: { }
db-data: { }
server-local-data: { }
and yes I removed the "change-vol-ownership" part as well as the worker it was for my tests that I have not finished but I will update this conversation in the future
Tom Ebeyer
Tom Ebeyer4mo ago
^ ty I'm also using coolify let me know when you have workers, etc working
Uranium
Uranium4mo ago
👌 Good evening, after more than 20 reinstallations of Twenty i finally made a docker-compose that works on coolify but a problem persists that of the "change-vol-ownership" that i can't fix but it works without and i don't know how important this party is but until i find the problem i put the new version HERE. By the way on coolify there is already Twenty you just have to search for it but it hasn't been updated for a long time I don't know who should do this but it would be nice if it was done. Similarly, when I re-import my backups, I have to recreate the data models by hand so that the data is put in the right columns, which is a bit silly in my opinion. But once again, thanks to the coolify team for what they do 🙂 Bonne soirée. Translated with DeepL.com (free version)
version: '3.7'
services:
server:
image: 'twentycrm/twenty:${TAG}'
volumes:
- 'server-local-data:/app/packages/twenty-server/$${STORAGE_LOCAL_PATH:-.local-storage}'
- 'docker-data:/app/docker-data'
ports:
- '3000:3000'
environment:
- PORT=3000
- 'PG_DATABASE_URL=postgres://twenty:twenty@${PG_DATABASE_HOST}/default'
- 'SERVER_URL=${SERVER_URL}'
- 'IS_SIGN_UP_DISABLED=${IS_SIGN_UP_DISABLED}'
- 'FRONT_BASE_URL=${FRONT_BASE_URL:-$SERVER_URL}'
- 'MESSAGE_QUEUE_TYPE=${MESSAGE_QUEUE_TYPE}'
- ENABLE_DB_MIGRATIONS=true
- 'STORAGE_TYPE=${STORAGE_TYPE}'
- 'STORAGE_S3_REGION=${STORAGE_S3_REGION}'
- 'STORAGE_S3_NAME=${STORAGE_S3_NAME}'
- 'STORAGE_S3_ENDPOINT=${STORAGE_S3_ENDPOINT}'
- 'MESSAGING_PROVIDER_GMAIL_ENABLED=${MESSAGING_PROVIDER_GMAIL_ENABLED}'
- 'CALENDAR_PROVIDER_GOOGLE_ENABLED=${CALENDAR_PROVIDER_GOOGLE_ENABLED}'
- 'AUTH_GOOGLE_APIS_CALLBACK_URL=${AUTH_GOOGLE_APIS_CALLBACK_URL}'
- 'AUTH_GOOGLE_CLIENT_ID=${AUTH_GOOGLE_CLIENT_ID}'
- 'AUTH_GOOGLE_CLIENT_SECRET=${AUTH_GOOGLE_CLIENT_SECRET}'
- 'AUTH_GOOGLE_CALLBACK_URL=${AUTH_GOOGLE_CALLBACK_URL}'
- 'AUTH_GOOGLE_ENABLED=${AUTH_GOOGLE_ENABLED}'
- 'ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}'
- 'LOGIN_TOKEN_SECRET=${LOGIN_TOKEN_SECRET}'
- 'REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}'
- 'FILE_TOKEN_SECRET=${FILE_TOKEN_SECRET}'
depends_on:
db:
condition: service_healthy
healthcheck:
test: 'curl --fail http://localhost:3000/healthz'
interval: 5s
timeout: 5s
retries: 10
restart: always
worker:
image: 'twentycrm/twenty:${TAG}'
command:
- yarn
- 'worker:prod'
environment:
- 'PG_DATABASE_URL=postgres://twenty:twenty@${PG_DATABASE_HOST}/default'
- 'SERVER_URL=${SERVER_URL}'
- 'IS_SIGN_UP_DISABLED=${IS_SIGN_UP_DISABLED}'
- 'FRONT_BASE_URL=${FRONT_BASE_URL:-$SERVER_URL}'
- 'MESSAGE_QUEUE_TYPE=${MESSAGE_QUEUE_TYPE}'
- ENABLE_DB_MIGRATIONS=false
- 'STORAGE_TYPE=${STORAGE_TYPE}'
- 'STORAGE_S3_REGION=${STORAGE_S3_REGION}'
- 'STORAGE_S3_NAME=${STORAGE_S3_NAME}'
- 'STORAGE_S3_ENDPOINT=${STORAGE_S3_ENDPOINT}'
- 'MESSAGING_PROVIDER_GMAIL_ENABLED=${MESSAGING_PROVIDER_GMAIL_ENABLED}'
- 'CALENDAR_PROVIDER_GOOGLE_ENABLED=${CALENDAR_PROVIDER_GOOGLE_ENABLED}'
- 'AUTH_GOOGLE_APIS_CALLBACK_URL=${AUTH_GOOGLE_APIS_CALLBACK_URL}'
- 'AUTH_GOOGLE_CLIENT_ID=${AUTH_GOOGLE_CLIENT_ID}'
- 'AUTH_GOOGLE_CLIENT_SECRET=${AUTH_GOOGLE_CLIENT_SECRET}'
- 'AUTH_GOOGLE_CALLBACK_URL=${AUTH_GOOGLE_CALLBACK_URL}'
- 'AUTH_GOOGLE_ENABLED=${AUTH_GOOGLE_ENABLED}'
- 'ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}'
- 'LOGIN_TOKEN_SECRET=${LOGIN_TOKEN_SECRET}'
- 'REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}'
- 'FILE_TOKEN_SECRET=${FILE_TOKEN_SECRET}'
depends_on:
db:
condition: service_healthy
server:
condition: service_healthy
restart: always
db:
image: 'twentycrm/twenty-postgres:${TAG}'
volumes:
- 'db-data:/bitnami/postgresql'
environment:
- 'POSTGRES_PASSWORD=${POSTGRES_ADMIN_PASSWORD}'
healthcheck:
test: 'pg_isready -U twenty -d default'
interval: 5s
timeout: 5s
retries: 10
restart: always
volumes:
docker-data: { }
db-data: { }
server-local-data: { }
version: '3.7'
services:
server:
image: 'twentycrm/twenty:${TAG}'
volumes:
- 'server-local-data:/app/packages/twenty-server/$${STORAGE_LOCAL_PATH:-.local-storage}'
- 'docker-data:/app/docker-data'
ports:
- '3000:3000'
environment:
- PORT=3000
- 'PG_DATABASE_URL=postgres://twenty:twenty@${PG_DATABASE_HOST}/default'
- 'SERVER_URL=${SERVER_URL}'
- 'IS_SIGN_UP_DISABLED=${IS_SIGN_UP_DISABLED}'
- 'FRONT_BASE_URL=${FRONT_BASE_URL:-$SERVER_URL}'
- 'MESSAGE_QUEUE_TYPE=${MESSAGE_QUEUE_TYPE}'
- ENABLE_DB_MIGRATIONS=true
- 'STORAGE_TYPE=${STORAGE_TYPE}'
- 'STORAGE_S3_REGION=${STORAGE_S3_REGION}'
- 'STORAGE_S3_NAME=${STORAGE_S3_NAME}'
- 'STORAGE_S3_ENDPOINT=${STORAGE_S3_ENDPOINT}'
- 'MESSAGING_PROVIDER_GMAIL_ENABLED=${MESSAGING_PROVIDER_GMAIL_ENABLED}'
- 'CALENDAR_PROVIDER_GOOGLE_ENABLED=${CALENDAR_PROVIDER_GOOGLE_ENABLED}'
- 'AUTH_GOOGLE_APIS_CALLBACK_URL=${AUTH_GOOGLE_APIS_CALLBACK_URL}'
- 'AUTH_GOOGLE_CLIENT_ID=${AUTH_GOOGLE_CLIENT_ID}'
- 'AUTH_GOOGLE_CLIENT_SECRET=${AUTH_GOOGLE_CLIENT_SECRET}'
- 'AUTH_GOOGLE_CALLBACK_URL=${AUTH_GOOGLE_CALLBACK_URL}'
- 'AUTH_GOOGLE_ENABLED=${AUTH_GOOGLE_ENABLED}'
- 'ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}'
- 'LOGIN_TOKEN_SECRET=${LOGIN_TOKEN_SECRET}'
- 'REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}'
- 'FILE_TOKEN_SECRET=${FILE_TOKEN_SECRET}'
depends_on:
db:
condition: service_healthy
healthcheck:
test: 'curl --fail http://localhost:3000/healthz'
interval: 5s
timeout: 5s
retries: 10
restart: always
worker:
image: 'twentycrm/twenty:${TAG}'
command:
- yarn
- 'worker:prod'
environment:
- 'PG_DATABASE_URL=postgres://twenty:twenty@${PG_DATABASE_HOST}/default'
- 'SERVER_URL=${SERVER_URL}'
- 'IS_SIGN_UP_DISABLED=${IS_SIGN_UP_DISABLED}'
- 'FRONT_BASE_URL=${FRONT_BASE_URL:-$SERVER_URL}'
- 'MESSAGE_QUEUE_TYPE=${MESSAGE_QUEUE_TYPE}'
- ENABLE_DB_MIGRATIONS=false
- 'STORAGE_TYPE=${STORAGE_TYPE}'
- 'STORAGE_S3_REGION=${STORAGE_S3_REGION}'
- 'STORAGE_S3_NAME=${STORAGE_S3_NAME}'
- 'STORAGE_S3_ENDPOINT=${STORAGE_S3_ENDPOINT}'
- 'MESSAGING_PROVIDER_GMAIL_ENABLED=${MESSAGING_PROVIDER_GMAIL_ENABLED}'
- 'CALENDAR_PROVIDER_GOOGLE_ENABLED=${CALENDAR_PROVIDER_GOOGLE_ENABLED}'
- 'AUTH_GOOGLE_APIS_CALLBACK_URL=${AUTH_GOOGLE_APIS_CALLBACK_URL}'
- 'AUTH_GOOGLE_CLIENT_ID=${AUTH_GOOGLE_CLIENT_ID}'
- 'AUTH_GOOGLE_CLIENT_SECRET=${AUTH_GOOGLE_CLIENT_SECRET}'
- 'AUTH_GOOGLE_CALLBACK_URL=${AUTH_GOOGLE_CALLBACK_URL}'
- 'AUTH_GOOGLE_ENABLED=${AUTH_GOOGLE_ENABLED}'
- 'ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}'
- 'LOGIN_TOKEN_SECRET=${LOGIN_TOKEN_SECRET}'
- 'REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}'
- 'FILE_TOKEN_SECRET=${FILE_TOKEN_SECRET}'
depends_on:
db:
condition: service_healthy
server:
condition: service_healthy
restart: always
db:
image: 'twentycrm/twenty-postgres:${TAG}'
volumes:
- 'db-data:/bitnami/postgresql'
environment:
- 'POSTGRES_PASSWORD=${POSTGRES_ADMIN_PASSWORD}'
healthcheck:
test: 'pg_isready -U twenty -d default'
interval: 5s
timeout: 5s
retries: 10
restart: always
volumes:
docker-data: { }
db-data: { }
server-local-data: { }
childishbenbino
childishbenbino4mo ago
Hey man! This looks money- I want to do the exact same thing. Im gonna try this out later tonight. I know this isn't Coolify-related but curious... is S3 storage required for Twenty deployment? Or is there some default local storage that Twenty offers?
childishbenbino
childishbenbino4mo ago
After trying to run @Uranium 's docker-compose above in Coolify, I got an error about the Worker not properly running. Anybody got ideas here? I can't find any good logs for this
No description
childishbenbino
childishbenbino4mo ago
Im curious to know if every environment variable is required? Notably, the S3 and Google Auth variables? My hope was to get something working before I go the extra to create all of these values
charles
charles4mo ago
HI @childishbenbino, twenty comes with two different file drivers at the moment. Local disk storage and S3 storage. By default, it's using local disk storage and storing on the machine. https://twenty.com/developers/section/self-hosting/self-hosting-var#storage For production environment (espcially in a stateless architecture), I would recommend using S3. For a POC, you can use local You don't have to set GOOGLE_AUTH and S3 to have the worker properly running. Could you share some logs?
Uranium
Uranium4mo ago
Hello, hmm... i don't use S3 and irs works... I send you my env soon i'm not at home
childishbenbino
childishbenbino4mo ago
Thanks for the info @charles ! I'm currently in the POC phase, so I appreciate the local storage option. I think the quirk here is the nuance in deploying on Coolify. I appreciate @Uranium future follow-up to see his .env setup. And @charles , please take note of OP's comment about Coolify's Twenty resource being outdated! Not sure who's responsible for updating thsi
childishbenbino
childishbenbino4mo ago
Attached is my compose file. You see that I removed all S3 and Google auth calls. I provide the values for I did as the default. According to Coolify, the server and DB and running healthy, but the worker exited.
Uranium
Uranium4mo ago
Hey, @charles @childishbenbino this is my .env
ACCESS_TOKEN_SECRET=xxxxxxx
AUTH_GOOGLE_APIS_CALLBACK_URL=https://crm.xxxxxxx.fr/auth/google-apis/get-access-token
AUTH_GOOGLE_CALLBACK_URL=https://crm.xxxxxxx.fr/auth/google/redirect
AUTH_GOOGLE_CLIENT_ID=xxxxxxx-xxxxxxx.apps.googleusercontent.com
AUTH_GOOGLE_CLIENT_SECRET=xxxxxxx-xxxxxxx-xxxxxxx
AUTH_GOOGLE_ENABLED=true
CALENDAR_PROVIDER_GOOGLE_ENABLED=true
FILE_TOKEN_SECRET=xxxxxxx
FRONT_BASE_URL=https://crm.xxxxxxx.fr
IS_SIGN_UP_DISABLED=false
LOGIN_TOKEN_SECRET=xxxxxxx
MESSAGE_QUEUE_TYPE=pg-boss
MESSAGING_PROVIDER_GMAIL_ENABLED=true
PG_DATABASE_HOST=db:5432
POSTGRES_ADMIN_PASSWORD=xxxxxxx
REFRESH_TOKEN_SECRET=xxxxxxx
SERVER_URL=https://crm.xxxxxxx.fr
SIGN_IN_PREFILLED=false
STORAGE_S3_ENDPOINT=
STORAGE_S3_NAME=
STORAGE_S3_REGION=
STORAGE_TYPE=local
TAG=latest
ACCESS_TOKEN_SECRET=xxxxxxx
AUTH_GOOGLE_APIS_CALLBACK_URL=https://crm.xxxxxxx.fr/auth/google-apis/get-access-token
AUTH_GOOGLE_CALLBACK_URL=https://crm.xxxxxxx.fr/auth/google/redirect
AUTH_GOOGLE_CLIENT_ID=xxxxxxx-xxxxxxx.apps.googleusercontent.com
AUTH_GOOGLE_CLIENT_SECRET=xxxxxxx-xxxxxxx-xxxxxxx
AUTH_GOOGLE_ENABLED=true
CALENDAR_PROVIDER_GOOGLE_ENABLED=true
FILE_TOKEN_SECRET=xxxxxxx
FRONT_BASE_URL=https://crm.xxxxxxx.fr
IS_SIGN_UP_DISABLED=false
LOGIN_TOKEN_SECRET=xxxxxxx
MESSAGE_QUEUE_TYPE=pg-boss
MESSAGING_PROVIDER_GMAIL_ENABLED=true
PG_DATABASE_HOST=db:5432
POSTGRES_ADMIN_PASSWORD=xxxxxxx
REFRESH_TOKEN_SECRET=xxxxxxx
SERVER_URL=https://crm.xxxxxxx.fr
SIGN_IN_PREFILLED=false
STORAGE_S3_ENDPOINT=
STORAGE_S3_NAME=
STORAGE_S3_REGION=
STORAGE_TYPE=local
TAG=latest
childishbenbino
childishbenbino4mo ago
And I assume you have Build variable? checked for all of them in Coolify?
No description
Uranium
Uranium4mo ago
no i don't have this checked
childishbenbino
childishbenbino4mo ago
Interesting. @Uranium , looking at my compose file above, do you see anything off?
Uranium
Uranium4mo ago
No, I don't particularly see any issues. However, the variable ${STORAGE_LOCAL_PATH:-.local-storage} didn't work for me, even with special character escaping disabled. I had to replace it with $${STORAGE_LOCAL_PATH:-.local-storage}. Yet, in the rest of the docker-compose file, it works fine. Nevertheless, Coolify still replaces certain lines, especially for the change-vol-ownership part, where the characters are always escaped, which prevents the container from starting. I'll try your docker compose on my coolify instance look i have the sam error
Uranium
Uranium4mo ago
No description
childishbenbino
childishbenbino4mo ago
Interesting, let me try
Uranium
Uranium4mo ago
and if i do no replace by this 2 lines - 'server-local-data:/app/packages/twenty-server/$${STORAGE_LOCAL_PATH:-.local-storage}' - 'docker-data:/app/docker-data' this is not work
childishbenbino
childishbenbino4mo ago
You running this on AWS? What are your VPS specs?
Uranium
Uranium4mo ago
not aws just VPS, OS: Debian 12 24G RAM 6 cores but VPS is not the problem idk...
childishbenbino
childishbenbino4mo ago
Yeah, I thought not. Okay, I added the a second $ , as recommended. Im going to try again
Uranium
Uranium4mo ago
okok
childishbenbino
childishbenbino4mo ago
Damn, same thing
No description
Uranium
Uranium4mo ago
what is error ?
childishbenbino
childishbenbino4mo ago
And the logs section is giving me nothing...
Uranium
Uranium4mo ago
oh yes because the container is not start.
childishbenbino
childishbenbino4mo ago
I go to Logs, hit "Refresh" on Worker, and it comes up blank
childishbenbino
childishbenbino4mo ago
The Server and DB logs look healthy to me 🤔
No description
Uranium
Uranium4mo ago
can you try this ? this is my own docker compose and works for me.
version: '3.7'
name: twenty
services:
server:
image: 'twentycrm/twenty:${TAG}'
volumes:
- 'server-local-data:/app/packages/twenty-server/$${STORAGE_LOCAL_PATH:-.local-storage}'
- 'docker-data:/app/docker-data'
ports:
- '3000:3000'
environment:
- PORT=3000
- 'PG_DATABASE_URL=postgres://twenty:twenty@${PG_DATABASE_HOST}/default'
- 'SERVER_URL=${SERVER_URL}'
- 'IS_SIGN_UP_DISABLED=${IS_SIGN_UP_DISABLED}'
- 'FRONT_BASE_URL=${FRONT_BASE_URL:-$SERVER_URL}'
- 'MESSAGE_QUEUE_TYPE=${MESSAGE_QUEUE_TYPE}'
- ENABLE_DB_MIGRATIONS=true
- 'STORAGE_TYPE=${STORAGE_TYPE}'
- 'ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}'
- 'LOGIN_TOKEN_SECRET=${LOGIN_TOKEN_SECRET}'
- 'REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}'
- 'FILE_TOKEN_SECRET=${FILE_TOKEN_SECRET}'
depends_on:
db:
condition: service_healthy
healthcheck:
test: 'curl --fail http://localhost:3000/healthz'
interval: 5s
timeout: 5s
retries: 10
restart: always
worker:
image: 'twentycrm/twenty:${TAG}'
command:
- yarn
- 'worker:prod'
environment:
- 'PG_DATABASE_URL=postgres://twenty:twenty@${PG_DATABASE_HOST}/default'
- 'SERVER_URL=${SERVER_URL}'
- 'IS_SIGN_UP_DISABLED=${IS_SIGN_UP_DISABLED}'
- 'FRONT_BASE_URL=${FRONT_BASE_URL:-$SERVER_URL}'
- 'MESSAGE_QUEUE_TYPE=${MESSAGE_QUEUE_TYPE}'
- ENABLE_DB_MIGRATIONS=false
- 'STORAGE_TYPE=${STORAGE_TYPE}'
- 'ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}'
- 'LOGIN_TOKEN_SECRET=${LOGIN_TOKEN_SECRET}'
- 'REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}'
- 'FILE_TOKEN_SECRET=${FILE_TOKEN_SECRET}'
depends_on:
db:
condition: service_healthy
server:
condition: service_healthy
restart: always
db:
image: 'twentycrm/twenty-postgres:${TAG}'
volumes:
- 'db-data:/bitnami/postgresql'
environment:
- 'POSTGRES_PASSWORD=${POSTGRES_ADMIN_PASSWORD}'
healthcheck:
test: 'pg_isready -U twenty -d default'
interval: 5s
timeout: 5s
retries: 10
restart: always
volumes:
docker-data: { }
db-data: { }
server-local-data: { }
version: '3.7'
name: twenty
services:
server:
image: 'twentycrm/twenty:${TAG}'
volumes:
- 'server-local-data:/app/packages/twenty-server/$${STORAGE_LOCAL_PATH:-.local-storage}'
- 'docker-data:/app/docker-data'
ports:
- '3000:3000'
environment:
- PORT=3000
- 'PG_DATABASE_URL=postgres://twenty:twenty@${PG_DATABASE_HOST}/default'
- 'SERVER_URL=${SERVER_URL}'
- 'IS_SIGN_UP_DISABLED=${IS_SIGN_UP_DISABLED}'
- 'FRONT_BASE_URL=${FRONT_BASE_URL:-$SERVER_URL}'
- 'MESSAGE_QUEUE_TYPE=${MESSAGE_QUEUE_TYPE}'
- ENABLE_DB_MIGRATIONS=true
- 'STORAGE_TYPE=${STORAGE_TYPE}'
- 'ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}'
- 'LOGIN_TOKEN_SECRET=${LOGIN_TOKEN_SECRET}'
- 'REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}'
- 'FILE_TOKEN_SECRET=${FILE_TOKEN_SECRET}'
depends_on:
db:
condition: service_healthy
healthcheck:
test: 'curl --fail http://localhost:3000/healthz'
interval: 5s
timeout: 5s
retries: 10
restart: always
worker:
image: 'twentycrm/twenty:${TAG}'
command:
- yarn
- 'worker:prod'
environment:
- 'PG_DATABASE_URL=postgres://twenty:twenty@${PG_DATABASE_HOST}/default'
- 'SERVER_URL=${SERVER_URL}'
- 'IS_SIGN_UP_DISABLED=${IS_SIGN_UP_DISABLED}'
- 'FRONT_BASE_URL=${FRONT_BASE_URL:-$SERVER_URL}'
- 'MESSAGE_QUEUE_TYPE=${MESSAGE_QUEUE_TYPE}'
- ENABLE_DB_MIGRATIONS=false
- 'STORAGE_TYPE=${STORAGE_TYPE}'
- 'ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET}'
- 'LOGIN_TOKEN_SECRET=${LOGIN_TOKEN_SECRET}'
- 'REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET}'
- 'FILE_TOKEN_SECRET=${FILE_TOKEN_SECRET}'
depends_on:
db:
condition: service_healthy
server:
condition: service_healthy
restart: always
db:
image: 'twentycrm/twenty-postgres:${TAG}'
volumes:
- 'db-data:/bitnami/postgresql'
environment:
- 'POSTGRES_PASSWORD=${POSTGRES_ADMIN_PASSWORD}'
healthcheck:
test: 'pg_isready -U twenty -d default'
interval: 5s
timeout: 5s
retries: 10
restart: always
volumes:
docker-data: { }
db-data: { }
server-local-data: { }
just remove variables you don't need
childishbenbino
childishbenbino4mo ago
But, will that break something lol I'll remove all the GMAIL and GOOGLE envs
Uranium
Uranium4mo ago
Impossible my first test is without GMAIL and GOOGLE and works... hmm i remove it
childishbenbino
childishbenbino4mo ago
Is it okay if I set the SERVER_URL to http://localhost:3000?
Uranium
Uranium4mo ago
yes but instance is on your desktop or VPS ?
childishbenbino
childishbenbino4mo ago
VPS An AWS EC2 Ohhhh...
Uranium
Uranium4mo ago
you can test and go to http://ipofserver:3000/ if this is not work replace localhost by ip of server but coolify will always cause problems I don't know why and it's annoying that you always have to debug. coolify tell me my worker is (unhealthy) but when i run docker ps my worker is healthy...
Uranium
Uranium4mo ago
No description
childishbenbino
childishbenbino4mo ago
Still unable to start the worker, after changing the local host path Maybe I should try without Coolify...
charles
charles4mo ago
Very weird that you don't have any logs, and your docker-file looks fine to me. Unfortunately I don't have any experience with coolify
childishbenbino
childishbenbino4mo ago
Im running Coolify on a t2.medium EC2 (4gb memory) https://discord.com/channels/1130383047699738754/1216007393729708182/1216012474705252532 ^ im wondering if the server Im trying to run it on is so small that there's no chance
charles
charles3mo ago
might be too small indeed to run the whole stack
Yazane
Yazane3mo ago
Hello All, I installed Twenty with Docker, the problem is Gmail sync is not working, here is my env AUTH_GOOGLE_APIS_CALLBACK_URL=xxx.xxx/auth/google-apis/get-access-token AUTH_GOOGLE_CALLBACK_URL=xxxx.xxxx/auth/google/redirect AUTH_GOOGLE_ENABLED=true CALENDAR_PROVIDER_GOOGLE_ENABLED=true MESSAGING_PROVIDER_GMAIL_ENABLED=true
Want results from more Discord servers?
Add your server