Deploying a SuiteCRM App
Introduction
SuiteCRM is an open-source customer relationship management platform built on PHP. Deploying SuiteCRM with a Dockerfile on Klutch.sh provides reproducible builds, managed secrets, and persistent storage—all configured from klutch.sh/app. This guide covers installation, Dockerfile setup, environment variables, storage, Nixpacks overrides, and sample checks to verify your CRM is live.
Prerequisites
- A Klutch.sh account (sign up)
- A GitHub repository containing your SuiteCRM Dockerfile (GitHub is the only supported git source)
- External MariaDB/MySQL database
- Domain and TLS for secure access
Architecture and ports
- SuiteCRM (Bitnami image) serves HTTP on internal port
8080. Choose HTTP traffic in Klutch.sh and set the internal port to8080. - Persistent storage is required for application data and uploaded files; primary database data resides in MariaDB/MySQL.
Repository layout
suitecrm/├── Dockerfile # Must be at repo root for auto-detection└── README.mdKeep secrets out of Git; store them in Klutch.sh environment variables.
Installation (local) and starter commands
Build and run locally (ensure MariaDB/MySQL is reachable):
docker build -t suitecrm-local .docker run -p 8080:8080 \ -e MARIADB_HOST=localhost \ -e MARIADB_PORT_NUMBER=3306 \ -e SUITECRM_DATABASE_NAME=suitecrm \ -e SUITECRM_DATABASE_USER=suitecrm \ -e SUITECRM_DATABASE_PASSWORD=changeme \ -e SUITECRM_USERNAME=admin \ -e SUITECRM_PASSWORD=admin123 \ -e SUITECRM_EMAIL=admin@example.com \ suitecrm-localDockerfile for SuiteCRM (production-ready)
Place this at the repo root; Klutch.sh auto-detects Dockerfiles.
FROM bitnami/suitecrm:latest
ENV APACHE_HTTP_PORT_NUMBER=8080
EXPOSE 8080CMD ["/opt/bitnami/scripts/suitecrm/run.sh"]Notes:
- Pin to a specific tag (e.g.,
bitnami/suitecrm:8.6.1) for stability. - The Bitnami entrypoint starts Apache/PHP-FPM on the configured port.
Environment variables (Klutch.sh)
Set these before deploying:
PORT=8080APACHE_HTTP_PORT_NUMBER=8080- Database:
MARIADB_HOST=<db-host>MARIADB_PORT_NUMBER=3306SUITECRM_DATABASE_NAME=<db-name>SUITECRM_DATABASE_USER=<db-user>SUITECRM_DATABASE_PASSWORD=<db-password>
- App admin:
SUITECRM_USERNAME=<admin-user>SUITECRM_PASSWORD=<strong-password>SUITECRM_EMAIL=<admin-email>
- Optional:
SUITECRM_SKIP_BOOTSTRAP=no(keep defaults), mail settings as needed
If deploying without the Dockerfile and relying on Nixpacks:
NIXPACKS_START_CMD=/opt/bitnami/scripts/suitecrm/run.sh
Attach persistent volumes
Add storage in Klutch.sh (path and size only):
/bitnami/suitecrm— application data and uploads./bitnami/php— PHP configuration/cache (optional).
Ensure paths are writable inside the container.
Deploy SuiteCRM on Klutch.sh (Dockerfile workflow)
- Push your repository—with the Dockerfile at the root—to GitHub.
- Open klutch.sh/app, create a project, and add an app.
- Select HTTP traffic and set the internal port to
8080. - Add the environment variables above (database, admin credentials, email, and optional mail settings).
- Attach volumes at
/bitnami/suitecrm(and/bitnami/phpif desired) sized for your data. - Deploy. Access your CRM at
https://example-app.klutch.shand complete the initial setup screens.
Sample checks
Landing page:
curl -I https://example-app.klutch.shLogin page (expect HTML response):
curl -I https://example-app.klutch.sh/index.phpHealth checks and production tips
- Add an HTTP readiness probe to
/to confirm Apache responds. - Keep DB credentials and admin passwords in Klutch.sh secrets; rotate regularly.
- Pin image versions and test upgrades in staging before production rollout.
- Back up MariaDB and the
/bitnami/suitecrmvolume regularly.
SuiteCRM on Klutch.sh delivers reproducible Docker builds, managed secrets, and persistent storage—without extra YAML or CI steps. Configure ports, env vars, and volumes, then launch your CRM.