6
0
mirror of https://github.com/ChristianLight/tutor.git synced 2024-12-13 14:43:03 +00:00

Pluggable SMTP service

This is part of #114
This commit is contained in:
Régis Behmo 2019-03-20 18:45:09 +01:00
parent 960816b002
commit 259b8961c8
10 changed files with 27 additions and 8 deletions

View File

@ -1,5 +1,9 @@
# Changelog # Changelog
## Latest
- [Feature] Configurable and pluggable data storage backends (#114)
## 3.2.1 (2019-03-19) ## 3.2.1 (2019-03-19)
- [Feature] Enable grade downloads by default (#143) - [Feature] Enable grade downloads by default (#143)

View File

@ -41,16 +41,16 @@ tutor images pull elasticsearch
tutor images pull memcached tutor images pull memcached
tutor images pull mongodb tutor images pull mongodb
tutor images pull mysql tutor images pull mysql
tutor images pull namshi
tutor images pull nginx tutor images pull nginx
tutor images pull rabbitmq tutor images pull rabbitmq
tutor images pull smtp
echo "=============== Tagging vendor docker images" echo "=============== Tagging vendor docker images"
docker tag $(tutor config printvalue DOCKER_IMAGE_ELASTICSEARCH) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_ELASTICSEARCH) docker tag $(tutor config printvalue DOCKER_IMAGE_ELASTICSEARCH) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_ELASTICSEARCH)
docker tag $(tutor config printvalue DOCKER_IMAGE_MEMCACHED) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_MEMCACHED) docker tag $(tutor config printvalue DOCKER_IMAGE_MEMCACHED) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_MEMCACHED)
docker tag $(tutor config printvalue DOCKER_IMAGE_MONGODB) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_MONGODB) docker tag $(tutor config printvalue DOCKER_IMAGE_MONGODB) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_MONGODB)
docker tag $(tutor config printvalue DOCKER_IMAGE_MYSQL) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_MYSQL) docker tag $(tutor config printvalue DOCKER_IMAGE_MYSQL) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_MYSQL)
docker tag $(tutor config printvalue DOCKER_IMAGE_NAMSHI) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_NAMSHI) docker tag $(tutor config printvalue DOCKER_IMAGE_SMTP) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_SMTP)
docker tag $(tutor config printvalue DOCKER_IMAGE_NGINX) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_NGINX) docker tag $(tutor config printvalue DOCKER_IMAGE_NGINX) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_NGINX)
docker tag $(tutor config printvalue DOCKER_IMAGE_RABBITMQ) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_RABBITMQ) docker tag $(tutor config printvalue DOCKER_IMAGE_RABBITMQ) localhost:5000/$(tutor config printvalue DOCKER_IMAGE_RABBITMQ)
@ -59,7 +59,7 @@ docker push localhost:5000/$(tutor config printvalue DOCKER_IMAGE_ELASTICSEARCH)
docker push localhost:5000/$(tutor config printvalue DOCKER_IMAGE_MEMCACHED) docker push localhost:5000/$(tutor config printvalue DOCKER_IMAGE_MEMCACHED)
docker push localhost:5000/$(tutor config printvalue DOCKER_IMAGE_MONGODB) docker push localhost:5000/$(tutor config printvalue DOCKER_IMAGE_MONGODB)
docker push localhost:5000/$(tutor config printvalue DOCKER_IMAGE_MYSQL) docker push localhost:5000/$(tutor config printvalue DOCKER_IMAGE_MYSQL)
docker push localhost:5000/$(tutor config printvalue DOCKER_IMAGE_NAMSHI) docker push localhost:5000/$(tutor config printvalue DOCKER_IMAGE_SMTP)
docker push localhost:5000/$(tutor config printvalue DOCKER_IMAGE_NGINX) docker push localhost:5000/$(tutor config printvalue DOCKER_IMAGE_NGINX)
docker push localhost:5000/$(tutor config printvalue DOCKER_IMAGE_RABBITMQ) docker push localhost:5000/$(tutor config printvalue DOCKER_IMAGE_RABBITMQ)

View File

@ -95,6 +95,12 @@ Rabbitmq
- ``RABBITMQ_HOST`` (default: ``"rabbitmq"``) - ``RABBITMQ_HOST`` (default: ``"rabbitmq"``)
SMTP
~~~~
- ``SMTP_HOST`` (default: ``"smtp"``)
- ``SMTP_PORT`` (default: ``25``)
Optional features Optional features
----------------- -----------------

View File

@ -11,7 +11,7 @@ def images():
pass pass
OPENEDX_IMAGES = ["openedx", "forum", "notes", "xqueue", "android"] OPENEDX_IMAGES = ["openedx", "forum", "notes", "xqueue", "android"]
VENDOR_IMAGES = ["elasticsearch", "memcached", "mongodb", "mysql", "namshi", "nginx", "rabbitmq"] VENDOR_IMAGES = ["elasticsearch", "memcached", "mongodb", "mysql", "nginx", "rabbitmq", "smtp"]
argument_openedx_image = click.argument( argument_openedx_image = click.argument(
"image", type=click.Choice(["all"] + OPENEDX_IMAGES), "image", type=click.Choice(["all"] + OPENEDX_IMAGES),
) )

View File

