Skip to content

Commit

Permalink
feat: provide production docker config
Browse files Browse the repository at this point in the history
Provide a base line docker compose that can be used to deploy Doubtfire.

Co-authored-by: Jake Renzella <[email protected]>
  • Loading branch information
macite and jakerenzella committed Feb 1, 2022
1 parent 350a955 commit 0385fdf
Show file tree
Hide file tree
Showing 13 changed files with 341 additions and 31 deletions.
67 changes: 48 additions & 19 deletions production/.env.production
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,30 @@
#
RAILS_ENV=production

# Database settings
#
# Database settings - please update password to align with docker compose or provided database
#
DF_PRODUCTION_DB_ADAPTER=mysql2
DF_PRODUCTION_DB_HOST=database
DF_PRODUCTION_DB_HOST=doubtfire-db
DF_PRODUCTION_DB_DATABASE=doubtfire
DF_PRODUCTION_DB_USERNAME=dfire
DF_PRODUCTION_DB_PASSWORD=pwd

#
# Database and auth related secrets
#
DF_SECRET_KEY_BASE=test-secret-key
DF_SECRET_KEY_ATTR=test-secret-key
DF_SECRET_KEY_DEVISE=test-secret-key
DF_SECRET_KEY_MOSS=

# Student work location in the containers
# Student work location in the containers - should not need to change
DF_STUDENT_WORK_DIR=/student-work

#
# Institution settings
DF_INSTITUTION_HOST=http://localhost:3000
#
DF_INSTITUTION_HOST=https://localhost
DF_INSTITUTION_PRODUCT_NAME=OnTrack
DF_INSTITUTION_SETTINGS_RB=no_institution_setting.rb
DF_INSTITUTION_EMAIL_DOMAIN=unifoo.edu.au
Expand All @@ -31,25 +37,29 @@ DF_INSTITUTION_NAME=unifoo
# saml
# ldap
# database (for development only)
DF_AUTH_METHOD=aaf
DF_AUTH_METHOD=database

#
# AAF settings
#
DF_AAF_ISSUER_URL=https://rapid.test.aaf.edu.au
DF_AAF_AUDIENCE_URL=http://localhost:3000
DF_AAF_CALLBACK_URL=http://localhost:3000/api/auth/jwt
DF_AAF_IDENTITY_PROVIDER_URL=https://signon-uat.deakin.edu.au/idp/shibboleth
DF_AAF_UNIQUE_URL=https://rapid.test.aaf.edu.au/jwt/authnrequest/research/of-UrEaRtaGds22mccqh6w
#https://rapid.test.aaf.edu.au/jwt/authnrequest/research/Ag4EJJhjf0zXHqlKvKZEbg
DF_AAF_AUTH_SIGNOUT_URL=https://sync-uat.deakin.edu.au/auth/logout
DF_SECRET_KEY_AAF=v4~LMFLzzwRGZdju\5QBa@FiHIN9
DF_AAF_AUDIENCE_URL=
DF_AAF_CALLBACK_URL=
DF_AAF_IDENTITY_PROVIDER_URL=
DF_AAF_UNIQUE_URL=
DF_AAF_AUTH_SIGNOUT_URL=
DF_SECRET_KEY_AAF=

#
# SAML Settings
#

# Optional metadata url
DF_SAML_METADATA_URL=
# URL to return the SAML response to
DF_SAML_CONSUMER_SERVICE_URL=https://doubtfire.edu/api/auth/jwt
DF_SAML_CONSUMER_SERVICE_URL=https://localhost/api/auth/jwt
# URL of the registered application
DF_SAML_SP_ENTITY_ID=https://doubtfire.unifoo.edu.au
DF_SAML_SP_ENTITY_ID=https://localhost
# The IDP SAML login URL
DF_SAML_IDP_TARGET_URL=https://login.microsoftonline.com/xxxx/saml2
# One of:
Expand All @@ -63,11 +73,30 @@ DF_SAML_IDP_TARGET_URL=https://login.microsoftonline.com/xxxx/saml2
# urn:oasis:names:tc:SAML:2.0:nameid-format:entity
DF_SAML_IDP_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

#
# LDAP settings
#
DF_LDAP_HOST=
DF_LDAP_PORT=
DF_LDAP_ATTRIBUTE=
DF_LDAP_BASE=
DF_LDAP_SSL=false


