Improve how your board, community, or company collaborates by moving discussions out of the boardroom and into a focused, asynchronous environment. This platform helps you align your team and take decisive action while saving precious meeting time. By providing a clear, annotated timeline of discussions, you maintain a permanent record of how and why choices were made.
Key features and benefits:
services:
db:
image: postgres:13-alpine
container_name: loomio_db
restart: always
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: loomio
POSTGRES_DB: loomio_production
volumes:
- ./data/db:/var/lib/postgresql/data
redis:
image: redis:6-alpine
container_name: loomio_redis
restart: always
volumes:
- ./data/redis:/data
app:
image: loomio/loomio:stable
container_name: loomio_app
restart: always
command: rails server -b 0.0.0.0
environment:
DATABASE_URL: postgres://loomio:${DB_PASSWORD}@db/loomio_production
REDIS_URL: redis://redis:6379
SECRET_COOKIE_TOKEN: ${SECRET_COOKIE_TOKEN}
DEVISE_SECRET: ${DEVISE_SECRET}
CANONICAL_HOST: ${CANONICAL_HOST}
REPLY_HOSTNAME: ${REPLY_HOSTNAME}
SMTP_DOMAIN: ${SMTP_DOMAIN}
SMTP_SERVER: ${SMTP_SERVER}
SMTP_PORT: ${SMTP_PORT}
SMTP_USERNAME: ${SMTP_USERNAME}
SMTP_PASSWORD: ${SMTP_PASSWORD}
FORCE_SSL: ${FORCE_SSL}
USE_SSL: ${USE_SSL}
RAILS_SERVE_STATIC_FILES: "true"
volumes:
- ./data/storage:/loomio/storage
ports:
- "3000:3000"
depends_on:
- db
- redis
worker:
image: loomio/loomio:stable
container_name: loomio_worker
restart: always
command: bundle exec sidekiq
environment:
DATABASE_URL: postgres://loomio:${DB_PASSWORD}@db/loomio_production
REDIS_URL: redis://redis:6379
SECRET_COOKIE_TOKEN: ${SECRET_COOKIE_TOKEN}
DEVISE_SECRET: ${DEVISE_SECRET}
CANONICAL_HOST: ${CANONICAL_HOST}
REPLY_HOSTNAME: ${REPLY_HOSTNAME}
SMTP_DOMAIN: ${SMTP_DOMAIN}
SMTP_SERVER: ${SMTP_SERVER}
SMTP_PORT: ${SMTP_PORT}
SMTP_USERNAME: ${SMTP_USERNAME}
SMTP_PASSWORD: ${SMTP_PASSWORD}
volumes:
- ./data/storage:/loomio/storage
depends_on:
- db
- redis
channels:
image: loomio/loomio:stable
container_name: loomio_channels
restart: always
command: puma -p 28080 cable/config.ru
environment:
DATABASE_URL: postgres://loomio:${DB_PASSWORD}@db/loomio_production
REDIS_URL: redis://redis:6379
SECRET_COOKIE_TOKEN: ${SECRET_COOKIE_TOKEN}
DEVISE_SECRET: ${DEVISE_SECRET}
CANONICAL_HOST: ${CANONICAL_HOST}
volumes:
- ./data/storage:/loomio/storage
ports:
- "28080:28080"
depends_on:
- db
- redisCANONICAL_HOST=loomio.example.com
REPLY_HOSTNAME=reply.loomio.example.com
FORCE_SSL=true
USE_SSL=true
# Security Secrets (Must be changed)
DB_PASSWORD=replace_with_secure_password
SECRET_COOKIE_TOKEN=replace_with_generated_secret_token
DEVISE_SECRET=replace_with_generated_devise_secret
# SMTP Configuration
SMTP_DOMAIN=example.com
SMTP_SERVER=smtp.example.com
SMTP_PORT=587
SMTP_USERNAME=your_smtp_username
SMTP_PASSWORD=your_smtp_passwordAuto-fetched about 22 hours ago
Auto-fetched about 22 hours ago