Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # this is the all-in-one, standalone Discourse Docker container template
- ##
- ## After making changes to this file, you MUST rebuild
- ## /var/discourse/launcher rebuild app
- ##
- ## BE *VERY* CAREFUL WHEN EDITING!
- ## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
- ## visit http://www.yamllint.com/ to validate this file as needed
- templates:
- - "templates/postgres.template.yml"
- - "templates/redis.template.yml"
- - "templates/web.template.yml"
- - "templates/web.ratelimited.template.yml"
- ## Uncomment these two lines if you wish to add Lets Encrypt (https)
- - "templates/web.ssl.template.yml"
- - "templates/web.letsencrypt.ssl.template.yml"
- ## which TCP/IP ports should this container expose?
- ## If you want Discourse to share a port with another webserver like Apache or nginx,
- ## see https://meta.discourse.org/t/17247 for details
- expose:
- - "80:80" # http
- - "443:443" # https
- params:
- db_default_text_search_config: "pg_catalog.english"
- ## Set db_shared_buffers to a max of 25% of the total memory.
- ## will be set automatically by bootstrap based on detected RAM, or you can override
- db_shared_buffers: "2048MB"
- ## can improve sorting performance, but adds memory usage per-connection
- #db_work_mem: "40MB"
- ## Which Git revision should this container use? (default: tests-passed)
- #version: tests-passed
- env:
- LANG: en_US.UTF-8
- # DISCOURSE_DEFAULT_LOCALE: en
- ## How many concurrent web requests are supported? Depends on memory and CPU cores.
- ## will be set automatically by bootstrap based on detected CPUs, or you can override
- UNICORN_WORKERS: 8
- ## TODO: The domain name this Discourse instance will respond to
- DISCOURSE_HOSTNAME: domain1.com
- ## Uncomment if you want the container to be started with the same
- ## hostname (-h option) as specified above (default "$hostname-$config")
- #DOCKER_USE_HOSTNAME: true
- ## TODO: List of comma delimited emails that will be made admin and developer
- ## on initial signup example 'user1@example.com,user2@example.com'
- DISCOURSE_DEVELOPER_EMAILS: 'mail...'
- ## TODO: The SMTP mail server used to validate new accounts and send notifications
- DISCOURSE_SMTP_ADDRESS: smtp..
- DISCOURSE_SMTP_PORT: 587
- DISCOURSE_SMTP_USER_NAME: mail..
- DISCOURSE_SMTP_PASSWORD: "password..."
- #DISCOURSE_SMTP_ENABLE_START_TLS: true
- #DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
- ## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
- LETSENCRYPT_ACCOUNT_EMAIL: mail..
- ## The CDN address for this Discourse instance (configured to pull)
- ## see https://meta.discourse.org/t/14857 for details
- #DISCOURSE_CDN_URL: //discourse-cdn.example.com
- ## The Docker container is stateless; all data is stored in /shared
- volumes:
- - volume:
- host: /var/discourse/shared/standalone
- guest: /shared
- - volume:
- host: /var/discourse/shared/standalone/log/var-log
- guest: /var/log
- ## Plugins go here
- ## see https://meta.discourse.org/t/19157 for details
- hooks:
- after_postgres:
- - exec: sudo -u postgres createdb b_discourse || exit 0
- - exec:
- stdin: |
- grant all privileges on database b_discourse to discourse;
- cmd: sudo -u postgres psql b_discourse
- raise_on_fail: false
- - exec: /bin/bash -c 'sudo -u postgres psql b_discourse <<< "alter schema public owner to discourse;"'
- - exec: /bin/bash -c 'sudo -u postgres psql b_discourse <<< "create extension if not exists hstore;"'
- - exec: /bin/bash -c 'sudo -u postgres psql b_discourse <<< "create extension if not exists pg_trgm;"'
- after_code:
- - exec:
- cd: $home/plugins
- cmd:
- - mkdir -p plugins
- - git clone https://github.com/discourse/docker_manager.git
- before_bundle_exec:
- - file:
- path: $home/config/multisite.yml
- contents: |
- secondsite:
- adapter: postgresql
- database: b_discourse
- pool: 25
- timeout: 5000
- db_id: 2
- host_names:
- - domain2.com
- after_bundle_exec:
- - exec: cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate
- after_ssl:
- - replace:
- filename: "/etc/runit/1.d/letsencrypt"
- from: /-k 4096 -w \/var\/www\/discourse\/public/
- to: |
- -d www.domain1.com -d doman1.com -d www.domain2.com -d domain2.com -k 4096 -w /var/www/discourse/public
- - replace:
- filename: "/etc/runit/1.d/letsencrypt"
- from: /-k 4096 --force -w \/var\/www\/discourse\/public/
- to: |
- -d www.domain1.com -d doman1.com -d www.domain2.com -d domain2.com -k 4096 --force -w /var/www/discourse/public
- - replace:
- filename: "/etc/nginx/conf.d/discourse.conf"
- from: /return 301 https.+/
- to: |
- return 301 https://$host$request_uri;
- - replace:
- filename: "/etc/nginx/conf.d/discourse.conf"
- from: /gzip on;[^\}]+\}/m
- to: |
- gzip on;
- add_header Strict-Transport-Security 'max-age=31536000'; # remember the certificate for a year and automatically connect to HTTPS for th$
- ## Any custom commands to run after building
- run:
- - exec: echo "Beginning of custom commands"
- ## If you want to set the 'From' email address for your first registration, uncomment and change:
- ## After getting the first signup email, re-comment the line. It only needs to run once.
- #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- - exec: echo "End of custom commands"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement