From cc5be2f5ce9d8febfa804124f015ce5d40521076 Mon Sep 17 00:00:00 2001 From: Maksym Komar Date: Sun, 24 May 2020 19:44:31 +0000 Subject: [PATCH 1/5] Add e-mail setting to awsdeploy.yml --- awsdeploy.yml | 56 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/awsdeploy.yml b/awsdeploy.yml index bc1b0f25..91c64c1a 100644 --- a/awsdeploy.yml +++ b/awsdeploy.yml @@ -75,14 +75,34 @@ Resources: - !Ref SecretKey - |+ + - sudo tee -a /env.list <<< EMAIL_USE_TLS= + - !Ref EMailUseTSL + - |+ + + - sudo tee -a /env.list <<< EMAIL_HOST= + - !Ref EMailHost + - |+ + + - sudo tee -a /env.list <<< EMAIL_PORT= + - !Ref EMailHostPort + - |+ + + - sudo tee -a /env.list <<< EMAIL_HOST_USER= + - !Ref EMailHostUser + - |+ + + - sudo tee -a /env.list <<< EMAIL_HOST_PASSWORD= + - !Ref EMailHostPassword + - |+ + + - | + sudo docker pull doccano/doccano:latest - | set -a - | source /env.list - | set +a - - | - sudo docker pull doccano/doccano:latest - > sudo docker run -d --name doccano --env-file /env.list -p 80:8000 doccano/doccano:latest @@ -195,6 +215,7 @@ Parameters: ConstraintDescription: must be the name of an existing EC2 KeyPair. AdminUserName: Description: The admin account user name + Default: 'admin' Type: String MinLength: 1 MaxLength: 16 @@ -224,6 +245,37 @@ Parameters: Description: Secret key for Django Type: String AllowedPattern: '^[a-zA-Z0-9]*$' + EMailUseTSL: + Default: 'False' + AllowedValues: + - 'False' + - 'True' + Description: SMTP will use TSL + Type: String + AllowedPattern: '^[a-zA-Z0-9]*$' + EMailHost: + Description: SMTP Host + Type: String + AllowedPattern: '^[\w-]+(\.[\w-]+)*(\.[a-z]{2,})$' + EMailHostUser: + Description: SMTP Host User + Type: String + MinLength: 1 + MaxLength: 25 + AllowedPattern: '^[a-zA-Z0-9][a-zA-Z0-9]{1,25}$' + EMailHostPassword: + Description: SMTP Host User password + Type: String + NoEcho: true + MinLength: 0 + MaxLength: 60 + AllowedPattern: '^\p{Graph}+$' + EMailHostPort: + Description: SMTP Port + Type: String + MinLength: 1 + MaxLength: 5 + AllowedPattern: '^\d+$' Outputs: PublicDNS: Value: !GetAtt From 5291f9d030ad0b9df02112ca6b50eaa494db6adc Mon Sep 17 00:00:00 2001 From: Maksym Komar Date: Fri, 12 Jun 2020 19:46:56 +0000 Subject: [PATCH 2/5] Add workers count setting to awsdeploy.yml --- awsdeploy.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/awsdeploy.yml b/awsdeploy.yml index 91c64c1a..a94a73ea 100644 --- a/awsdeploy.yml +++ b/awsdeploy.yml @@ -95,6 +95,10 @@ Resources: - !Ref EMailHostPassword - |+ + - sudo tee -a /env.list <<< WORKERS= + - !Ref WorkersCount + - |+ + - | sudo docker pull doccano/doccano:latest - | @@ -276,6 +280,12 @@ Parameters: MinLength: 1 MaxLength: 5 AllowedPattern: '^\d+$' + WorkersCount: + Description: Workers Count + Type: String + MinLength: 1 + MaxLength: 3 + AllowedPattern: '^\d+$' Outputs: PublicDNS: Value: !GetAtt From 86dd316a46ce2a73c2ee47e62e8cfbd9b34e05c3 Mon Sep 17 00:00:00 2001 From: Maksym Komar Date: Fri, 12 Jun 2020 19:52:33 +0000 Subject: [PATCH 3/5] Add From: email setting to awsdeploy.yml --- app/app/settings.py | 1 + awsdeploy.yml | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/app/app/settings.py b/app/app/settings.py index 36233b8d..cb7303d7 100644 --- a/app/app/settings.py +++ b/app/app/settings.py @@ -314,6 +314,7 @@ EMAIL_HOST = env('EMAIL_HOST', None) EMAIL_HOST_USER = env('EMAIL_HOST_USER', None) EMAIL_HOST_PASSWORD = env('EMAIL_HOST_PASSWORD', None) EMAIL_PORT = env.int('EMAIL_PORT', 587) +DEFAULT_FROM_EMAIL = env('DEFAULT_FROM_EMAIL', 'webmaster@localhost') if not EMAIL_HOST: EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' diff --git a/awsdeploy.yml b/awsdeploy.yml index a94a73ea..e052944f 100644 --- a/awsdeploy.yml +++ b/awsdeploy.yml @@ -99,6 +99,10 @@ Resources: - !Ref WorkersCount - |+ + - sudo tee -a /env.list <<< DEFAULT_FROM_EMAIL= + - !Ref FromEmail + - |+ + - | sudo docker pull doccano/doccano:latest - | @@ -286,6 +290,11 @@ Parameters: MinLength: 1 MaxLength: 3 AllowedPattern: '^\d+$' + FromEmail: + Default: webmaster@localhost + Description: The email used to send from singup messages + Type: String + AllowedPattern: '^[\x20-\x45]?[\w-\+]+(\.[\w]+)*@[\w-]+(\.[\w]+)*(\.[a-z]{2,})?$' Outputs: PublicDNS: Value: !GetAtt From b8e49b90f776c021e7a7c0bc67ea0e3d4a91bf07 Mon Sep 17 00:00:00 2001 From: Maksym Komar Date: Sat, 13 Jun 2020 20:42:54 +0000 Subject: [PATCH 4/5] Add docker image name setting to awsdeploy.yml --- awsdeploy.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/awsdeploy.yml b/awsdeploy.yml index e052944f..8d9741e3 100644 --- a/awsdeploy.yml +++ b/awsdeploy.yml @@ -103,17 +103,21 @@ Resources: - !Ref FromEmail - |+ - - | - sudo docker pull doccano/doccano:latest + - sudo tee -a /env.list <<< DOCKER_IMAGE= + - !Ref DockerImageName + - |+ + - | set -a - | source /env.list - | set +a + - | + sudo docker pull ${DOCKER_IMAGE} - > sudo docker run -d --name doccano --env-file /env.list -p 80:8000 - doccano/doccano:latest + ${DOCKER_IMAGE} - > sudo docker exec doccano tools/create-admin.sh ${ADMIN} ${EMAIL} ${PASSWORD} @@ -295,6 +299,11 @@ Parameters: Description: The email used to send from singup messages Type: String AllowedPattern: '^[\x20-\x45]?[\w-\+]+(\.[\w]+)*@[\w-]+(\.[\w]+)*(\.[a-z]{2,})?$' + DockerImageName: + Default: doccano/doccano:latest + Description: The Docker image name + Type: String + AllowedPattern: '^[\w_-]+/[\w_-]+:[\w_-]+$' Outputs: PublicDNS: Value: !GetAtt From 92016a956bd8a35a0b0a88c3edad835cc471bdfa Mon Sep 17 00:00:00 2001 From: Maksym Komar Date: Sat, 13 Jun 2020 20:48:37 +0000 Subject: [PATCH 5/5] Fix user admin creation in awsdeploy.yml --- awsdeploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awsdeploy.yml b/awsdeploy.yml index 8d9741e3..d1920c94 100644 --- a/awsdeploy.yml +++ b/awsdeploy.yml @@ -119,7 +119,7 @@ Resources: sudo docker run -d --name doccano --env-file /env.list -p 80:8000 ${DOCKER_IMAGE} - > - sudo docker exec doccano tools/create-admin.sh ${ADMIN} ${EMAIL} + sleep 3 && sudo docker exec doccano tools/create-admin.sh ${ADMIN} ${EMAIL} ${PASSWORD} Metadata: 'AWS::CloudFormation::Designer':