|
@@ -4932,6 +4932,10 @@ function create_procmail {
|
4932
|
4932
|
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.procmailrc
|
4933
|
4933
|
fi
|
4934
|
4934
|
|
|
4935
|
+ mkdir -p /home/$MY_USERNAME/Maildir/admin/new
|
|
4936
|
+ mkdir -p /home/$MY_USERNAME/Maildir/admin/cur
|
|
4937
|
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Maildir/admin
|
|
4938
|
+
|
4935
|
4939
|
if [ ! -f /etc/skel/.procmailrc ]; then
|
4936
|
4940
|
cp /home/$MY_USERNAME/.procmailrc /etc/skel/.procmailrc
|
4937
|
4941
|
chown root:root /etc/skel/.procmailrc
|
|
@@ -4940,6 +4944,15 @@ function create_procmail {
|
4940
|
4944
|
echo 'create_procmail' >> $COMPLETION_FILE
|
4941
|
4945
|
}
|
4942
|
4946
|
|
|
4947
|
+function handle_admin_emails {
|
|
4948
|
+ # keep emails for root in a separate folder
|
|
4949
|
+ if [ -d /home/$MY_USERNAME/Maildir/admin ]; then
|
|
4950
|
+ return
|
|
4951
|
+ fi
|
|
4952
|
+
|
|
4953
|
+ freedombone-addemail -u $MY_USERNAME -e "root@$DEFAULT_DOMAIN_NAME" -g admin --public no
|
|
4954
|
+}
|
|
4955
|
+
|
4943
|
4956
|
function spam_filtering {
|
4944
|
4957
|
if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
4945
|
4958
|
return
|
|
@@ -5885,338 +5898,338 @@ function create_public_mailing_list {
|
5885
|
5898
|
if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
5886
|
5899
|
return
|
5887
|
5900
|
fi
|
5888
|
|
- if grep -Fxq "create_public_mailing_list" $COMPLETION_FILE; then
|
5889
|
|
- return
|
5890
|
|
- fi
|
5891
|
|
- if [ ! $PUBLIC_MAILING_LIST ]; then
|
5892
|
|
- return
|
5893
|
|
- fi
|
5894
|
|
- # does the mailing list have a separate domain name?
|
5895
|
|
- if [ ! $PUBLIC_MAILING_LIST_DOMAIN_NAME ]; then
|
5896
|
|
- PUBLIC_MAILING_LIST_DOMAIN_NAME=$DEFAULT_DOMAIN_NAME
|
5897
|
|
- fi
|
5898
|
|
-
|
5899
|
|
- PUBLIC_MAILING_LIST_USER="mlmmj"
|
5900
|
|
-
|
5901
|
|
- apt-get -y install mlmmj
|
5902
|
|
- adduser --system $PUBLIC_MAILING_LIST_USER
|
5903
|
|
- addgroup $PUBLIC_MAILING_LIST_USER
|
5904
|
|
- adduser $PUBLIC_MAILING_LIST_USER $PUBLIC_MAILING_LIST_USER
|
5905
|
|
-
|
5906
|
|
- echo ''
|
5907
|
|
- echo $"Creating the $PUBLIC_MAILING_LIST mailing list"
|
5908
|
|
- echo ''
|
5909
|
|
-
|
5910
|
|
- # create the list
|
5911
|
|
- mlmmj-make-ml -a -L "$PUBLIC_MAILING_LIST" -c $PUBLIC_MAILING_LIST_USER
|
5912
|
|
-
|
5913
|
|
- echo 'SYSTEM_ALIASES_PIPE_TRANSPORT = address_pipe' > /etc/exim4/conf.d/main/000_localmacros
|
5914
|
|
- echo "SYSTEM_ALIASES_USER = $PUBLIC_MAILING_LIST_USER" >> /etc/exim4/conf.d/main/000_localmacros
|
5915
|
|
- echo "SYSTEM_ALIASES_GROUP = $PUBLIC_MAILING_LIST_USER" >> /etc/exim4/conf.d/main/000_localmacros
|
5916
|
|
-
|
5917
|
|
- # router
|
5918
|
|
- echo 'mlmmj_router:' > /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
5919
|
|
- echo ' debug_print = "R: mlmmj_router for $local_part@$domain"' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
5920
|
|
- echo ' driver = accept' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
5921
|
|
- echo ' domains = +mlmmj_domains' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
5922
|
|
- echo ' #require_files = MLMMJ_HOME/${lc::$local_part}' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
5923
|
|
- echo ' # Use this instead, if you dont want to give Exim rx rights to mlmmj spool.' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
5924
|
|
- echo ' # Exim will then spawn a new process running under the UID of "mlmmj".' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
5925
|
|
- echo ' require_files = mlmmj:MLMMJ_HOME/${lc::$local_part}' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
5926
|
|
- echo ' local_part_suffix = +*' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
5927
|
|
- echo ' local_part_suffix_optional' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
5928
|
|
- echo ' headers_remove = Delivered-To' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
5929
|
|
- echo ' headers_add = Delivered-To: $local_part$local_part_suffix@$domain' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
5930
|
|
- echo ' transport = mlmmj_transport' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
5931
|
|
-
|
5932
|
|
- # transport
|
5933
|
|
- echo 'mlmmj_transport:' > /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
5934
|
|
- echo ' debug_print = "T: mlmmj_transport for $local_part@$domain"' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
5935
|
|
- echo ' driver = pipe' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
5936
|
|
- echo ' return_path_add' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
5937
|
|
- echo ' user = mlmmj' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
5938
|
|
- echo ' group = mlmmj' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
5939
|
|
- echo ' home_directory = MLMMJ_HOME' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
5940
|
|
- echo ' current_directory = MLMMJ_HOME' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
5941
|
|
- echo ' command = /usr/bin/mlmmj-receive -F -L MLMMJ_HOME/${lc:$local_part}' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
5942
|
|
-
|
5943
|
|
- if ! grep -q "MLMMJ_HOME=/var/spool/mlmmj" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
|
5944
|
|
- sed -i '/MAIN CONFIGURATION SETTINGS/a\MLMMJ_HOME=/var/spool/mlmmj' /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
|
5945
|
|
- fi
|
5946
|
|
- if ! grep -q "domainlist mlmmj_domains =" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
|
5947
|
|
- sed -i "/MLMMJ_HOME/a\domainlist mlmmj_domains = $PUBLIC_MAILING_LIST_DOMAIN_NAME" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
|
5948
|
|
- fi
|
5949
|
|
-
|
5950
|
|
-
|
5951
|
|
- if ! grep -q "delay_warning_condition =" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
|
5952
|
|
- sed -i '/domainlist mlmmj_domains =/a\delay_warning_condition = ${if match_domain{$domain}{+mlmmj_domains}{no}{yes}}' /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
|
5953
|
|
- fi
|
5954
|
|
- if ! grep -q ": +mlmmj_domains" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
|
5955
|
|
- sed -i 's/domainlist relay_to_domains = MAIN_RELAY_TO_DOMAINS/domainlist relay_to_domains = MAIN_RELAY_TO_DOMAINS : +mlmmj_domains/g' /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
|
5956
|
|
- fi
|
5957
|
|
-
|
5958
|
|
- if ! grep -q "! +mlmmj_domains" /etc/exim4/conf.d/router/200_exim4-config_primary; then
|
5959
|
|
- sed -i 's/domains = ! +local_domains/domains = ! +mlmmj_domains : ! +local_domains/g' /etc/exim4/conf.d/router/200_exim4-config_primary
|
5960
|
|
- fi
|
5961
|
|
- newaliases
|
5962
|
|
- update-exim4.conf.template -r
|
5963
|
|
- update-exim4.conf
|
5964
|
|
- systemctl restart exim4
|
5965
|
|
-
|
5966
|
|
- if ! grep -q $"$PUBLIC_MAILING_LIST mailing list" /home/$MY_USERNAME/README; then
|
5967
|
|
- echo '' >> /home/$MY_USERNAME/README
|
5968
|
|
- echo '' >> /home/$MY_USERNAME/README
|
5969
|
|
- echo $"$PUBLIC_MAILING_LIST mailing list" >> /home/$MY_USERNAME/README
|
5970
|
|
- echo '=================================' >> /home/$MY_USERNAME/README
|
5971
|
|
- echo $"To subscribe to the $PUBLIC_MAILING_LIST mailing list send a" >> /home/$MY_USERNAME/README
|
5972
|
|
- echo $"cleartext email to $PUBLIC_MAILING_LIST+subscribe@$DEFAULT_DOMAIN_NAME" >> /home/$MY_USERNAME/README
|
5973
|
|
- chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
5974
|
|
- chmod 600 /home/$MY_USERNAME/README
|
5975
|
|
- fi
|
5976
|
|
-
|
5977
|
|
- ${PROJECT_NAME}-addlist -u $MY_USERNAME -l "$PUBLIC_MAILING_LIST" -s "$PUBLIC_MAILING_LIST"
|
5978
|
|
-
|
5979
|
|
- echo 'create_public_mailing_list' >> $COMPLETION_FILE
|
5980
|
|
-}
|
5981
|
|
-
|
5982
|
|
-function create_private_mailing_list {
|
5983
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
5984
|
|
- return
|
5985
|
|
- fi
|
5986
|
|
- # This installation doesn't work, results in ruby errors
|
5987
|
|
- # There is currently no schleuder package for Debian jessie
|
5988
|
|
- if grep -Fxq "create_private_mailing_list" $COMPLETION_FILE; then
|
5989
|
|
- return
|
5990
|
|
- fi
|
5991
|
|
- if [ ! $PRIVATE_MAILING_LIST ]; then
|
5992
|
|
- return
|
5993
|
|
- fi
|
5994
|
|
- if [[ $PRIVATE_MAILING_LIST == $MY_USERNAME ]]; then
|
5995
|
|
- echo $'The name of the private mailing list should not be the same as your username'
|
5996
|
|
- exit 10
|
5997
|
|
- fi
|
5998
|
|
- if [ ! $MY_GPG_PUBLIC_KEY ]; then
|
5999
|
|
- echo $'To create a private mailing list you need to specify a file'
|
6000
|
|
- echo $'containing your exported GPG key within MY_GPG_PUBLIC_KEY at'
|
6001
|
|
- echo $'the top of the script'
|
6002
|
|
- exit 11
|
6003
|
|
- fi
|
6004
|
|
- apt-get -y install ruby ruby-dev ruby-gpgme libgpgme11-dev libmagic-dev
|
6005
|
|
- gem install schleuder
|
6006
|
|
- schleuder-fix-gem-dependencies
|
6007
|
|
- schleuder-init-setup --gem
|
6008
|
|
- # NOTE: this is version number sensitive and so might need changing
|
6009
|
|
- ln -s /var/lib/gems/2.1.0/gems/schleuder-2.2.4 /var/lib/schleuder
|
6010
|
|
- sed -i 's/#smtp_port: 25/smtp_port: 465/g' /etc/schleuder/schleuder.conf
|
6011
|
|
- sed -i 's/#superadminaddr: root@localhost/superadminaddr: root@localhost' /etc/schleuder/schleuder.conf
|
6012
|
|
- schleuder-newlist $PRIVATE_MAILING_LIST@$DEFAULT_DOMAIN_NAME -realname "$PRIVATE_MAILING_LIST" -adminaddress $MY_EMAIL_ADDRESS -initmember $MY_EMAIL_ADDRESS -initmemberkey $MY_GPG_PUBLIC_KEY -nointeractive
|
6013
|
|
- ${PROJECT_NAME}-addemail -u $MY_USERNAME -e $PRIVATE_MAILING_LIST@$DEFAULT_DOMAIN_NAME -l $PRIVATE_MAILING_LIST
|
6014
|
|
-
|
6015
|
|
- echo 'schleuder:' > /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
6016
|
|
- echo ' debug_print = "R: schleuder for $local_part@$domain"' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
6017
|
|
- echo ' driver = accept' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
6018
|
|
- echo ' local_part_suffix_optional' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
6019
|
|
- echo ' local_part_suffix = +* : -bounce : -sendkey' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
6020
|
|
- echo ' domains = +local_domains' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
6021
|
|
- echo ' user = schleuder' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
6022
|
|
- echo ' group = schleuder' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
6023
|
|
- echo ' require_files = schleuder:+/var/lib/schleuder/$domain/${local_part}' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
6024
|
|
- echo ' transport = schleuder_transport' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
6025
|
|
-
|
6026
|
|
- echo 'schleuder_transport:' > /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
6027
|
|
- echo ' debug_print = "T: schleuder_transport for $local_part@$domain"' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
6028
|
|
- echo ' driver = pipe' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
6029
|
|
- echo ' home_directory = "/var/lib/schleuder/$domain/$local_part"' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
6030
|
|
- echo ' command = "/usr/bin/schleuder $local_part@$domain"' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
6031
|
|
- chown -R schleuder:schleuder /var/lib/schleuder
|
6032
|
|
- update-exim4.conf.template -r
|
6033
|
|
- update-exim4.conf
|
6034
|
|
- systemctl restart exim4
|
6035
|
|
- useradd -d /var/schleuderlists -s /bin/false schleuder
|
6036
|
|
- adduser Debian-exim schleuder
|
6037
|
|
- usermod -a -G mail schleuder
|
6038
|
|
- #exim -d -bt $PRIVATE_MAILING_LIST@$DEFAULT_DOMAIN_NAME
|
6039
|
|
- echo 'create_private_mailing_list' >> $COMPLETION_FILE
|
6040
|
|
-}
|
6041
|
|
-
|
6042
|
|
-function split_gpg_key_into_fragments {
|
6043
|
|
- # split the gpg key into fragments if social key management is enabled
|
6044
|
|
- if [[ $ENABLE_SOCIAL_KEY_MANAGEMENT == "yes" ]]; then
|
6045
|
|
- echo 'Splitting GPG key. You may need to enter your passphrase.'
|
6046
|
|
- ${PROJECT_NAME}-splitkey -u $MY_USERNAME -e $MY_EMAIL_ADDRESS --fullname "$MY_NAME"
|
6047
|
|
- if [ ! -d /home/$MY_USERNAME/.gnupg_fragments ]; then
|
6048
|
|
- echo 'Yhe GPG key could not be split'
|
6049
|
|
- exit 86548
|
6050
|
|
- fi
|
6051
|
|
- fi
|
6052
|
|
-}
|
6053
|
|
-
|
6054
|
|
-function import_email {
|
6055
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
6056
|
|
- return
|
6057
|
|
- fi
|
6058
|
|
- EMAIL_COMPLETE_MSG=$"
|
|
5901
|
+ if grep -Fxq "create_public_mailing_list" $COMPLETION_FILE; then
|
|
5902
|
+ return
|
|
5903
|
+ fi
|
|
5904
|
+ if [ ! $PUBLIC_MAILING_LIST ]; then
|
|
5905
|
+ return
|
|
5906
|
+ fi
|
|
5907
|
+ # does the mailing list have a separate domain name?
|
|
5908
|
+ if [ ! $PUBLIC_MAILING_LIST_DOMAIN_NAME ]; then
|
|
5909
|
+ PUBLIC_MAILING_LIST_DOMAIN_NAME=$DEFAULT_DOMAIN_NAME
|
|
5910
|
+ fi
|
|
5911
|
+
|
|
5912
|
+ PUBLIC_MAILING_LIST_USER="mlmmj"
|
|
5913
|
+
|
|
5914
|
+ apt-get -y install mlmmj
|
|
5915
|
+ adduser --system $PUBLIC_MAILING_LIST_USER
|
|
5916
|
+ addgroup $PUBLIC_MAILING_LIST_USER
|
|
5917
|
+ adduser $PUBLIC_MAILING_LIST_USER $PUBLIC_MAILING_LIST_USER
|
|
5918
|
+
|
|
5919
|
+ echo ''
|
|
5920
|
+ echo $"Creating the $PUBLIC_MAILING_LIST mailing list"
|
|
5921
|
+ echo ''
|
|
5922
|
+
|
|
5923
|
+ # create the list
|
|
5924
|
+ mlmmj-make-ml -a -L "$PUBLIC_MAILING_LIST" -c $PUBLIC_MAILING_LIST_USER
|
|
5925
|
+
|
|
5926
|
+ echo 'SYSTEM_ALIASES_PIPE_TRANSPORT = address_pipe' > /etc/exim4/conf.d/main/000_localmacros
|
|
5927
|
+ echo "SYSTEM_ALIASES_USER = $PUBLIC_MAILING_LIST_USER" >> /etc/exim4/conf.d/main/000_localmacros
|
|
5928
|
+ echo "SYSTEM_ALIASES_GROUP = $PUBLIC_MAILING_LIST_USER" >> /etc/exim4/conf.d/main/000_localmacros
|
|
5929
|
+
|
|
5930
|
+ # router
|
|
5931
|
+ echo 'mlmmj_router:' > /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
5932
|
+ echo ' debug_print = "R: mlmmj_router for $local_part@$domain"' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
5933
|
+ echo ' driver = accept' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
5934
|
+ echo ' domains = +mlmmj_domains' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
5935
|
+ echo ' #require_files = MLMMJ_HOME/${lc::$local_part}' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
5936
|
+ echo ' # Use this instead, if you dont want to give Exim rx rights to mlmmj spool.' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
5937
|
+ echo ' # Exim will then spawn a new process running under the UID of "mlmmj".' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
5938
|
+ echo ' require_files = mlmmj:MLMMJ_HOME/${lc::$local_part}' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
5939
|
+ echo ' local_part_suffix = +*' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
5940
|
+ echo ' local_part_suffix_optional' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
5941
|
+ echo ' headers_remove = Delivered-To' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
5942
|
+ echo ' headers_add = Delivered-To: $local_part$local_part_suffix@$domain' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
5943
|
+ echo ' transport = mlmmj_transport' >> /etc/exim4/conf.d/router/750_exim4-config_mlmmj
|
|
5944
|
+
|
|
5945
|
+ # transport
|
|
5946
|
+ echo 'mlmmj_transport:' > /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
5947
|
+ echo ' debug_print = "T: mlmmj_transport for $local_part@$domain"' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
5948
|
+ echo ' driver = pipe' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
5949
|
+ echo ' return_path_add' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
5950
|
+ echo ' user = mlmmj' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
5951
|
+ echo ' group = mlmmj' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
5952
|
+ echo ' home_directory = MLMMJ_HOME' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
5953
|
+ echo ' current_directory = MLMMJ_HOME' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
5954
|
+ echo ' command = /usr/bin/mlmmj-receive -F -L MLMMJ_HOME/${lc:$local_part}' >> /etc/exim4/conf.d/transport/40_exim4-config_mlmmj
|
|
5955
|
+
|
|
5956
|
+ if ! grep -q "MLMMJ_HOME=/var/spool/mlmmj" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
|
|
5957
|
+ sed -i '/MAIN CONFIGURATION SETTINGS/a\MLMMJ_HOME=/var/spool/mlmmj' /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
|
|
5958
|
+ fi
|
|
5959
|
+ if ! grep -q "domainlist mlmmj_domains =" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
|
|
5960
|
+ sed -i "/MLMMJ_HOME/a\domainlist mlmmj_domains = $PUBLIC_MAILING_LIST_DOMAIN_NAME" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
|
|
5961
|
+ fi
|
|
5962
|
+
|
|
5963
|
+
|
|
5964
|
+ if ! grep -q "delay_warning_condition =" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
|
|
5965
|
+ sed -i '/domainlist mlmmj_domains =/a\delay_warning_condition = ${if match_domain{$domain}{+mlmmj_domains}{no}{yes}}' /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
|
|
5966
|
+ fi
|
|
5967
|
+ if ! grep -q ": +mlmmj_domains" /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs; then
|
|
5968
|
+ sed -i 's/domainlist relay_to_domains = MAIN_RELAY_TO_DOMAINS/domainlist relay_to_domains = MAIN_RELAY_TO_DOMAINS : +mlmmj_domains/g' /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
|
|
5969
|
+ fi
|
|
5970
|
+
|
|
5971
|
+ if ! grep -q "! +mlmmj_domains" /etc/exim4/conf.d/router/200_exim4-config_primary; then
|
|
5972
|
+ sed -i 's/domains = ! +local_domains/domains = ! +mlmmj_domains : ! +local_domains/g' /etc/exim4/conf.d/router/200_exim4-config_primary
|
|
5973
|
+ fi
|
|
5974
|
+ newaliases
|
|
5975
|
+ update-exim4.conf.template -r
|
|
5976
|
+ update-exim4.conf
|
|
5977
|
+ systemctl restart exim4
|
|
5978
|
+
|
|
5979
|
+ if ! grep -q $"$PUBLIC_MAILING_LIST mailing list" /home/$MY_USERNAME/README; then
|
|
5980
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
5981
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
5982
|
+ echo $"$PUBLIC_MAILING_LIST mailing list" >> /home/$MY_USERNAME/README
|
|
5983
|
+ echo '=================================' >> /home/$MY_USERNAME/README
|
|
5984
|
+ echo $"To subscribe to the $PUBLIC_MAILING_LIST mailing list send a" >> /home/$MY_USERNAME/README
|
|
5985
|
+ echo $"cleartext email to $PUBLIC_MAILING_LIST+subscribe@$DEFAULT_DOMAIN_NAME" >> /home/$MY_USERNAME/README
|
|
5986
|
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
|
5987
|
+ chmod 600 /home/$MY_USERNAME/README
|
|
5988
|
+ fi
|
|
5989
|
+
|
|
5990
|
+ ${PROJECT_NAME}-addlist -u $MY_USERNAME -l "$PUBLIC_MAILING_LIST" -s "$PUBLIC_MAILING_LIST"
|
|
5991
|
+
|
|
5992
|
+ echo 'create_public_mailing_list' >> $COMPLETION_FILE
|
|
5993
|
+ }
|
|
5994
|
+
|
|
5995
|
+ function create_private_mailing_list {
|
|
5996
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
|
5997
|
+ return
|
|
5998
|
+ fi
|
|
5999
|
+ # This installation doesn't work, results in ruby errors
|
|
6000
|
+ # There is currently no schleuder package for Debian jessie
|
|
6001
|
+ if grep -Fxq "create_private_mailing_list" $COMPLETION_FILE; then
|
|
6002
|
+ return
|
|
6003
|
+ fi
|
|
6004
|
+ if [ ! $PRIVATE_MAILING_LIST ]; then
|
|
6005
|
+ return
|
|
6006
|
+ fi
|
|
6007
|
+ if [[ $PRIVATE_MAILING_LIST == $MY_USERNAME ]]; then
|
|
6008
|
+ echo $'The name of the private mailing list should not be the same as your username'
|
|
6009
|
+ exit 10
|
|
6010
|
+ fi
|
|
6011
|
+ if [ ! $MY_GPG_PUBLIC_KEY ]; then
|
|
6012
|
+ echo $'To create a private mailing list you need to specify a file'
|
|
6013
|
+ echo $'containing your exported GPG key within MY_GPG_PUBLIC_KEY at'
|
|
6014
|
+ echo $'the top of the script'
|
|
6015
|
+ exit 11
|
|
6016
|
+ fi
|
|
6017
|
+ apt-get -y install ruby ruby-dev ruby-gpgme libgpgme11-dev libmagic-dev
|
|
6018
|
+ gem install schleuder
|
|
6019
|
+ schleuder-fix-gem-dependencies
|
|
6020
|
+ schleuder-init-setup --gem
|
|
6021
|
+ # NOTE: this is version number sensitive and so might need changing
|
|
6022
|
+ ln -s /var/lib/gems/2.1.0/gems/schleuder-2.2.4 /var/lib/schleuder
|
|
6023
|
+ sed -i 's/#smtp_port: 25/smtp_port: 465/g' /etc/schleuder/schleuder.conf
|
|
6024
|
+ sed -i 's/#superadminaddr: root@localhost/superadminaddr: root@localhost' /etc/schleuder/schleuder.conf
|
|
6025
|
+ schleuder-newlist $PRIVATE_MAILING_LIST@$DEFAULT_DOMAIN_NAME -realname "$PRIVATE_MAILING_LIST" -adminaddress $MY_EMAIL_ADDRESS -initmember $MY_EMAIL_ADDRESS -initmemberkey $MY_GPG_PUBLIC_KEY -nointeractive
|
|
6026
|
+ ${PROJECT_NAME}-addemail -u $MY_USERNAME -e $PRIVATE_MAILING_LIST@$DEFAULT_DOMAIN_NAME -l $PRIVATE_MAILING_LIST
|
|
6027
|
+
|
|
6028
|
+ echo 'schleuder:' > /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
6029
|
+ echo ' debug_print = "R: schleuder for $local_part@$domain"' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
6030
|
+ echo ' driver = accept' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
6031
|
+ echo ' local_part_suffix_optional' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
6032
|
+ echo ' local_part_suffix = +* : -bounce : -sendkey' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
6033
|
+ echo ' domains = +local_domains' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
6034
|
+ echo ' user = schleuder' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
6035
|
+ echo ' group = schleuder' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
6036
|
+ echo ' require_files = schleuder:+/var/lib/schleuder/$domain/${local_part}' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
6037
|
+ echo ' transport = schleuder_transport' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
6038
|
+
|
|
6039
|
+ echo 'schleuder_transport:' > /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
|
6040
|
+ echo ' debug_print = "T: schleuder_transport for $local_part@$domain"' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
|
6041
|
+ echo ' driver = pipe' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
|
6042
|
+ echo ' home_directory = "/var/lib/schleuder/$domain/$local_part"' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
|
6043
|
+ echo ' command = "/usr/bin/schleuder $local_part@$domain"' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
|
6044
|
+ chown -R schleuder:schleuder /var/lib/schleuder
|
|
6045
|
+ update-exim4.conf.template -r
|
|
6046
|
+ update-exim4.conf
|
|
6047
|
+ systemctl restart exim4
|
|
6048
|
+ useradd -d /var/schleuderlists -s /bin/false schleuder
|
|
6049
|
+ adduser Debian-exim schleuder
|
|
6050
|
+ usermod -a -G mail schleuder
|
|
6051
|
+ #exim -d -bt $PRIVATE_MAILING_LIST@$DEFAULT_DOMAIN_NAME
|
|
6052
|
+ echo 'create_private_mailing_list' >> $COMPLETION_FILE
|
|
6053
|
+ }
|
|
6054
|
+
|
|
6055
|
+ function split_gpg_key_into_fragments {
|
|
6056
|
+ # split the gpg key into fragments if social key management is enabled
|
|
6057
|
+ if [[ $ENABLE_SOCIAL_KEY_MANAGEMENT == "yes" ]]; then
|
|
6058
|
+ echo 'Splitting GPG key. You may need to enter your passphrase.'
|
|
6059
|
+ ${PROJECT_NAME}-splitkey -u $MY_USERNAME -e $MY_EMAIL_ADDRESS --fullname "$MY_NAME"
|
|
6060
|
+ if [ ! -d /home/$MY_USERNAME/.gnupg_fragments ]; then
|
|
6061
|
+ echo 'Yhe GPG key could not be split'
|
|
6062
|
+ exit 86548
|
|
6063
|
+ fi
|
|
6064
|
+ fi
|
|
6065
|
+ }
|
|
6066
|
+
|
|
6067
|
+ function import_email {
|
|
6068
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
|
6069
|
+ return
|
|
6070
|
+ fi
|
|
6071
|
+ EMAIL_COMPLETE_MSG=$"
|
6059
|
6072
|
*** ${PROJECT_NAME} mailbox installation is complete ***
|
6060
|
6073
|
|
6061
|
6074
|
Now on your internet router forward ports
|
6062
|
6075
|
25, 587, 465, 993 and 2222 to the ${PROJECT_NAME}
|
6063
|
6076
|
"
|
6064
|
|
- if grep -Fxq "import_email" $COMPLETION_FILE; then
|
6065
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
|
6066
|
|
- backup_to_friends_servers
|
6067
|
|
- intrusion_detection
|
6068
|
|
- split_gpg_key_into_fragments
|
6069
|
|
- clear
|
6070
|
|
- echo ''
|
6071
|
|
- echo "$EMAIL_COMPLETE_MSG"
|
6072
|
|
- if [ -d $USB_MOUNT ]; then
|
6073
|
|
- umount $USB_MOUNT
|
6074
|
|
- rm -rf $USB_MOUNT
|
6075
|
|
- echo $' You can now remove the USB drive'
|
6076
|
|
- fi
|
6077
|
|
- exit 0
|
6078
|
|
- fi
|
6079
|
|
- return
|
6080
|
|
- fi
|
6081
|
|
- if [ $IMPORT_MAILDIR ]; then
|
6082
|
|
- if [ -d $IMPORT_MAILDIR ]; then
|
6083
|
|
- echo $'Transfering email files'
|
6084
|
|
- cp -r $IMPORT_MAILDIR /home/$MY_USERNAME
|
6085
|
|
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Maildir
|
6086
|
|
- else
|
6087
|
|
- echo $"Email import directory $IMPORT_MAILDIR not found"
|
6088
|
|
- exit 9
|
6089
|
|
- fi
|
6090
|
|
- fi
|
6091
|
|
- echo 'import_email' >> $COMPLETION_FILE
|
6092
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
|
6093
|
|
- backup_to_friends_servers
|
6094
|
|
- intrusion_detection
|
6095
|
|
- split_gpg_key_into_fragments
|
6096
|
|
- # unmount any attached usb drive
|
6097
|
|
- clear
|
6098
|
|
- echo ''
|
6099
|
|
- echo "$EMAIL_COMPLETE_MSG"
|
6100
|
|
- echo ''
|
6101
|
|
- if [ -d $USB_MOUNT ]; then
|
6102
|
|
- umount $USB_MOUNT
|
6103
|
|
- rm -rf $USB_MOUNT
|
6104
|
|
- echo $' You can now remove the USB drive'
|
6105
|
|
- fi
|
6106
|
|
- exit 0
|
6107
|
|
- fi
|
6108
|
|
-}
|
6109
|
|
-
|
6110
|
|
-function install_web_server {
|
6111
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" ]]; then
|
6112
|
|
- return
|
6113
|
|
- fi
|
6114
|
|
-
|
6115
|
|
- # update to the next commit
|
6116
|
|
- set_repo_commit $INSTALL_DIR/nginx_ensite "Nginx-ensite commit" "$NGINX_ENSITE_COMMIT" $NGINX_ENSITE_REPO
|
6117
|
|
-
|
6118
|
|
- if grep -Fxq "install_web_server" $COMPLETION_FILE; then
|
6119
|
|
- return
|
6120
|
|
- fi
|
6121
|
|
- # remove apache
|
6122
|
|
- apt-get -y remove --purge apache2
|
6123
|
|
- if [ -d /etc/apache2 ]; then
|
6124
|
|
- rm -rf /etc/apache2
|
6125
|
|
- fi
|
6126
|
|
- # install nginx
|
6127
|
|
- apt-get -y install nginx php5-fpm git
|
6128
|
|
-
|
6129
|
|
- # limit the number of php processes
|
6130
|
|
- sed -i 's/; process.max =.*/process.max = 32/g' /etc/php5/fpm/php-fpm.conf
|
6131
|
|
- sed -i 's/;process_control_timeout =.*/process_control_timeout = 300/g' /etc/php5/fpm/php-fpm.conf
|
6132
|
|
-
|
6133
|
|
- if ! grep -q "pm.max_children" /etc/php5/fpm/php-fpm.conf; then
|
6134
|
|
- echo 'pm.max_children = 10' >> /etc/php5/fpm/php-fpm.conf
|
6135
|
|
- echo 'pm.start_servers = 2' >> /etc/php5/fpm/php-fpm.conf
|
6136
|
|
- echo 'pm.min_spare_servers = 2' >> /etc/php5/fpm/php-fpm.conf
|
6137
|
|
- echo 'pm.max_spare_servers = 5' >> /etc/php5/fpm/php-fpm.conf
|
6138
|
|
- echo 'pm.max_requests = 50' >> /etc/php5/fpm/php-fpm.conf
|
6139
|
|
- fi
|
6140
|
|
-
|
6141
|
|
- if [ ! -d /etc/nginx ]; then
|
6142
|
|
- echo $"ERROR: nginx does not appear to have installed. $CHECK_MESSAGE"
|
6143
|
|
- exit 51
|
6144
|
|
- fi
|
6145
|
|
-
|
6146
|
|
- # Nginx settings
|
6147
|
|
- echo 'user www-data;' > /etc/nginx/nginx.conf
|
6148
|
|
- #echo "worker_processes; $CPU_CORES" >> /etc/nginx/nginx.conf
|
6149
|
|
- echo 'pid /run/nginx.pid;' >> /etc/nginx/nginx.conf
|
6150
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6151
|
|
- echo 'events {' >> /etc/nginx/nginx.conf
|
6152
|
|
- echo ' worker_connections 50;' >> /etc/nginx/nginx.conf
|
6153
|
|
- echo ' # multi_accept on;' >> /etc/nginx/nginx.conf
|
6154
|
|
- echo '}' >> /etc/nginx/nginx.conf
|
6155
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6156
|
|
- echo 'http {' >> /etc/nginx/nginx.conf
|
6157
|
|
- echo ' # limit the number of connections per single IP' >> /etc/nginx/nginx.conf
|
6158
|
|
- echo ' limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;' >> /etc/nginx/nginx.conf
|
6159
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6160
|
|
- echo ' # limit the number of requests for a given session' >> /etc/nginx/nginx.conf
|
6161
|
|
- echo ' # Note that the Owncloud web interface seems to require a rate of around 140r/s' >> /etc/nginx/nginx.conf
|
6162
|
|
- echo ' limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=140r/s;' >> /etc/nginx/nginx.conf
|
6163
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6164
|
|
- echo ' # if the request body size is more than the buffer size, then the entire (or partial) request body is written into a temporary file' >> /etc/nginx/nginx.conf
|
6165
|
|
- echo ' client_body_buffer_size 128k;' >> /etc/nginx/nginx.conf
|
6166
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6167
|
|
- echo ' # headerbuffer size for the request header from client, its set for testing purpose' >> /etc/nginx/nginx.conf
|
6168
|
|
- echo ' client_header_buffer_size 3m;' >> /etc/nginx/nginx.conf
|
6169
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6170
|
|
- echo ' # maximum number and size of buffers for large headers to read from client request' >> /etc/nginx/nginx.conf
|
6171
|
|
- echo ' large_client_header_buffers 4 256k;' >> /etc/nginx/nginx.conf
|
6172
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6173
|
|
- echo ' # read timeout for the request body from client, its set for testing purpose' >> /etc/nginx/nginx.conf
|
6174
|
|
- echo ' client_body_timeout 3m;' >> /etc/nginx/nginx.conf
|
6175
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6176
|
|
- echo ' # how long to wait for the client to send a request header, its set for testing purpose' >> /etc/nginx/nginx.conf
|
6177
|
|
- echo ' client_header_timeout 3m;' >> /etc/nginx/nginx.conf
|
6178
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6179
|
|
- echo ' ##' >> /etc/nginx/nginx.conf
|
6180
|
|
- echo ' # Basic Settings' >> /etc/nginx/nginx.conf
|
6181
|
|
- echo ' ##' >> /etc/nginx/nginx.conf
|
6182
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6183
|
|
- echo ' sendfile on;' >> /etc/nginx/nginx.conf
|
6184
|
|
- echo ' tcp_nopush on;' >> /etc/nginx/nginx.conf
|
6185
|
|
- echo ' tcp_nodelay on;' >> /etc/nginx/nginx.conf
|
6186
|
|
- echo ' keepalive_timeout 65;' >> /etc/nginx/nginx.conf
|
6187
|
|
- echo ' types_hash_max_size 2048;' >> /etc/nginx/nginx.conf
|
6188
|
|
- echo ' server_tokens off;' >> /etc/nginx/nginx.conf
|
6189
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6190
|
|
- echo ' # server_names_hash_bucket_size 64;' >> /etc/nginx/nginx.conf
|
6191
|
|
- echo ' # server_name_in_redirect off;' >> /etc/nginx/nginx.conf
|
6192
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6193
|
|
- echo ' include /etc/nginx/mime.types;' >> /etc/nginx/nginx.conf
|
6194
|
|
- echo ' default_type application/octet-stream;' >> /etc/nginx/nginx.conf
|
6195
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6196
|
|
- echo ' ##' >> /etc/nginx/nginx.conf
|
6197
|
|
- echo ' # Logging Settings' >> /etc/nginx/nginx.conf
|
6198
|
|
- echo ' ##' >> /etc/nginx/nginx.conf
|
6199
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6200
|
|
- echo ' access_log /var/log/nginx/access.log;' >> /etc/nginx/nginx.conf
|
6201
|
|
- echo ' error_log /var/log/nginx/error.log;' >> /etc/nginx/nginx.conf
|
6202
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6203
|
|
- echo ' ###' >> /etc/nginx/nginx.conf
|
6204
|
|
- echo ' # Gzip Settings' >> /etc/nginx/nginx.conf
|
6205
|
|
- echo ' ##' >> /etc/nginx/nginx.conf
|
6206
|
|
- echo ' gzip on;' >> /etc/nginx/nginx.conf
|
6207
|
|
- echo ' gzip_disable "msie6";' >> /etc/nginx/nginx.conf
|
6208
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6209
|
|
- echo ' # gzip_vary on;' >> /etc/nginx/nginx.conf
|
6210
|
|
- echo ' # gzip_proxied any;' >> /etc/nginx/nginx.conf
|
6211
|
|
- echo ' # gzip_comp_level 6;' >> /etc/nginx/nginx.conf
|
6212
|
|
- echo ' # gzip_buffers 16 8k;' >> /etc/nginx/nginx.conf
|
6213
|
|
- echo ' # gzip_http_version 1.1;' >> /etc/nginx/nginx.conf
|
6214
|
|
- echo ' # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;' >> /etc/nginx/nginx.conf
|
6215
|
|
- echo '' >> /etc/nginx/nginx.conf
|
6216
|
|
- echo ' ##' >> /etc/nginx/nginx.conf
|
6217
|
|
- echo ' # Virtual Host Configs' >> /etc/nginx/nginx.conf
|
6218
|
|
- echo ' ##' >> /etc/nginx/nginx.conf
|
6219
|
|
- echo '' >> /etc/nginx/nginx.conf
|
|
6077
|
+ if grep -Fxq "import_email" $COMPLETION_FILE; then
|
|
6078
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
|
|
6079
|
+ backup_to_friends_servers
|
|
6080
|
+ intrusion_detection
|
|
6081
|
+ split_gpg_key_into_fragments
|
|
6082
|
+ clear
|
|
6083
|
+ echo ''
|
|
6084
|
+ echo "$EMAIL_COMPLETE_MSG"
|
|
6085
|
+ if [ -d $USB_MOUNT ]; then
|
|
6086
|
+ umount $USB_MOUNT
|
|
6087
|
+ rm -rf $USB_MOUNT
|
|
6088
|
+ echo $' You can now remove the USB drive'
|
|
6089
|
+ fi
|
|
6090
|
+ exit 0
|
|
6091
|
+ fi
|
|
6092
|
+ return
|
|
6093
|
+ fi
|
|
6094
|
+ if [ $IMPORT_MAILDIR ]; then
|
|
6095
|
+ if [ -d $IMPORT_MAILDIR ]; then
|
|
6096
|
+ echo $'Transfering email files'
|
|
6097
|
+ cp -r $IMPORT_MAILDIR /home/$MY_USERNAME
|
|
6098
|
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Maildir
|
|
6099
|
+ else
|
|
6100
|
+ echo $"Email import directory $IMPORT_MAILDIR not found"
|
|
6101
|
+ exit 9
|
|
6102
|
+ fi
|
|
6103
|
+ fi
|
|
6104
|
+ echo 'import_email' >> $COMPLETION_FILE
|
|
6105
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
|
|
6106
|
+ backup_to_friends_servers
|
|
6107
|
+ intrusion_detection
|
|
6108
|
+ split_gpg_key_into_fragments
|
|
6109
|
+ # unmount any attached usb drive
|
|
6110
|
+ clear
|
|
6111
|
+ echo ''
|
|
6112
|
+ echo "$EMAIL_COMPLETE_MSG"
|
|
6113
|
+ echo ''
|
|
6114
|
+ if [ -d $USB_MOUNT ]; then
|
|
6115
|
+ umount $USB_MOUNT
|
|
6116
|
+ rm -rf $USB_MOUNT
|
|
6117
|
+ echo $' You can now remove the USB drive'
|
|
6118
|
+ fi
|
|
6119
|
+ exit 0
|
|
6120
|
+ fi
|
|
6121
|
+ }
|
|
6122
|
+
|
|
6123
|
+ function install_web_server {
|
|
6124
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" ]]; then
|
|
6125
|
+ return
|
|
6126
|
+ fi
|
|
6127
|
+
|
|
6128
|
+ # update to the next commit
|
|
6129
|
+ set_repo_commit $INSTALL_DIR/nginx_ensite "Nginx-ensite commit" "$NGINX_ENSITE_COMMIT" $NGINX_ENSITE_REPO
|
|
6130
|
+
|
|
6131
|
+ if grep -Fxq "install_web_server" $COMPLETION_FILE; then
|
|
6132
|
+ return
|
|
6133
|
+ fi
|
|
6134
|
+ # remove apache
|
|
6135
|
+ apt-get -y remove --purge apache2
|
|
6136
|
+ if [ -d /etc/apache2 ]; then
|
|
6137
|
+ rm -rf /etc/apache2
|
|
6138
|
+ fi
|
|
6139
|
+ # install nginx
|
|
6140
|
+ apt-get -y install nginx php5-fpm git
|
|
6141
|
+
|
|
6142
|
+ # limit the number of php processes
|
|
6143
|
+ sed -i 's/; process.max =.*/process.max = 32/g' /etc/php5/fpm/php-fpm.conf
|
|
6144
|
+ sed -i 's/;process_control_timeout =.*/process_control_timeout = 300/g' /etc/php5/fpm/php-fpm.conf
|
|
6145
|
+
|
|
6146
|
+ if ! grep -q "pm.max_children" /etc/php5/fpm/php-fpm.conf; then
|
|
6147
|
+ echo 'pm.max_children = 10' >> /etc/php5/fpm/php-fpm.conf
|
|
6148
|
+ echo 'pm.start_servers = 2' >> /etc/php5/fpm/php-fpm.conf
|
|
6149
|
+ echo 'pm.min_spare_servers = 2' >> /etc/php5/fpm/php-fpm.conf
|
|
6150
|
+ echo 'pm.max_spare_servers = 5' >> /etc/php5/fpm/php-fpm.conf
|
|
6151
|
+ echo 'pm.max_requests = 50' >> /etc/php5/fpm/php-fpm.conf
|
|
6152
|
+ fi
|
|
6153
|
+
|
|
6154
|
+ if [ ! -d /etc/nginx ]; then
|
|
6155
|
+ echo $"ERROR: nginx does not appear to have installed. $CHECK_MESSAGE"
|
|
6156
|
+ exit 51
|
|
6157
|
+ fi
|
|
6158
|
+
|
|
6159
|
+ # Nginx settings
|
|
6160
|
+ echo 'user www-data;' > /etc/nginx/nginx.conf
|
|
6161
|
+ #echo "worker_processes; $CPU_CORES" >> /etc/nginx/nginx.conf
|
|
6162
|
+ echo 'pid /run/nginx.pid;' >> /etc/nginx/nginx.conf
|
|
6163
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6164
|
+ echo 'events {' >> /etc/nginx/nginx.conf
|
|
6165
|
+ echo ' worker_connections 50;' >> /etc/nginx/nginx.conf
|
|
6166
|
+ echo ' # multi_accept on;' >> /etc/nginx/nginx.conf
|
|
6167
|
+ echo '}' >> /etc/nginx/nginx.conf
|
|
6168
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6169
|
+ echo 'http {' >> /etc/nginx/nginx.conf
|
|
6170
|
+ echo ' # limit the number of connections per single IP' >> /etc/nginx/nginx.conf
|
|
6171
|
+ echo ' limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;' >> /etc/nginx/nginx.conf
|
|
6172
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6173
|
+ echo ' # limit the number of requests for a given session' >> /etc/nginx/nginx.conf
|
|
6174
|
+ echo ' # Note that the Owncloud web interface seems to require a rate of around 140r/s' >> /etc/nginx/nginx.conf
|
|
6175
|
+ echo ' limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=140r/s;' >> /etc/nginx/nginx.conf
|
|
6176
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6177
|
+ echo ' # if the request body size is more than the buffer size, then the entire (or partial) request body is written into a temporary file' >> /etc/nginx/nginx.conf
|
|
6178
|
+ echo ' client_body_buffer_size 128k;' >> /etc/nginx/nginx.conf
|
|
6179
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6180
|
+ echo ' # headerbuffer size for the request header from client, its set for testing purpose' >> /etc/nginx/nginx.conf
|
|
6181
|
+ echo ' client_header_buffer_size 3m;' >> /etc/nginx/nginx.conf
|
|
6182
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6183
|
+ echo ' # maximum number and size of buffers for large headers to read from client request' >> /etc/nginx/nginx.conf
|
|
6184
|
+ echo ' large_client_header_buffers 4 256k;' >> /etc/nginx/nginx.conf
|
|
6185
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6186
|
+ echo ' # read timeout for the request body from client, its set for testing purpose' >> /etc/nginx/nginx.conf
|
|
6187
|
+ echo ' client_body_timeout 3m;' >> /etc/nginx/nginx.conf
|
|
6188
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6189
|
+ echo ' # how long to wait for the client to send a request header, its set for testing purpose' >> /etc/nginx/nginx.conf
|
|
6190
|
+ echo ' client_header_timeout 3m;' >> /etc/nginx/nginx.conf
|
|
6191
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6192
|
+ echo ' ##' >> /etc/nginx/nginx.conf
|
|
6193
|
+ echo ' # Basic Settings' >> /etc/nginx/nginx.conf
|
|
6194
|
+ echo ' ##' >> /etc/nginx/nginx.conf
|
|
6195
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6196
|
+ echo ' sendfile on;' >> /etc/nginx/nginx.conf
|
|
6197
|
+ echo ' tcp_nopush on;' >> /etc/nginx/nginx.conf
|
|
6198
|
+ echo ' tcp_nodelay on;' >> /etc/nginx/nginx.conf
|
|
6199
|
+ echo ' keepalive_timeout 65;' >> /etc/nginx/nginx.conf
|
|
6200
|
+ echo ' types_hash_max_size 2048;' >> /etc/nginx/nginx.conf
|
|
6201
|
+ echo ' server_tokens off;' >> /etc/nginx/nginx.conf
|
|
6202
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6203
|
+ echo ' # server_names_hash_bucket_size 64;' >> /etc/nginx/nginx.conf
|
|
6204
|
+ echo ' # server_name_in_redirect off;' >> /etc/nginx/nginx.conf
|
|
6205
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6206
|
+ echo ' include /etc/nginx/mime.types;' >> /etc/nginx/nginx.conf
|
|
6207
|
+ echo ' default_type application/octet-stream;' >> /etc/nginx/nginx.conf
|
|
6208
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6209
|
+ echo ' ##' >> /etc/nginx/nginx.conf
|
|
6210
|
+ echo ' # Logging Settings' >> /etc/nginx/nginx.conf
|
|
6211
|
+ echo ' ##' >> /etc/nginx/nginx.conf
|
|
6212
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6213
|
+ echo ' access_log /var/log/nginx/access.log;' >> /etc/nginx/nginx.conf
|
|
6214
|
+ echo ' error_log /var/log/nginx/error.log;' >> /etc/nginx/nginx.conf
|
|
6215
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6216
|
+ echo ' ###' >> /etc/nginx/nginx.conf
|
|
6217
|
+ echo ' # Gzip Settings' >> /etc/nginx/nginx.conf
|
|
6218
|
+ echo ' ##' >> /etc/nginx/nginx.conf
|
|
6219
|
+ echo ' gzip on;' >> /etc/nginx/nginx.conf
|
|
6220
|
+ echo ' gzip_disable "msie6";' >> /etc/nginx/nginx.conf
|
|
6221
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6222
|
+ echo ' # gzip_vary on;' >> /etc/nginx/nginx.conf
|
|
6223
|
+ echo ' # gzip_proxied any;' >> /etc/nginx/nginx.conf
|
|
6224
|
+ echo ' # gzip_comp_level 6;' >> /etc/nginx/nginx.conf
|
|
6225
|
+ echo ' # gzip_buffers 16 8k;' >> /etc/nginx/nginx.conf
|
|
6226
|
+ echo ' # gzip_http_version 1.1;' >> /etc/nginx/nginx.conf
|
|
6227
|
+ echo ' # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;' >> /etc/nginx/nginx.conf
|
|
6228
|
+ echo '' >> /etc/nginx/nginx.conf
|
|
6229
|
+ echo ' ##' >> /etc/nginx/nginx.conf
|
|
6230
|
+ echo ' # Virtual Host Configs' >> /etc/nginx/nginx.conf
|
|
6231
|
+ echo ' ##' >> /etc/nginx/nginx.conf
|
|
6232
|
+ echo '' >> /etc/nginx/nginx.conf
|
6220
|
6233
|
echo ' include /etc/nginx/conf.d/*.conf;' >> /etc/nginx/nginx.conf
|
6221
|
6234
|
echo ' include /etc/nginx/sites-enabled/*;' >> /etc/nginx/nginx.conf
|
6222
|
6235
|
echo '}' >> /etc/nginx/nginx.conf
|
|
@@ -10700,6 +10713,7 @@ mesh_babel
|
10700
|
10713
|
route_outgoing_traffic_through_tor
|
10701
|
10714
|
configure_email
|
10702
|
10715
|
create_procmail
|
|
10716
|
+handle_admin_emails
|
10703
|
10717
|
spam_filtering
|
10704
|
10718
|
configure_imap
|
10705
|
10719
|
#configure_imap_client_certs
|