First round of convertdomain with espocrm
This commit is contained in:
parent
f5e56da01d
commit
23abbe234d
@ -14,7 +14,7 @@
|
||||
check_gluerecords() {
|
||||
echo -ne "\n* Checking glue records for $DOMAIN_NEW.."
|
||||
|
||||
NS_PARENT="$(dig +short NS "$DOMAIN_LAST." | head -n 1)"
|
||||
NS_PARENT="$(dig @8.8.8.8 +short NS "$DOMAIN_LAST." | head -n 1)"
|
||||
CHECK_NS1=`dig +noall +authority +additional +norecurse @"$NS_PARENT" NS "$DOMAIN_NEW". | grep NS | grep -i ns1.$DOMAIN_NEW`
|
||||
[ $? -ne 0 ] && failcheck "Couldn't find glue / authoritative NS record ns1.$DOMAIN_NEW"
|
||||
|
||||
@ -35,7 +35,7 @@ do_serviceprep() {
|
||||
docker exec pdns pdnsutil set-kind $DOMAIN_NEW native
|
||||
docker exec pdns pdnsutil set-meta $DOMAIN_NEW SOA-EDIT-API DEFAULT
|
||||
|
||||
for i in ns1 ns2 powerdns traefik mail www computer panel nextcloud collabora jitsi matrix element listmonk vaultwarden vpn wireguard baserow gitea blog documentation podcasts castopod caddy wordpress bookstack freescout msp; do
|
||||
for i in ns1 ns2 powerdns traefik mail www computer panel nextcloud collabora jitsi matrix element listmonk vaultwarden vpn wireguard baserow gitea blog documentation podcasts castopod caddy wordpress bookstack freescout msp espocrm; do
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW $i A 86400 $EXTERNALIP
|
||||
done
|
||||
|
||||
@ -912,6 +912,103 @@ convert_msp() {
|
||||
|
||||
echo -ne "done."
|
||||
}
|
||||
convert_espocrm() {
|
||||
#### Convert EspoCRM
|
||||
echo -ne "\n* Converting espocrm.."
|
||||
|
||||
rm -rf /federated/apps/espocrm
|
||||
mkdir -p /federated/apps/espocrm/data/var/www/html
|
||||
|
||||
cat > /federated/apps/espocrm/docker-compose.yml <<EOF
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
espocrm:
|
||||
image: espocrm/espocrm:\${IMAGE_VERSION}
|
||||
container_name: espocrm
|
||||
hostname: espocrm.$DOMAIN
|
||||
domainname: $DOMAIN
|
||||
restart: always
|
||||
networks:
|
||||
federated:
|
||||
ipv4_address: 172.99.0.39
|
||||
env_file:
|
||||
- ./.env
|
||||
volumes:
|
||||
- ./data/var/www/html:/var/www/html
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.espocrm.rule=Host(\`espocrm.$DOMAIN\`)"
|
||||
- "traefik.http.routers.espocrm.entrypoints=websecure"
|
||||
- "traefik.http.routers.espocrm.tls.certresolver=letsencrypt"
|
||||
|
||||
networks:
|
||||
federated:
|
||||
external: true
|
||||
EOF
|
||||
|
||||
ESPOCRM_SECRET=$(create_password);
|
||||
|
||||
cat > /federated/apps/espocrm/.env <<EOF
|
||||
IMAGE_VERSION="8.0.5-apache"
|
||||
ESPOCRM_DATABASE_HOST=pdnsmysql.$DOMAIN
|
||||
ESPOCRM_DATABASE_NAME=espocrm
|
||||
ESPOCRM_DATABASE_USER=espocrm
|
||||
ESPOCRM_DATABASE_PASSWORD=$ESPOCRM_SECRET
|
||||
ESPOCRM_ADMIN_USERNAME=admin@$DOMAIN
|
||||
ESPOCRM_ADMIN_PASSWORD=$ADMINPASS
|
||||
ESPOCRM_CONFIG_SMTP_PORT=587
|
||||
ESPOCRM_CONFIG_SMTP_AUTH=true
|
||||
ESPOCRM_CONFIG_SMTP_SECURITY=TLS
|
||||
ESPOCRM_CONFIG_SMTP_USERNAME=$SMTPUSER
|
||||
ESPOCRM_CONFIG_SMTP_PASSWORD=$ADMINPASS
|
||||
ESPOCRM_CONFIG_SMTP_SERVER=mail.$DOMAIN
|
||||
ESPOCRM_CONFIG_OUTBOUND_EMAIL_FROM_ADDRESS=espocrm@$DOMAIN
|
||||
ESPOCRM_CONFIG_AUTHENTICATION_METHOD=LDAP
|
||||
ESPOCRM_CONFIG_LDAP_USER_NAME_ATTRIBUTE=mail
|
||||
ESPOCRM_CONFIG_LDAP_USER_FIRST_NAME_ATTRIBUTE=givenName
|
||||
ESPOCRM_CONFIG_LDAP_USER_LAST_NAME_ATTRIBUTE=sn
|
||||
ESPOCRM_CONFIG_LDAP_USER_TITLE_ATTRIBUTE=cn
|
||||
ESPOCRM_CONFIG_LDAP_USER_EMAIL_ADDRESS_ATTRIBUTE=mail
|
||||
ESPOCRM_CONFIG_LDAP_USER_PHONE_NUMBER_ATTRIBUTE=cn
|
||||
ESPOCRM_CONFIG_LDAP_USER_OBJECT_CLASS=inetOrgPerson
|
||||
ESPOCRM_CONFIG_LDAP_HOST=ldap.$DOMAIN
|
||||
ESPOCRM_CONFIG_LDAP_PORT=636
|
||||
ESPOCRM_CONFIG_LDAP_SECURITY=SSL
|
||||
ESPOCRM_CONFIG_LDAP_AUTH=true
|
||||
ESPOCRM_CONFIG_LDAP_USERNAME=cn=admin,dc=federatedcomputer,dc=cloud
|
||||
ESPOCRM_CONFIG_LDAP_PASSWORD=$LDAP_SECRET
|
||||
ESPOCRM_CONFIG_LDAP_ACCOUNT_CANONICAL_FORM=Dn
|
||||
ESPOCRM_CONFIG_LDAP_BASE_DN=dc=federatedcomputer,dc=cloud
|
||||
ESPOCRM_CONFIG_LDAP_BIND_REQUIRES_DN=true
|
||||
ESPOCRM_CONFIG_LDAP_CREATE_ESPO_USER=true
|
||||
ESPOCRM_CONFIG_LDAP_PORTAL_USER_LDAP_AUTH=true
|
||||
ESPOCRM_SITE_URL="https://espocrm.$DOMAIN"
|
||||
EOF
|
||||
chmod 600 /federated/apps/espocrm/.env
|
||||
|
||||
# Create database and user in mysql
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e 'drop database espocrm;'"
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e 'drop user espocrm;'"
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e 'create database espocrm;'"
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e \"CREATE USER 'espocrm'@'%' IDENTIFIED BY '$ESPOCRM_SECRET';\""
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e \"grant all privileges on espocrm.* to 'espocrm'@'%';\""
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e 'flush privileges;'"
|
||||
|
||||
if [ "${#DOMAIN_ARRAY[@]}" -eq "3" ]; then
|
||||
sed -i "s#dc=federatedcomputer,dc=cloud#dc=$DOMAIN_FIRST,dc=$DOMAIN_MIDDLE,dc=$DOMAIN_LAST#g" /federated/apps/espocrm/.env
|
||||
else
|
||||
sed -i "s#dc=federatedcomputer,dc=cloud#dc=$DOMAIN_FIRST,dc=$DOMAIN_LAST#g" /federated/apps/espocrm/.env
|
||||
fi
|
||||
|
||||
# Grab the container IP from docker-compose
|
||||
SERVICE_IP=`grep ipv4_address /federated/apps/espocrm/docker-compose.yml | awk '{ print $2 }'`
|
||||
|
||||
# Start service with command to make sure it's up before proceeding
|
||||
start_service_convert "espocrm" "nc -z $SERVICE_IP 80 &> /dev/null"
|
||||
|
||||
echo -ne "done."
|
||||
}
|
||||
usage() {
|
||||
echo "$0: <domain.com> <organization name>"
|
||||
exit 2
|
||||
|
Loading…
x
Reference in New Issue
Block a user