# SuiteCRM Docker — Containerized CRM Environment **SuiteCRM 7.15.1** — vollständig containerisiert mit Docker Compose. Ein Befehl, alles läuft: SuiteCRM + MariaDB + (optional) Redis. ## Systemanforderungen - Docker 20.10+ und Docker Compose v2 - 2 GB RAM empfohlen (MariaDB Puffer) ## Schnellstart ```bash # 1. Repository klonen git clone https://git.kgessner.de/LuiiCode/sugar-crm.git cd sugar-crm # 2. Umgebungsvariablen anpassen cp .env.example .env nano .env # Passwörter ändern! # 3. Starten docker compose up -d # 4. SuiteCRM Installation im Browser abschließen: # http://localhost:8080 ``` ## Architektur ``` ┌──────────────────────────────────────┐ │ Docker Compose │ │ │ │ ┌──────────┐ ┌──────────┐ │ │ │ SuiteCRM │ │ MariaDB │ Redis? │ │ │ :8080 │ │ :3307 │ :6379 │ │ │ PHP 8.1 │ │ 10.11 │ (opt.) │ │ │ Apache │ │ │ │ │ └──────────┘ └──────────┘ │ │ │ │ │ │ Volumes: Volumes: │ │ - upload - /var/lib/mysql │ │ - custom │ │ - config │ └──────────────────────────────────────┘ ``` ## Services | Service | Image | Port | Profil | |-----------|------------------|-------|---------------| | suitecrm | Custom (PHP 8.1) | 8080 | standard | | mariadb | mariadb:10.11 | 3307 | standard | | redis | redis:7-alpine | 6379 | `redis`/`full`| ## Konfiguration ### Umgebungsvariablen (`.env`) | Variable | Default | Beschreibung | |-----------------------|-----------------------------|-------------------------| | `SUITECRM_PORT` | 8080 | Webinterface-Port | | `SUITECRM_SITE_URL` | http://localhost:8080 | Öffentliche URL | | `MYSQL_PORT` | 3307 | DB-Port (Host) | | `MYSQL_ROOT_PASSWORD` | change_this… | Root-Passwort | | `MYSQL_DATABASE` | suitecrm | Datenbank-Name | | `MYSQL_USER` | suitecrm | Datenbank-Nutzer | | `MYSQL_PASSWORD` | change_this… | Nutzer-Passwort | > ⚠️ **Sicherheit**: Immer `.env` Passwörter ändern vor erstem Start! ## Kommandos ```bash # Grundbefehle docker compose up -d # Alle Services starten docker compose up -d redis # + Redis-Cache starten docker compose down # Stoppen docker compose down -v # Stoppen + ALLE DATEN LÖSCHEN # Logs docker compose logs -f suitecrm # SuiteCRM-Logs verfolgen docker compose logs mariadb # DB-Logs # Backup docker compose exec mariadb mysqldump -u suitecrm -p suitecrm > backup.sql tar -czf upload-backup.tar.gz -C /var/lib/docker/volumes/sugarcrmreponame_suitecrm_data/_data . ``` ## SuiteCRM Installation (Erst-Start) Nach `docker compose up -d` im Browser `http://localhost:8080` öffnen: 1. **License Agreement** → Akzeptieren 2. **System Check** → Alle Checks sollten grün sein 3. **Database Configuration**: - Host: `mariadb` - Database: `suitecrm` - User: `suitecrm` - Password: (aus `.env`) 4. **Site Configuration** → Admin-Nutzer anlegen 5. **Fertig!** SuiteCRM ist einsatzbereit. ## Redis aktivieren ```bash # Mit Redis-Profil starten docker compose --profile redis up -d # Oder Full-Stack (alles inkl. Redis) docker compose --profile full up -d ``` Redis-Konfiguration in SuiteCRM Admin → System → Redis: - Host: `redis` - Port: `6379` ## Elasticsearch (optional) Für Volltextsuche kann Elasticsearch ergänzt werden. Dazu in `docker-compose.yml` einfügen: ```yaml elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.17.24 container_name: suitecrm-es environment: - discovery.type=single-node - xpack.security.enabled=false volumes: - es_data:/usr/share/elasticsearch/data networks: - suitecrm-net ``` ## Docker Image bauen & pushen ```bash # Lokal bauen docker build -t suitecrm:7.15.1 . # In Gitea Registry pushen docker tag suitecrm:7.15.1 git.kgessner.de/luiicode/sugar-crm:7.15.1 docker login git.kgessner.de docker push git.kgessner.de/luiicode/sugar-crm:7.15.1 ``` ## CI/CD Bei jedem Push auf `main` baut Gitea Actions das Image automatisch und pusht es in die Gitea Container Registry. Workflow: `.gitea/workflows/docker-build.yml` --- **Version**: SuiteCRM 7.15.1 | **PHP**: 8.1 | **MariaDB**: 10.11