#acl MartinWojak:read,write All:read #pragma section-numbers 2 Link to > NewDatabase2025 == ChurchCRM Setup Guide == === 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 ist@gwuc.org.au --no-eff-email -d crm.wojco.org systemctl disable snap.certbot.renew.timer }}} === Backups and Updates === * Setup and Configure RCLONE * https://docs.oracle.com/en/solutions/move-data-to-cloud-storage-using-rclone/configure-rclone-object-storage.html * https://rclone.org/oracleobjectstorage/ {{{ 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: office@gwuc.org.au sTimeZone: Australia/Melbourne User Setup: MinPasswordLength: 13 Email Setup: SMTPHost: smtp.email.ap-melbourne-1.oci.oraclecloud.com ToEmailAddress: churchcrm@wojco.org 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 }}} === 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.