env:
- # Comma delimited list of emails, required if you want admin access for first account
- DEVELOPER_EMAILS: 'YOUR_EMAIL@EMAIL.COM1'
# You can have redis on a different box
- # REDIS_PROVIDER_URL: 'redis://l.discourse:6379'
RAILS_ENV: 'production'
UNICORN_WORKERS: 3
# slightly less aggressive than "recommendation" but works fine with oobgc
# this ensures we have enough heap space to handle a big pile of small reqs
RUBY_HEAP_MIN_SLOTS: 800000
+ DISCOURSE_DB_SOCKET: /var/run/postgresql
+ DISCOURSE_DB_HOST:
+ DISCOURSE_DB_PORT:
+
+
params:
# SSH key is required for remote access into the container
version: HEAD
home: /var/www/discourse
- # You can connect to any DB you wish to
- database_yml:
- production:
- database: discourse
- username: discourse
- socket: /var/run/postgresql
- password:
- host:
- host_names:
- - YOUR_HOSTNAME_HERE
-
run:
+ - file:
+ path: /etc/service/copy_env/run
+ chmod: "+x"
+ contents: |
+ #!/bin/bash
+ conf=/var/www/discourse/config/discourse.conf
+ sudo -u discourse echo > $conf
+
+ for x in `env | /usr/bin/awk -F= '{if($1 ~ /DISCOURSE_/) print $1}'`
+ do
+ c=${x,,}
+ c=${c:10}
+ echo "$c"=${!x} >> $conf
+ done
+ # I dunno there may be a cleaner way to handle this
+ exec sleep 2147483647
- file:
path: /etc/service/unicorn/run
contents: |
#!/bin/bash
exec 2>&1
- $env
# redis
# postgres
+ sv start copy_env || exit 1
cd $home
exec sudo -E -u discourse LD_PRELOAD=/usr/lib/libjemalloc.so.1 bundle exec config/unicorn_launcher -E production -c config/unicorn.conf.rb
contents: |
#!/bin/bash
exec 2>&1
- $env
# redis
# postgres
+ sv start copy_env || exit 1
cd $home
exec sudo -E -u discourse LD_PRELOAD=/usr/lib/libjemalloc.so.1 bundle exec sidekiq
- git clean -f
- git pull
- git checkout $version
- - cp config/database.yml.production-sample config/database.yml
- - cp config/redis.yml.sample config/redis.yml
- - cp config/environments/production.rb.sample config/environments/production.rb
- mkdir -p tmp/pids
- mkdir -p tmp/sockets
- touch tmp/.gitkeep
- ln -s /shared/log/rails $home/log
- mkdir -p /shared/uploads
- ln -s /shared/uploads $home/public/uploads
- - chown -R discourse /shared/uploads
- - chown -R discourse /shared/log/rails
+ - chown -R discourse:www-data /shared/uploads
+ - chown -R discourse:www-data /shared/log/rails
- exec:
cmd:
- "cp $home/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf"
from: /server_name.+$/
to: server_name _ ;
- - merge: $home/config/database.yml $database_yml
+ - exec:
+ cmd: echo "done configuring web"
+ hook: web_config
- exec:
cd: $home