# ========================================== # MONICA CRM (OFFICIAL DOCKER STRUCTURE) # ========================================== # ------------------------ # DATABASE STORAGE # ------------------------ --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: monica-db-pvc spec: accessModes: - ReadWriteOnce storageClassName: microk8s-hostpath resources: requests: storage: 2Gi # ------------------------ # MONICA STORAGE # ------------------------ --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: monica-storage-pvc spec: accessModes: - ReadWriteOnce storageClassName: microk8s-hostpath resources: requests: storage: 1Gi # ------------------------ # MARIADB # ------------------------ --- apiVersion: apps/v1 kind: Deployment metadata: name: monica-db spec: replicas: 1 selector: matchLabels: app: monica-db template: metadata: labels: app: monica-db spec: nodeSelector: kubernetes.io/hostname: mist containers: - name: mariadb image: mariadb:10.11 env: - name: MYSQL_ROOT_PASSWORD value: rootpassword - name: MYSQL_DATABASE value: monica - name: MYSQL_USER value: monica - name: MYSQL_PASSWORD value: monica_password volumeMounts: - mountPath: /var/lib/mysql name: db-storage volumes: - name: db-storage persistentVolumeClaim: claimName: monica-db-pvc --- apiVersion: v1 kind: Service metadata: name: monica-db spec: selector: app: monica-db ports: - port: 3306 # ------------------------ # MONICA APP # ------------------------ --- apiVersion: apps/v1 kind: Deployment metadata: name: monica spec: replicas: 1 selector: matchLabels: app: monica template: metadata: labels: app: monica spec: nodeSelector: kubernetes.io/hostname: mist containers: - name: monica image: monica:apache env: - name: APP_ENV value: production - name: APP_DEBUG value: "false" - name: APP_URL value: https://crm.juntekim.com - name: APP_KEY value: base64:EKAoON4NgmB9cOZCLSG0z+fy5KYtMKXL6m1AKBBdeOU= - name: DB_CONNECTION value: mysql - name: DB_HOST value: monica-db - name: DB_PORT value: "3306" - name: DB_DATABASE value: monica - name: DB_USERNAME value: monica - name: DB_PASSWORD value: monica_password - name: CACHE_DRIVER value: database - name: SESSION_DRIVER value: database - name: QUEUE_CONNECTION value: database ports: - containerPort: 80 volumeMounts: - mountPath: /var/www/html/storage name: monica-storage volumes: - name: monica-storage persistentVolumeClaim: claimName: monica-storage-pvc --- apiVersion: v1 kind: Service metadata: name: monica spec: selector: app: monica ports: - port: 80 targetPort: 80 # ------------------------ # TRAEFIK INGRESS # ------------------------ --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: monica-ingress spec: entryPoints: - websecure routes: - match: Host(`crm.juntekim.com`) kind: Rule services: - name: monica port: 80 tls: certResolver: myresolver domains: - main: crm.juntekim.com