1- # Lab 03 — Advanced Features: suitecrm with TLS, resource limits, logging
2- ---
1+ # Lab 03 — Advanced Features
2+ # Module 12: SuiteCRM CRM
3+ # External MariaDB + Redis cache + dedicated Cron + Mailhog + resource limits
4+ # Web UI: http://localhost:8321
5+ # Mailhog: http://localhost:8621
6+
7+ name : it-stack-suitecrm-lab03
8+
39services :
4- suitecrm :
5- image : bitnami/suitecrm:latest
6- container_name : it-stack-suitecrm
10+ # ── External Database ─────────────────────────────────────────────────────────
11+ suitecrm-a03-db :
12+ image : mariadb:10.11
13+ container_name : suitecrm-a03-db
14+ restart : unless-stopped
15+ environment :
16+ MYSQL_ROOT_PASSWORD : RootLab03!
17+ MYSQL_DATABASE : suitecrm
18+ MYSQL_USER : suitecrm
19+ MYSQL_PASSWORD : SuiteLab03!
20+ volumes :
21+ - suitecrm-a03-db-data:/var/lib/mysql
22+ healthcheck :
23+ test : ["CMD", "mysqladmin", "ping", "-uroot", "-pRootLab03!", "--silent"]
24+ interval : 10s
25+ timeout : 5s
26+ retries : 10
27+ start_period : 30s
28+ deploy :
29+ resources :
30+ limits :
31+ cpus : " 0.5"
32+ memory : 512M
33+ networks :
34+ - suitecrm-a03-net
35+
36+ # ── Redis (session cache) ─────────────────────────────────────────────────────
37+ suitecrm-a03-redis :
38+ image : redis:7-alpine
39+ container_name : suitecrm-a03-redis
40+ restart : unless-stopped
41+ command : redis-server --save 60 1 --loglevel warning --maxmemory 256mb --maxmemory-policy allkeys-lru
42+ volumes :
43+ - suitecrm-a03-redis-data:/data
44+ healthcheck :
45+ test : ["CMD", "redis-cli", "ping"]
46+ interval : 10s
47+ timeout : 3s
48+ retries : 5
49+ start_period : 10s
50+ deploy :
51+ resources :
52+ limits :
53+ cpus : " 0.25"
54+ memory : 256M
55+ networks :
56+ - suitecrm-a03-net
57+
58+ # ── SMTP Relay ────────────────────────────────────────────────────────────────
59+ suitecrm-a03-mail :
60+ image : mailhog/mailhog:latest
61+ container_name : suitecrm-a03-mail
762 restart : unless-stopped
863 ports :
9- - " 80:$firstPort"
64+ - " 8621:8025"
65+ networks :
66+ - suitecrm-a03-net
67+
68+ # ── SuiteCRM Application ──────────────────────────────────────────────────────
69+ suitecrm-a03-app :
70+ image : bitnami/suitecrm:8
71+ container_name : suitecrm-a03-app
72+ restart : unless-stopped
73+ depends_on :
74+ suitecrm-a03-db :
75+ condition : service_healthy
76+ suitecrm-a03-redis :
77+ condition : service_healthy
78+ suitecrm-a03-mail :
79+ condition : service_started
80+ ports :
81+ - " 8321:8080"
82+ environment :
83+ SUITECRM_DATABASE_HOST : suitecrm-a03-db
84+ SUITECRM_DATABASE_PORT_NUMBER : " 3306"
85+ SUITECRM_DATABASE_NAME : suitecrm
86+ SUITECRM_DATABASE_USER : suitecrm
87+ SUITECRM_DATABASE_PASSWORD : SuiteLab03!
88+ SUITECRM_USERNAME : admin
89+ SUITECRM_PASSWORD : Admin03!
90+ SUITECRM_EMAIL : admin@lab.local
91+ SUITECRM_SMTP_HOST : suitecrm-a03-mail
92+ SUITECRM_SMTP_PORT : " 1025"
93+ SUITECRM_SMTP_PROTOCOL : " "
94+ # Redis session cache
95+ SUITECRM_SESSION_SAVE_HANDLER : redis
96+ SUITECRM_SESSION_SAVE_PATH : " tcp://suitecrm-a03-redis:6379"
97+ volumes :
98+ - suitecrm-a03-data:/bitnami/suitecrm
99+ healthcheck :
100+ test : ["CMD-SHELL", "curl -sf http://localhost:8080/index.php | grep -qi 'suitecrm\\|login'"]
101+ interval : 30s
102+ timeout : 15s
103+ retries : 10
104+ start_period : 120s
105+ deploy :
106+ resources :
107+ limits :
108+ cpus : " 1.0"
109+ memory : 1G
110+ networks :
111+ - suitecrm-a03-net
112+
113+ # ── SuiteCRM Cron (scheduled jobs) ───────────────────────────────────────────
114+ suitecrm-a03-cron :
115+ image : bitnami/suitecrm:8
116+ container_name : suitecrm-a03-cron
117+ restart : unless-stopped
118+ depends_on :
119+ suitecrm-a03-app :
120+ condition : service_healthy
121+ entrypoint : ["/bin/bash", "-c", "while true; do php /opt/bitnami/suitecrm/cron.php > /dev/null 2>&1; sleep 60; done"]
10122 environment :
11- - IT_STACK_ENV=lab-03-advanced
12- - TLS_ENABLED=true
123+ SUITECRM_DATABASE_HOST : suitecrm-a03-db
124+ SUITECRM_DATABASE_PORT_NUMBER : " 3306"
125+ SUITECRM_DATABASE_NAME : suitecrm
126+ SUITECRM_DATABASE_USER : suitecrm
127+ SUITECRM_DATABASE_PASSWORD : SuiteLab03!
13128 volumes :
14- - suitecrm_data:/var/lib/suitecrm
15- - ./certs:/etc/ssl/certs:ro
129+ - suitecrm-a03-data:/bitnami/suitecrm
16130 deploy :
17131 resources :
18132 limits :
19- cpus : " 2.0"
20- memory : G
21- logging :
22- driver : json-file
23- options :
24- max-size : " 100m"
25- max-file : " 5"
133+ cpus : " 0.25"
134+ memory : 256M
26135 networks :
27- - it-stack -net
136+ - suitecrm-a03 -net
28137
29138networks :
30- it-stack -net :
139+ suitecrm-a03 -net :
31140 driver : bridge
32141
33142volumes :
34- suitecrm_data :
143+ suitecrm-a03-db-data :
144+ suitecrm-a03-redis-data :
145+ suitecrm-a03-data:
0 commit comments