Skip to main content

Installing ChurchCRM on a VPS or Cloud Provider

ChurchCRM runs on any Linux server with Apache, PHP 8.2+, and MySQL/MariaDB. If you or your church has a volunteer comfortable with the command line, a VPS gives you more control, better performance, and lower cost than most shared hosting plans.

This page covers the popular cloud options and maps you to the right install guide. The underlying steps are the same across all of them — the only difference is how you spin up the VM.


Which provider should I choose?

ProviderNotes
DigitalOceanSimple UI, predictable pricing ($6–$12/mo for a small church), good for first-timers. Create a "Droplet" with Ubuntu 24.04.
Linode / AkamaiSimilar to DigitalOcean, very reliable, slightly cheaper at entry level.
HetznerCheapest option (~€4/mo), European data centers, excellent value for money.
VultrMany global regions, competitive pricing, good for international churches.
AWS LightsailAmazon's simplified VPS product — predictable cost, easy to upgrade to full AWS later.
AWS EC2Full AWS power, more setup required, free tier available for 12 months (t2.micro). Follow the Azure guide pattern and adapt for EC2.
Google Cloud (GCE)Google's VMs — free tier available (e2-micro in us-east1 is permanently free).
Microsoft AzureSee the dedicated Azure installation guide.
What size do I need?

For a congregation under 500 people: 1 vCPU, 1–2 GB RAM, 20 GB disk is fine. Under 2,000 people: 2 vCPU, 2–4 GB RAM. The database and file storage grow slowly — most churches stay under 5 GB for years.


Steps: Ubuntu-based providers (DigitalOcean, Linode, Hetzner, Vultr, Lightsail, GCE)

  1. Create a VM running Ubuntu 22.04 LTS or Ubuntu 24.04 LTS
  2. SSH in as root (or a sudo user)
  3. Follow the Self-Hosted on Ubuntu guide from the top

That's it. The guide covers Apache, MariaDB, PHP 8.4, and deploying the release zip — all tested on Ubuntu 22.04/24.04.


Steps: RHEL-based providers (any provider running Rocky Linux / AlmaLinux)

  1. Create a VM running Rocky Linux 9 or AlmaLinux 9
  2. SSH in
  3. Follow the Self-Hosted on Rocky Linux guide

Steps: Microsoft Azure

See the dedicated Azure installation guide, which covers resource groups, VM creation, and Apache configuration specific to Azure's networking.


SSL / HTTPS

On any VPS you'll want a TLS certificate. Let's Encrypt is free and takes about 2 minutes with Certbot:

Ubuntu:

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d yourdomain.com

Rocky Linux:

sudo dnf install certbot python3-certbot-apache
sudo certbot --apache -d yourdomain.com

Certbot auto-renews certificates — no annual fee, no manual renewal. See SSL / HTTPS for more.


Docker

No officially supported production Docker image

ChurchCRM is built and developed using Docker — the docker/ directory has example Dockerfiles (Apache, FPM, FrankenPHP) used for local development and CI. None of these are published or maintained as an official production image, and this is a deliberate choice, not a temporary gap: once you run a container in production, keeping its base image patched and secure is the operator's ongoing responsibility, not something the ChurchCRM project can maintain on your behalf.

If you want to run ChurchCRM in a container, you can adapt the example Dockerfiles yourself, but you own the security maintenance of the resulting image. For a supported path with no extra maintenance burden, a VPS with the standard Apache + PHP setup (this page) or a self-hosted Linux install is the safer choice.


What about managed databases (RDS, Cloud SQL)?

You can point ChurchCRM at a managed MySQL/MariaDB instance (AWS RDS, Google Cloud SQL, Azure Database for MySQL) instead of running MariaDB on the same server. The connection details go in Include/Config.php — same as a local install. A managed database adds cost but removes the backup and patching burden for the database tier.


See Also