# Youtrack
Kubernetes Installation
According to the Doc; We extract the docker need and trasnform into K8s resources.
The minimal setup:
- PVC, PV
- Namespace
- Deployment
- Service
- Ingress
Prepare
- Latest docker image tag, we use
jetbrains/youtrack:2025.3.108480at this time. - DNS setup for public access, we use
www.example.comat this time. - K8s admin permission for adding resources.
- Manual create volume:
pvc-youtrack-data,pvc-youtrack-conf,pvc-youtrack-logs, andpvc-youtrack-backups
Define the K8s resource manifests
Namespace
Defined the namespace youtrack would locate.
apiVersion: v1
kind: Namespace
metadata:
name: youtrack
Deployment
Describe how the pod(containers) to run.
apiVersion: apps/v1
kind: Deployment
metadata:
name: youtrack
namespace: youtrack # use the anme you create
labels:
app: youtrack
spec:
replicas: 1
selector:
matchLabels:
app: youtrack
template:
metadata:
name: youtrack
labels:
app: youtrack
spec:
securityContext:
fsGroup: 13001
volumes:
- name: data
persistentVolumeClaim:
claimName: pvc-youtrack-data
- name: conf
persistentVolumeClaim:
claimName: pvc-youtrack-conf
- name: logs
persistentVolumeClaim:
claimName: pvc-youtrack-logs
- name: backups
persistentVolumeClaim:
claimName: pvc-youtrack-backups
containers:
- name: youtrack
image: jetbrains/youtrack:2025.3.108480
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
name: web
volumeMounts:
- mountPath: /opt/youtrack/data
name: data
- mountPath: /opt/youtrack/conf
name: conf
- mountPath: /opt/youtrack/logs
name: logs
- mountPath: /opt/youtrack/backups
name: backups
restartPolicy: Always
Service
Describe how to expose the pod inside the cluster.
apiVersion: v1
kind: Service
metadata:
name: youtrack-svc
namespace: youtrack # use the anme you create
spec:
selector:
app: youtrack
ports:
- protocol: TCP
port: 80
targetPort: 8080
name: web
Ingress
Describe how to acces the service from the outside of K8s.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: youtrack-ingress
namespace: youtrack # use the anme you create
annotations:
# Used for traefik proxy for ingress class
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
spec:
rules:
- host: www.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: youtrack-svc
port:
number: 80
Get into the Configuration Wizard
Get the one-time token URL from the pod.
# find the pod name
kubectl get pod -A
# get the logs
kubectl logs <the youtrack pod name> -n youtrack
There should be a line like
JetBrains YouTrack 2025.3 Configuration Wizard will listen inside container on {0.0.0.0:8080}/ after start and can be accessed by URL [https://<put-your-docker-HOST-name-here>:<put-host-port-mapped-to-container-port-8080-here>//?wizard_token=CIR7aan38XTafReGuFsS]
Therefore, we extract the token //?wizard_token=CIR7aan38XTafReGuFsS then chain it to the host domain.
For this time, it should be https://www.example.com//?wizard_token=CIR7aan38XTafReGuFsS
Then you can follow the instruction for set up the YouTrack service
Use the query filter
Now you can use the simple query builder from the issues page, you can build a query, then switch to the advance query to get the query.