Postgres
Image: pgvector/pgvector:pg16
- Port 5432/tcp
- 10 GB volume at /var/lib/postgresql/data
- 1 vCPU · 1 GB
Template · Business apps
Customer support inbox (live chat, email, socials) with Postgres+pgvector and Redis.
Opens the dashboard with this template pre-selected. Sign in with GitHub if you are new; the free tier needs no card.
4 services in the environment you pick, on the private network of the project.
chatwoot/chatwoot:latest as Rails web and Sidekiq worker, pgvector/pgvector:pg16, Redis. The web service prepares the DB on start.
Open the public URL and create the first account (ENABLE_ACCOUNT_SIGNUP=true), then set it to false.
Image: pgvector/pgvector:pg16
Image: redis:7-alpine
redis-server --requirepass "$REDIS_PASSWORD" --appendonly yes --dir /data
Image: chatwoot/chatwoot:latest
bundle exec rails db:chatwoot_prepare && bundle exec rails s -b 0.0.0.0 -p 3000
Image: chatwoot/chatwoot:latest
bundle exec sidekiq -C config/sidekiq.yml
Generated secrets never leave the platform; references are resolved on the private network. Anything marked required is asked for at deploy time.
| Name | Value |
|---|---|
| POSTGRES_USER | postgresSuperuser name |
| POSTGRES_PASSWORD | generated (password)Generated at deploy |
| POSTGRES_DB | chatwootDatabase created on first start |
| PGDATA | /var/lib/postgresql/data/pgdata |
| DATABASE_URL | postgresql://${{self.POSTGRES_USER}}:${{self.POSTGRES_PASSWORD}}@${{self.SKIFFLY_PRIVATE_DOMAIN}}:5432/${{self.POSTGRES_DB}}Connection string on the private network |
| Name | Value |
|---|---|
| REDIS_PASSWORD | generated (password) |
| REDIS_URL | redis://default:${{self.REDIS_PASSWORD}}@${{self.SKIFFLY_PRIVATE_DOMAIN}}:6379 |
| Name | Value |
|---|---|
| SECRET_KEY_BASE | generated (hex64) |
| FRONTEND_URL | https://${{self.SKIFFLY_PUBLIC_DOMAIN}} |
| RAILS_ENV | production |
| NODE_ENV | production |
| INSTALLATION_ENV | docker |
| RAILS_LOG_TO_STDOUT | true |
| LOG_LEVEL | info |
| POSTGRES_HOST | ${{Postgres.SKIFFLY_PRIVATE_DOMAIN}} |
| POSTGRES_PORT | 5432 |
| POSTGRES_USERNAME | ${{Postgres.POSTGRES_USER}} |
| POSTGRES_PASSWORD | ${{Postgres.POSTGRES_PASSWORD}} |
| POSTGRES_DATABASE | ${{Postgres.POSTGRES_DB}} |
| REDIS_URL | ${{Redis.REDIS_URL}} |
| ENABLE_ACCOUNT_SIGNUP | true |
| ACTIVE_STORAGE_SERVICE | local |
| FORCE_SSL | false |
| Name | Value |
|---|---|
| SECRET_KEY_BASE | ${{Chatwoot.SECRET_KEY_BASE}} |
| FRONTEND_URL | ${{Chatwoot.FRONTEND_URL}} |
| RAILS_ENV | production |
| NODE_ENV | production |
| INSTALLATION_ENV | docker |
| RAILS_LOG_TO_STDOUT | true |
| LOG_LEVEL | info |
| POSTGRES_HOST | ${{Postgres.SKIFFLY_PRIVATE_DOMAIN}} |
| POSTGRES_PORT | 5432 |
| POSTGRES_USERNAME | ${{Postgres.POSTGRES_USER}} |
| POSTGRES_PASSWORD | ${{Postgres.POSTGRES_PASSWORD}} |
| POSTGRES_DATABASE | ${{Postgres.POSTGRES_DB}} |
| REDIS_URL | ${{Redis.REDIS_URL}} |
| ENABLE_ACCOUNT_SIGNUP | true |
| ACTIVE_STORAGE_SERVICE | local |
| FORCE_SSL | false |
Volumes, secrets and domain pre-wired. Runs on EU nodes, paid per minute from a prepaid balance.