mirror of
https://github.com/tiredofit/docker-postal.git
synced 2025-09-20 11:24:23 +08:00
319 lines
15 KiB
Text
Executable file
319 lines
15 KiB
Text
Executable file
#!/usr/bin/with-contenv /bin/bash
|
|
|
|
### Set Defaults
|
|
CLAMAV_PORT=${CLAMAV_PORT:-3310}
|
|
DB_PORT=${DB_PORT:-3306}
|
|
DNS_DKIM_IDENTIFIER=${DNS_DKIM_IDENTIFIER:-"postal"}
|
|
DNS_DOMAIN_VERIFY_PREFIX=${DNS_DOMAIN_VERIFY_PREFIX:-"postal-verification"}
|
|
DNS_HOSTNAME=${DNS_HOSTNAME:-"postal.example.com"}
|
|
DNS_RETURN_PATH=${DNS_RETURN_PATH:-"rp."$DNS_HOSTNAME}
|
|
DNS_RETURN_PATH_PREFIX=${DNS_RETURN_PATH_PREFIX:-"psrp"}
|
|
DNS_ROUTE_DOMAIN=${DNS_ROUTE_DOMAIN:-"routes."$DNS_HOSTNAME}
|
|
DNS_SPF=${DNS_SPF:-"spf."$DNS_HOSTNAME}
|
|
DNS_TRACK_DOMAIN=${DNS_TRACK_DOMAIN:-"track."$DNS_HOSTNAME}
|
|
ENABLE_CLAMAV=${ENABLE_CLAMAV:-false}
|
|
ENABLE_SPAMASSASSIN=${ENABLE_SPAMASSASSIN:-false}
|
|
LOG_CONSOLE=${LOG_CONSOLE:-true}
|
|
RABBITMQ_PORT=${RABBITMQ_PORT:5672}
|
|
SMTP_CLIENT_OPEN_TIMEOUT=${SMTP_CLIENT_OPEN_TIMEOUT:-30}
|
|
SMTP_CLIENT_READ_TIMEOUT=${SMTP_CLIENT_READ_TIMEOUT:-60}
|
|
SMTP_FROM_ADDRESS=${SMTP_FROM_ADDRESS:-"postal@yourdomain.com"}
|
|
SMTP_FROM_NAME=${SMTP_FROM_NAME:-"Postal"}
|
|
SMTP_HOST=${SMTP_HOST:-127.0.0.1}
|
|
SMTP_PORT=${SMTP_PORT:-25}
|
|
SMTP_RELAY_HOST=${SMTP_RELAY_HOST:-""}
|
|
SMTP_RELAY_PORT=${SMTP_RELAY_PORT:-25}
|
|
SMTP_RELAY_SSL_MODE=${SMTP_RELAY_SSL_MODE:-"Auto"}
|
|
SMTP_SERVER_ENABLE_TLS=${SMTP_SERVER_ENABLE_TLS:-"false"}
|
|
SMTP_SERVER_HELO_HOSTNAME=${SMTP_SERVER_HELO_HOSTNAME:-$DNS_HOSTNAME}
|
|
SMTP_SERVER_LOG_CONNECTIONS=${SMTP_SERVER_LOG_CONNECTIONS:-"true"}
|
|
SMTP_SERVER_MAX_MESSAGE_SIZE=${SMTP_SERVER_MAX_MESSAGE_SIZE:-14}
|
|
SMTP_SERVER_PORT=${SMTP_SERVER_PORT:-"25"}
|
|
SMTP_SERVER_PROXY_PROTOCOL=${SMTP_SERVER_PROXY_PROTOCOL:-"false"}
|
|
SMTP_SERVER_SSL_VERSION=${SMTP_SERVER_SSL_VERSION:-"SSLv23"}
|
|
SMTP_SERVER_STRIP_RECEIVED_HEADERS=${SMTP_SERVER_STRIP_RECEIVED_HEADERS:-"false"}
|
|
SMTP_SERVER_TLS_CERT=${SMTP_SERVER_TLS_CERT:-"cert.pem"}
|
|
SMTP_SERVER_TLS_CIPHERS=${SMTP_SERVER_TLS_CIPHERS:-""}
|
|
SMTP_SERVER_TLS_KEY=${SMTP_SERVER_TLS_KEY:-"key.pem"}
|
|
SPAMASSASSIN_PORT=${SPAMASSASSIN_PORT:-737}
|
|
|
|
### Set Debug Mode
|
|
if [ "$DEBUG_MODE" = "TRUE" ] || [ "$DEBUG_MODE" = "true" ]; then
|
|
set -x
|
|
fi
|
|
|
|
### Sanity Test
|
|
if [ ! -n "$DB_HOST" ]; then
|
|
echo '** [postal] ERROR: No Database Host Entered! '
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -n "$DB_NAME" ]; then
|
|
echo '** [postal] ERROR: No Database Pass Entered! '
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -n "$DB_USER" ]; then
|
|
echo '** [postal] ERROR: No Database User Entered! '
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -n "$DB_PASS" ]; then
|
|
echo '** [postal] ERROR: No Database Pass Entered! '
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -n "$RABBITMQ_HOST" ]; then
|
|
echo '** [postal] ERROR: No RabbitMQ Host Entered! '
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -n "$RABBITMQ_VHOST" ]; then
|
|
echo '** [postal] ERROR: No RabbitMQ Vhost Entered! '
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -n "$RABBITMQ_PASS" ]; then
|
|
echo '** [postal] ERROR: No RabbitMQ Pass Entered! '
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$ENABLE_CLAMAV" = "true" ]; then
|
|
if [ ! -n "$CLAMAV_HOST" ]; then
|
|
echo '** [postal] ERROR: No ClamAV Host Entered! '
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if [ "$ENABLE_SPAMASSASSIN" = "true" ]; then
|
|
if [ ! -n "$SPAMASSASSIN_HOST" ]; then
|
|
echo '** [postal] ERROR: No Spamassassin Host Entered! '
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
### SSL Configuration
|
|
if [ "$SMTP_SERVER_ENABLE_TLS" = "true" ]; then
|
|
if [ ! -f "/opt/postal/certs/$SMTP_SERVER_TLS_CERT" ] || [ ! -f "/opt/postal/certs/$SMTP_SERVER_TLS_KEY" ]; then
|
|
echo "** [psotal] TLS Key or certificate not found. Generating self-signed certificates"
|
|
cat <<EOF > /tmp/openssl.cnf
|
|
[ req ]
|
|
default_bits = 2048
|
|
encrypt_key = yes
|
|
distinguished_name = req_dn
|
|
x509_extensions = cert_type
|
|
prompt = no
|
|
|
|
[ req_dn ]
|
|
C=XX
|
|
ST=XX
|
|
L=Test Server
|
|
O=Postal
|
|
|
|
# Organizational Unit Name (eg. section)
|
|
OU=SMTP server
|
|
|
|
# Common Name (*.example.com is also possible)
|
|
CN=$DNS_HOSTNAME
|
|
|
|
# E-mail contact
|
|
emailAddress=postmaster@$DNS_HOSTNAME
|
|
|
|
[ cert_type ]
|
|
nsCertType = server
|
|
EOF
|
|
|
|
openssl req -new -x509 -nodes -days 3650 \
|
|
-config /tmp/openssl.cnf \
|
|
-out /opt/postal/certs/$SMTP_SERVER_TLS_CERT \
|
|
-keyout /opt/postal/certs/$SMTP_SERVER_TLS_KEY
|
|
chmod 0600 /opt/postal/certs/$SMTP_SERVER_TLS_KEY
|
|
rm -rf /tmp/openssl.cnf
|
|
chown -R postal. /opt/postal/certs
|
|
fi
|
|
fi
|
|
|
|
### Create Configuration
|
|
cp -R /assets/config/*.yml /opt/postal/config
|
|
chown -R postal. /opt/postal/config
|
|
/opt/postal/bin/postal initialize-config
|
|
|
|
## Modify Configuration file
|
|
### Clam Antivirus
|
|
sed -i -e '/clamav:/!b' -e ':a' -e "s/enabled.*/enabled: $ENABLE_CLAMAV/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/clamav:/!b' -e ':a' -e "s/host.*/host: $CLAMAV_HOST/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/clamav:/!b' -e ':a' -e "s/port.*/port: $CLAMAV_PORT/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
|
|
### DNS
|
|
sed -i -e '/dns:/!b' -e ':a' -e "s/smtp_server_hostname.*/smtp_server_hostname: $DNS_HOSTNAME/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/dns:/!b' -e ':a' -e "s/spf_include.*/spf_include: $DNS_SPF/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/dns:/!b' -e ':a' -e "s/return_path.*/return_path: $DNS_RETURN_PATH/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/dns:/!b' -e ':a' -e "s/route_domain.*/route_domain: $DNS_ROUTE_DOMAIN/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/dns:/!b' -e ':a' -e "s/track_domain.*/track_domain: $DNS_TRACK_DOMAIN/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/dns:/!b' -e ':a' -e "s/helo_hostname.*/helo_hostname: $SMTP_SERVER_HELO_HOSTNAME/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/dns:/!b' -e ':a' -e "s/dkim_identifier.*/dkim_identifier: $DNS_DKIM_IDENTIFIER/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/dns:/!b' -e ':a' -e "s/domain_verify_prefix.*/domain_verify_prefix: $DNS_DOMAIN_VERIFY_PREFIX/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/dns:/!b' -e ':a' -e "s/custom_return_path_prefix.*/custom_return_path_prefix: $DNS_RETURN_PATH_PREFIX/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
|
|
### Logging
|
|
sed -i -e '/logging:/!b' -e ':a' -e "s/stdout.*/stdout: $LOG_CONSOLE/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
|
|
### MySQL Main DB
|
|
sed -i -e '/main_db:/!b' -e ':a' -e "s/host.*/host: $DB_HOST/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/main_db:/!b' -e ':a' -e "s/username.*/username: $DB_USER/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/main_db:/!b' -e ':a' -e "s/password.*/password: $DB_PASS/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/main_db:/!b' -e ':a' -e "s/database.*/database: $DB_NAME/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/main_db:/!b' -e ':a' -e "s/port.*/port: $DB_PORT/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
|
|
### MySQL Message DB
|
|
sed -i -e '/message_db:/!b' -e ':a' -e "s/host.*/host: $DB_HOST/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/message_db:/!b' -e ':a' -e "s/username.*/username: $DB_USER/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/message_db:/!b' -e ':a' -e "s/password.*/password: $DB_PASS/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/message_db:/!b' -e ':a' -e "s/port.*/port: $DB_PORT/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
|
|
### RabbitMQ
|
|
sed -i -e '/rabbitmq:/!b' -e ':a' -e "s/host.*/host: $RABBITMQ_HOST/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/rabbitmq:/!b' -e ':a' -e "s/username.*/username: $RABBITMQ_USER/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/rabbitmq:/!b' -e ':a' -e "s/password.*/password: $RABBITMQ_PASS/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/rabbitmq:/!b' -e ':a' -e "s/vhost.*/vhost: \/$RABBITMQ_VHOST/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/rabbitmq:/!b' -e ':a' -e "s/port.*/port: $RABBITMQ_PORT/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
|
|
### SMTP Server
|
|
sed -i -e '/smtp_server:/!b' -e ':a' -e "s/port.*/port: $SMTP_SERVER_PORT/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp_server:/!b' -e ':a' -e "s/tls_enabled.*/tls_enabled: $SMTP_SERVER_ENABLE_TLS/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp_server:/!b' -e ':a' -e "s/tls_certificate_path.*/tls_certificate_path: $SMTP_SERVER_TLS_CERT/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp_server:/!b' -e ':a' -e "s/tls_private_key_path.*/tls_private_key_path: $SMTP_SERVER_TLS_KEY/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp_server:/!b' -e ':a' -e "s/tls_ciphers.*/tls_ciphers: $SMTP_SERVER_TLS_CIPHERS/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp_server:/!b' -e ':a' -e "s/ssl_version.*/ssl_version: $SMTP_SERVER_SSL_VERSION/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp_server:/!b' -e ':a' -e "s/proxy_protocol.*/proxy_protocol: $SMTP_SERVER_PROXY_PROTOCOL/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp_server:/!b' -e ':a' -e "s/log_connect.*/log_connect: $SMTP_SERVER_LOG_CONNECTIONS/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp_server:/!b' -e ':a' -e "s/strip_received_headers.*/strip_received_headers: $SMTP_SERVER_STRIP_RECEIVED_HEADERS/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp_server:/!b' -e ':a' -e "s/max_message_size.*/max_message_size: $SMTP_SERVER_MAX_MESSAGE_SIZE/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
|
|
### SMTP Client
|
|
sed -i -e '/smtp_client:/!b' -e ':a' -e "s/open_timeout.*/open_timeout: $SMTP_CLIENT_OPEN_TIMEOUT/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp_client:/!b' -e ':a' -e "s/read_timeout.*/read_timeout: $SMTP_CLIENT_READ_TIMEOUT/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
|
|
### SMTP Relays
|
|
sed -i -e '/smtp_relays:/!b' -e ':a' -e "s/hostname.*/hostname: $SMTP_RELAY_HOST/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp_relays:/!b' -e ':a' -e "s/port.*/port: $SMTP_RELAY_PORT/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp_relays:/!b' -e ':a' -e "s/ssl_mode.*/ssl_mode: $SMTP_RELAY_SSL_MODE/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
|
|
### SMTP
|
|
sed -i -e '/smtp:/!b' -e ':a' -e "s/host.*/host: $SMTP_HOST/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp:/!b' -e ':a' -e "s/port.*/port: $SMTP_PORT/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp:/!b' -e ':a' -e "s/from_name.*/from_name: $SMTP_FROM_NAME/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/smtp:/!b' -e ':a' -e "s/from_address.*/from_address: $SMTP_FROM_ADDRESS/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
|
|
### Spamassassin
|
|
sed -i -e '/spamd:/!b' -e ':a' -e "s/enabled.*/enabled: $ENABLE_SPAMASSASSIN/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/spamd:/!b' -e ':a' -e "s/host.*/host: $SPAMASSASSIN_HOST/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
sed -i -e '/spamd:/!b' -e ':a' -e "s/port.*/port: $SPAMASSASSIN_PORT/;t trail" -e 'n;ba' -e ':trail' -e 'n;btrail' /opt/postal/config/postal.yml
|
|
##
|
|
|
|
|
|
## Clean Up
|
|
rm -rf /opt/postal/tmp/pids/*
|
|
|
|
### Make sure that DB is accessible
|
|
while true; do
|
|
mysqlcmd="mysql -u$DB_USER -h$DB_HOST -p$DB_PASS -P$DB_PORT"
|
|
out="`$mysqlcmd -e "SELECT COUNT(*) FROM information_schema.FILES;" 2>&1`"
|
|
echo "$out" | grep -E "COUNT|Enter" 2>&1 > /dev/null
|
|
if [ $? -eq 0 ]; then
|
|
echo "** [postal] MariaDB Server '"$DB_HOST"' is available"
|
|
break
|
|
fi
|
|
echo "** [postal] MariaDB Server '"$DB_HOST"' unavailable. Sleeping a little bit ..."
|
|
sleep 5
|
|
done
|
|
|
|
### Make sure that RabbitMQ is accessible
|
|
while true; do
|
|
nc -z $RABBITMQ_HOST 5672
|
|
if [ $? -eq 0 ]; then
|
|
echo "** [postal] RabbitMQ Server '"$RABBITMQ_HOST"' is available"
|
|
break
|
|
fi
|
|
echo "** [postal] RabbitMQ Server '"$RABBITMQ_HOST"' unavailable. Sleeping a little bit ..."
|
|
sleep 5
|
|
done
|
|
|
|
### Make sure that ClamAV is accessible
|
|
if [ "$ENABLE_CLAMAV" = "true" ]; then
|
|
while true; do
|
|
nc -w1 $CLAMAV_HOST $CLAMAV_PORT< /dev/null 2>&1 > /dev/null
|
|
if [ $? -eq 0 ]; then
|
|
echo "** [postal] ClamAV Server '"$CLAMAV_HOST"' is available"
|
|
break
|
|
fi
|
|
echo "** [postal] ClamAV Server '"$CLAMAV_HOST"' unavailable. Sleeping a little bit ..."
|
|
sleep 5
|
|
done
|
|
fi
|
|
|
|
### Make sure that Spamassassin is accessible
|
|
if [ "$ENABLE_SPAMASSASSIN" = "true" ]; then
|
|
while true; do
|
|
nc -w1 $SPAMASSASSIN_HOST $SPAMASSASSIN_PORT< /dev/null 2>&1 > /dev/null
|
|
if [ $? -eq 0 ]; then
|
|
echo "** [postal] Spamassassin Server '"$SPAMASSASSIN_HOST"' is available"
|
|
break
|
|
fi
|
|
echo "** [postal] Spamassassin Server '"$SPAMASSASSIN_HOST"' unavailable. Sleeping a little bit ..."
|
|
sleep 5
|
|
done
|
|
fi
|
|
|
|
if [[ $(mysql -h $DB_HOST -u$DB_USER -p$DB_PASS -s --skip-column-names -e "SELECT COUNT(DISTINCT table_name) FROM information_schema.columns WHERE table_schema = '"$DB_NAME"'") == 0 ]]; then
|
|
echo "** [postal] Detecting new Install. Initializing Database"
|
|
if [ ! -n "$DB_HOST" ]; then
|
|
echo '** [postal] ERROR: No Root Password Entered! You only need to provide the environment variable one time. Please try again.'
|
|
exit 1
|
|
fi
|
|
|
|
/opt/postal/bin/postal initialize
|
|
mysql -uroot -p$DB_ROOT_PASS -h$DB_HOST -e 'GRANT ALL PRIVILEGES ON `'$DB_NAME'-%` . * to `'$DB_USER'`@`%` IDENTIFIED BY "'$DB_PASS'";'
|
|
echo "** [postal] Creating Administrative User"
|
|
if [ ! -n "$ADMIN_EMAIL" ]; then
|
|
echo '** [postal] WARNING: No Admin Email entered, setting default email login to `postal@example.com`'
|
|
ADMIN_EMAIL="postal@example.com"
|
|
fi
|
|
if [ ! -n "$ADMIN_PASS" ]; then
|
|
echo '** [postal] WARNING: No Admin Pass entered, setting default password to `postal`'
|
|
ADMIN_PASS="postal"
|
|
fi
|
|
if [ ! -n "$ADMIN_FNAME" ]; then
|
|
echo '** [postal] WARNING: No Admin First Name entered, setting default to `Postal`'
|
|
ADMIN_FNAME="Postal"
|
|
fi
|
|
if [ ! -n "$ADMIN_LNAME" ]; then
|
|
echo '** [postal] WARNING: No Admin Last Name entered, setting default to `Admin`'
|
|
ADMIN_LNAME="Admin"
|
|
fi
|
|
|
|
cat <<EOF > /tmp/create-pass.sh
|
|
#!/usr/bin/expect
|
|
|
|
spawn /usr/bin/with-contenv bash /opt/postal/bin/postal make-user
|
|
expect "E-Mail Address :"
|
|
send -- "$ADMIN_EMAIL\n"
|
|
expect "First Name :"
|
|
send -- "$ADMIN_FNAME\n"
|
|
expect "Last Name :"
|
|
send -- "$ADMIN_LNAME\n"
|
|
expect "Initial Password: :"
|
|
send -- "$ADMIN_PASS\n"
|
|
expect "User has been created"
|
|
exit 0
|
|
EOF
|
|
|
|
chmod +x /tmp/create-pass.sh
|
|
/tmp/create-pass.sh
|
|
rm -rf /tmp/create-pass.sh
|
|
else
|
|
/opt/postal/bin/postal upgrade
|
|
fi
|
|
|
|
mkdir -p /tmp/state
|
|
touch /tmp/state/10-postal-init
|