# Overseer
#
# Overseer - requires additional configuration
#
OVERSEER_ENABLED=0
RABBITMQ_HOSTNAME=df-prod-mq
RABBITMQ_USERNAME=secure_credentials
RABBITMQ_PASSWORD=secure_credentials

# Active record encryption
DF_ENCRYPTION_PRIMARY_KEY=AMLOMYA5GV8B4fTK3VKMhVGn8WdvUW8g
DF_ENCRYPTION_DETERMINISTIC_KEY=anlmuJ6cB3bN3biXRbYvmPsC5ALPFqGG
DF_ENCRYPTION_KEY_DERIVATION_SALT=hzPR8D4qpOnAg7VeAhkhWw6JmmzKJB10

DF_MAIL_PERFORM_DELIVERIES=no
DF_MAIL_DELIVERY_METHOD=smtp
DF_SMTP_ADDRESS=
DF_SMTP_PORT=
DF_SMTP_DOMAIN=
DF_SMTP_USERNAME=
DF_SMTP_PASSWORD=
DF_SMTP_AUTHENTICATION=
17 changes: 17 additions & 0 deletions production/CAkeys/RootCA.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE-----
MIICyjCCAbICCQC6Ht/UfcerKDANBgkqhkiG9w0BAQsFADAnMQswCQYDVQQGEwJV
UzEYMBYGA1UEAwwPRXhhbXBsZS1Sb290LUNBMB4XDTIyMDEyODA1NDY1OVoXDTI0
MTExNzA1NDY1OVowJzELMAkGA1UEBhMCVVMxGDAWBgNVBAMMD0V4YW1wbGUtUm9v
dC1DQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKqaTmTDFKPej78t
BboHGUiHwvtK+QbSNAJwpcJYc9d3/2/2fS/IaQKQMSmWHfxT3S/1CSMycGpPeVx1
l6hI2M6YnuUAzF1kbd3d4Z5UeWVeIBjAj20S7Q8d8P45MsYcml+STzAvyfUg3KQc
YAtjTnGpcZPmCfpIMY5PxZkENuMLp7g2MMm0BqTnRJIA7Gm78V+GBTFWs97M6XAU
haYW0fQoJ4Ms18fmH2G83ouccXq8yTYkhS3xC+lWIbM6sunCbbzYPgJn2NhiXZYX
KN4qknhwXsGbhjZQCr94i2nmf9geY+qchu4pNwJqQEWju9UWjFhrsYv6Cad8X9U5
xdol7dsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIjLVdBBhQGh0GUis8Nl7I62q
S8iVIVu0+XP2CWSlzP/abGs7rsa0QZIXeNYxCMiK1LERFMkVxQ7X0SV151kzqsvZ
e8cTB9OV24pkmQhQBBx2Bz3ysRW7WFs/yt9Nn+7lnE2JQYrcrjEibOpYmpmkNq+T
fM4J4P8ncHlwlSSM7WLzSjheOyHo94TckS9DEUzQ5DPecR0BQUaXeOFo4hPYYwPr
UUhErGo7K5a/DRDpZf8R8U/Kge+gowsINV8sBIiRfhXvDETdE7w4YiL0AP6Tx5b/
x0e3X9aEKKMYUia1Rl4OFINJDIZgFfRT7hDRowfRJ4AwT9PgszrWRG+aIb/rsg==
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions production/CAkeys/RootCA.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqmk5kwxSj3o+/
LQW6BxlIh8L7SvkG0jQCcKXCWHPXd/9v9n0vyGkCkDEplh38U90v9QkjMnBqT3lc
dZeoSNjOmJ7lAMxdZG3d3eGeVHllXiAYwI9tEu0PHfD+OTLGHJpfkk8wL8n1INyk
HGALY05xqXGT5gn6SDGOT8WZBDbjC6e4NjDJtAak50SSAOxpu/FfhgUxVrPezOlw
FIWmFtH0KCeDLNfH5h9hvN6LnHF6vMk2JIUt8QvpViGzOrLpwm282D4CZ9jYYl2W
FyjeKpJ4cF7Bm4Y2UAq/eItp5n/YHmPqnIbuKTcCakBFo7vVFoxYa7GL+gmnfF/V
OcXaJe3bAgMBAAECggEBAIJAVWHw3y1Nmwom4ZxqFw+dN2yMjRx8GGFUh/mddrQn
Vcqxslps9F+UnzRU/IfNr64RsuxAcjt4efvxe9xr4bu6InZM6brUFl2yLbOoYxbV
ikPboKVyMbO89GXkXbOL2wDkv7jWg6a3dD2HvHx1UUrOR3zXwP5paAxzMzXkVdN5
rlbY24/1O6vAjzJYQGoc3S0TdybF/57rsHw8/e3dQq3SqQrWeNL8VyED4GtTU4a0
8X6iCS0AVe0Y4SjpXfg0aTBN8zyex/up68b/Ny4P4SNniPVV3c5CQz1YqhP+k274
3pPJ+VpiXQyA+/JV9xMr33MZZI74D5QoqNQULJuLxuECgYEA4yO5ep1fM+L8zApN
a47gtq3D93GDumbKmu9viKqSa50xeMwi+HHGMgw0MFyXHFDOBQCZjfvcqkK5fOmc
OkG9vcNJx5ys0owFTj2+Dw+5ByBuHXnROJ7tuKoQnA94qmP+j8WUyitoZEpDk/Q3
byi/R/cArekVlLWZFEAu9yjo8NUCgYEAwEeVMjq8HQVZB5FC46tpTYMyPj2TyTT9
IclJ4t/p55pejKxwppQrYHb6r1/vIjxelm42q4+ZH+i4hrxDQ2sKRG0bl+LIkcwo
y2VOxnHiSqLjRMvG2U6b9rAP/6kilgDcxsxFASdh4z2YO4mXJYRwYpJy0C9NKh9r
/4eM7Ap8O+8CgYAmG1E72/kj6FoHFVdlyyOyIjb1ZYr3E9W75p2srQlBmq65GG5p
hhT9QoTi9DW532ig+DfK1U1xFx6tcTfvoiXmF0Rig8uOy0T8mmkvd7DQHEW9Fjne
qPMy/v0oYYQZ+gq0Li7HOD8cTEVIJjnCoXBt72eixa8EMu9KsXXvq2JhPQKBgBic
ENhw9Aqy2IZDbVA+bCfjltaogvXJtmxQmwhSqFlgRKG0oGZxqGucTtGLccvr9h9C
0/R5WJvg6V01U1aZqKLBZDq4Z/thKgd+W+rCQLhUyMnRWw4NJaEZP7L1LtwMGDXJ
hztykvDGvWlBXvsKTGgRXmiO5U1y4BvAeaTsYqI5AoGAZ9WJ/nGMrc+G3loCKvkJ
byiaGlF7UwC/tgN9slfABMZ3sMFtJ7+DEGiav1XpnmqHguEPQJT6r7UwpUi18Qvz
0KeZh9riry5a2YMR/XyubbldBzSdjzgmX3LwpiK7uH9Oil0pgtk4gYg9bbaFudFP
idEnB445EE7hY+ZzBp7lHBA=
-----END PRIVATE KEY-----
17 changes: 17 additions & 0 deletions production/CAkeys/RootCA.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE-----
MIICyjCCAbICCQC6Ht/UfcerKDANBgkqhkiG9w0BAQsFADAnMQswCQYDVQQGEwJV
UzEYMBYGA1UEAwwPRXhhbXBsZS1Sb290LUNBMB4XDTIyMDEyODA1NDY1OVoXDTI0
MTExNzA1NDY1OVowJzELMAkGA1UEBhMCVVMxGDAWBgNVBAMMD0V4YW1wbGUtUm9v
dC1DQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKqaTmTDFKPej78t
BboHGUiHwvtK+QbSNAJwpcJYc9d3/2/2fS/IaQKQMSmWHfxT3S/1CSMycGpPeVx1
l6hI2M6YnuUAzF1kbd3d4Z5UeWVeIBjAj20S7Q8d8P45MsYcml+STzAvyfUg3KQc
YAtjTnGpcZPmCfpIMY5PxZkENuMLp7g2MMm0BqTnRJIA7Gm78V+GBTFWs97M6XAU
haYW0fQoJ4Ms18fmH2G83ouccXq8yTYkhS3xC+lWIbM6sunCbbzYPgJn2NhiXZYX
KN4qknhwXsGbhjZQCr94i2nmf9geY+qchu4pNwJqQEWju9UWjFhrsYv6Cad8X9U5
xdol7dsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIjLVdBBhQGh0GUis8Nl7I62q
S8iVIVu0+XP2CWSlzP/abGs7rsa0QZIXeNYxCMiK1LERFMkVxQ7X0SV151kzqsvZ
e8cTB9OV24pkmQhQBBx2Bz3ysRW7WFs/yt9Nn+7lnE2JQYrcrjEibOpYmpmkNq+T
fM4J4P8ncHlwlSSM7WLzSjheOyHo94TckS9DEUzQ5DPecR0BQUaXeOFo4hPYYwPr
UUhErGo7K5a/DRDpZf8R8U/Kge+gowsINV8sBIiRfhXvDETdE7w4YiL0AP6Tx5b/
x0e3X9aEKKMYUia1Rl4OFINJDIZgFfRT7hDRowfRJ4AwT9PgszrWRG+aIb/rsg==
-----END CERTIFICATE-----
1 change: 1 addition & 0 deletions production/CAkeys/RootCA.srl
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
C5CAF36E598BDB2A
7 changes: 7 additions & 0 deletions production/CAkeys/domains.ext
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
IP.1 = 127.0.0.1
17 changes: 17 additions & 0 deletions production/CAkeys/localhost.csr
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE REQUEST-----
MIICrTCCAZUCAQAwaDELMAkGA1UEBhMCQVUxDDAKBgNVBAgMA1ZJQzESMBAGA1UE
BwwJTWVsYm91cm5lMR0wGwYDVQQKDBRFeGFtcGxlLUNlcnRpZmljYXRlczEYMBYG
A1UEAwwPbG9jYWxob3N0LmxvY2FsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEA7W68G/dlx/UmwyFT8YprN7kje/ImaIbopoBMSxbFGwSXRykeGjgMe49H
K5pSVab/tqyu3RxgkUtIPixfC93zhFU444CHRumnQoJLmIlvf50plQ2vNoNDxnnj
TDjAsTjNioLCNhPRunw6eeO416GMEcIx+rIX/STieuQy7CdnL7Kl87ZXndZPlP1o
2BbiZeR5EDRm5M9GY5udSV1KpHh801g6CAmnzw5y3RJUF73HwO9ULI1lJMZIA18F
7K5/KZKS1ohPrLpxV7ale182MYmfaLL2ZAXsbUGspMoyP/Lm6fOMd3ath3uMkpE4
SFBnUqWDdIkPOrTRev2L6QidUyuhgQIDAQABoAAwDQYJKoZIhvcNAQELBQADggEB
AL1X6/esQzFXOl8OkBSH8sm/iAl0g6U5gJu+spxKYCvs8eP+TS0QrcBo070/HmOc
pxWD9o5anBtHg95SRLVoQyZzcyyq+s/QLyzXodJn7UgzewSu5gtY6x4twlQpkdyp
uJJTc1cW1anhGB3aSn/7Nva7iftL+ZKQaxPvsPiN+V07PBcJUrHwSP9yQMtz99TB
+EXzy+BQu+b0YQmm42yM34ZQxCZDXPyVyC6YuYgXC+nItFYoNuQypTpjPpeuuZui
A/A9CEbX+5/+PyIaGSI5ZzL6f9VBHSP5lp0oskvz1O7jo+JpiJ5hwQLeJAzJg7E7
xR+sNjvVuk9fvrf7V2tKTVA=
-----END CERTIFICATE REQUEST-----
93 changes: 81 additions & 12 deletions production/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,92 @@
version: '3.8'

