Skip to content

Commit 985428d

Browse files
committed
Fix smtp server related things
1 parent 30b61ee commit 985428d

File tree

4 files changed

+52
-7
lines changed

4 files changed

+52
-7
lines changed

Rakefile

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
desc 'Build rubydata/discourse image'
2+
task build: 'prepare:environment'
23
task :build do
34
begin
45
Rake::Task['build:backends:up'].invoke
@@ -13,6 +14,23 @@ task :push do
1314
sh 'docker', 'push', 'rubydata/discourse'
1415
end
1516

17+
namespace :prepare do
18+
task environment: :check
19+
task :environment do
20+
ENV['DISCOURSE_SMTP_USER_NAME'] = ENV['AWS_ACCESS_KEY_ID']
21+
ENV['DISCOURSE_SMTP_PASSWORD'] = ses_smtp_password
22+
end
23+
24+
task :check do
25+
unless ENV['AWS_ACCESS_KEY_ID']
26+
raise 'AWS_ACCESS_KEY_ID is required'
27+
end
28+
unless ENV['AWS_SECRET_ACCESS_KEY']
29+
raise 'AWS_ACCESS_KEY_ID is required'
30+
end
31+
end
32+
end
33+
1634
namespace :build do
1735
namespace :backends do
1836
task up: 'compose:up:detached:postgres'
@@ -22,6 +40,14 @@ namespace :build do
2240
end
2341

2442
namespace :compose do
43+
namespace :run do
44+
task 'discourse:db:migrate' => 'compose:up:detached:backends'
45+
task 'discourse:db:migrate' do
46+
sh 'docker-compose', 'run', 'discourse',
47+
'su', 'discourse', '-c', 'cd /var/www/discourse && bundle exec rake db:migrate'
48+
end
49+
end
50+
2551
namespace :up do
2652
namespace :detached do
2753
task :postgres do
@@ -36,18 +62,31 @@ namespace :compose do
3662
task backends: :redis
3763
end
3864

39-
task detached: 'compose:up:detached:backends' do
40-
sh 'docker-compose', 'run', 'discourse', 'su', 'discourse', '-c', 'cd /var/www/discourse && bundle exec rake db:migrate'
65+
task detached: 'prepare:environment'
66+
task detached: 'compose:run:discourse:db:migrate'
67+
task :detached do
4168
sh 'docker-compose', 'up', '-d', 'discourse'
4269
end
4370
end
4471

45-
task up: 'compose:up:detached:backends' do
46-
sh 'docker-compose', 'run', 'discourse', 'su', 'discourse', '-c', 'cd /var/www/discourse && bundle exec rake db:migrate'
72+
task up: 'prepare:environment'
73+
task up: 'compose:run:discourse:db:migrate'
74+
task :up do
4775
sh 'docker-compose', 'up'
4876
end
4977

5078
task :down do
5179
sh 'docker-compose', 'down'
5280
end
5381
end
82+
83+
def ses_smtp_password
84+
require 'openssl'
85+
require 'base64'
86+
key = ENV['AWS_SECRET_ACCESS_KEY']
87+
message = 'SendRawEmail'
88+
signature = OpenSSL::HMAC.digest('sha256', key, message)
89+
versioned_signature = "\x02#{signature}"
90+
password = Base64.strict_encode64(versioned_signature)
91+
return password
92+
end

app.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ env:
1212
DISCOURSE_DB_PASSWORD: ''
1313
DISCOURSE_REDIS_HOST: redis
1414

15-
DISCOURSE_DEVELOPER_EMAILS: 'me@example.com'
15+
DISCOURSE_DEVELOPER_EMAILS: 'muraken@gmail.com'
1616
DISCOURSE_HOSTNAME: 'discourse.ruby-data.org'
1717

1818
DISCOURSE_SMTP_ADDRESS: smtp.example.com # (mandatory)

docker-compose.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ services:
1515
DISCOURSE_DB_USERNAME: discourse
1616
DISCOURSE_DB_PASSWORD: ''
1717
DISCOURSE_REDIS_HOST: redis
18+
DISCOURSE_DEVELOPER_EMAILS: muraken@gmail.com
19+
DISCOURSE_SMTP_ADDRESS: email-smtp.us-west-2.amazonaws.com
20+
DISCOURSE_SMTP_PORT: 587
21+
DISCOURSE_SMTP_USER_NAME: ${DISCOURSE_SMTP_USER_NAME}
22+
DISCOURSE_SMTP_PASSWORD: ${DISCOURSE_SMTP_PASSWORD}
1823
ports:
1924
- "8880:80"
2025
- "2222:22"

image/discourse/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ ARG DISCOURSE_DB_PORT=5432
1515
ARG DISCOURSE_DB_USERNAME=discourse
1616
ARG DISCOURSE_DB_PASSWORD=''
1717
ARG DISCOURSE_REDIS_HOST=redis
18+
ARG DISCOURSE_DEVELOPER_EMAILS=muraken@gmail.com
19+
ARG DISCOURSE_HOSTNAME=discourse.ruby-data.org
1820

1921
ADD . /tmp/discourse.ruby-data.org
2022

@@ -30,5 +32,4 @@ RUN cd /tmp/discourse.ruby-data.org \
3032
&& input="hack: true"; for template in $templates; do input="$input _FILE_SEPERATOR_ $(cat ${template})"; done \
3133
&& cd /pups \
3234
&& echo "$input" | /pups/bin/pups --stdin \
33-
&& : rm -rf /tmp/discourse.ruby-data.org
34-
35+
&& rm -rf /tmp/discourse.ruby-data.org

0 commit comments

Comments
 (0)