Initial commit: k3s GitOps manifests with ArgoCD App-of-Apps
This commit is contained in:
122
manifests/sillytavern/configmap.yaml
Normal file
122
manifests/sillytavern/configmap.yaml
Normal file
@@ -0,0 +1,122 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: sillytavern-config
|
||||
namespace: sillytavern
|
||||
data:
|
||||
config.yaml: |
|
||||
dataRoot: ./data
|
||||
listen: true
|
||||
listenAddress:
|
||||
ipv4: 0.0.0.0
|
||||
ipv6: '[::]'
|
||||
protocol:
|
||||
ipv4: true
|
||||
ipv6: false
|
||||
dnsPreferIPv6: false
|
||||
browserLaunch:
|
||||
enabled: false
|
||||
browser: 'default'
|
||||
hostname: 'auto'
|
||||
port: -1
|
||||
avoidLocalhost: false
|
||||
port: 8000
|
||||
ssl:
|
||||
enabled: false
|
||||
certPath: "./certs/cert.pem"
|
||||
keyPath: "./certs/privkey.pem"
|
||||
keyPassphrase: ""
|
||||
whitelistMode: false
|
||||
enableForwardedWhitelist: false
|
||||
whitelist:
|
||||
- ::1
|
||||
- 127.0.0.1
|
||||
whitelistDockerHosts: false
|
||||
basicAuthMode: false
|
||||
basicAuthUser:
|
||||
username: "user"
|
||||
password: "password"
|
||||
enableCorsProxy: false
|
||||
requestProxy:
|
||||
enabled: false
|
||||
url: "socks5://username:password@example.com:1080"
|
||||
bypass:
|
||||
- localhost
|
||||
- 127.0.0.1
|
||||
enableUserAccounts: false
|
||||
enableDiscreetLogin: false
|
||||
perUserBasicAuth: false
|
||||
sso:
|
||||
autheliaAuth: false
|
||||
authentikAuth: false
|
||||
hostWhitelist:
|
||||
enabled: false
|
||||
scan: true
|
||||
hosts: []
|
||||
sessionTimeout: -1
|
||||
disableCsrfProtection: false
|
||||
securityOverride: false
|
||||
logging:
|
||||
enableAccessLog: true
|
||||
minLogLevel: 0
|
||||
rateLimiting:
|
||||
preferRealIpHeader: false
|
||||
backups:
|
||||
common:
|
||||
numberOfBackups: 50
|
||||
chat:
|
||||
enabled: true
|
||||
checkIntegrity: true
|
||||
maxTotalBackups: -1
|
||||
throttleInterval: 10000
|
||||
thumbnails:
|
||||
enabled: true
|
||||
format: "jpg"
|
||||
quality: 95
|
||||
dimensions: { 'bg': [160, 90], 'avatar': [96, 144], 'persona': [96, 144] }
|
||||
performance:
|
||||
lazyLoadCharacters: false
|
||||
memoryCacheCapacity: '100mb'
|
||||
useDiskCache: true
|
||||
cacheBuster:
|
||||
enabled: false
|
||||
userAgentPattern: ''
|
||||
allowKeysExposure: false
|
||||
skipContentCheck: false
|
||||
whitelistImportDomains:
|
||||
- localhost
|
||||
- cdn.discordapp.com
|
||||
- files.catbox.moe
|
||||
- raw.githubusercontent.com
|
||||
- char-archive.evulid.cc
|
||||
requestOverrides: []
|
||||
extensions:
|
||||
enabled: true
|
||||
autoUpdate: true
|
||||
models:
|
||||
autoDownload: true
|
||||
classification: Cohee/distilbert-base-uncased-go-emotions-onnx
|
||||
captioning: Xenova/vit-gpt2-image-captioning
|
||||
embedding: Cohee/jina-embeddings-v2-base-en
|
||||
speechToText: Xenova/whisper-small
|
||||
textToSpeech: Xenova/speecht5_tts
|
||||
enableDownloadableTokenizers: true
|
||||
promptPlaceholder: "[Start a new chat]"
|
||||
openai:
|
||||
randomizeUserId: false
|
||||
captionSystemPrompt: ""
|
||||
deepl:
|
||||
formality: default
|
||||
mistral:
|
||||
enablePrefix: false
|
||||
ollama:
|
||||
keepAlive: -1
|
||||
batchSize: -1
|
||||
claude:
|
||||
enableSystemPromptCache: false
|
||||
cachingAtDepth: -1
|
||||
extendedTTL: false
|
||||
gemini:
|
||||
apiVersion: 'v1beta'
|
||||
enableServerPlugins: false
|
||||
enableServerPluginsAutoUpdate: true
|
||||
61
manifests/sillytavern/deployment.yaml
Normal file
61
manifests/sillytavern/deployment.yaml
Normal file
@@ -0,0 +1,61 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: sillytavern
|
||||
namespace: sillytavern
|
||||
spec:
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app: sillytavern
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: sillytavern
|
||||
spec:
|
||||
containers:
|
||||
- name: sillytavern
|
||||
image: ghcr.io/sillytavern/sillytavern:latest
|
||||
ports:
|
||||
- containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: NODE_ENV
|
||||
value: production
|
||||
- name: FORCE_COLOR
|
||||
value: "1"
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: sillytavern-auth
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /home/node/app/config/config.yaml
|
||||
subPath: config.yaml
|
||||
- name: data
|
||||
mountPath: /home/node/app/data
|
||||
- name: plugins
|
||||
mountPath: /home/node/app/plugins
|
||||
- name: extensions
|
||||
mountPath: /home/node/app/public/scripts/extensions/third-party
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
limits:
|
||||
cpu: "4"
|
||||
memory: 4Gi
|
||||
volumes:
|
||||
- name: config
|
||||
configMap:
|
||||
name: sillytavern-config
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: sillytavern-data
|
||||
- name: plugins
|
||||
persistentVolumeClaim:
|
||||
claimName: sillytavern-plugins
|
||||
- name: extensions
|
||||
persistentVolumeClaim:
|
||||
claimName: sillytavern-extensions
|
||||
30
manifests/sillytavern/ingress.yaml
Normal file
30
manifests/sillytavern/ingress.yaml
Normal file
@@ -0,0 +1,30 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: sillytavern
|
||||
namespace: sillytavern
|
||||
labels:
|
||||
app.kubernetes.io/name: sillytavern
|
||||
app.kubernetes.io/component: frontend
|
||||
app.kubernetes.io/part-of: sillytavern
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||
traefik.ingress.kubernetes.io/router.tls: "true"
|
||||
spec:
|
||||
ingressClassName: traefik
|
||||
tls:
|
||||
- hosts:
|
||||
- sillytavern.mrt0rtikize.ru
|
||||
secretName: sillytavern-tls
|
||||
rules:
|
||||
- host: sillytavern.mrt0rtikize.ru
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: sillytavern
|
||||
port:
|
||||
number: 8000
|
||||
4
manifests/sillytavern/namespace.yaml
Normal file
4
manifests/sillytavern/namespace.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: sillytavern
|
||||
35
manifests/sillytavern/pvc.yaml
Normal file
35
manifests/sillytavern/pvc.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: sillytavern-data
|
||||
namespace: sillytavern
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: sillytavern-plugins
|
||||
namespace: sillytavern
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: sillytavern-extensions
|
||||
namespace: sillytavern
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
10
manifests/sillytavern/secret.yaml
Normal file
10
manifests/sillytavern/secret.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: sillytavern-auth
|
||||
namespace: sillytavern
|
||||
type: Opaque
|
||||
stringData:
|
||||
SILLYTAVERN_BASICAUTHMODE: "true"
|
||||
SILLYTAVERN_BASICAUTHUSER_USERNAME: admin
|
||||
SILLYTAVERN_BASICAUTHUSER_PASSWORD: 0cdaa30c396dae77
|
||||
13
manifests/sillytavern/service.yaml
Normal file
13
manifests/sillytavern/service.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: sillytavern
|
||||
namespace: sillytavern
|
||||
spec:
|
||||
selector:
|
||||
app: sillytavern
|
||||
ports:
|
||||
- port: 8000
|
||||
targetPort: 8000
|
||||
protocol: TCP
|
||||
type: ClusterIP
|
||||
Reference in New Issue
Block a user