networks:
backnet:
frontnet:

services:
webserver:
container_name: webserver
restart: always
image: "doubtfire-web:${TAG}"

# This is the proxy which receives all http requests and forwards to relevant servers.
proxy:
image: nginx:mainline-alpine
container_name: proxy
ports:
- "80:3000" # Map host port 80 to container port 3000
- 80:80
- 443:443
depends_on:
- database
- webserver
- apiserver
networks:
- frontnet
- backnet
volumes:
- ./shared-files/proxy-nginx.conf:/etc/nginx/nginx.conf
- ./localhost.crt:/etc/nginx/cert.crt # replace with real certificate
- ./localhost.key:/etc/nginx/key.key # replace with real key
restart: on-failure:5

# Web server hosts the static files
webserver:
image: lmsdoubtfire/doubtfire-web:prod-6
ports:
- 8080:8080
networks:
- backnet
restart: on-failure:5

# API server runs the rails project
apiserver:
image: lmsdoubtfire/apiserver:prod-6
env_file:
- .env.production
ports:
- 3000:3000
networks:
- backnet
depends_on:
- doubtfire-db
volumes:
- student_work:/student-work # Adjust path to where student data should be stored
- doubtfire_logs:/doubtfire/log
- ./shared-files:/shared-files
- ./shared-files/aliases:/etc/aliases:ro
command: /bin/bash -c "bundle exec rails s -b 0.0.0.0"
restart: on-failure:5

