1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/outline_ynh.git synced 2024-09-03 19:56:12 +02:00

Merge branch 'master' into version-2

This commit is contained in:
Limezy 2023-10-02 23:56:03 +07:00
commit eb5f549b95
12 changed files with 109 additions and 227 deletions

View file

@ -21,12 +21,11 @@ The fastest wiki and knowledge base for growing teams. Beautiful, feature rich,
### Features
- Fully working installation of Outline wiki
- Including a MinIO server for avatars and picture object storage
- Including a Dex server to connect to Yunohost's LDAP userbase using an OIDC auth flow
- Using Yunohost's built-in SMTP server for notifications
**Shipped version:** 0.69.2.2~ynh1
**Shipped version:** 0.72.0.3~ynh2
**Demo:** https://app.getoutline.com/create
@ -34,6 +33,27 @@ The fastest wiki and knowledge base for growing teams. Beautiful, feature rich,
![Screenshot of Outline](./doc/screenshots/outline_screenshot.png)
## Disclaimers / important information
### Not totally free licence
Outline is a softwared licenced under [BUSL 1.1 licence](https://spdx.org/licenses/BUSL-1.1.html).
⚠️ That licence **is not totally free**. Please read it very carefully if you have any commercial use in mind.
The Outline version shipped with this package (v0.72.0) will be released under Apache-2.0 licence [after May 23rd 2026](https://github.com/outline/outline/blob/151c2c731a94eefdda4e62f311308e9bd4615838/LICENSE).
### Known limitations
1. The app can now run in the CI server and reach level 8. However, it is still very young and not broadly tested. **Please use it with extreme care if it's on a prod server**
2. The app requires [Dex app](https://github.com/YunoHost-apps/dex_ynh) to be installed (Dex installation and setup is automatic, though)
3. The app is requiring three domains including two fully dedicated (one for MinIO server, one for Dex, one for Outline)
4. ARM architectures are not yet supported (But it should be achievable soon)
5. Because it's built from sources, the app requires an important amount of RAM, disk and time to install properly
### How to create an admin user
The first user to login will automatically be granted admin rights
You can then change the user rights by default and/or change the admin user afterwards from the Outline settings page
## :red_circle: Antifeatures
- **Not totally free upstream**: The packaged app is under an overall free licence, but with clauses that restrict its use.

View file

@ -21,12 +21,11 @@ The fastest wiki and knowledge base for growing teams. Beautiful, feature rich,
### Features
- Fully working installation of Outline wiki
- Including a MinIO server for avatars and picture object storage
- Including a Dex server to connect to Yunohost's LDAP userbase using an OIDC auth flow
- Using Yunohost's built-in SMTP server for notifications
**Version incluse :** 0.69.2.2~ynh1
**Version incluse :** 0.72.0.3~ynh2
**Démo :** https://app.getoutline.com/create
@ -34,6 +33,27 @@ The fastest wiki and knowledge base for growing teams. Beautiful, feature rich,
![Capture décran de Outline](./doc/screenshots/outline_screenshot.png)
## Avertissements / informations importantes
### Not totally free licence
Outline is a softwared licenced under [BUSL 1.1 licence](https://spdx.org/licenses/BUSL-1.1.html).
⚠️ That licence **is not totally free**. Please read it very carefully if you have any commercial use in mind.
The Outline version shipped with this package (v0.72.0) will be released under Apache-2.0 licence [after May 23rd 2026](https://github.com/outline/outline/blob/151c2c731a94eefdda4e62f311308e9bd4615838/LICENSE).
### Known limitations
1. The app can now run in the CI server and reach level 8. However, it is still very young and not broadly tested. **Please use it with extreme care if it's on a prod server**
2. The app requires [Dex app](https://github.com/YunoHost-apps/dex_ynh) to be installed (Dex installation and setup is automatic, though)
3. The app is requiring three domains including two fully dedicated (one for MinIO server, one for Dex, one for Outline)
4. ARM architectures are not yet supported (But it should be achievable soon)
5. Because it's built from sources, the app requires an important amount of RAM, disk and time to install properly
### How to create an admin user
The first user to login will automatically be granted admin rights
You can then change the user rights by default and/or change the admin user afterwards from the Outline settings page
## :red_circle: Fonctions indésirables
- **Not totally free upstream**: The packaged app is under an overall free licence, but with clauses that restrict its use.

View file

@ -29,14 +29,8 @@ PORT=__PORT__
# A more detailed guide on setting up S3 is available here:
# => https://wiki.generaloutline.com/share/125de1cc-9ff6-424b-8415-0d58c809a40f
#
AWS_ACCESS_KEY_ID=__MINIO_ADMIN__
AWS_SECRET_ACCESS_KEY=__MINIO_PASSWORD__
AWS_REGION=fr-ynh-1
AWS_S3_UPLOAD_BUCKET_URL=https://__MINIO_DOMAIN__
AWS_S3_UPLOAD_BUCKET_NAME=outlinestorage
AWS_S3_UPLOAD_MAX_SIZE=26214400
AWS_S3_FORCE_PATH_STYLE=true
AWS_S3_ACL=private
FILE_STORAGE=local
FILE_STORAGE_UPLOAD_MAX_SIZE=106214400
# AUTHENTICATION

View file

@ -1,20 +0,0 @@
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::outlinestorage/public/*"
]
}
]
}

View file

@ -1,16 +1,15 @@
### Not totally free licence
Outline is a softwared licenced under [BUSL 1.1 licence](https://spdx.org/licenses/BUSL-1.1.html).
⚠️ That licence **is not totally free**. Please read it very carefully if you have any commercial use in mind.
The Outline version shipped with this package (v0.68.0) will be released under Apache-2.0 licence [after May 23rd 2026](https://github.com/outline/outline/blob/151c2c731a94eefdda4e62f311308e9bd4615838/LICENSE).
The Outline version shipped with this package (v0.72.0) will be released under Apache-2.0 licence [after May 23rd 2026](https://github.com/outline/outline/blob/151c2c731a94eefdda4e62f311308e9bd4615838/LICENSE).
### Known limitations
1. The app can now run in the CI server and reach level 7. However, it is still very young and not broadly tested. **Please use it with extreme care if it's on a prod server**
2. The app requires [MinIO app](https://github.com/YunoHost-apps/minio_ynh) to be installed (MinIO installation and setup is automatic, though)
3. The app requires [Dex app](https://github.com/YunoHost-apps/dex_ynh) to be installed (Dex installation and setup is automatic, though)
4. The app is requiring three domains including two fully dedicated (one for MinIO server, one for Dex, one for Outline)
5. ARM architectures are not yet supported (But it should be achievable soon)
6. Because it's built from sources, the app requires an important amount of RAM, disk and time to install properly
1. The app can now run in the CI server and reach level 8. However, it is still very young and not broadly tested. **Please use it with extreme care if it's on a prod server**
2. The app requires [Dex app](https://github.com/YunoHost-apps/dex_ynh) to be installed (Dex installation and setup is automatic, though)
3. The app is requiring three domains including two fully dedicated (one for MinIO server, one for Dex, one for Outline)
4. ARM architectures are not yet supported (But it should be achievable soon)
5. Because it's built from sources, the app requires an important amount of RAM, disk and time to install properly
### How to create an admin user

View file

@ -3,6 +3,5 @@ The fastest wiki and knowledge base for growing teams. Beautiful, feature rich,
### Features
- Fully working installation of Outline wiki
- Including a MinIO server for avatars and picture object storage
- Including a Dex server to connect to Yunohost's LDAP userbase using an OIDC auth flow
- Using Yunohost's built-in SMTP server for notifications

View file

@ -16,18 +16,10 @@ source /usr/share/yunohost/helpers
ynh_print_info --message="Declaring files to be backed up..."
#=================================================
# BACKUP MINIO
# BACKUP LOCAL STORAGE
#=================================================
ynh_secure_remove --file="$mc_path/outlinestorage"
pushd "$mc_path"
ynh_exec_warn_less sudo -u minio mkdir outlinestorage
ynh_exec_warn_less sudo -u minio ./mc mirror --a minio/outlinestorage ./outlinestorage/
popd
#REMOVEME? ynh_secure_remove --file="$install_dir/outlinestorage"
mv "$mc_path/outlinestorage" "$install_dir/outlinestorage"
chown -R outline:www-data "$install_dir/outlinestorage"
ynh_backup --src_path="/var/lib/outline"
#=================================================
# BACKUP THE APP MAIN DIR

View file

@ -24,27 +24,6 @@ fi
secret_key=$(ynh_hex_32_random)
utils_secret=$(ynh_hex_32_random)
#=================================================
# CHECK IF MINIO IS INSTALLED, IF NOT INSTALL IT
#=================================================
ynh_script_progression --message="Installing MinIO if needed..." --weight=18
if ! yunohost app list | grep -q "id: minio"; then
echo "MinIO is not installed. Installing... "
yunohost tools update
if yunohost app list | grep -q "$YNH_APP_ARG_MINIO_DOMAIN"; then
ynh_die "The domain provided for MinIO is already used by another app. Please chose another one !"
fi
# FIXME hackish workaround to circumvent the linter
public=public
yunohost app install https://github.com/YunoHost-Apps/minio_ynh --force --args "domain=$YNH_APP_ARG_MINIO_DOMAIN&is_$public=true&admin=$YNH_APP_ARG_MINIO_ADMIN&password=$YNH_APP_ARG_MINIO_PASSWORD"
fi
minio_domain=$(ynh_app_setting_get --app="minio" --key=domain)
minio_admin=$(ynh_app_setting_get --app="minio" --key=admin)
minio_password=$(ynh_app_setting_get --app="minio" --key=password)
mc_path=$(ynh_app_setting_get --app="minio" --key=mc_path)
#=================================================
# INSTALL DEX APP FOR OAUTH2 / OIDC
#=================================================
@ -85,10 +64,6 @@ ynh_app_setting_set --app=$app --key=language --value=$language
ynh_app_setting_set --app=$app --key=secret_key --value=$secret_key
ynh_app_setting_set --app=$app --key=utils_secret --value=$utils_secret
ynh_app_setting_set --app=$app --key=language_key --value=$language_key
ynh_app_setting_set --app=$app --key=minio_domain --value=$minio_domain
ynh_app_setting_set --app=$app --key=minio_admin --value=$minio_admin
ynh_app_setting_set --app=$app --key=minio_password --value=$minio_password
ynh_app_setting_set --app=$app --key=mc_path --value=$mc_path
ynh_app_setting_set --app=$app --key=dex_app --value=$dex_app
ynh_app_setting_set --app=$app --key=dex_domain --value=$dex_domain
ynh_app_setting_set --app=$app --key=dex_path --value=$dex_path
@ -127,17 +102,11 @@ chmod -R o-rwx "$install_dir"
chown -R $app:www-data "$install_dir"
#=================================================
# SETUP MINIO BUCKET
# SETUP LOCAL STORAGE
#=================================================
ynh_script_progression --message="Setting up MinIO bucket for Outline..." --weight=1
ynh_add_config --template="../conf/policy.json" --destination="$mc_path/policy.json"
chown minio:www-data "$mc_path/policy.json"
pushd "$mc_path"
ynh_exec_warn_less sudo -u minio ./mc mb minio/outlinestorage --region "fr-ynh-1"
ynh_exec_warn_less sudo -u minio ./mc anonymous set-json ./policy.json minio/outlinestorage
popd
mkdir "/var/lib/$app"
chown -R $app:www-data "/var/lib/$app"
#=================================================
# NGINX CONFIGURATION

View file

@ -9,35 +9,6 @@
source _common.sh
source /usr/share/yunohost/helpers
#=================================================
# LOAD SETTINGS
#=================================================
#REMOVEME? ynh_script_progression --message="Loading installation settings..." --weight=1
#REMOVEME? app=$YNH_APP_INSTANCE_NAME
#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir)
#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain)
#REMOVEME? path=$(ynh_app_setting_get --app=$app --key=path)
#REMOVEME? port=$(ynh_app_setting_get --app=$app --key=port)
#REMOVEME? db_name=$(ynh_app_setting_get --app=$app --key=db_name)
#REMOVEME? language_key=$(ynh_app_setting_get --app=$app --key=language_key)
#REMOVEME? secret_key=$(ynh_app_setting_get --app=$app --key=secret_key)
#REMOVEME? utils_secret=$(ynh_app_setting_get --app=$app --key=utils_secret)
#REMOVEME? minio_domain=$(ynh_app_setting_get --app=$app --key=minio_domain)
#REMOVEME? minio_admin=$(ynh_app_setting_get --app=$app --key=minio_admin)
#REMOVEME? minio_password=$(ynh_app_setting_get --app=$app --key=minio_password)
#REMOVEME? mc_path=$(ynh_app_setting_get --app=$app --key=mc_path)
#REMOVEME? dex_app=$(ynh_app_setting_get --app=$app --key=dex_app)
#REMOVEME? dex_domain=$(ynh_app_setting_get --app=$app --key=dex_domain)
#REMOVEME? dex_path=$(ynh_app_setting_get --app=$app --key=dex_path)
#REMOVEME? oidc_secret=$(ynh_app_setting_get --app=$app --key=oidc_secret)
#REMOVEME? oidc_name=$(ynh_app_setting_get --app=$app --key=oidc_name)
#REMOVEME? oidc_callback=$(ynh_app_setting_get --app=$app --key=oidc_callback)
#REMOVEME? dex_auth_uri=$(ynh_app_setting_get --app=$app --key=dex_auth_uri)
#REMOVEME? dex_token_uri=$(ynh_app_setting_get --app=$app --key=dex_token_uri)
#REMOVEME? dex_user_uri=$(ynh_app_setting_get --app=$app --key=dex_user_uri)
#=================================================
# STANDARD REMOVE
#=================================================
@ -70,15 +41,11 @@ ynh_script_progression --message="Removing Dex app used for Outline auth..." --w
yunohost app remove $dex_app
#=================================================
# REMOVE MINIO BUCKET
# REMOVE LOCAL STORAGE
#=================================================
ynh_script_progression --message="Removing Outline MinIO bucket..." --weight=1
pushd "$mc_path"
ynh_exec_warn_less sudo -u minio ./mc rb minio/outlinestorage --force
popd
ynh_secure_remove --file="$mc_path/outlinestorage"
ynh_script_progression --message="Removing Outline local storage..." --weight=1
ynh_secure_remove --file="/var/lib/outline"
#=================================================
# END OF SCRIPT

View file

@ -10,46 +10,6 @@
source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers
#=================================================
# MANAGE SCRIPT FAILURE
#=================================================
#REMOVEME? ynh_clean_setup () {
#### Remove this function if there's nothing to clean before calling the remove script.
true
}
# Exit if an error occurs during the execution of the script
#REMOVEME? ynh_abort_if_errors
#=================================================
# LOAD SETTINGS
#=================================================
#REMOVEME? ynh_script_progression --message="Loading installation settings..." --weight=1
#REMOVEME? app=$YNH_APP_INSTANCE_NAME
#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir)
#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain)
#REMOVEME? path=$(ynh_app_setting_get --app=$app --key=path)
#REMOVEME? port=$(ynh_app_setting_get --app=$app --key=port)
#REMOVEME? db_name=$(ynh_app_setting_get --app=$app --key=db_name)
#REMOVEME? language_key=$(ynh_app_setting_get --app=$app --key=language_key)
#REMOVEME? secret_key=$(ynh_app_setting_get --app=$app --key=secret_key)
#REMOVEME? utils_secret=$(ynh_app_setting_get --app=$app --key=utils_secret)
#REMOVEME? minio_domain=$(ynh_app_setting_get --app=$app --key=minio_domain)
#REMOVEME? minio_admin=$(ynh_app_setting_get --app=$app --key=minio_admin)
#REMOVEME? minio_password=$(ynh_app_setting_get --app=$app --key=minio_password)
#REMOVEME? mc_path=$(ynh_app_setting_get --app=$app --key=mc_path)
#REMOVEME? dex_app=$(ynh_app_setting_get --app=$app --key=dex_app)
#REMOVEME? dex_domain=$(ynh_app_setting_get --app=$app --key=dex_domain)
#REMOVEME? dex_path=$(ynh_app_setting_get --app=$app --key=dex_path)
#REMOVEME? oidc_secret=$(ynh_app_setting_get --app=$app --key=oidc_secret)
#REMOVEME? oidc_name=$(ynh_app_setting_get --app=$app --key=oidc_name)
#REMOVEME? oidc_callback=$(ynh_app_setting_get --app=$app --key=oidc_callback)
#REMOVEME? dex_auth_uri=$(ynh_app_setting_get --app=$app --key=dex_auth_uri)
#REMOVEME? dex_token_uri=$(ynh_app_setting_get --app=$app --key=dex_token_uri)
#REMOVEME? dex_user_uri=$(ynh_app_setting_get --app=$app --key=dex_user_uri)
#=================================================
# CHECK IF DEX IS INSTALLED, IF NOT INSTALL IT
#=================================================
@ -65,20 +25,21 @@ if ! yunohost app list | grep -q "id: $dex_app"; then
fi
#=================================================
# CHECK IF MINIO IS INSTALLED, IF NOT INSTALL IT
# STANDARD RESTORATION STEPS
#=================================================
ynh_script_progression --message="Installing MinIO if needed..." --weight=18
# RESTORE THE NGINX CONFIGURATION
#=================================================
ynh_script_progression --message="Restoring the NGINX configuration..." --weight=1
if ! yunohost app list | grep -q "id: minio"; then
echo "MinIO is not installed. Installing... "
yunohost tools update
if yunohost app list | grep -q "$minio_domain"; then
ynh_die "The domain provided for MinIO is already used by another app. Please chose another one !"
fi
# FIXME hackish workaround to circumvent the linter
public=public
yunohost app install https://github.com/YunoHost-Apps/minio_ynh --force --args "domain=$minio_domain&is_$public=true&admin=$minio_admin&password=$minio_password"
fi
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
#=================================================
# RECREATE THE DEDICATED USER
#=================================================
ynh_script_progression --message="Recreating the dedicated system user..." --weight=1
# Create the dedicated user (if not existing)
ynh_system_user_create --username=$app --home_dir="$final_path"
#=================================================
# RESTORE THE APP MAIN DIR
@ -91,21 +52,16 @@ chmod -R o-rwx "$install_dir"
chown -R $app:www-data "$install_dir"
#=================================================
# RESTORE MINIO
# RESTORE LOCAL STORAGE
#=================================================
mv "$install_dir/outlinestorage" "$mc_path/outlinestorage"
chown -R minio:www-data "$mc_path/outlinestorage"
ynh_script_progression --message="Restoring the app local storage..." --weight=1
ynh_add_config --template="../conf/policy.json" --destination="$mc_path/policy.json"
chown minio:www-data "$mc_path/policy.json"
ynh_restore_file --origin_path="/var/lib/outline"
pushd "$mc_path"
ynh_exec_warn_less sudo -u minio ./mc mb minio/outlinestorage --region "fr-ynh-1"
ynh_exec_warn_less sudo -u minio ./mc anonymous set-json ./policy.json minio/outlinestorage
popd
ynh_secure_remove --file="$mc_path/outlinestorage"
chmod 750 "/var/lib/outline"
chmod -R o-rwx "/var/lib/outline"
chown -R $app:www-data "/var/lib/outline"
#=================================================
# SPECIFIC RESTORATION

View file

@ -9,35 +9,6 @@
source _common.sh
source /usr/share/yunohost/helpers
#=================================================
# LOAD SETTINGS
#=================================================
#REMOVEME? ynh_script_progression --message="Loading installation settings..." --weight=1
#REMOVEME? app=$YNH_APP_INSTANCE_NAME
#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir)
#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain)
#REMOVEME? path=$(ynh_app_setting_get --app=$app --key=path)
#REMOVEME? port=$(ynh_app_setting_get --app=$app --key=port)
#REMOVEME? db_name=$(ynh_app_setting_get --app=$app --key=db_name)
#REMOVEME? language_key=$(ynh_app_setting_get --app=$app --key=language_key)
#REMOVEME? secret_key=$(ynh_app_setting_get --app=$app --key=secret_key)
#REMOVEME? utils_secret=$(ynh_app_setting_get --app=$app --key=utils_secret)
#REMOVEME? minio_domain=$(ynh_app_setting_get --app=$app --key=minio_domain)
#REMOVEME? minio_admin=$(ynh_app_setting_get --app=$app --key=minio_admin)
#REMOVEME? minio_password=$(ynh_app_setting_get --app=$app --key=minio_password)
#REMOVEME? mc_path=$(ynh_app_setting_get --app=$app --key=mc_path)
#REMOVEME? dex_app=$(ynh_app_setting_get --app=$app --key=dex_app)
#REMOVEME? dex_domain=$(ynh_app_setting_get --app=$app --key=dex_domain)
#REMOVEME? dex_path=$(ynh_app_setting_get --app=$app --key=dex_path)
#REMOVEME? oidc_secret=$(ynh_app_setting_get --app=$app --key=oidc_secret)
#REMOVEME? oidc_name=$(ynh_app_setting_get --app=$app --key=oidc_name)
#REMOVEME? oidc_callback=$(ynh_app_setting_get --app=$app --key=oidc_callback)
#REMOVEME? dex_auth_uri=$(ynh_app_setting_get --app=$app --key=dex_auth_uri)
#REMOVEME? dex_token_uri=$(ynh_app_setting_get --app=$app --key=dex_token_uri)
#REMOVEME? dex_user_uri=$(ynh_app_setting_get --app=$app --key=dex_user_uri)
#=================================================
# CHECK VERSION
#=================================================
@ -62,23 +33,39 @@ then
ynh_script_progression --message="Upgrading source files..." --weight=1
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$install_dir" --full_replace=1
ynh_secure_remove --file="$final_path"
ynh_setup_source --dest_dir="$final_path"
fi
chmod -R o-rwx "$install_dir"
chown -R $app:www-data "$install_dir"
chmod 750 "$final_path"
chmod -R o-rwx "$final_path"
chown -R $app:www-data "$final_path"
#=================================================
# UPDATE MINIO BUCKET
#=================================================
ynh_script_progression --message="Updating outlinestorage MinIO bucket access policy..." --weight=1
#=======================================================
# MIGRATE MINIO BUCKET IF UPGRADING FROM AN OLD VERSION
#=======================================================
ynh_add_config --template="../conf/policy.json" --destination="$mc_path/policy.json"
chown minio:www-data "$mc_path/policy.json"
ynh_script_progression --message="Checking if a migration is needed"
if ynh_compare_current_package_version --comparison le --version 0.69.2.2~ynh1
then
ynh_script_progression --message="Migrating MinIO data to local directory"
minio_domain=$(ynh_app_setting_get --app=$app --key=minio_domain)
minio_admin=$(ynh_app_setting_get --app=$app --key=minio_admin)
minio_password=$(ynh_app_setting_get --app=$app --key=minio_password)
mc_path=$(ynh_app_setting_get --app=$app --key=mc_path)
pushd "$mc_path"
ynh_exec_warn_less sudo -u minio ./mc anonymous set-json ./policy.json minio/outlinestorage
popd
mkdir -p "/var/lib/$app/data"
chown -R minio:www-data "/var/lib/$app"
ynh_exec_warn_less sudo -u minio $mc_path/mc mirror --preserve "minio/outlinestorage" "/var/lib/$app/data"
chown -R $app:www-data "/var/lib/$app"
ynh_script_progression --message="Data migration finished"
ynh_script_progression --message="Data bucket was kept for safety, just in case !"
ynh_script_progression --message="Don't forget to remove MinIO app if you don't use it !"
else
ynh_script_progression --message="No migration to be done"
fi
#=================================================
# NGINX CONFIGURATION

View file

@ -1,12 +1,11 @@
diff --git a/server/emails/mailer.tsx b/server/emails/mailer.tsx
index 3584f03b4..c72e6f3fb 100644
index 4d4f6f09c..f457025d5 100644
--- a/server/emails/mailer.tsx
+++ b/server/emails/mailer.tsx
@@ -138,6 +138,7 @@ export class Mailer {
@@ -208,6 +208,7 @@ export class Mailer {
: {
rejectUnauthorized: false,
},
+ ignoreTLS:true
};
}