This commit is contained in:
Andrei Canta
2025-07-03 16:01:58 +03:00
parent 405fd49534
commit e0e7cbeeef
21 changed files with 511 additions and 102 deletions
-1
View File
@@ -7,7 +7,6 @@ TAG=latest
REDIS_URL=redis://redis:6379
SERVER_URL=https://$(PRIMARY_DOMAIN)
SIGN_IN_PREFILLED=false
# Use openssl rand -base64 32 for each secret
APP_SECRET=replace_me_with_a_random_string
+4 -1
View File
@@ -10,6 +10,8 @@ services:
PG_DATABASE_URL: postgres://${PG_DATABASE_USER:-postgres}:${PG_DATABASE_PASSWORD:-postgres}@${PG_DATABASE_HOST:-db}:${PG_DATABASE_PORT:-5432}/default
SERVER_URL: ${SERVER_URL}
REDIS_URL: ${REDIS_URL:-redis://redis:6379}
DISABLE_DB_MIGRATIONS: ${DISABLE_DB_MIGRATIONS}
DISABLE_CRON_JOBS_REGISTRATION: ${DISABLE_CRON_JOBS_REGISTRATION}
STORAGE_TYPE: ${STORAGE_TYPE}
STORAGE_S3_REGION: ${STORAGE_S3_REGION}
@@ -54,13 +56,14 @@ services:
worker:
image: twentycrm/twenty:${TAG:-latest}
volumes:
- server-local-data:/app/packages/twenty-server/${STORAGE_LOCAL_PATH:-.local-storage}
- server-local-data:/app/packages/twenty-server/.local-storage
command: [ "yarn", "worker:prod" ]
environment:
PG_DATABASE_URL: postgres://${PG_DATABASE_USER:-postgres}:${PG_DATABASE_PASSWORD:-postgres}@${PG_DATABASE_HOST:-db}:${PG_DATABASE_PORT:-5432}/default
SERVER_URL: ${SERVER_URL}
REDIS_URL: ${REDIS_URL:-redis://redis:6379}
DISABLE_DB_MIGRATIONS: "true" # it already runs on the server
DISABLE_CRON_JOBS_REGISTRATION: "true" # it already runs on the server
STORAGE_TYPE: ${STORAGE_TYPE}
STORAGE_S3_REGION: ${STORAGE_S3_REGION}
@@ -0,0 +1,15 @@
apiVersion: 1
datasources:
- name: ClickHouse
type: grafana-clickhouse-datasource
uid: clickhouse_datasource
jsonData:
server: twenty_clickhouse
defaultDatabase: twenty_dev
port: 9000
protocol: native
tlsSkipVerify: true
username: default
secureJsonData:
password: devPassword
@@ -0,0 +1,24 @@
receivers:
otlp:
protocols:
http:
endpoint: "0.0.0.0:4318"
exporters:
clickhouse:
endpoint: tcp://twenty_clickhouse:9000
database: twenty_dev
username: default
password: devPassword
debug:
verbosity: detailed
processors:
batch:
service:
pipelines:
metrics:
receivers: [otlp]
processors: [batch]
exporters: [clickhouse, debug]
+1 -1
View File
@@ -94,7 +94,7 @@ echo "# === Randomly generated secret ===" >> .env
echo "APP_SECRET=$(openssl rand -base64 32)" >> .env
echo "" >> .env
echo "PG_DATABASE_PASSWORD=$(openssl rand -hex 16)" >> .env
echo "PG_DATABASE_PASSWORD=$(openssl rand -hex 32)" >> .env
echo -e "\t• .env configuration completed"
+2 -2
View File
@@ -1,4 +1,4 @@
FROM node:18.17.1-alpine as twenty-website-build
FROM node:22-alpine as twenty-website-build
WORKDIR /app
@@ -23,7 +23,7 @@ COPY ./packages/twenty-ui /app/packages/twenty-ui
COPY ./packages/twenty-website /app/packages/twenty-website
RUN npx nx build twenty-website
FROM node:18.17.1-alpine as twenty-website
FROM node:22-alpine as twenty-website
WORKDIR /app/packages/twenty-website
+2 -2
View File
@@ -1,5 +1,5 @@
# Base image for common dependencies
FROM node:18.17.1-alpine as common-deps
FROM node:22-alpine as common-deps
WORKDIR /app
@@ -49,7 +49,7 @@ RUN npx nx build twenty-front
# Final stage: Run the application
FROM node:18.17.1-alpine as twenty
FROM node:22-alpine as twenty
# Used to run healthcheck in docker
RUN apk add --no-cache curl jq
+18 -1
View File
@@ -12,7 +12,7 @@ setup_and_migrate_db() {
PGPASS=$(echo $PG_DATABASE_URL | awk -F ':' '{print $3}' | awk -F '@' '{print $1}')
PGHOST=$(echo $PG_DATABASE_URL | awk -F '@' '{print $2}' | awk -F ':' '{print $1}')
PGPORT=$(echo $PG_DATABASE_URL | awk -F ':' '{print $4}' | awk -F '/' '{print $1}')
PGDATABASE=$(echo $PG_DATABASE_URL | awk -F ':' '{print $4}' | awk -F '/' '{print $2}')
PGDATABASE=$(echo $PG_DATABASE_URL | awk -F '/' '{print $NF}' | cut -d'?' -f1)
# Creating the database if it doesn't exist
db_count=$(PGPASSWORD=${PGPASS} psql -h ${PGHOST} -p ${PGPORT} -U ${PGUSER} -d postgres -tAc "SELECT COUNT(*) FROM pg_database WHERE datname = '${PGDATABASE}'")
@@ -22,12 +22,29 @@ setup_and_migrate_db() {
# Run setup and migration scripts
NODE_OPTIONS="--max-old-space-size=1500" tsx ./scripts/setup-db.ts
yarn database:migrate:prod
fi
yarn command:prod upgrade
echo "Successfully migrated DB!"
}
register_background_jobs() {
if [ "${DISABLE_CRON_JOBS_REGISTRATION}" = "true" ]; then
echo "Cron job registration is disabled, skipping..."
return
fi
echo "Registering background sync jobs..."
if yarn command:prod cron:register:all; then
echo "Successfully registered all background sync jobs!"
else
echo "Warning: Failed to register background jobs, but continuing startup..."
fi
}
setup_and_migrate_db
register_background_jobs
# Continue with the original Docker command
exec "$@"