feat: SuiteCRM Docker + compose + CI/CD
Some checks failed
Docker Build & Push / build-and-push (push) Has been cancelled
Some checks failed
Docker Build & Push / build-and-push (push) Has been cancelled
This commit is contained in:
155
README.md
155
README.md
@@ -1,3 +1,154 @@
|
||||
# sugar-crm
|
||||
# SuiteCRM Docker — Containerized CRM Environment
|
||||
|
||||
Containerized SugarCRM/SuiteCRM environment with Docker Compose
|
||||
**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
|
||||
|
||||
Reference in New Issue
Block a user