Discourse
Discourse is a modern forum software for your community. Use it as a mailing list, discussion forum, or long-form chat room.
Configuration
services:
discourse-db:
image: pgvector/pgvector:pg16
volumes:
- discourse-postgresql-data:/var/lib/postgresql/data
environment:
POSTGRES_USER: discourse
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: discourse
healthcheck:
test: ["CMD-SHELL", "pg_isready -U discourse -d discourse"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
discourse-redis:
image: redis:7-alpine
volumes:
- discourse-redis-data:/data
command: redis-server --requirepass ${REDIS_PASSWORD}
healthcheck:
test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
discourse-app:
image: discourse/discourse:2026.1.4
volumes:
- discourse-data:/shared
depends_on:
discourse-db:
condition: service_healthy
discourse-redis:
condition: service_healthy
environment:
DISCOURSE_HOSTNAME: ${DISCOURSE_HOST}
DISCOURSE_DB_HOST: discourse-db
DISCOURSE_DB_PORT: 5432
DISCOURSE_DB_USERNAME: discourse
DISCOURSE_DB_PASSWORD: ${POSTGRES_PASSWORD}
DISCOURSE_DB_NAME: discourse
DISCOURSE_REDIS_HOST: discourse-redis
DISCOURSE_REDIS_PORT: 6379
DISCOURSE_REDIS_PASSWORD: ${REDIS_PASSWORD}
DISCOURSE_DEVELOPER_EMAILS: ${DISCOURSE_ADMIN_EMAIL}
# Required for email delivery - Discourse will not function correctly without SMTP
# DISCOURSE_SMTP_ADDRESS: ${SMTP_HOST}
# DISCOURSE_SMTP_PORT: ${SMTP_PORT}
# DISCOURSE_SMTP_USER_NAME: ${SMTP_USER}
# DISCOURSE_SMTP_PASSWORD: ${SMTP_PASSWORD}
# DISCOURSE_SMTP_ENABLE_START_TLS: "true"
# DISCOURSE_NOTIFICATION_EMAIL: [email protected]
# DISCOURSE_DEVELOPER_EMAILS: [email protected]
ports:
- 80
restart: unless-stopped
volumes:
discourse-postgresql-data:
discourse-redis-data:
discourse-data:[variables]
main_domain = "${domain}"
admin_email = "${email}"
postgres_password = "${password}"
redis_password = "${password}"
[config]
env = [
"DISCOURSE_HOST=${main_domain}",
"DISCOURSE_ADMIN_EMAIL=${admin_email}",
"POSTGRES_PASSWORD=${postgres_password}",
"REDIS_PASSWORD=${redis_password}",
]
mounts = []
[[config.domains]]
serviceName = "discourse-app"
port = 80
host = "${main_domain}"Base64
To import this template in Dokploy: create a Compose service → Advanced → Base64 import and paste the content below:
ewogICJjb21wb3NlIjogInNlcnZpY2VzOlxuICBkaXNjb3Vyc2UtZGI6XG4gICAgaW1hZ2U6IHBndmVjdG9yL3BndmVjdG9yOnBnMTZcbiAgICB2b2x1bWVzOlxuICAgICAgLSBkaXNjb3Vyc2UtcG9zdGdyZXNxbC1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YVxuICAgIGVudmlyb25tZW50OlxuICAgICAgUE9TVEdSRVNfVVNFUjogZGlzY291cnNlXG4gICAgICBQT1NUR1JFU19QQVNTV09SRDogJHtQT1NUR1JFU19QQVNTV09SRH1cbiAgICAgIFBPU1RHUkVTX0RCOiBkaXNjb3Vyc2VcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBcInBnX2lzcmVhZHkgLVUgZGlzY291cnNlIC1kIGRpc2NvdXJzZVwiXVxuICAgICAgaW50ZXJ2YWw6IDEwc1xuICAgICAgdGltZW91dDogNXNcbiAgICAgIHJldHJpZXM6IDVcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuXG4gIGRpc2NvdXJzZS1yZWRpczpcbiAgICBpbWFnZTogcmVkaXM6Ny1hbHBpbmVcbiAgICB2b2x1bWVzOlxuICAgICAgLSBkaXNjb3Vyc2UtcmVkaXMtZGF0YTovZGF0YVxuICAgIGNvbW1hbmQ6IHJlZGlzLXNlcnZlciAtLXJlcXVpcmVwYXNzICR7UkVESVNfUEFTU1dPUkR9XG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTURcIiwgXCJyZWRpcy1jbGlcIiwgXCItYVwiLCBcIiR7UkVESVNfUEFTU1dPUkR9XCIsIFwicGluZ1wiXVxuICAgICAgaW50ZXJ2YWw6IDEwc1xuICAgICAgdGltZW91dDogNXNcbiAgICAgIHJldHJpZXM6IDVcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuXG4gIGRpc2NvdXJzZS1hcHA6XG4gICAgaW1hZ2U6IGRpc2NvdXJzZS9kaXNjb3Vyc2U6MjAyNi4xLjRcbiAgICB2b2x1bWVzOlxuICAgICAgLSBkaXNjb3Vyc2UtZGF0YTovc2hhcmVkXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIGRpc2NvdXJzZS1kYjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIGRpc2NvdXJzZS1yZWRpczpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIERJU0NPVVJTRV9IT1NUTkFNRTogJHtESVNDT1VSU0VfSE9TVH1cbiAgICAgIERJU0NPVVJTRV9EQl9IT1NUOiBkaXNjb3Vyc2UtZGJcbiAgICAgIERJU0NPVVJTRV9EQl9QT1JUOiA1NDMyXG4gICAgICBESVNDT1VSU0VfREJfVVNFUk5BTUU6IGRpc2NvdXJzZVxuICAgICAgRElTQ09VUlNFX0RCX1BBU1NXT1JEOiAke1BPU1RHUkVTX1BBU1NXT1JEfVxuICAgICAgRElTQ09VUlNFX0RCX05BTUU6IGRpc2NvdXJzZVxuICAgICAgRElTQ09VUlNFX1JFRElTX0hPU1Q6IGRpc2NvdXJzZS1yZWRpc1xuICAgICAgRElTQ09VUlNFX1JFRElTX1BPUlQ6IDYzNzlcbiAgICAgIERJU0NPVVJTRV9SRURJU19QQVNTV09SRDogJHtSRURJU19QQVNTV09SRH1cbiAgICAgIERJU0NPVVJTRV9ERVZFTE9QRVJfRU1BSUxTOiAke0RJU0NPVVJTRV9BRE1JTl9FTUFJTH1cbiAgICAgICMgUmVxdWlyZWQgZm9yIGVtYWlsIGRlbGl2ZXJ5IC0gRGlzY291cnNlIHdpbGwgbm90IGZ1bmN0aW9uIGNvcnJlY3RseSB3aXRob3V0IFNNVFBcbiAgICAgICMgRElTQ09VUlNFX1NNVFBfQUREUkVTUzogJHtTTVRQX0hPU1R9XG4gICAgICAjIERJU0NPVVJTRV9TTVRQX1BPUlQ6ICR7U01UUF9QT1JUfVxuICAgICAgIyBESVNDT1VSU0VfU01UUF9VU0VSX05BTUU6ICR7U01UUF9VU0VSfVxuICAgICAgIyBESVNDT1VSU0VfU01UUF9QQVNTV09SRDogJHtTTVRQX1BBU1NXT1JEfVxuICAgICAgIyBESVNDT1VSU0VfU01UUF9FTkFCTEVfU1RBUlRfVExTOiBcInRydWVcIlxuICAgICAgIyBESVNDT1VSU0VfTk9USUZJQ0FUSU9OX0VNQUlMOiBbZW1haWwgcHJvdGVjdGVkXVxuICAgICAgIyBESVNDT1VSU0VfREVWRUxPUEVSX0VNQUlMUzogW2VtYWlsIHByb3RlY3RlZF1cbiAgICBwb3J0czpcbiAgICAgIC0gODBcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuXG52b2x1bWVzOlxuICBkaXNjb3Vyc2UtcG9zdGdyZXNxbC1kYXRhOlxuICBkaXNjb3Vyc2UtcmVkaXMtZGF0YTpcbiAgZGlzY291cnNlLWRhdGE6XG4iLAogICJjb25maWciOiAiW3ZhcmlhYmxlc11cbm1haW5fZG9tYWluID0gXCIke2RvbWFpbn1cIlxuYWRtaW5fZW1haWwgPSBcIiR7ZW1haWx9XCJcbnBvc3RncmVzX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkfVwiXG5yZWRpc19wYXNzd29yZCA9IFwiJHtwYXNzd29yZH1cIlxuXG5bY29uZmlnXVxuZW52ID0gW1xuICBcIkRJU0NPVVJTRV9IT1NUPSR7bWFpbl9kb21haW59XCIsXG4gIFwiRElTQ09VUlNFX0FETUlOX0VNQUlMPSR7YWRtaW5fZW1haWx9XCIsXG4gIFwiUE9TVEdSRVNfUEFTU1dPUkQ9JHtwb3N0Z3Jlc19wYXNzd29yZH1cIixcbiAgXCJSRURJU19QQVNTV09SRD0ke3JlZGlzX3Bhc3N3b3JkfVwiLFxuXVxubW91bnRzID0gW11cblxuW1tjb25maWcuZG9tYWluc11dXG5zZXJ2aWNlTmFtZSA9IFwiZGlzY291cnNlLWFwcFwiXG5wb3J0ID0gODBcbmhvc3QgPSBcIiR7bWFpbl9kb21haW59XCIiCn0=Links
Tags
forum, community, discussion
Version: 2026.1.4