twenty - A Modern Open Source CRM
-
OK - Internally, this went from "looks cool" couple of days ago to "must have" a few moments ago.
Beside with my unlimited gratitude and limited packaging skills and experience, is there any other way I can help make Twenty on Cloudron happen sooner than later? -
Latest Releases : 1.2.0 Jul 28th
Import Relations
When importing records, you can now import relations between records. For example, you can import a CSV file that includes a column for related records, such as linking contacts to companies or tasks to projects.Any Field filter
We’ve added an "any field search" filter that lets you search across all fields at once. For example, it can allow you to locate a customer by their phone number, whether it's stored in the "Mobile," "Office," or "Direct Line" field. -
OK - Internally, this went from "looks cool" couple of days ago to "must have" a few moments ago.
Beside with my unlimited gratitude and limited packaging skills and experience, is there any other way I can help make Twenty on Cloudron happen sooner than later?@Neiluj
Currently, I am installing Twenty using Docker Compose as shown below, but I don’t understand what needs to be done when switching to Cloudron. I hope Twenty will be integrated into Cloudron soon. After using it for a while, I found that this CRM is very powerful and customizable to serve different business needs within an enterprise.version: '3.8' services: change-vol-ownership: image: 'ubuntu:latest' user: root volumes: - 'twenty-server-local-data:/tmp/server-local-data' - 'twenty-docker-data:/tmp/docker-data' command: | bash -c " chown -R 1000:1000 /tmp/server-local-data && chown -R 1000:1000 /tmp/docker-data && echo 'Volume ownership changed successfully' " restart: "no" networks: - twenty-network db: image: 'twentycrm/twenty-postgres-spilo:latest' container_name: twenty-db volumes: - 'twenty-db-data:/home/postgres/pgdata' environment: PGUSER: postgres POSTGRES_PASSWORD: ${PG_DATABASE_PASSWORD:-ChangeThisPassword123!} POSTGRES_DB: postgres SPILO_ROLE: master networks: - twenty-network restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 30s timeout: 10s retries: 5 start_period: 60s redis: image: 'redis:7-alpine' container_name: twenty-redis volumes: - 'twenty-redis-data:/data' networks: - twenty-network restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 10s retries: 5 start_period: 10s server: image: 'twentycrm/twenty:v1.1' container_name: twenty-server depends_on: change-vol-ownership: condition: service_completed_successfully db: condition: service_healthy redis: condition: service_healthy volumes: - 'twenty-server-local-data:/app/packages/twenty-server/.local-storage' - 'twenty-docker-data:/app/docker-data' ports: - "${EXTERNAL_PORT:-3000}:3000" environment: NODE_PORT: 3000 PG_DATABASE_URL: 'postgres://${PG_DATABASE_USER:-postgres}:${PG_DATABASE_PASSWORD:-ChangeThisPassword123!}@db:5432/postgres' SERVER_URL: '${SERVER_URL:-http://localhost:3000}' REDIS_URL: 'redis://redis:6379' APP_SECRET: '${APP_SECRET:-please-change-this-secret-key}' STORAGE_TYPE: '${STORAGE_TYPE:-local}' STORAGE_LOCAL_PATH: '${STORAGE_LOCAL_PATH:-.local-storage}' # Email Configuration EMAIL_DRIVER: '${EMAIL_DRIVER:-logger}' EMAIL_FROM_ADDRESS: '${EMAIL_FROM_ADDRESS:-noreply@localhost}' EMAIL_FROM_NAME: '${EMAIL_FROM_NAME:-Twenty CRM}' EMAIL_SMTP_HOST: '${EMAIL_SMTP_HOST:-}' EMAIL_SMTP_PORT: '${EMAIL_SMTP_PORT:-587}' EMAIL_SMTP_USER: '${EMAIL_SMTP_USER:-}' EMAIL_SMTP_PASSWORD: '${EMAIL_SMTP_PASSWORD:-}' EMAIL_SYSTEM_ADDRESS: '${EMAIL_SYSTEM_ADDRESS:-admin@localhost}' # AI Features IS_AI_ENABLED: '${IS_AI_ENABLED:-false}' OPENAI_API_KEY: '${OPENAI_API_KEY:-}' OPENAI_API_MODEL: '${OPENAI_API_MODEL:-gpt-4}' # Authentication AUTH_PASSWORD_ENABLED: '${AUTH_PASSWORD_ENABLED:-true}' IS_EMAIL_VERIFICATION_REQUIRED: '${IS_EMAIL_VERIFICATION_REQUIRED:-false}' IS_MULTIWORKSPACE_ENABLED: '${IS_MULTIWORKSPACE_ENABLED:-false}' # Rate Limiting API_RATE_LIMITING_LIMIT: '${API_RATE_LIMITING_LIMIT:-200}' API_RATE_LIMITING_TTL: '${API_RATE_LIMITING_TTL:-60}' # Tokens LOGIN_TOKEN_EXPIRES_IN: '${LOGIN_TOKEN_EXPIRES_IN:-30d}' PASSWORD_RESET_TOKEN_EXPIRES_IN: '${PASSWORD_RESET_TOKEN_EXPIRES_IN:-5m}' EMAIL_VERIFICATION_TOKEN_EXPIRES_IN: '${EMAIL_VERIFICATION_TOKEN_EXPIRES_IN:-24h}' # Message Queue MESSAGE_QUEUE_TYPE: '${MESSAGE_QUEUE_TYPE:-bull-mq}' # Features CALENDAR_PROVIDER_GOOGLE_ENABLED: '${CALENDAR_PROVIDER_GOOGLE_ENABLED:-false}' MESSAGING_PROVIDER_GMAIL_ENABLED: '${MESSAGING_PROVIDER_GMAIL_ENABLED:-false}' # OAuth (Optional) AUTH_GOOGLE_ENABLED: '${AUTH_GOOGLE_ENABLED:-false}' 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_MICROSOFT_ENABLED: '${AUTH_MICROSOFT_ENABLED:-false}' AUTH_MICROSOFT_CLIENT_ID: '${AUTH_MICROSOFT_CLIENT_ID:-}' AUTH_MICROSOFT_CLIENT_SECRET: '${AUTH_MICROSOFT_CLIENT_SECRET:-}' AUTH_MICROSOFT_CALLBACK_URL: '${AUTH_MICROSOFT_CALLBACK_URL:-}' networks: - twenty-network restart: unless-stopped healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:3000/healthz || exit 1"] interval: 30s timeout: 10s retries: 5 start_period: 120s worker: image: 'twentycrm/twenty:v1.1' container_name: twenty-worker depends_on: db: condition: service_healthy redis: condition: service_healthy server: condition: service_started volumes: - 'twenty-server-local-data:/app/packages/twenty-server/.local-storage' - 'twenty-docker-data:/app/docker-data' environment: NODE_PORT: 3000 PG_DATABASE_URL: 'postgres://${PG_DATABASE_USER:-postgres}:${PG_DATABASE_PASSWORD:-ChangeThisPassword123!}@db:5432/postgres' SERVER_URL: '${SERVER_URL:-http://localhost:3000}' REDIS_URL: 'redis://redis:6379' APP_SECRET: '${APP_SECRET:-please-change-this-secret-key}' STORAGE_TYPE: '${STORAGE_TYPE:-local}' STORAGE_LOCAL_PATH: '${STORAGE_LOCAL_PATH:-.local-storage}' # Email Configuration (same as server) EMAIL_DRIVER: '${EMAIL_DRIVER:-logger}' EMAIL_FROM_ADDRESS: '${EMAIL_FROM_ADDRESS:-noreply@localhost}' EMAIL_FROM_NAME: '${EMAIL_FROM_NAME:-Twenty CRM}' EMAIL_SMTP_HOST: '${EMAIL_SMTP_HOST:-}' EMAIL_SMTP_PORT: '${EMAIL_SMTP_PORT:-587}' EMAIL_SMTP_USER: '${EMAIL_SMTP_USER:-}' EMAIL_SMTP_PASSWORD: '${EMAIL_SMTP_PASSWORD:-}' # Features MESSAGE_QUEUE_TYPE: '${MESSAGE_QUEUE_TYPE:-bull-mq}' command: ["yarn", "worker:start"] networks: - twenty-network restart: unless-stopped volumes: twenty-db-data: driver: local twenty-redis-data: driver: local twenty-server-local-data: driver: local twenty-docker-data: driver: local networks: twenty-network: driver: bridge name: twenty-network
-
@Neiluj
Currently, I am installing Twenty using Docker Compose as shown below, but I don’t understand what needs to be done when switching to Cloudron. I hope Twenty will be integrated into Cloudron soon. After using it for a while, I found that this CRM is very powerful and customizable to serve different business needs within an enterprise.version: '3.8' services: change-vol-ownership: image: 'ubuntu:latest' user: root volumes: - 'twenty-server-local-data:/tmp/server-local-data' - 'twenty-docker-data:/tmp/docker-data' command: | bash -c " chown -R 1000:1000 /tmp/server-local-data && chown -R 1000:1000 /tmp/docker-data && echo 'Volume ownership changed successfully' " restart: "no" networks: - twenty-network db: image: 'twentycrm/twenty-postgres-spilo:latest' container_name: twenty-db volumes: - 'twenty-db-data:/home/postgres/pgdata' environment: PGUSER: postgres POSTGRES_PASSWORD: ${PG_DATABASE_PASSWORD:-ChangeThisPassword123!} POSTGRES_DB: postgres SPILO_ROLE: master networks: - twenty-network restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 30s timeout: 10s retries: 5 start_period: 60s redis: image: 'redis:7-alpine' container_name: twenty-redis volumes: - 'twenty-redis-data:/data' networks: - twenty-network restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 10s retries: 5 start_period: 10s server: image: 'twentycrm/twenty:v1.1' container_name: twenty-server depends_on: change-vol-ownership: condition: service_completed_successfully db: condition: service_healthy redis: condition: service_healthy volumes: - 'twenty-server-local-data:/app/packages/twenty-server/.local-storage' - 'twenty-docker-data:/app/docker-data' ports: - "${EXTERNAL_PORT:-3000}:3000" environment: NODE_PORT: 3000 PG_DATABASE_URL: 'postgres://${PG_DATABASE_USER:-postgres}:${PG_DATABASE_PASSWORD:-ChangeThisPassword123!}@db:5432/postgres' SERVER_URL: '${SERVER_URL:-http://localhost:3000}' REDIS_URL: 'redis://redis:6379' APP_SECRET: '${APP_SECRET:-please-change-this-secret-key}' STORAGE_TYPE: '${STORAGE_TYPE:-local}' STORAGE_LOCAL_PATH: '${STORAGE_LOCAL_PATH:-.local-storage}' # Email Configuration EMAIL_DRIVER: '${EMAIL_DRIVER:-logger}' EMAIL_FROM_ADDRESS: '${EMAIL_FROM_ADDRESS:-noreply@localhost}' EMAIL_FROM_NAME: '${EMAIL_FROM_NAME:-Twenty CRM}' EMAIL_SMTP_HOST: '${EMAIL_SMTP_HOST:-}' EMAIL_SMTP_PORT: '${EMAIL_SMTP_PORT:-587}' EMAIL_SMTP_USER: '${EMAIL_SMTP_USER:-}' EMAIL_SMTP_PASSWORD: '${EMAIL_SMTP_PASSWORD:-}' EMAIL_SYSTEM_ADDRESS: '${EMAIL_SYSTEM_ADDRESS:-admin@localhost}' # AI Features IS_AI_ENABLED: '${IS_AI_ENABLED:-false}' OPENAI_API_KEY: '${OPENAI_API_KEY:-}' OPENAI_API_MODEL: '${OPENAI_API_MODEL:-gpt-4}' # Authentication AUTH_PASSWORD_ENABLED: '${AUTH_PASSWORD_ENABLED:-true}' IS_EMAIL_VERIFICATION_REQUIRED: '${IS_EMAIL_VERIFICATION_REQUIRED:-false}' IS_MULTIWORKSPACE_ENABLED: '${IS_MULTIWORKSPACE_ENABLED:-false}' # Rate Limiting API_RATE_LIMITING_LIMIT: '${API_RATE_LIMITING_LIMIT:-200}' API_RATE_LIMITING_TTL: '${API_RATE_LIMITING_TTL:-60}' # Tokens LOGIN_TOKEN_EXPIRES_IN: '${LOGIN_TOKEN_EXPIRES_IN:-30d}' PASSWORD_RESET_TOKEN_EXPIRES_IN: '${PASSWORD_RESET_TOKEN_EXPIRES_IN:-5m}' EMAIL_VERIFICATION_TOKEN_EXPIRES_IN: '${EMAIL_VERIFICATION_TOKEN_EXPIRES_IN:-24h}' # Message Queue MESSAGE_QUEUE_TYPE: '${MESSAGE_QUEUE_TYPE:-bull-mq}' # Features CALENDAR_PROVIDER_GOOGLE_ENABLED: '${CALENDAR_PROVIDER_GOOGLE_ENABLED:-false}' MESSAGING_PROVIDER_GMAIL_ENABLED: '${MESSAGING_PROVIDER_GMAIL_ENABLED:-false}' # OAuth (Optional) AUTH_GOOGLE_ENABLED: '${AUTH_GOOGLE_ENABLED:-false}' 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_MICROSOFT_ENABLED: '${AUTH_MICROSOFT_ENABLED:-false}' AUTH_MICROSOFT_CLIENT_ID: '${AUTH_MICROSOFT_CLIENT_ID:-}' AUTH_MICROSOFT_CLIENT_SECRET: '${AUTH_MICROSOFT_CLIENT_SECRET:-}' AUTH_MICROSOFT_CALLBACK_URL: '${AUTH_MICROSOFT_CALLBACK_URL:-}' networks: - twenty-network restart: unless-stopped healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:3000/healthz || exit 1"] interval: 30s timeout: 10s retries: 5 start_period: 120s worker: image: 'twentycrm/twenty:v1.1' container_name: twenty-worker depends_on: db: condition: service_healthy redis: condition: service_healthy server: condition: service_started volumes: - 'twenty-server-local-data:/app/packages/twenty-server/.local-storage' - 'twenty-docker-data:/app/docker-data' environment: NODE_PORT: 3000 PG_DATABASE_URL: 'postgres://${PG_DATABASE_USER:-postgres}:${PG_DATABASE_PASSWORD:-ChangeThisPassword123!}@db:5432/postgres' SERVER_URL: '${SERVER_URL:-http://localhost:3000}' REDIS_URL: 'redis://redis:6379' APP_SECRET: '${APP_SECRET:-please-change-this-secret-key}' STORAGE_TYPE: '${STORAGE_TYPE:-local}' STORAGE_LOCAL_PATH: '${STORAGE_LOCAL_PATH:-.local-storage}' # Email Configuration (same as server) EMAIL_DRIVER: '${EMAIL_DRIVER:-logger}' EMAIL_FROM_ADDRESS: '${EMAIL_FROM_ADDRESS:-noreply@localhost}' EMAIL_FROM_NAME: '${EMAIL_FROM_NAME:-Twenty CRM}' EMAIL_SMTP_HOST: '${EMAIL_SMTP_HOST:-}' EMAIL_SMTP_PORT: '${EMAIL_SMTP_PORT:-587}' EMAIL_SMTP_USER: '${EMAIL_SMTP_USER:-}' EMAIL_SMTP_PASSWORD: '${EMAIL_SMTP_PASSWORD:-}' # Features MESSAGE_QUEUE_TYPE: '${MESSAGE_QUEUE_TYPE:-bull-mq}' command: ["yarn", "worker:start"] networks: - twenty-network restart: unless-stopped volumes: twenty-db-data: driver: local twenty-redis-data: driver: local twenty-server-local-data: driver: local twenty-docker-data: driver: local networks: twenty-network: driver: bridge name: twenty-network
@zonzonzon Docker image from Dockerfile is different to using docker-compose - cannot usee docker-compose on Cloudron. Need to package Twenty in a Dockerfile
-
Release v1.3.0
-
best open source crm I have seen so far. Miles beyond espo already now.
I would highly appreciate if this comes to cloudron!any word on any plans?
-
@Neiluj
Currently, I am installing Twenty using Docker Compose as shown below, but I don’t understand what needs to be done when switching to Cloudron. I hope Twenty will be integrated into Cloudron soon. After using it for a while, I found that this CRM is very powerful and customizable to serve different business needs within an enterprise.version: '3.8' services: change-vol-ownership: image: 'ubuntu:latest' user: root volumes: - 'twenty-server-local-data:/tmp/server-local-data' - 'twenty-docker-data:/tmp/docker-data' command: | bash -c " chown -R 1000:1000 /tmp/server-local-data && chown -R 1000:1000 /tmp/docker-data && echo 'Volume ownership changed successfully' " restart: "no" networks: - twenty-network db: image: 'twentycrm/twenty-postgres-spilo:latest' container_name: twenty-db volumes: - 'twenty-db-data:/home/postgres/pgdata' environment: PGUSER: postgres POSTGRES_PASSWORD: ${PG_DATABASE_PASSWORD:-ChangeThisPassword123!} POSTGRES_DB: postgres SPILO_ROLE: master networks: - twenty-network restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 30s timeout: 10s retries: 5 start_period: 60s redis: image: 'redis:7-alpine' container_name: twenty-redis volumes: - 'twenty-redis-data:/data' networks: - twenty-network restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 10s retries: 5 start_period: 10s server: image: 'twentycrm/twenty:v1.1' container_name: twenty-server depends_on: change-vol-ownership: condition: service_completed_successfully db: condition: service_healthy redis: condition: service_healthy volumes: - 'twenty-server-local-data:/app/packages/twenty-server/.local-storage' - 'twenty-docker-data:/app/docker-data' ports: - "${EXTERNAL_PORT:-3000}:3000" environment: NODE_PORT: 3000 PG_DATABASE_URL: 'postgres://${PG_DATABASE_USER:-postgres}:${PG_DATABASE_PASSWORD:-ChangeThisPassword123!}@db:5432/postgres' SERVER_URL: '${SERVER_URL:-http://localhost:3000}' REDIS_URL: 'redis://redis:6379' APP_SECRET: '${APP_SECRET:-please-change-this-secret-key}' STORAGE_TYPE: '${STORAGE_TYPE:-local}' STORAGE_LOCAL_PATH: '${STORAGE_LOCAL_PATH:-.local-storage}' # Email Configuration EMAIL_DRIVER: '${EMAIL_DRIVER:-logger}' EMAIL_FROM_ADDRESS: '${EMAIL_FROM_ADDRESS:-noreply@localhost}' EMAIL_FROM_NAME: '${EMAIL_FROM_NAME:-Twenty CRM}' EMAIL_SMTP_HOST: '${EMAIL_SMTP_HOST:-}' EMAIL_SMTP_PORT: '${EMAIL_SMTP_PORT:-587}' EMAIL_SMTP_USER: '${EMAIL_SMTP_USER:-}' EMAIL_SMTP_PASSWORD: '${EMAIL_SMTP_PASSWORD:-}' EMAIL_SYSTEM_ADDRESS: '${EMAIL_SYSTEM_ADDRESS:-admin@localhost}' # AI Features IS_AI_ENABLED: '${IS_AI_ENABLED:-false}' OPENAI_API_KEY: '${OPENAI_API_KEY:-}' OPENAI_API_MODEL: '${OPENAI_API_MODEL:-gpt-4}' # Authentication AUTH_PASSWORD_ENABLED: '${AUTH_PASSWORD_ENABLED:-true}' IS_EMAIL_VERIFICATION_REQUIRED: '${IS_EMAIL_VERIFICATION_REQUIRED:-false}' IS_MULTIWORKSPACE_ENABLED: '${IS_MULTIWORKSPACE_ENABLED:-false}' # Rate Limiting API_RATE_LIMITING_LIMIT: '${API_RATE_LIMITING_LIMIT:-200}' API_RATE_LIMITING_TTL: '${API_RATE_LIMITING_TTL:-60}' # Tokens LOGIN_TOKEN_EXPIRES_IN: '${LOGIN_TOKEN_EXPIRES_IN:-30d}' PASSWORD_RESET_TOKEN_EXPIRES_IN: '${PASSWORD_RESET_TOKEN_EXPIRES_IN:-5m}' EMAIL_VERIFICATION_TOKEN_EXPIRES_IN: '${EMAIL_VERIFICATION_TOKEN_EXPIRES_IN:-24h}' # Message Queue MESSAGE_QUEUE_TYPE: '${MESSAGE_QUEUE_TYPE:-bull-mq}' # Features CALENDAR_PROVIDER_GOOGLE_ENABLED: '${CALENDAR_PROVIDER_GOOGLE_ENABLED:-false}' MESSAGING_PROVIDER_GMAIL_ENABLED: '${MESSAGING_PROVIDER_GMAIL_ENABLED:-false}' # OAuth (Optional) AUTH_GOOGLE_ENABLED: '${AUTH_GOOGLE_ENABLED:-false}' 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_MICROSOFT_ENABLED: '${AUTH_MICROSOFT_ENABLED:-false}' AUTH_MICROSOFT_CLIENT_ID: '${AUTH_MICROSOFT_CLIENT_ID:-}' AUTH_MICROSOFT_CLIENT_SECRET: '${AUTH_MICROSOFT_CLIENT_SECRET:-}' AUTH_MICROSOFT_CALLBACK_URL: '${AUTH_MICROSOFT_CALLBACK_URL:-}' networks: - twenty-network restart: unless-stopped healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:3000/healthz || exit 1"] interval: 30s timeout: 10s retries: 5 start_period: 120s worker: image: 'twentycrm/twenty:v1.1' container_name: twenty-worker depends_on: db: condition: service_healthy redis: condition: service_healthy server: condition: service_started volumes: - 'twenty-server-local-data:/app/packages/twenty-server/.local-storage' - 'twenty-docker-data:/app/docker-data' environment: NODE_PORT: 3000 PG_DATABASE_URL: 'postgres://${PG_DATABASE_USER:-postgres}:${PG_DATABASE_PASSWORD:-ChangeThisPassword123!}@db:5432/postgres' SERVER_URL: '${SERVER_URL:-http://localhost:3000}' REDIS_URL: 'redis://redis:6379' APP_SECRET: '${APP_SECRET:-please-change-this-secret-key}' STORAGE_TYPE: '${STORAGE_TYPE:-local}' STORAGE_LOCAL_PATH: '${STORAGE_LOCAL_PATH:-.local-storage}' # Email Configuration (same as server) EMAIL_DRIVER: '${EMAIL_DRIVER:-logger}' EMAIL_FROM_ADDRESS: '${EMAIL_FROM_ADDRESS:-noreply@localhost}' EMAIL_FROM_NAME: '${EMAIL_FROM_NAME:-Twenty CRM}' EMAIL_SMTP_HOST: '${EMAIL_SMTP_HOST:-}' EMAIL_SMTP_PORT: '${EMAIL_SMTP_PORT:-587}' EMAIL_SMTP_USER: '${EMAIL_SMTP_USER:-}' EMAIL_SMTP_PASSWORD: '${EMAIL_SMTP_PASSWORD:-}' # Features MESSAGE_QUEUE_TYPE: '${MESSAGE_QUEUE_TYPE:-bull-mq}' command: ["yarn", "worker:start"] networks: - twenty-network restart: unless-stopped volumes: twenty-db-data: driver: local twenty-redis-data: driver: local twenty-server-local-data: driver: local twenty-docker-data: driver: local networks: twenty-network: driver: bridge name: twenty-network
@zonzonzon the good word of @ekevu123 in a different thread:
The biggest issue is that the deployment needs to happen in one docker container only.
For postgres, you use this: https://docs.cloudron.io/packaging/addons/#postgresql
For local storage, this:
https://docs.cloudron.io/packaging/addons/#localstorageIf you don't know how to use these add-ons, go here: https://docs.cloudron.io/packaging/manifest/
But essentially, if you can package it in one dockerfile only, creating the cloudron manifest is piece of cake.
Hopefully this helps a bit.
-
@zonzonzon the good word of @ekevu123 in a different thread:
The biggest issue is that the deployment needs to happen in one docker container only.
For postgres, you use this: https://docs.cloudron.io/packaging/addons/#postgresql
For local storage, this:
https://docs.cloudron.io/packaging/addons/#localstorageIf you don't know how to use these add-ons, go here: https://docs.cloudron.io/packaging/manifest/
But essentially, if you can package it in one dockerfile only, creating the cloudron manifest is piece of cake.
Hopefully this helps a bit.
Does look nice, and Typescript does seem to be the future for web apps.
Screenshots:
-
Does look nice, and Typescript does seem to be the future for web apps.
Screenshots:
Few open-source apps say to me; "these guys get it". This is definitely one of those that does.
Giving this my seal of approval as a high-value app to have on Cloudron, and for attracting people to Cloudron.
-
I’m trying out Twenty and really looking forward to seeing it available on Cloudron soon. Its interface is friendly and modern, and the recent updates have significantly improved loading speed. Its API is very easy to integrate with external apps. Another standout point is its data model, which lets us freely customize and create objects and fields, making it simple to tailor deeply to a company’s operations.
-
We hope to see this app available soon. We are already using it in a self-hosted setup on our systems, but for convenience we would like to migrate it to Cloudron.
How can we help you make this happen?