Add The Lounge web IRC client
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# UnrealIRCd + Anope IRC Services
|
# UnrealIRCd + Anope IRC Services + The Lounge web client
|
||||||
# ArgoCD managed - BlueJay Lab
|
# ArgoCD managed - BlueJay Lab
|
||||||
# Credentials: 1Password → OnePasswordItem → K8s Secret → initContainer sed injection
|
# Credentials: 1Password → OnePasswordItem → K8s Secret → initContainer sed injection
|
||||||
---
|
---
|
||||||
@@ -32,6 +32,58 @@ spec:
|
|||||||
dnsNames:
|
dnsNames:
|
||||||
- irc.iamworkin.lan
|
- irc.iamworkin.lan
|
||||||
---
|
---
|
||||||
|
# TLS Certificate for The Lounge web IRC
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: webirc-tls
|
||||||
|
namespace: irc
|
||||||
|
spec:
|
||||||
|
secretName: webirc-tls
|
||||||
|
issuerRef:
|
||||||
|
name: step-ca-acme
|
||||||
|
kind: ClusterIssuer
|
||||||
|
dnsNames:
|
||||||
|
- webirc.iamworkin.lan
|
||||||
|
---
|
||||||
|
# The Lounge configuration
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: thelounge-config
|
||||||
|
namespace: irc
|
||||||
|
data:
|
||||||
|
config.js: |
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
public: true,
|
||||||
|
host: "0.0.0.0",
|
||||||
|
port: 9000,
|
||||||
|
reverseProxy: true,
|
||||||
|
maxHistory: 2500,
|
||||||
|
theme: "default",
|
||||||
|
prefetch: false,
|
||||||
|
disableMediaPreview: true,
|
||||||
|
fileUpload: {
|
||||||
|
enable: false
|
||||||
|
},
|
||||||
|
defaults: {
|
||||||
|
name: "BlueJayIRC",
|
||||||
|
host: "unrealircd.irc.svc.cluster.local",
|
||||||
|
port: 6667,
|
||||||
|
password: "",
|
||||||
|
tls: false,
|
||||||
|
rejectUnauthorized: true,
|
||||||
|
nick: "BlueJayWeb%%",
|
||||||
|
username: "bluejayweb",
|
||||||
|
realname: "BlueJay Web IRC",
|
||||||
|
join: "#general"
|
||||||
|
},
|
||||||
|
lockNetwork: true,
|
||||||
|
leaveMessage: "BlueJay Web IRC"
|
||||||
|
};
|
||||||
|
---
|
||||||
# UnrealIRCd configuration template (passwords replaced by placeholders)
|
# UnrealIRCd configuration template (passwords replaced by placeholders)
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
@@ -614,6 +666,58 @@ spec:
|
|||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: anope-data
|
claimName: anope-data
|
||||||
---
|
---
|
||||||
|
# The Lounge web IRC Deployment
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: thelounge
|
||||||
|
namespace: irc
|
||||||
|
labels:
|
||||||
|
app: thelounge
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: thelounge
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: thelounge
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: thelounge
|
||||||
|
image: ghcr.io/thelounge/thelounge:4.4.3
|
||||||
|
ports:
|
||||||
|
- containerPort: 9000
|
||||||
|
name: http
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 10
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
periodSeconds: 20
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 64Mi
|
||||||
|
cpu: 50m
|
||||||
|
limits:
|
||||||
|
memory: 256Mi
|
||||||
|
cpu: 250m
|
||||||
|
volumeMounts:
|
||||||
|
- name: thelounge-config
|
||||||
|
mountPath: /var/opt/thelounge/config.js
|
||||||
|
subPath: config.js
|
||||||
|
volumes:
|
||||||
|
- name: thelounge-config
|
||||||
|
configMap:
|
||||||
|
name: thelounge-config
|
||||||
|
---
|
||||||
# UnrealIRCd Service
|
# UnrealIRCd Service
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
@@ -648,6 +752,20 @@ spec:
|
|||||||
targetPort: 8067
|
targetPort: 8067
|
||||||
name: services-link
|
name: services-link
|
||||||
---
|
---
|
||||||
|
# The Lounge web IRC Service
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: thelounge
|
||||||
|
namespace: irc
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: thelounge
|
||||||
|
ports:
|
||||||
|
- port: 9000
|
||||||
|
targetPort: 9000
|
||||||
|
name: http
|
||||||
|
---
|
||||||
# Traefik IngressRouteTCP - IRC plain (6667)
|
# Traefik IngressRouteTCP - IRC plain (6667)
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRouteTCP
|
kind: IngressRouteTCP
|
||||||
@@ -679,3 +797,21 @@ spec:
|
|||||||
port: 6697
|
port: 6697
|
||||||
tls:
|
tls:
|
||||||
passthrough: true
|
passthrough: true
|
||||||
|
---
|
||||||
|
# Traefik IngressRoute - The Lounge web IRC
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: webirc
|
||||||
|
namespace: irc
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`webirc.iamworkin.lan`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: thelounge
|
||||||
|
port: 9000
|
||||||
|
tls:
|
||||||
|
secretName: webirc-tls
|
||||||
|
|||||||
Reference in New Issue
Block a user