@ -26,7 +26,8 @@
"port": {{ ELASTICSEARCH_PORT }} "port": {{ ELASTICSEARCH_PORT }}
}], }],
"EMAIL_BACKEND": "django.core.mail.backends.smtp.EmailBackend", "EMAIL_BACKEND": "django.core.mail.backends.smtp.EmailBackend",
"EMAIL_HOST": "smtp", "EMAIL_HOST": "{{ SMTP_HOST }}",
"EMAIL_PORT": {{ SMTP_PORT }},
"LANGUAGE_CODE": "{{ LANGUAGE_CODE }}", "LANGUAGE_CODE": "{{ LANGUAGE_CODE }}",
"CACHES": { "CACHES": {
"default": { "default": {

View File

@ -33,7 +33,8 @@
"port": {{ ELASTICSEARCH_PORT }} "port": {{ ELASTICSEARCH_PORT }}
}], }],
"EMAIL_BACKEND": "django.core.mail.backends.smtp.EmailBackend", "EMAIL_BACKEND": "django.core.mail.backends.smtp.EmailBackend",
"EMAIL_HOST": "smtp", "EMAIL_HOST": "{{ SMTP_HOST }}",
"EMAIL_PORT": {{ SMTP_PORT }},
{% if ACTIVATE_NOTES %} {% if ACTIVATE_NOTES %}
"EDXNOTES_PUBLIC_API": "{{ "https" if ACTIVATE_HTTPS else "http" }}://notes.{{ LMS_HOST }}/api/v1", "EDXNOTES_PUBLIC_API": "{{ "https" if ACTIVATE_HTTPS else "http" }}://notes.{{ LMS_HOST }}/api/v1",
"EDXNOTES_INTERNAL_API": "http://notes.openedx:8000/api/v1", "EDXNOTES_INTERNAL_API": "http://notes.openedx:8000/api/v1",

View File

@ -4,6 +4,7 @@ ACTIVATE_MEMCACHED: true
ACTIVATE_MONGODB: true ACTIVATE_MONGODB: true
ACTIVATE_MYSQL: true ACTIVATE_MYSQL: true
ACTIVATE_RABBITMQ: true ACTIVATE_RABBITMQ: true
ACTIVATE_SMTP: true
ANDROID_RELEASE_STORE_PASSWORD: "android store password" ANDROID_RELEASE_STORE_PASSWORD: "android store password"
ANDROID_RELEASE_KEY_PASSWORD: "android release key password" ANDROID_RELEASE_KEY_PASSWORD: "android release key password"
ANDROID_RELEASE_KEY_ALIAS: "android release key alias" ANDROID_RELEASE_KEY_ALIAS: "android release key alias"
@ -18,7 +19,7 @@ DOCKER_IMAGE_MYSQL: "mysql:5.6.36"
DOCKER_IMAGE_ELASTICSEARCH: "elasticsearch:1.5.2" DOCKER_IMAGE_ELASTICSEARCH: "elasticsearch:1.5.2"
DOCKER_IMAGE_NGINX: "nginx:1.13" DOCKER_IMAGE_NGINX: "nginx:1.13"
DOCKER_IMAGE_RABBITMQ: "rabbitmq:3.6.10" DOCKER_IMAGE_RABBITMQ: "rabbitmq:3.6.10"
DOCKER_IMAGE_NAMSHI: "namshi/smtp:latest" DOCKER_IMAGE_SMTP: "namshi/smtp:latest"
DOCKER_REGISTRY: "" DOCKER_REGISTRY: ""
ELASTICSEARCH_HOST: "elasticsearch" ELASTICSEARCH_HOST: "elasticsearch"
ELASTICSEARCH_PORT: 9200 ELASTICSEARCH_PORT: 9200
@ -35,6 +36,8 @@ NGINX_HTTPS_PORT: 443
NOTES_MYSQL_DATABASE: "notes" NOTES_MYSQL_DATABASE: "notes"
NOTES_MYSQL_USERNAME: "notes" NOTES_MYSQL_USERNAME: "notes"
RABBITMQ_HOST: "rabbitmq" RABBITMQ_HOST: "rabbitmq"
SMTP_HOST: "smtp"
SMTP_PORT: 25
XQUEUE_AUTH_USERNAME: "lms" XQUEUE_AUTH_USERNAME: "lms"
XQUEUE_MYSQL_DATABASE: "xqueue" XQUEUE_MYSQL_DATABASE: "xqueue"
XQUEUE_MYSQL_USERNAME: "xqueue" XQUEUE_MYSQL_USERNAME: "xqueue"

View File

@ -242,6 +242,7 @@ spec:
claimName: mysql claimName: mysql
{% endif %} {% endif %}
{% if ACTIVATE_SMTP %}
--- ---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
@ -262,6 +263,7 @@ spec:
image: {{ DOCKER_REGISTRY }}{{ DOCKER_IMAGE_SMTP }} image: {{ DOCKER_REGISTRY }}{{ DOCKER_IMAGE_SMTP }}
ports: ports:
- containerPort: 25 - containerPort: 25
{% endif %}
--- ---
apiVersion: apps/v1 apiVersion: apps/v1

View File

@ -131,6 +131,7 @@ spec:
app: rabbitmq app: rabbitmq
{% endif %} {% endif %}
{% if ACTIVATE_SMTP %}
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
@ -143,3 +144,4 @@ spec:
protocol: TCP protocol: TCP
selector: selector:
app: smtp app: smtp
{% endif %}

View File

@ -78,7 +78,7 @@ services:
# Simple SMTP server # Simple SMTP server
smtp: smtp:
image: {{ DOCKER_REGISTRY }}{{ DOCKER_IMAGE_NAMSHI }} image: {{ DOCKER_REGISTRY }}{{ DOCKER_IMAGE_SMTP }}
restart: unless-stopped restart: unless-stopped
############# Forum ############# Forum