# Database server - could be external to docker
doubtfire-db:
image: mariadb:10
restart: always
networks:
- backnet
environment:
MARIADB_RANDOM_ROOT_PASSWORD: true
MARIADB_USER: dfire # Update with mariadb username
MARIADB_PASSWORD: pwd # Update with mariadb password
MARIADB_DATABASE: doubtfire # Update with mariadb database name
volumes:
- "${DF_STUDENT_WORK_DIR}:/student-work"
- mysql_db:/var/lib/mysql

# Automated generation of PDFs using cron
pdfgen:
container_name: pdfgen
image: "doubtfire-pdfgen:${TAG}"
depends_on:
- database
image: lmsdoubtfire/appserver:prod-6
env_file:
- .env.production
networks:
- backnet
depends_on:
- doubtfire-db
volumes:
- "${DF_STUDENT_WORK_DIR}:/student-work"
- student_work:/student-work # Update with path to student work
- ./shared-files:/shared-files
- ./shared-files/aliases:/etc/aliases:ro
- doubtfire_logs:/doubtfire/log
command:
/bin/bash -c "newaliases; cp /shared-files/msmtprc /etc; /doubtfire/entry_point.sh"
restart: on-failure:5

volumes:
doubtfire_logs: {}
mysql_db: {}
student_work: {}

