Link to > NewDatabase2025

ChurchCRM Setup Guide

1. ChurchCRM Install Script

timedatectl set-timezone Australia/Melbourne
apt install locales -y
locale-gen en_AU.UTF-8
update-locale LANG=en_AU.UTF-8
reboot
wget https://raw.githubusercontent.com/ChurchCRM/CRM/refs/heads/master/install/install.sh
sh install.sh churchcrm churchcrm YOURdbPASSWORD
mysql_secure_installation
Note: When securing MySQL you will want to answer "yes" to all question, except for change root password.

2. Firewall Setup

3. Install SSL Certificate

snap install core
snap install --classic certbot
certbot --apache --agree-tos -m [email protected] --no-eff-email -d crm.wojco.org
systemctl disable snap.certbot.renew.timer

4. Backups and Updates

crontab -e
00 23 * * *  mysqldump -u root churchcrm | gzip > /opt/crmbackup/churchcrm-backup-$(date +\%Y\%m\%d).sql.gz
00 22 * * * find /opt/crmbackup/ -type f -name "*.sql.gz" -mtime +15 -delete
0 21 * * 0 mysqldump -u root churchcrm | gzip > /opt/crmbackup-bucket/churchcrm-backup-weekly-$(date +\%Y\%m\%d).sql.gz
10 21 * * 0 rclone move /opt/crmbackup-bucket/ ocistorage:gwuc-crm-backups
20 21 * * 0 rclone copy /var/www/html/churchcrm/Images/ ocistorage:gwuc-crm-backups/images/
0 2 * * 2 sudo /usr/bin/unattended-upgrade -v

5. ChurchCRM First Run Configuration Items

https://github.com/ChurchCRM/CRM/wiki/First-Run-Configuration-Items

Admin, Church Information:
Church name: Glen Waverley Uniting Church
Address: Cnr. Kingsway & Bogong Avenue
City: Glen Waverley
State: Victoria
Zip: 3150
Country:  Australia
Email: [email protected]
sTimeZone: Australia/Melbourne

User Setup:
MinPasswordLength: 13

Email Setup:
SMTPHost: smtp.email.ap-melbourne-1.oci.oraclecloud.com
ToEmailAddress: [email protected]

PeopleSetup:
Default City: Melbourne
Default State: Victoria
Default Country: Australia
sPersonListColumns, Edit Settings, 'Cell Phone', name change "Cell Phone" to "Mobile Phone"
sPersonListColumns, Edit Settings, 'Gender', name change visible to "false"
sFamilyListColumns, Edit Settings, 'Cell Phone', name change "Cell Phone" to "Mobile Phone"

Localisation:
Language: Australia
DateFormatLong: d/m/Y
DateFormatNoYear: d/m
DateFormatShort: d/m/y
DateTimeFormat: d/m/Y g:i a
DatePickerFormat: d-m-Y
DatePickerPlaceHolder: dd-mm-yyyy

System Settings:
bEnableIntegrityCheck: False
sLastIntegrityCheckTimeStamp: clear field

6. After Each Upgrade

Remove Gender field

mcedit /var/www/html/churchcrm/PersonEditor.php, search and change:
gettext('Gender') to gettext('NotUsed')
gettext('Select Gender') to gettext('-')

mcedit /var/www/html/churchcrm/PersonView.php, search and change:
gettext('Gender') to gettext('NotUsed')

mcedit /var/www/html/churchcrm/FamilyEditor.php, search and change:
gettext('Gender') to gettext('NotUsed')
gettext('Select Gender') to gettext('-')

mcedit /var/www/html/churchcrm/ChurchCRM/tasks/PersonGenderDataCheck.php
return $this->count > 0;      to           return $this->count > 10000;

mcedit /var/www/html/churchcrm/ChurchCRM/Service/AppIntegrityService.php
(F7 search for ModRewrite, then comment out line with // at start, F2 to save)

7. Add Users to MySQL

CREATE USER 'wojakma'@'%' IDENTIFIED BY 'password-here';
GRANT SELECT ON churchcrm.* TO 'wojakma'@'%';
CREATE USER 'morganda'@'%' IDENTIFIED BY 'password-here';
GRANT SELECT ON churchcrm.* TO 'morganda'@'%';
FLUSH PRIVILEGES;

8. User Manuals

***********************************************************

DAVID TO ADD CUSTOM FIELDS, CLASSIFICATIONS, ETC.