170 lines
3.4 KiB
YAML
170 lines
3.4 KiB
YAML
# ================================
|
|
# MONICA CRM - SIMPLE SETUP
|
|
# https://docs.monicahq.com/
|
|
# ================================
|
|
|
|
# ------------------
|
|
# POSTGRES STORAGE
|
|
# ------------------
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: monica-postgres-pvc
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
storageClassName: microk8s-hostpath
|
|
resources:
|
|
requests:
|
|
storage: 1Gi
|
|
|
|
# ------------------
|
|
# MONICA STORAGE
|
|
# ------------------
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: monica-storage-pvc
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
storageClassName: microk8s-hostpath
|
|
resources:
|
|
requests:
|
|
storage: 500Mi
|
|
|
|
# ------------------
|
|
# POSTGRES
|
|
# ------------------
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: monica-postgres
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: monica-postgres
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: monica-postgres
|
|
spec:
|
|
nodeSelector:
|
|
kubernetes.io/hostname: mist
|
|
containers:
|
|
- name: postgres
|
|
image: postgres:15
|
|
env:
|
|
- name: POSTGRES_DB
|
|
value: monica
|
|
- name: POSTGRES_USER
|
|
value: monica
|
|
- name: POSTGRES_PASSWORD
|
|
value: monica_password
|
|
volumeMounts:
|
|
- mountPath: /var/lib/postgresql/data
|
|
name: postgres-storage
|
|
volumes:
|
|
- name: postgres-storage
|
|
persistentVolumeClaim:
|
|
claimName: monica-postgres-pvc
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: monica-postgres
|
|
spec:
|
|
selector:
|
|
app: monica-postgres
|
|
ports:
|
|
- port: 5432
|
|
|
|
# ------------------
|
|
# 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:latest
|
|
env:
|
|
- name: DB_CONNECTION
|
|
value: pgsql
|
|
- name: DB_HOST
|
|
value: monica-postgres
|
|
- name: DB_PORT
|
|
value: "5432"
|
|
- name: DB_DATABASE
|
|
value: monica
|
|
- name: DB_USERNAME
|
|
value: monica
|
|
- name: DB_PASSWORD
|
|
value: monica_password
|
|
- name: APP_ENV
|
|
value: production
|
|
- name: APP_KEY
|
|
value: base64:SomeRandomGeneratedKeyHere
|
|
- name: APP_URL
|
|
value: https://crm.juntekim.com
|
|
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
|
|
|
|
# ------------------
|
|
# TRAEFIK INGRESS
|
|
# ------------------
|
|
---
|
|
apiVersion: traefik.io/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
name: monica-ingressroute
|
|
spec:
|
|
entryPoints:
|
|
- websecure
|
|
routes:
|
|
- match: Host(`crm.juntekim.com`)
|
|
kind: Rule
|
|
services:
|
|
- name: monica
|
|
port: 80
|
|
tls:
|
|
certResolver: myresolver
|
|
domains:
|
|
- main: crm.juntekim.com
|