Link to > NewDatabase2025
ChurchCRM Setup Guide
1. ChurchCRM Install Script
- Build Ubuntu 24 LTS Server
- 1 CPU, 2GB RAM, 50GB Disk
- Oracle Cloud or similar Cloud Hosting Provider
- SSH into server
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.
Firewall Setup
https://gist.github.com/mrladeia/da43fc783610758c6dbcaba22b4f7acd
- You need to open up ports 80 and 443, on file mcedit /etc/iptables/rules.v4 just add
- -A INPUT -p tcp -m state --state NEW -m multiport --dports 80,443 -j ACCEPT
- directly below
- -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
- And reboot OR run bellow
sudo /sbin/iptables-restore < /etc/iptables/rules.v4
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
2. Backups and Updates
- Setup and Configure RCLONE
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
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:
- Email Setup:
- SMTPHost: smtp.email.ap-melbourne-1.oci.oraclecloud.com
- 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
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)
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;
User Manuals https://github.com/ChurchCRM/CRM/wiki https://church-web-crm.readthedocs.io/en/2.3.5/Installation/Manual/ (outdated)
***********************************************************
DAVID TO ADD CUSTOM FIELDS, CLASSIFICATIONS, ETC.