CiviCRM Standalone — Unraid Evaluation Guide

Docker on Unraid · No production server · Delete when done


What this does

Runs CiviCRM Standalone in Docker on your Unraid server. Accessible from any device on your local network at http://[UNRAID-IP]:8080. No domain, no SSL, no DigitalOcean. When you're done evaluating, one command removes everything.


Step 1 — SSH into your Unraid server

ssh root@[YOUR-UNRAID-IP]

Step 2 — Create the project folder

Unraid convention is to keep things under /mnt/user/appdata/:

mkdir -p /mnt/user/appdata/civicrm-eval
cd /mnt/user/appdata/civicrm-eval

Step 3 — Download CiviCRM Standalone

Check the latest version number at civicrm.org/download, then:

# Download the latest Standalone tarball (update version number as needed)
wget https://download.civicrm.org/civicrm-6.X.X-standalone.tar.gz

# Extract it
tar -xzf civicrm-6.X.X-standalone.tar.gz

# Rename to a clean folder name
mv civicrm-6.X.X civicrm

# Clean up the tarball
rm civicrm-6.X.X-standalone.tar.gz

Step 4 — Create the docker-compose.yml

nano docker-compose.yml

Paste this in exactly:

version: '3.8'

services:
  db:
    image: mariadb:10.6
    container_name: civicrm-eval-db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: civicrm
      MYSQL_USER: civicrm_user
      MYSQL_PASSWORD: civicrm_pass
    volumes:
      - /mnt/user/appdata/civicrm-eval/mysql:/var/lib/mysql

  web:
    image: civicrm/civicrm-standalone:latest
    container_name: civicrm-eval-web
    restart: unless-stopped
    ports:
      - "8080:80"
    environment:
      CIVICRM_DB_HOST: db
      CIVICRM_DB_NAME: civicrm
      CIVICRM_DB_USER: civicrm_user
      CIVICRM_DB_PASS: civicrm_pass
    volumes:
      - /mnt/user/appdata/civicrm-eval/civicrm:/var/www/html
    depends_on:
      - db

Save: Ctrl+X → Y → Enter


Step 5 — Set file permissions

# Allow the web container to write to CiviCRM directories
chmod -R 775 /mnt/user/appdata/civicrm-eval/civicrm/private
chmod -R 775 /mnt/user/appdata/civicrm-eval/civicrm/public
chmod -R 775 /mnt/user/appdata/civicrm-eval/civicrm/ext

Step 6 — Start the containers

docker compose up -d

Wait about 30 seconds for MariaDB to fully initialize, then open a browser on any device on your network and go to:

http://[YOUR-UNRAID-IP]:8080


Step 7 — Complete the web installer

You'll see the CiviCRM installer. Use these credentials:

Field Value
Database host db
Database name civicrm
Database user civicrm_user
Database password civicrm_pass
Base URL http://[YOUR-UNRAID-IP]:8080

Set an admin username and password, complete the installer (~2 min), log in.


Step 8 — First things to enable

Once logged in:

Enable CiviGrant (the key feature for CBF): Administer → System Settings → Enable CiviCRM Components → check CiviGrant → Save

Enable other components while you're there: CiviEvent, CiviMail, CiviReport → Save

Apply the River theme: Administer → Customize Data and Screens → Display Preferences → Theme → River


What to evaluate for CBF

Feature Where to find it What to look for
CiviGrant Grants → New Grant Can you model CBF's donation-in → grant-out flow?
FormBuilder Administer → Form Builder Build a grant application form. Is it usable for applicants?
SearchKit Administer → Search Kit Build a grant status dashboard. Save as dashlet.
CiviReport Reports → Create Report Try "Grant Report" and "Contribution Summary"
CiviContribute Contributions → New Contribution Link a donation to a financial type / fund

Useful commands

# Stop containers (data preserved)
cd /mnt/user/appdata/civicrm-eval && docker compose stop

# Start again
docker compose start

# View logs
docker compose logs -f web

# Full reset — wipes everything
docker compose down -v
rm -rf /mnt/user/appdata/civicrm-eval/mysql
rm -rf /mnt/user/appdata/civicrm-eval/civicrm

When you're done evaluating

cd /mnt/user/appdata/civicrm-eval
docker compose down -v
cd /mnt/user/appdata && rm -rf civicrm-eval/

Containers removed, data gone, Unraid back to normal.


If you decide to go to production

Production goes on DigitalOcean — separate guide, fresh install. Your evaluation data doesn't migrate and that's fine. The goal here is just to validate that CiviGrant and the overall workflow fit CBF before committing to a real server.


CiviCRM Standalone docs: docs.civicrm.org/installation/en/latest/standalone/ CiviCRM Docker repo: github.com/civicrm/civicrm-docker