···1# QRTag Remake
23-En remake av [QRTag](https://git.ssis.nu/togethernet/qrtag) som gjordes av Movitz Sunar och Skye Kaijser000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
···1# QRTag Remake
23+En remake av [QRTag](https://git.ssis.nu/togethernet/qrtag) som gjordes av Movitz Sunar och Skye Kaijser
4+5+# Openshift Installation
6+7+Skapa ett projekt i [skolans openshift](https://console-openshift-console.apps.okd.ssis.nu) och gå in på "Administrator" till vänster i sidebaren.
8+9+## QRTag
10+11+### Hemsida
12+13+Den här deployment filen lägger du under `Workloads`>`Deployments`>`Create Deployment`>`YAML view` och kopierar in den där och sedan klickar du på `Create`.
14+```yaml
15+kind: Deployment
16+apiVersion: apps/v1
17+metadata:
18+ name: qrtag
19+ namespace: qrtag
20+ labels:
21+ app: qrtag
22+spec:
23+ replicas: 1
24+ selector:
25+ matchLabels:
26+ app: qrtag
27+ template:
28+ metadata:
29+ labels:
30+ app: qrtag
31+ spec:
32+ initContainers:
33+ - resources: {}
34+ name: migratedb
35+ command:
36+ - php
37+ imagePullPolicy: Always
38+ terminationMessagePolicy: File
39+ envFrom:
40+ - configMapRef:
41+ name: qrtag-env
42+ - secretRef:
43+ name: qrtag-secrets
44+ image: 'gitregistry.ssis.nu/togethernet/qrtag-remake:latest'
45+ args:
46+ - artisan
47+ - migrate
48+ - '--force'
49+ containers:
50+ - name: qrtag
51+ image: 'gitregistry.ssis.nu/togethernet/qrtag-remake:latest'
52+ ports:
53+ - name: http
54+ containerPort: 8080
55+ protocol: TCP
56+ envFrom:
57+ - secretRef:
58+ name: qrtag-secrets
59+ - configMapRef:
60+ name: qrtag-env
61+ resources:
62+ limits:
63+ cpu: '2'
64+ memory: 1Gi
65+ requests:
66+ cpu: 250m
67+ memory: 128Mi
68+```
69+70+Den här config mappen lägger du under `Workloads`>`ConfigMaps`>`Create ConfigMap`>`YAML view` och kopierar in den där och sedan klickar du på `Create`.
71+```yaml
72+kind: ConfigMap
73+apiVersion: v1
74+metadata:
75+ name: qrtag-env
76+ namespace: qrtag
77+data:
78+ DB_PORT: '3306'
79+ TRUSTED_PROXIES: 10.0.0.0/8
80+ DB_HOST: qrtag-database
81+ APP_URL: 'https://qrtag.ssis.nu'
82+ MAINTAINER_NAME: <Namn av maintainern>
83+ LDAPTLS_REQCERT: never
84+ LDAP_PORT: '636'
85+ LDAP_USE_SSL: 'true'
86+ DB_CONNECTION: mysql
87+ DB_DATABASE: qrtag
88+```
89+90+Sedan lägger du in dina secrets i `Workloads`>`Secrets`>`Create`>`From YAML`
91+```yaml
92+apiVersion: v1
93+kind: Secret
94+metadata:
95+ name: qrtag-secrets
96+ namespace: qrtag
97+type: Opaque
98+stringData:
99+ APP_KEY: <Din laravel app key som du kan skaffa online på https://laravel-encryption-key-generator.vercel.app/>
100+ DB_PASSWORD: <Lösenordet för din databas>
101+ DB_USERNAME: <Användarnamnet för din databas>
102+ DISCORD_WEBHOOK: <En discord webhook där qrtag event loggen ska skickas >
103+```
104+105+Skapa en service under `Networking`>`Services`>`Create Service`
106+```yaml
107+kind: Service
108+apiVersion: v1
109+metadata:
110+ name: qrtag
111+ namespace: qrtag
112+spec:
113+ ports:
114+ - name: http
115+ protocol: TCP
116+ port: 8080
117+ targetPort: 8080
118+ clusterIPs:
119+ - 172.30.85.69
120+ selector:
121+ app: qrtag
122+```
123+124+Skapa en route under `Networking`>`Routes`>`Create`>`YAML view`
125+```yaml
126+kind: Route
127+apiVersion: route.openshift.io/v1
128+metadata:
129+ name: qrtag
130+ namespace: qrtag
131+spec:
132+ path: /
133+ to:
134+ kind: Service
135+ name: qrtag
136+ weight: 100
137+ port:
138+ targetPort: http
139+ tls:
140+ termination: edge
141+ insecureEdgeTerminationPolicy: Redirect
142+```
143+144+## Databas
145+146+Skapa en databas deployment under `Workloads`>`Deployments`>`Create Deployment`>`YAML view`
147+```yaml
148+kind: Deployment
149+apiVersion: apps/v1
150+metadata:
151+ name: database
152+ namespace: qrtag
153+ labels:
154+ app: qrtag-database
155+spec:
156+ replicas: 1
157+ revisionHistoryLimit: 3
158+ selector:
159+ matchLabels:
160+ app: qrtag-database
161+ template:
162+ metadata:
163+ labels:
164+ app: qrtag-database
165+ spec:
166+ restartPolicy: Always
167+ containers:
168+ - name: database
169+ image: mariadb:latest
170+ imagePullPolicy: IfNotPresent
171+ envFrom:
172+ - secretRef:
173+ name: database-secret
174+ resources:
175+ limits:
176+ cpu: '4'
177+ memory: 4Gi
178+ requests:
179+ cpu: '1'
180+ memory: 2Gi
181+ ports:
182+ - name: mysql
183+ containerPort: 3306
184+ protocol: TCP
185+ volumeMounts:
186+ - name: database-volume
187+ mountPath: /var/lib/mysql
188+ volumes:
189+ - name: database-volume
190+ persistentVolumeClaim:
191+ claimName: database-disk
192+```
193+194+Skapa en secret under `Workloads`>`Secrets`>`Create`>`From YAML`
195+```yaml
196+kind: Secret
197+apiVersion: v1
198+metadata:
199+ name: database-secret
200+ namespace: qrtag
201+data:
202+ MARIADB_DATABASE: qrtag
203+ MARIADB_PASSWORD: <Lösenordet för din databas>
204+ MARIADB_ROOT_PASSWORD: <Lösenordet för din databas>
205+ MARIADB_USER: <Användarnamnet för din databas>
206+type: Opaque
207+```
208+209+Skapa en service under `Workloads`>`Services`>`Create Service`
210+```yaml
211+apiVersion: v1
212+kind: Service
213+metadata:
214+ name: qrtag-database
215+ namespace: qrtag
216+spec:
217+ selector:
218+ app: qrtag-database
219+ ports:
220+ - protocol: TCP
221+ port: 3306
222+ targetPort: 3306
223+```
224+225+Skapa en PersistentVolumeClaims under `Storage`>`PersistentVolumeClaims`>`Create PersistentVolumeClaims`>`Edit YAML`
226+```yaml
227+apiVersion: v1
228+kind: PersistentVolumeClaim
229+metadata:
230+ name: database-disk
231+spec:
232+ accessModes:
233+ - ReadWriteOnce
234+ resources:
235+ requests:
236+ storage: 5Gi
237+```
238+239+## Frivillig PHPMyAdmin
240+241+Skapa en ny deployment under `Workloads`>`Deployments`>`Create Deployment`>`YAML view` för phpmyadmin
242+```yaml
243+kind: Deployment
244+apiVersion: apps/v1
245+metadata:
246+ namespace: qrtag
247+ labels:
248+ app: phpmyadmin
249+spec:
250+ replicas: 1
251+ selector:
252+ matchLabels:
253+ app: phpmyadmin
254+ template:
255+ metadata:
256+ labels:
257+ app: phpmyadmin
258+ spec:
259+ containers:
260+ - name: phpmyadmin
261+ image: 'bitnami/phpmyadmin:latest'
262+ ports:
263+ - containerPort: 8080
264+ protocol: TCP
265+ env:
266+ - name: APACHE_HTTP_PORT_NUMBER
267+ value: '8080'
268+ - name: DATABASE_HOST
269+ value: qrtag-database
270+ - name: DATABASE_PORT_NUMBER
271+ value: '3306'
272+ - name: MYSQL_ROOT_PASSWORD
273+ valueFrom:
274+ secretKeyRef:
275+ name: qrtag-secrets
276+ key: DB_PASSWORD
277+```
278+279+Skapa en ny service under `Networking`>`Services`>`Create Service`
280+```yaml
281+kind: Service
282+apiVersion: v1
283+metadata:
284+ name: phpmyadmin-service
285+ namespace: qrtag
286+spec:
287+ ports:
288+ - protocol: TCP
289+ port: 8080
290+ targetPort: 8080
291+ nodePort: 32252
292+ type: NodePort
293+ selector:
294+ app: phpmyadmin
295+```
296+297+Skapa en ny route under `Networking`>`Routes`>`Create Route`>`YAML view`
298+```yaml
299+kind: Route
300+apiVersion: route.openshift.io/v1
301+metadata:
302+ name: phpmyadmin
303+ namespace: qrtag
304+spec:
305+ to:
306+ kind: Service
307+ name: phpmyadmin-service
308+ weight: 100
309+ port:
310+ targetPort: 8080
311+```
312+313+## Grattis
314+315+Nu borde alltid funka som det ska