diff --git a/argocd/application-portfolio.yaml b/argocd/application-portfolio.yaml
new file mode 100644
index 0000000..bd51486
--- /dev/null
+++ b/argocd/application-portfolio.yaml
@@ -0,0 +1,20 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: portfolio
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: http://gitea.gitea.svc.cluster.local:3000/chemavx/k8s-manifests.git
+ targetRevision: main
+ path: portfolio
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: portfolio
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/portfolio/configmap-html.yaml b/portfolio/configmap-html.yaml
new file mode 100644
index 0000000..09e2163
--- /dev/null
+++ b/portfolio/configmap-html.yaml
@@ -0,0 +1,326 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portfolio-html
+ namespace: portfolio
+data:
+ index.html: |
+
+
+
+
+
+ ChemaVX
+
+
+
+
+
+
+
+
+
+
+
+
Polymarket Bot — Live
+
+
+
+
+
+
+
+
diff --git a/portfolio/deployment.yaml b/portfolio/deployment.yaml
new file mode 100644
index 0000000..e735d4f
--- /dev/null
+++ b/portfolio/deployment.yaml
@@ -0,0 +1,40 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: portfolio
+ namespace: portfolio
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: portfolio
+ template:
+ metadata:
+ labels:
+ app: portfolio
+ spec:
+ containers:
+ - name: nginx
+ image: nginx:alpine
+ ports:
+ - containerPort: 80
+ volumeMounts:
+ - name: html
+ mountPath: /usr/share/nginx/html
+ readinessProbe:
+ httpGet:
+ path: /
+ port: 80
+ initialDelaySeconds: 3
+ periodSeconds: 10
+ resources:
+ requests:
+ cpu: 10m
+ memory: 16Mi
+ limits:
+ cpu: 100m
+ memory: 64Mi
+ volumes:
+ - name: html
+ configMap:
+ name: portfolio-html
diff --git a/portfolio/ingress.yaml b/portfolio/ingress.yaml
new file mode 100644
index 0000000..3df6cc8
--- /dev/null
+++ b/portfolio/ingress.yaml
@@ -0,0 +1,25 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: portfolio
+ namespace: portfolio
+ annotations:
+ cert-manager.io/cluster-issuer: letsencrypt-prod
+ traefik.ingress.kubernetes.io/router.entrypoints: websecure
+spec:
+ ingressClassName: traefik
+ rules:
+ - host: chemavx.xyz
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: portfolio
+ port:
+ number: 80
+ tls:
+ - hosts:
+ - chemavx.xyz
+ secretName: portfolio-tls
diff --git a/portfolio/namespace.yaml b/portfolio/namespace.yaml
new file mode 100644
index 0000000..fbc590d
--- /dev/null
+++ b/portfolio/namespace.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: portfolio
diff --git a/portfolio/service.yaml b/portfolio/service.yaml
new file mode 100644
index 0000000..b2b9ba7
--- /dev/null
+++ b/portfolio/service.yaml
@@ -0,0 +1,11 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: portfolio
+ namespace: portfolio
+spec:
+ selector:
+ app: portfolio
+ ports:
+ - port: 80
+ targetPort: 80