mirror of
https://github.com/nodemailer/wildduck.git
synced 2024-12-27 10:21:11 +08:00
ba8a29db7b
Since January 11 of 2022 Github no longer supports the unsecure git:// clone paths. The recommended way is now using https. More info here: https://github.blog/2021-09-01-improving-git-protocol-security-github/#no-more-unauthenticated-git
84 lines
2.6 KiB
Bash
Executable file
84 lines
2.6 KiB
Bash
Executable file
#! /bin/bash
|
|
|
|
OURNAME=06_install_wildduck.sh
|
|
|
|
echo -e "\n-- Executing ${ORANGE}${OURNAME}${NC} subscript --"
|
|
|
|
####### WILD DUCK #######
|
|
|
|
# clear previous install
|
|
if [ -f "/etc/systemd/system/wildduck.service" ]
|
|
then
|
|
$SYSTEMCTL_PATH stop wildduck || true
|
|
$SYSTEMCTL_PATH disable wildduck || true
|
|
rm -rf /etc/systemd/system/wildduck.service
|
|
fi
|
|
rm -rf /var/opt/wildduck.git
|
|
rm -rf /opt/wildduck
|
|
rm -rf /etc/wildduck
|
|
|
|
# fresh install
|
|
cd /var/opt
|
|
git clone --bare https://github.com/nodemailer/wildduck.git
|
|
|
|
# create update hook so we can later deploy to this location
|
|
hook_script wildduck
|
|
|
|
# allow deploy user to restart wildduck service
|
|
echo "deploy ALL = (root) NOPASSWD: $SYSTEMCTL_PATH restart wildduck" >> /etc/sudoers.d/wildduck
|
|
|
|
# checkout files from git to working directory
|
|
mkdir -p /opt/wildduck
|
|
git --git-dir=/var/opt/wildduck.git --work-tree=/opt/wildduck checkout "$WILDDUCK_COMMIT"
|
|
cp -r /opt/wildduck/config /etc/wildduck
|
|
mv /etc/wildduck/default.toml /etc/wildduck/wildduck.toml
|
|
|
|
# enable example message
|
|
sed -i -e 's/"disabled": true/"disabled": false/g' /opt/wildduck/emails/00-example.json
|
|
|
|
# update ports
|
|
sed -i -e "s/999/99/g;s/localhost/$HOSTNAME/g" /etc/wildduck/imap.toml
|
|
sed -i -e "s/999/99/g;s/localhost/$HOSTNAME/g" /etc/wildduck/pop3.toml
|
|
|
|
echo "enabled=true
|
|
port=24
|
|
disableSTARTTLS=true" > /etc/wildduck/lmtp.toml
|
|
|
|
# make sure that DKIM keys are not stored to database as cleartext
|
|
echo "secret=\"$DKIM_SECRET\"" >> /etc/wildduck/dkim.toml
|
|
|
|
echo "user=\"wildduck\"
|
|
group=\"wildduck\"
|
|
emailDomain=\"$MAILDOMAIN\"" | cat - /etc/wildduck/wildduck.toml > temp && mv temp /etc/wildduck/wildduck.toml
|
|
|
|
sed -i -e "s/localhost:3000/$HOSTNAME/g;s/localhost/$HOSTNAME/g;s/2587/587/g" /etc/wildduck/wildduck.toml
|
|
sed -i -e "s/secret value/$SRS_SECRET/g;s/#loopSecret/loopSecret/g" /etc/wildduck/sender.toml
|
|
|
|
cd /opt/wildduck
|
|
npm install --production --unsafe-perm --no-optional --no-package-lock --no-audit --ignore-scripts --no-shrinkwrap
|
|
|
|
chown -R deploy:deploy /var/opt/wildduck.git
|
|
chown -R deploy:deploy /opt/wildduck
|
|
|
|
echo "d /opt/wildduck 0755 deploy deploy
|
|
d /etc/wildduck 0755 wildduck wildduck" > /etc/tmpfiles.d/zone-mta.conf
|
|
log_script "wildduck-server"
|
|
|
|
echo "[Unit]
|
|
Description=WildDuck Mail Server
|
|
Conflicts=cyrus.service dovecot.service
|
|
After=mongod.service redis.service
|
|
|
|
[Service]
|
|
Environment=\"NODE_ENV=production\"
|
|
WorkingDirectory=/opt/wildduck
|
|
ExecStart=$NODE_PATH server.js --config=\"/etc/wildduck/wildduck.toml\"
|
|
ExecReload=/bin/kill -HUP \$MAINPID
|
|
Type=simple
|
|
Restart=always
|
|
SyslogIdentifier=wildduck-server
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target" > /etc/systemd/system/wildduck.service
|
|
|
|
$SYSTEMCTL_PATH enable wildduck.service
|