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
|
||||
# Credentials: 1Password → OnePasswordItem → K8s Secret → initContainer sed injection
|
||||
---
|
||||
@@ -32,6 +32,58 @@ spec:
|
||||
dnsNames:
|
||||
- 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)
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
@@ -614,6 +666,58 @@ spec:
|
||||
persistentVolumeClaim:
|
||||
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
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
@@ -648,6 +752,20 @@ spec:
|
||||
targetPort: 8067
|
||||
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)
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRouteTCP
|
||||
@@ -679,3 +797,21 @@ spec:
|
||||
port: 6697
|
||||
tls:
|
||||
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