21 changes: 21 additions & 0 deletions production/localhost.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDizCCAnOgAwIBAgIJAMXK825Zi9sqMA0GCSqGSIb3DQEBCwUAMCcxCzAJBgNV
BAYTAlVTMRgwFgYDVQQDDA9FeGFtcGxlLVJvb3QtQ0EwHhcNMjIwMTI4MDU1MTI5
WhcNMjQxMTE3MDU1MTI5WjBoMQswCQYDVQQGEwJBVTEMMAoGA1UECAwDVklDMRIw
EAYDVQQHDAlNZWxib3VybmUxHTAbBgNVBAoMFEV4YW1wbGUtQ2VydGlmaWNhdGVz
MRgwFgYDVQQDDA9sb2NhbGhvc3QubG9jYWwwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQDtbrwb92XH9SbDIVPxims3uSN78iZohuimgExLFsUbBJdHKR4a
OAx7j0crmlJVpv+2rK7dHGCRS0g+LF8L3fOEVTjjgIdG6adCgkuYiW9/nSmVDa82
g0PGeeNMOMCxOM2KgsI2E9G6fDp547jXoYwRwjH6shf9JOJ65DLsJ2cvsqXztled
1k+U/WjYFuJl5HkQNGbkz0Zjm51JXUqkeHzTWDoICafPDnLdElQXvcfA71QsjWUk
xkgDXwXsrn8pkpLWiE+sunFXtqV7XzYxiZ9osvZkBextQaykyjI/8ubp84x3dq2H
e4ySkThIUGdSpYN0iQ86tNF6/YvpCJ1TK6GBAgMBAAGjeTB3MEEGA1UdIwQ6MDih
K6QpMCcxCzAJBgNVBAYTAlVTMRgwFgYDVQQDDA9FeGFtcGxlLVJvb3QtQ0GCCQC6
Ht/UfcerKDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE8DAaBgNVHREEEzARgglsb2Nh
bGhvc3SHBH8AAAEwDQYJKoZIhvcNAQELBQADggEBAAHVVTFaOSHSYm1ylQwapmc4
lzaLrzm3K4lpNp1RiA9fbY2zDhybdV1dMUR1/BAOx1oWewgN49Gkqw8rx1uvmWGl
ifRfj+yxR5ZSyDpWKiTcEpoRxVYPKDJuwWBL6YOE1cjxx8jo3/64VPVGwyyrCLUM
0WLh7zy3q25IDtkBZtocZmXsN66aqAmeKRM/luhcP0rb3fPaNedtZJn9tSsMgQjo
wf1A4LF69uqQqrBuN35YhqMSwwuNcQ6EqYNnqudE1G7qkqhfyYgu5EciI6DK2qO5
0luPC/y3p/QVpomO1nseeGDwxEVuLZrcD0/N7bVic9Rr1p1MTkLrFNJBO8sFaAw=
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions production/localhost.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDtbrwb92XH9SbD
IVPxims3uSN78iZohuimgExLFsUbBJdHKR4aOAx7j0crmlJVpv+2rK7dHGCRS0g+
LF8L3fOEVTjjgIdG6adCgkuYiW9/nSmVDa82g0PGeeNMOMCxOM2KgsI2E9G6fDp5
47jXoYwRwjH6shf9JOJ65DLsJ2cvsqXztled1k+U/WjYFuJl5HkQNGbkz0Zjm51J
XUqkeHzTWDoICafPDnLdElQXvcfA71QsjWUkxkgDXwXsrn8pkpLWiE+sunFXtqV7
XzYxiZ9osvZkBextQaykyjI/8ubp84x3dq2He4ySkThIUGdSpYN0iQ86tNF6/Yvp
CJ1TK6GBAgMBAAECggEBAMdYYbdZT6tCuPi70q7JeJugZZp7BKReIJcqwOOKipLU
l+63Jv78b/6NnUOOnfIr9CZ7dZVPbgSPIGiS+HoOL5a7trfMAcgYBMZifvXi7ipG
2dK7WpB6RT0uuRgVzjL9bhUNE+IzYbMg+je8akUg7Wk7kprZTCrN/RkQ33BG5Ou1
hFxafGr4ETanCCUHyBboV/AqK5B/M4xfi2q4Lac8vlC+PR77K2UzaI7M8aF/9+w0
4xKSM34X7wgYrbQMGtqnEpucdZHfPUx2o3jN7sP8HqDiJtDdC43x2l/+4DvOtDWF
zxt41DJrTjUABImjxthTQ5DkrRJPIoRfMQn6kTSLfsECgYEA/S2PPy79GucDkwTu
aXxISJJlXkXWCJbKDcLchys+rVt3wQGU9rUmupOM2n1oln/LhdDBbDu/i89qeARH
z/vwAXb6F2A6Ws4ViKS2jZMU6WMpXzSPywuEG/5OhwDWuE6YrUqym578EczlR5c0
u8u5Y0VOALRBrD0H/77r8YZRatsCgYEA8BQ+8zAAAcS3XZ9GCdqSOESg+ZvfGBRX
XjK9sPDNjGjIEPh/NstNREyMPz+7R9PgXdg8f2wjCSyMwfTvlcNAPrtrTUx6XCjD
pzm7dPLSDAOZL+w5VFJ+B1+4yIa5/svq92+5pl04+1Q7o9MWriaMtmK0em5ZStFq
1xVKBxFtXdMCgYEA0WejecElu+CjhjCn+TvAlbXwff8JPuVpjeREftB38O8cp9jl
GwFOXTe5YuYjYYemELJPqXPpxHv0NfxkYVSieLOtuzPuUDjweqqyC3tB6qAIEiTp
YinORVEcJnG9J4hqo7qK7EideSOd6I7aIRIp7j/eepqdTxbTzOZfRM+x+80CgYEA
5Jzy4NK5fvWbAszzfdij2m8HtwlF5QEhvTKmTcLQiT8SHI71XPE1b69Q8b23kgth
oRuTaGdJ6aeBlgSuzLb0C4ifAimsbuvme+xO5GuBty0KB4dzhCdVmaH+LP2WSdpW
si6y44fsBfBNJpCRDV7qKZdOczN3VfabPZspNhfTRD8CgYBdncN5W6l9naADSO42
nyTnIV8VEakiLX/Q7P3NlLeMLjS79F0Mj+Fh3ar81/O7eYhipvlmxZBTvOnjaKxR
m7X3rmwnogRrbq+qkVbnYdKyJj3zAkjZZaaWfgAXQdY1PUnJTtDkvzUkeesEvt+L
Yka/0HSHBh9Hlsj5pgeLFI83BQ==
-----END PRIVATE KEY-----
1 change: 1 addition & 0 deletions production/shared-files/aliases
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
root: [email protected]
19 changes: 19 additions & 0 deletions production/shared-files/msmtprc
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# find out more about the configuration here: https://marlam.de/msmtp/msmtprc.txt
# Set default values for all following accounts.
defaults
auth on
auto_from off
tls on
tls_starttls on
logfile /doubtfire/log/msmtp

# server
account server
host smtp.server # update host
port 587 # update port
from # update from email
user # update email user
password # update email password

# Set a default account
account default : server
Loading

0 comments on commit 0385fdf

Please sign in to comment.