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