Standardize config.
This commit is contained in:
@@ -31,21 +31,18 @@ requires:
|
|||||||
alias: db # Use a different reference name in templates
|
alias: db # Use a different reference name in templates
|
||||||
- name: redis # 'alias' and 'installedAs' default to 'name' value
|
- name: redis # 'alias' and 'installedAs' default to 'name' value
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
serverImage: ghcr.io/immich-app/immich-server:release
|
namespace: immich
|
||||||
mlImage: ghcr.io/immich-app/immich-machine-learning:release
|
externalDnsDomain: "{{ .cloud.domain }}"
|
||||||
timezone: UTC
|
|
||||||
serverPort: 2283
|
|
||||||
mlPort: 3003
|
|
||||||
storage: 250Gi
|
storage: 250Gi
|
||||||
cacheStorage: 10Gi
|
cacheStorage: 10Gi
|
||||||
redisHostname: "{{ .apps.redis.host }}" # Can reference 'requires' app configurations
|
domain: immich.{{ .cloud.domain }}
|
||||||
dbHostname: "{{ .apps.pg.host }}"
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
db: # Configuration can be nested
|
db: # Configuration can be nested
|
||||||
|
host: "{{ .apps.pg.host }}" # Can reference 'requires' app configurations
|
||||||
name: immich
|
name: immich
|
||||||
user: immich
|
user: immich
|
||||||
host: "{{ .apps.pg.host }}"
|
redis:
|
||||||
port: "{{ .apps.pg.port }}"
|
host: "{{ .apps.redis.host }}"
|
||||||
domain: immich.{{ .cloud.domain }}
|
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: password # Random value will be generated if empty
|
- key: password # Random value will be generated if empty
|
||||||
- key: dbUrl
|
- key: dbUrl
|
||||||
|
|||||||
@@ -1,11 +1,6 @@
|
|||||||
# Decidim
|
# Decidim
|
||||||
|
|
||||||
Decidim is a participatory democracy framework for cities and organizations. Built in Ruby on Rails, it enables citizen participation through proposals, debates, and voting. Includes Sidekiq for background job processing.
|
Decidim is a participatory democracy framework for cities and organizations. It enables citizen participation through proposals, debates, and voting.
|
||||||
|
|
||||||
## Dependencies
|
|
||||||
|
|
||||||
- **PostgreSQL** - Database for storing participatory processes and user data
|
|
||||||
- **Redis** - Used for Sidekiq background job processing
|
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
@@ -16,20 +11,3 @@ Key settings configured through your instance's `config.yaml`:
|
|||||||
- **systemAdminEmail** - System admin email (defaults to your operator email)
|
- **systemAdminEmail** - System admin email (defaults to your operator email)
|
||||||
- **storage** - Persistent volume size (default: `20Gi`)
|
- **storage** - Persistent volume size (default: `20Gi`)
|
||||||
- **SMTP** - Email delivery settings inherited from your Wild Cloud instance
|
- **SMTP** - Email delivery settings inherited from your Wild Cloud instance
|
||||||
|
|
||||||
## Access
|
|
||||||
|
|
||||||
After deployment, Decidim will be available at:
|
|
||||||
- `https://decidim.{your-cloud-domain}`
|
|
||||||
|
|
||||||
## First-Time Setup
|
|
||||||
|
|
||||||
1. Add and deploy the app:
|
|
||||||
```bash
|
|
||||||
wild app add decidim
|
|
||||||
wild app deploy decidim
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Log in with the system admin credentials configured during setup
|
|
||||||
|
|
||||||
3. Create your first organization and configure participatory processes
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ spec:
|
|||||||
echo "Database initialization completed successfully"
|
echo "Database initialization completed successfully"
|
||||||
env:
|
env:
|
||||||
- name: POSTGRES_HOST
|
- name: POSTGRES_HOST
|
||||||
value: {{ .dbHostname }}
|
value: {{ .db.host }}
|
||||||
- name: POSTGRES_ADMIN_USER
|
- name: POSTGRES_ADMIN_USER
|
||||||
value: postgres
|
value: postgres
|
||||||
- name: POSTGRES_ADMIN_PASSWORD
|
- name: POSTGRES_ADMIN_PASSWORD
|
||||||
@@ -63,9 +63,9 @@ spec:
|
|||||||
name: decidim-secrets
|
name: decidim-secrets
|
||||||
key: postgres.password
|
key: postgres.password
|
||||||
- name: DB_NAME
|
- name: DB_NAME
|
||||||
value: {{ .dbName }}
|
value: {{ .db.name }}
|
||||||
- name: DB_USER
|
- name: DB_USER
|
||||||
value: {{ .dbUsername }}
|
value: {{ .db.user }}
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ spec:
|
|||||||
- name: RAILS_ENV
|
- name: RAILS_ENV
|
||||||
value: "production"
|
value: "production"
|
||||||
- name: PORT
|
- name: PORT
|
||||||
value: "{{ .port }}"
|
value: "3000"
|
||||||
- name: RAILS_LOG_TO_STDOUT
|
- name: RAILS_LOG_TO_STDOUT
|
||||||
value: "true"
|
value: "true"
|
||||||
# Database configuration
|
# Database configuration
|
||||||
@@ -66,7 +66,7 @@ spec:
|
|||||||
key: dbUrl
|
key: dbUrl
|
||||||
# Redis configuration
|
# Redis configuration
|
||||||
- name: REDIS_HOSTNAME
|
- name: REDIS_HOSTNAME
|
||||||
value: {{ .redisHostname }}
|
value: {{ .redis.host }}
|
||||||
- name: REDIS_PASSWORD
|
- name: REDIS_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -112,11 +112,11 @@ spec:
|
|||||||
key: systemAdminPassword
|
key: systemAdminPassword
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
containerPort: {{ .port }}
|
containerPort: 3000
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
tcpSocket:
|
tcpSocket:
|
||||||
port: {{ .port }}
|
port: 3000
|
||||||
initialDelaySeconds: 300
|
initialDelaySeconds: 300
|
||||||
periodSeconds: 30
|
periodSeconds: 30
|
||||||
timeoutSeconds: 10
|
timeoutSeconds: 10
|
||||||
@@ -124,7 +124,7 @@ spec:
|
|||||||
failureThreshold: 6
|
failureThreshold: 6
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
tcpSocket:
|
tcpSocket:
|
||||||
port: {{ .port }}
|
port: 3000
|
||||||
initialDelaySeconds: 180
|
initialDelaySeconds: 180
|
||||||
periodSeconds: 30
|
periodSeconds: 30
|
||||||
timeoutSeconds: 10
|
timeoutSeconds: 10
|
||||||
@@ -182,7 +182,7 @@ spec:
|
|||||||
key: dbUrl
|
key: dbUrl
|
||||||
# Redis configuration
|
# Redis configuration
|
||||||
- name: REDIS_HOSTNAME
|
- name: REDIS_HOSTNAME
|
||||||
value: {{ .redisHostname }}
|
value: {{ .redis.host }}
|
||||||
- name: REDIS_PASSWORD
|
- name: REDIS_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -23,4 +23,4 @@ spec:
|
|||||||
service:
|
service:
|
||||||
name: decidim
|
name: decidim
|
||||||
port:
|
port:
|
||||||
number: {{ .port }}
|
number: 3000
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: decidim
|
name: decidim
|
||||||
is: decidim
|
is: decidim
|
||||||
description: Decidim is a participatory democracy framework for cities and organizations. Built in Ruby on Rails, it enables citizen participation through proposals, debates, and voting. Includes Sidekiq for background job processing.
|
description: Decidim is a participatory democracy framework for cities and organizations. Built in Ruby on Rails, it enables citizen participation through proposals, debates, and voting. Includes Sidekiq for background job processing.
|
||||||
version: 0.31.0
|
version: 0.31.0-1
|
||||||
icon: https://raw.githubusercontent.com/decidim/decidim/develop/logo.svg
|
icon: https://raw.githubusercontent.com/decidim/decidim/develop/logo.svg
|
||||||
requires:
|
requires:
|
||||||
- name: postgres
|
- name: postgres
|
||||||
@@ -11,27 +11,27 @@ requires:
|
|||||||
- name: smtp
|
- name: smtp
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: decidim
|
namespace: decidim
|
||||||
externalDnsDomain: "{{ .cloud.domain }}"
|
externalDnsDomain: '{{ .cloud.domain }}'
|
||||||
timezone: UTC
|
|
||||||
port: 3000
|
|
||||||
storage: 20Gi
|
storage: 20Gi
|
||||||
systemAdminEmail: "{{ .operator.email }}"
|
systemAdminEmail: '{{ .operator.email }}'
|
||||||
siteName: "Decidim"
|
siteName: 'Decidim'
|
||||||
domain: decidim.{{ .cloud.domain }}
|
domain: decidim.{{ .cloud.domain }}
|
||||||
dbHostname: "{{ .apps.postgres.host }}"
|
|
||||||
dbPort: "{{ .apps.postgres.port }}"
|
|
||||||
dbUsername: decidim
|
|
||||||
dbName: decidim
|
|
||||||
redisHostname: "{{ .apps.redis.host }}"
|
|
||||||
tlsSecretName: wildcard-wild-cloud-tls
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
|
db:
|
||||||
|
host: '{{ .apps.postgres.host }}'
|
||||||
|
port: '{{ .apps.postgres.port }}'
|
||||||
|
name: decidim
|
||||||
|
user: decidim
|
||||||
|
redis:
|
||||||
|
host: '{{ .apps.redis.host }}'
|
||||||
smtp:
|
smtp:
|
||||||
enabled: true
|
enabled: true
|
||||||
host: "{{ .apps.smtp.host }}"
|
host: '{{ .apps.smtp.host }}'
|
||||||
port: "{{ .apps.smtp.port }}"
|
port: '{{ .apps.smtp.port }}'
|
||||||
user: "{{ .apps.smtp.user }}"
|
user: '{{ .apps.smtp.user }}'
|
||||||
from: "{{ .apps.smtp.from }}"
|
from: '{{ .apps.smtp.from }}'
|
||||||
tls: "{{ .apps.smtp.tls }}"
|
tls: '{{ .apps.smtp.tls }}'
|
||||||
startTls: "{{ .apps.smtp.startTls }}"
|
startTls: '{{ .apps.smtp.startTls }}'
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: systemAdminPassword
|
- key: systemAdminPassword
|
||||||
- key: secretKeyBase
|
- key: secretKeyBase
|
||||||
@@ -39,7 +39,7 @@ defaultSecrets:
|
|||||||
- key: smtpPassword
|
- key: smtpPassword
|
||||||
- key: dbPassword
|
- key: dbPassword
|
||||||
- key: dbUrl
|
- key: dbUrl
|
||||||
default: "postgres://{{ .app.dbUsername }}:{{ .secrets.dbPassword }}@{{ .app.dbHostname }}:{{ .app.dbPort }}/{{ .app.dbName }}"
|
default: "postgres://{{ .app.db.user }}:{{ .secrets.dbPassword }}@{{ .app.db.host }}:{{ .app.db.port }}/{{ .app.db.name }}"
|
||||||
requiredSecrets:
|
requiredSecrets:
|
||||||
- postgres.password
|
- postgres.password
|
||||||
- redis.password
|
- redis.password
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ spec:
|
|||||||
component: web
|
component: web
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
port: {{ .port }}
|
port: 3000
|
||||||
targetPort: http
|
targetPort: http
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ spec:
|
|||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
env:
|
env:
|
||||||
- name: PGHOST
|
- name: PGHOST
|
||||||
value: "{{ .dbHostname }}"
|
value: "{{ .db.host }}"
|
||||||
- name: PGPORT
|
- name: PGPORT
|
||||||
value: "5432"
|
value: "5432"
|
||||||
- name: PGUSER
|
- name: PGUSER
|
||||||
@@ -38,9 +38,9 @@ spec:
|
|||||||
name: discourse-secrets
|
name: discourse-secrets
|
||||||
key: postgres.password
|
key: postgres.password
|
||||||
- name: DISCOURSE_DB_USER
|
- name: DISCOURSE_DB_USER
|
||||||
value: "{{ .dbUsername }}"
|
value: "{{ .db.user }}"
|
||||||
- name: DISCOURSE_DB_NAME
|
- name: DISCOURSE_DB_NAME
|
||||||
value: "{{ .dbName }}"
|
value: "{{ .db.name }}"
|
||||||
- name: DISCOURSE_DB_PASSWORD
|
- name: DISCOURSE_DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -56,20 +56,20 @@ spec:
|
|||||||
- name: RAILS_ENV
|
- name: RAILS_ENV
|
||||||
value: "production"
|
value: "production"
|
||||||
- name: DISCOURSE_DB_HOST
|
- name: DISCOURSE_DB_HOST
|
||||||
value: {{ .dbHostname }}
|
value: {{ .db.host }}
|
||||||
- name: DISCOURSE_DB_PORT
|
- name: DISCOURSE_DB_PORT
|
||||||
value: "{{ .dbPort }}"
|
value: "{{ .db.port }}"
|
||||||
- name: DISCOURSE_DB_NAME
|
- name: DISCOURSE_DB_NAME
|
||||||
value: {{ .dbName }}
|
value: {{ .db.name }}
|
||||||
- name: DISCOURSE_DB_USERNAME
|
- name: DISCOURSE_DB_USERNAME
|
||||||
value: {{ .dbUsername }}
|
value: {{ .db.user }}
|
||||||
- name: DISCOURSE_DB_PASSWORD
|
- name: DISCOURSE_DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: discourse-secrets
|
name: discourse-secrets
|
||||||
key: dbPassword
|
key: dbPassword
|
||||||
- name: DISCOURSE_REDIS_HOST
|
- name: DISCOURSE_REDIS_HOST
|
||||||
value: {{ .redisHostname }}
|
value: {{ .redis.host }}
|
||||||
- name: DISCOURSE_REDIS_PASSWORD
|
- name: DISCOURSE_REDIS_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -113,13 +113,13 @@ spec:
|
|||||||
value: "production"
|
value: "production"
|
||||||
# Discourse database configuration
|
# Discourse database configuration
|
||||||
- name: DISCOURSE_DB_HOST
|
- name: DISCOURSE_DB_HOST
|
||||||
value: {{ .dbHostname }}
|
value: {{ .db.host }}
|
||||||
- name: DISCOURSE_DB_PORT
|
- name: DISCOURSE_DB_PORT
|
||||||
value: "{{ .dbPort }}"
|
value: "{{ .db.port }}"
|
||||||
- name: DISCOURSE_DB_NAME
|
- name: DISCOURSE_DB_NAME
|
||||||
value: {{ .dbName }}
|
value: {{ .db.name }}
|
||||||
- name: DISCOURSE_DB_USERNAME
|
- name: DISCOURSE_DB_USERNAME
|
||||||
value: {{ .dbUsername }}
|
value: {{ .db.user }}
|
||||||
- name: DISCOURSE_DB_PASSWORD
|
- name: DISCOURSE_DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -127,7 +127,7 @@ spec:
|
|||||||
key: dbPassword
|
key: dbPassword
|
||||||
# Redis configuration
|
# Redis configuration
|
||||||
- name: DISCOURSE_REDIS_HOST
|
- name: DISCOURSE_REDIS_HOST
|
||||||
value: {{ .redisHostname }}
|
value: {{ .redis.host }}
|
||||||
- name: DISCOURSE_REDIS_PASSWORD
|
- name: DISCOURSE_REDIS_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -220,13 +220,13 @@ spec:
|
|||||||
value: "production"
|
value: "production"
|
||||||
# Discourse database configuration
|
# Discourse database configuration
|
||||||
- name: DISCOURSE_DB_HOST
|
- name: DISCOURSE_DB_HOST
|
||||||
value: {{ .dbHostname }}
|
value: {{ .db.host }}
|
||||||
- name: DISCOURSE_DB_PORT
|
- name: DISCOURSE_DB_PORT
|
||||||
value: "{{ .dbPort }}"
|
value: "{{ .db.port }}"
|
||||||
- name: DISCOURSE_DB_NAME
|
- name: DISCOURSE_DB_NAME
|
||||||
value: {{ .dbName }}
|
value: {{ .db.name }}
|
||||||
- name: DISCOURSE_DB_USERNAME
|
- name: DISCOURSE_DB_USERNAME
|
||||||
value: {{ .dbUsername }}
|
value: {{ .db.user }}
|
||||||
- name: DISCOURSE_DB_PASSWORD
|
- name: DISCOURSE_DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -234,7 +234,7 @@ spec:
|
|||||||
key: dbPassword
|
key: dbPassword
|
||||||
# Redis configuration
|
# Redis configuration
|
||||||
- name: DISCOURSE_REDIS_HOST
|
- name: DISCOURSE_REDIS_HOST
|
||||||
value: {{ .redisHostname }}
|
value: {{ .redis.host }}
|
||||||
- name: DISCOURSE_REDIS_PASSWORD
|
- name: DISCOURSE_REDIS_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: discourse
|
name: discourse
|
||||||
is: discourse
|
is: discourse
|
||||||
description: Discourse is a modern, open-source discussion platform designed for online communities and forums.
|
description: Discourse is a modern, open-source discussion platform designed for online communities and forums.
|
||||||
version: 3.5.3
|
version: 3.5.3-1
|
||||||
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/discourse.svg
|
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/discourse.svg
|
||||||
requires:
|
requires:
|
||||||
- name: postgres
|
- name: postgres
|
||||||
@@ -9,28 +9,28 @@ requires:
|
|||||||
- name: smtp
|
- name: smtp
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: discourse
|
namespace: discourse
|
||||||
externalDnsDomain: "{{ .cloud.domain }}"
|
externalDnsDomain: '{{ .cloud.domain }}'
|
||||||
timezone: UTC
|
|
||||||
port: 3000
|
|
||||||
storage: 10Gi
|
storage: 10Gi
|
||||||
adminEmail: "{{ .operator.email }}"
|
adminEmail: '{{ .operator.email }}'
|
||||||
adminUsername: admin
|
adminUsername: admin
|
||||||
siteName: "Community"
|
siteName: 'Community'
|
||||||
domain: discourse.{{ .cloud.domain }}
|
domain: discourse.{{ .cloud.domain }}
|
||||||
dbHostname: "{{ .apps.postgres.host }}"
|
|
||||||
dbPort: "{{ .apps.postgres.port }}"
|
|
||||||
dbUsername: discourse
|
|
||||||
dbName: discourse
|
|
||||||
redisHostname: "{{ .apps.redis.host }}"
|
|
||||||
tlsSecretName: wildcard-wild-cloud-tls
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
|
db:
|
||||||
|
host: '{{ .apps.postgres.host }}'
|
||||||
|
port: '{{ .apps.postgres.port }}'
|
||||||
|
name: discourse
|
||||||
|
user: discourse
|
||||||
|
redis:
|
||||||
|
host: '{{ .apps.redis.host }}'
|
||||||
smtp:
|
smtp:
|
||||||
enabled: false
|
enabled: false
|
||||||
host: "{{ .apps.smtp.host }}"
|
host: '{{ .apps.smtp.host }}'
|
||||||
port: "{{ .apps.smtp.port }}"
|
port: '{{ .apps.smtp.port }}'
|
||||||
user: "{{ .apps.smtp.user }}"
|
user: '{{ .apps.smtp.user }}'
|
||||||
from: "{{ .apps.smtp.from }}"
|
from: '{{ .apps.smtp.from }}'
|
||||||
tls: "{{ .apps.smtp.tls }}"
|
tls: '{{ .apps.smtp.tls }}'
|
||||||
startTls: "{{ .apps.smtp.startTls }}"
|
startTls: '{{ .apps.smtp.startTls }}'
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: adminPassword
|
- key: adminPassword
|
||||||
- key: secretKeyBase
|
- key: secretKeyBase
|
||||||
@@ -38,7 +38,7 @@ defaultSecrets:
|
|||||||
- key: smtpPassword
|
- key: smtpPassword
|
||||||
- key: dbPassword
|
- key: dbPassword
|
||||||
- key: dbUrl
|
- key: dbUrl
|
||||||
default: "postgres://{{ .app.dbUsername }}:{{ .secrets.dbPassword }}@{{ .app.dbHostname }}:{{ .app.dbPort }}/{{ .app.dbName }}?sslmode=disable"
|
default: "postgres://{{ .app.db.user }}:{{ .secrets.dbPassword }}@{{ .app.db.host }}:{{ .app.db.port }}/{{ .app.db.name }}?sslmode=disable"
|
||||||
requiredSecrets:
|
requiredSecrets:
|
||||||
- postgres.password
|
- postgres.password
|
||||||
- redis.password
|
- redis.password
|
||||||
@@ -28,7 +28,7 @@ spec:
|
|||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
env:
|
env:
|
||||||
- name: PGHOST
|
- name: PGHOST
|
||||||
value: {{ .dbHost }}
|
value: {{ .db.host }}
|
||||||
- name: PGUSER
|
- name: PGUSER
|
||||||
value: postgres
|
value: postgres
|
||||||
- name: PGPASSWORD
|
- name: PGPASSWORD
|
||||||
@@ -37,9 +37,9 @@ spec:
|
|||||||
name: e2e-test-app-secrets
|
name: e2e-test-app-secrets
|
||||||
key: postgres.password
|
key: postgres.password
|
||||||
- name: DB_NAME
|
- name: DB_NAME
|
||||||
value: {{ .dbName }}
|
value: {{ .db.name }}
|
||||||
- name: DB_USER
|
- name: DB_USER
|
||||||
value: {{ .dbUser }}
|
value: {{ .db.user }}
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
name: e2e-test-app
|
name: e2e-test-app
|
||||||
is: e2e-test-app
|
is: e2e-test-app
|
||||||
description: End-to-end test application for automated integration testing. Includes PVC and PostgreSQL dependency to exercise all backup strategies.
|
description: End-to-end test application for automated integration testing. Includes PVC and PostgreSQL dependency to exercise all backup strategies.
|
||||||
version: 1.0.0
|
version: 1.0.0-1
|
||||||
requires:
|
requires:
|
||||||
- name: postgres
|
- name: postgres
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: e2e-test-app
|
namespace: e2e-test-app
|
||||||
domain: e2e-test-app.{{ .cloud.domain }}
|
domain: e2e-test-app.{{ .cloud.domain }}
|
||||||
externalDnsDomain: "{{ .cloud.domain }}"
|
externalDnsDomain: '{{ .cloud.domain }}'
|
||||||
tlsSecretName: wildcard-wild-cloud-tls
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
storage: 1Gi
|
storage: 1Gi
|
||||||
dbHost: "{{ .apps.postgres.host }}"
|
db:
|
||||||
dbPort: "{{ .apps.postgres.port }}"
|
host: '{{ .apps.postgres.host }}'
|
||||||
dbName: e2e_test_app
|
port: '{{ .apps.postgres.port }}'
|
||||||
dbUser: e2e_test_app
|
name: e2e_test_app
|
||||||
timezone: UTC
|
user: e2e_test_app
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: dbPassword
|
- key: dbPassword
|
||||||
- key: dbUrl
|
- key: dbUrl
|
||||||
default: "postgres://{{ .app.dbUser }}:{{ .secrets.dbPassword }}@{{ .app.dbHost }}:{{ .app.dbPort }}/{{ .app.dbName }}?sslmode=disable"
|
default: "postgres://{{ .app.db.user }}:{{ .secrets.dbPassword }}@{{ .app.db.host }}:{{ .app.db.port }}/{{ .app.db.name }}?sslmode=disable"
|
||||||
requiredSecrets:
|
requiredSecrets:
|
||||||
- postgres.password
|
- postgres.password
|
||||||
|
|||||||
@@ -29,13 +29,13 @@ spec:
|
|||||||
name: mysql-secrets
|
name: mysql-secrets
|
||||||
key: rootPassword
|
key: rootPassword
|
||||||
- name: DB_HOSTNAME
|
- name: DB_HOSTNAME
|
||||||
value: "{{ .dbHost }}"
|
value: "{{ .db.host }}"
|
||||||
- name: DB_PORT
|
- name: DB_PORT
|
||||||
value: "{{ .dbPort }}"
|
value: "{{ .db.port }}"
|
||||||
- name: DB_DATABASE_NAME
|
- name: DB_DATABASE_NAME
|
||||||
value: "{{ .dbName }}"
|
value: "{{ .db.name }}"
|
||||||
- name: DB_USERNAME
|
- name: DB_USERNAME
|
||||||
value: "{{ .dbUser }}"
|
value: "{{ .db.user }}"
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -17,10 +17,10 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: ghost
|
- name: ghost
|
||||||
image: {{ .image }}
|
image: docker.io/bitnami/ghost:5.118.1-debian-12-r0
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
containerPort: {{ .port }}
|
containerPort: 2368
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
env:
|
env:
|
||||||
- name: BITNAMI_DEBUG
|
- name: BITNAMI_DEBUG
|
||||||
@@ -28,13 +28,13 @@ spec:
|
|||||||
- name: ALLOW_EMPTY_PASSWORD
|
- name: ALLOW_EMPTY_PASSWORD
|
||||||
value: "yes"
|
value: "yes"
|
||||||
- name: GHOST_DATABASE_HOST
|
- name: GHOST_DATABASE_HOST
|
||||||
value: {{ .dbHost }}
|
value: {{ .db.host }}
|
||||||
- name: GHOST_DATABASE_PORT_NUMBER
|
- name: GHOST_DATABASE_PORT_NUMBER
|
||||||
value: "{{ .dbPort }}"
|
value: "{{ .db.port }}"
|
||||||
- name: GHOST_DATABASE_NAME
|
- name: GHOST_DATABASE_NAME
|
||||||
value: {{ .dbName }}
|
value: {{ .db.name }}
|
||||||
- name: GHOST_DATABASE_USER
|
- name: GHOST_DATABASE_USER
|
||||||
value: {{ .dbUser }}
|
value: {{ .db.user }}
|
||||||
- name: GHOST_DATABASE_PASSWORD
|
- name: GHOST_DATABASE_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -43,7 +43,7 @@ spec:
|
|||||||
- name: GHOST_HOST
|
- name: GHOST_HOST
|
||||||
value: {{ .domain }}
|
value: {{ .domain }}
|
||||||
- name: GHOST_PORT_NUMBER
|
- name: GHOST_PORT_NUMBER
|
||||||
value: "{{ .port }}"
|
value: "2368"
|
||||||
- name: GHOST_USERNAME
|
- name: GHOST_USERNAME
|
||||||
value: {{ .adminUser }}
|
value: {{ .adminUser }}
|
||||||
- name: GHOST_PASSWORD
|
- name: GHOST_PASSWORD
|
||||||
@@ -92,7 +92,7 @@ spec:
|
|||||||
mountPath: /bitnami/ghost
|
mountPath: /bitnami/ghost
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
tcpSocket:
|
tcpSocket:
|
||||||
port: {{ .port }}
|
port: 2368
|
||||||
initialDelaySeconds: 120
|
initialDelaySeconds: 120
|
||||||
timeoutSeconds: 5
|
timeoutSeconds: 5
|
||||||
periodSeconds: 10
|
periodSeconds: 10
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ name: ghost
|
|||||||
is: ghost
|
is: ghost
|
||||||
description: Ghost is a powerful app for new-media creators to publish, share, and
|
description: Ghost is a powerful app for new-media creators to publish, share, and
|
||||||
grow a business around their content.
|
grow a business around their content.
|
||||||
version: 5.118.1
|
version: 5.118.1-1
|
||||||
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/ghost.png
|
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/ghost.png
|
||||||
requires:
|
requires:
|
||||||
- name: mysql
|
- name: mysql
|
||||||
@@ -10,19 +10,17 @@ requires:
|
|||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: ghost
|
namespace: ghost
|
||||||
externalDnsDomain: '{{ .cloud.domain }}'
|
externalDnsDomain: '{{ .cloud.domain }}'
|
||||||
image: docker.io/bitnami/ghost:5.118.1-debian-12-r0
|
|
||||||
domain: ghost.{{ .cloud.domain }}
|
domain: ghost.{{ .cloud.domain }}
|
||||||
tlsSecretName: wildcard-wild-cloud-tls
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
port: 2368
|
|
||||||
storage: 10Gi
|
storage: 10Gi
|
||||||
dbHost: mysql.mysql.svc.cluster.local
|
|
||||||
dbPort: 3306
|
|
||||||
dbName: ghost
|
|
||||||
dbUser: ghost
|
|
||||||
adminUser: admin
|
adminUser: admin
|
||||||
adminEmail: {{ .operator.email }}
|
adminEmail: '{{ .operator.email }}'
|
||||||
blogTitle: My Blog
|
blogTitle: My Blog
|
||||||
timezone: UTC
|
db:
|
||||||
|
host: '{{ .apps.mysql.host }}'
|
||||||
|
port: '3306'
|
||||||
|
name: ghost
|
||||||
|
user: ghost
|
||||||
smtp:
|
smtp:
|
||||||
host: '{{ .apps.smtp.host }}'
|
host: '{{ .apps.smtp.host }}'
|
||||||
port: '{{ .apps.smtp.port }}'
|
port: '{{ .apps.smtp.port }}'
|
||||||
|
|||||||
@@ -9,6 +9,6 @@ spec:
|
|||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: {{ .port }}
|
targetPort: 2368
|
||||||
selector:
|
selector:
|
||||||
component: web
|
component: web
|
||||||
@@ -38,11 +38,11 @@ spec:
|
|||||||
name: postgres-secrets
|
name: postgres-secrets
|
||||||
key: password
|
key: password
|
||||||
- name: DB_HOSTNAME
|
- name: DB_HOSTNAME
|
||||||
value: "{{ .dbHost }}"
|
value: "{{ .db.host }}"
|
||||||
- name: DB_DATABASE_NAME
|
- name: DB_DATABASE_NAME
|
||||||
value: "{{ .dbName }}"
|
value: "{{ .db.name }}"
|
||||||
- name: DB_USERNAME
|
- name: DB_USERNAME
|
||||||
value: "{{ .dbUser }}"
|
value: "{{ .db.user }}"
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ spec:
|
|||||||
terminationGracePeriodSeconds: 60
|
terminationGracePeriodSeconds: 60
|
||||||
containers:
|
containers:
|
||||||
- name: gitea
|
- name: gitea
|
||||||
image: "{{ .image }}"
|
image: "gitea/gitea:1.24.3"
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ GITEA_ADMIN_PASSWORD_MODE=keepUpdated
|
|||||||
|
|
||||||
# Core app settings
|
# Core app settings
|
||||||
GITEA____APP_NAME={{ .appName }}
|
GITEA____APP_NAME={{ .appName }}
|
||||||
GITEA____RUN_MODE={{ .runMode }}
|
GITEA____RUN_MODE=prod
|
||||||
GITEA____RUN_USER=git
|
GITEA____RUN_USER=git
|
||||||
|
|
||||||
# Security settings
|
# Security settings
|
||||||
@@ -17,19 +17,19 @@ GITEA__security__PASSWORD_HASH_ALGO=pbkdf2
|
|||||||
|
|
||||||
# Database settings (except password which comes from secret)
|
# Database settings (except password which comes from secret)
|
||||||
GITEA__database__DB_TYPE=postgres
|
GITEA__database__DB_TYPE=postgres
|
||||||
GITEA__database__HOST={{ .dbHost }}:{{ .dbPort }}
|
GITEA__database__HOST={{ .db.host }}:{{ .db.port }}
|
||||||
GITEA__database__NAME={{ .dbName }}
|
GITEA__database__NAME={{ .db.name }}
|
||||||
GITEA__database__USER={{ .dbUser }}
|
GITEA__database__USER={{ .db.user }}
|
||||||
GITEA__database__SSL_MODE=disable
|
GITEA__database__SSL_MODE=disable
|
||||||
GITEA__database__LOG_SQL=false
|
GITEA__database__LOG_SQL=false
|
||||||
|
|
||||||
# Server settings
|
# Server settings
|
||||||
GITEA__server__DOMAIN={{ .domain }}
|
GITEA__server__DOMAIN={{ .domain }}
|
||||||
GITEA__server__HTTP_PORT={{ .port }}
|
GITEA__server__HTTP_PORT=3000
|
||||||
GITEA__server__ROOT_URL=https://{{ .domain }}/
|
GITEA__server__ROOT_URL=https://{{ .domain }}/
|
||||||
GITEA__server__DISABLE_SSH=false
|
GITEA__server__DISABLE_SSH=false
|
||||||
GITEA__server__SSH_DOMAIN={{ .domain }}
|
GITEA__server__SSH_DOMAIN={{ .domain }}
|
||||||
GITEA__server__SSH_PORT={{ .sshPort }}
|
GITEA__server__SSH_PORT=22
|
||||||
GITEA__server__SSH_LISTEN_PORT=2222
|
GITEA__server__SSH_LISTEN_PORT=2222
|
||||||
GITEA__server__LFS_START_SERVER=true
|
GITEA__server__LFS_START_SERVER=true
|
||||||
GITEA__server__OFFLINE_MODE=true
|
GITEA__server__OFFLINE_MODE=true
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: gitea
|
name: gitea
|
||||||
is: gitea
|
is: gitea
|
||||||
description: Gitea is a painless self-hosted Git service written in Go
|
description: Gitea is a painless self-hosted Git service written in Go
|
||||||
version: 1.24.3
|
version: 1.24.3-1
|
||||||
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gitea.svg
|
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gitea.svg
|
||||||
requires:
|
requires:
|
||||||
- name: postgres
|
- name: postgres
|
||||||
@@ -9,21 +9,17 @@ requires:
|
|||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: gitea
|
namespace: gitea
|
||||||
externalDnsDomain: '{{ .cloud.domain }}'
|
externalDnsDomain: '{{ .cloud.domain }}'
|
||||||
image: gitea/gitea:1.24.3
|
|
||||||
appName: Gitea
|
appName: Gitea
|
||||||
domain: gitea.{{ .cloud.domain }}
|
domain: gitea.{{ .cloud.domain }}
|
||||||
tlsSecretName: wildcard-wild-cloud-tls
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
port: 3000
|
|
||||||
sshPort: 22
|
|
||||||
storage: 10Gi
|
storage: 10Gi
|
||||||
dbName: gitea
|
|
||||||
dbUser: gitea
|
|
||||||
dbHost: postgres.postgres.svc.cluster.local
|
|
||||||
adminUser: admin
|
adminUser: admin
|
||||||
adminEmail: "{{ .operator.email }}"
|
adminEmail: "{{ .operator.email }}"
|
||||||
dbPort: 5432
|
db:
|
||||||
timezone: UTC
|
name: gitea
|
||||||
runMode: prod
|
user: gitea
|
||||||
|
host: '{{ .apps.postgres.host }}'
|
||||||
|
port: '{{ .apps.postgres.port }}'
|
||||||
smtp:
|
smtp:
|
||||||
host: '{{ .apps.smtp.host }}'
|
host: '{{ .apps.smtp.host }}'
|
||||||
port: '{{ .apps.smtp.port }}'
|
port: '{{ .apps.smtp.port }}'
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ spec:
|
|||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
port: 3000
|
port: 3000
|
||||||
targetPort: {{ .port }}
|
targetPort: 3000
|
||||||
selector:
|
selector:
|
||||||
component: web
|
component: web
|
||||||
---
|
---
|
||||||
@@ -21,7 +21,7 @@ spec:
|
|||||||
type: LoadBalancer
|
type: LoadBalancer
|
||||||
ports:
|
ports:
|
||||||
- name: ssh
|
- name: ssh
|
||||||
port: {{ .sshPort }}
|
port: 22
|
||||||
targetPort: 2222
|
targetPort: 2222
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
selector:
|
selector:
|
||||||
|
|||||||
@@ -55,11 +55,11 @@ spec:
|
|||||||
name: immich-secrets
|
name: immich-secrets
|
||||||
key: postgres.password
|
key: postgres.password
|
||||||
- name: DB_HOSTNAME
|
- name: DB_HOSTNAME
|
||||||
value: "{{ .dbHostname }}"
|
value: "{{ .db.host }}"
|
||||||
- name: DB_DATABASE_NAME
|
- name: DB_DATABASE_NAME
|
||||||
value: "{{ .dbUsername }}"
|
value: "{{ .db.name }}"
|
||||||
- name: DB_USERNAME
|
- name: DB_USERNAME
|
||||||
value: "{{ .dbUsername }}"
|
value: "{{ .db.user }}"
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -17,14 +17,14 @@ spec:
|
|||||||
component: machine-learning
|
component: machine-learning
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: "{{ .mlImage }}"
|
- image: "ghcr.io/immich-app/immich-machine-learning:v1.135.3"
|
||||||
name: immich-machine-learning
|
name: immich-machine-learning
|
||||||
ports:
|
ports:
|
||||||
- containerPort: {{ .mlPort }}
|
- containerPort: 3003
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
env:
|
env:
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: "{{ .timezone }}"
|
value: "UTC"
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /cache
|
- mountPath: /cache
|
||||||
name: immich-cache
|
name: immich-cache
|
||||||
|
|||||||
@@ -20,27 +20,27 @@ spec:
|
|||||||
component: microservices
|
component: microservices
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: "{{ .serverImage }}"
|
- image: "ghcr.io/immich-app/immich-server:v1.135.3"
|
||||||
name: immich-microservices
|
name: immich-microservices
|
||||||
env:
|
env:
|
||||||
- name: REDIS_HOSTNAME
|
- name: REDIS_HOSTNAME
|
||||||
value: "{{ .redisHostname }}"
|
value: "{{ .redis.host }}"
|
||||||
- name: REDIS_PASSWORD
|
- name: REDIS_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: immich-secrets
|
name: immich-secrets
|
||||||
key: redis.password
|
key: redis.password
|
||||||
- name: DB_HOSTNAME
|
- name: DB_HOSTNAME
|
||||||
value: "{{ .dbHostname }}"
|
value: "{{ .db.host }}"
|
||||||
- name: DB_USERNAME
|
- name: DB_USERNAME
|
||||||
value: "{{ .dbUsername }}"
|
value: "{{ .db.user }}"
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: immich-secrets
|
name: immich-secrets
|
||||||
key: dbPassword
|
key: dbPassword
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: "{{ .timezone }}"
|
value: "UTC"
|
||||||
- name: IMMICH_WORKERS_EXCLUDE
|
- name: IMMICH_WORKERS_EXCLUDE
|
||||||
value: api
|
value: api
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
|
|||||||
@@ -20,30 +20,30 @@ spec:
|
|||||||
component: server
|
component: server
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: "{{ .serverImage }}"
|
- image: "ghcr.io/immich-app/immich-server:v1.135.3"
|
||||||
name: immich-server
|
name: immich-server
|
||||||
ports:
|
ports:
|
||||||
- containerPort: {{ .serverPort }}
|
- containerPort: 2283
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
env:
|
env:
|
||||||
- name: REDIS_HOSTNAME
|
- name: REDIS_HOSTNAME
|
||||||
value: "{{ .redisHostname }}"
|
value: "{{ .redis.host }}"
|
||||||
- name: REDIS_PASSWORD
|
- name: REDIS_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: immich-secrets
|
name: immich-secrets
|
||||||
key: redis.password
|
key: redis.password
|
||||||
- name: DB_HOSTNAME
|
- name: DB_HOSTNAME
|
||||||
value: "{{ .dbHostname }}"
|
value: "{{ .db.host }}"
|
||||||
- name: DB_USERNAME
|
- name: DB_USERNAME
|
||||||
value: "{{ .dbUsername }}"
|
value: "{{ .db.user }}"
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: immich-secrets
|
name: immich-secrets
|
||||||
key: dbPassword
|
key: dbPassword
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: "{{ .timezone }}"
|
value: "UTC"
|
||||||
- name: IMMICH_WORKERS_EXCLUDE
|
- name: IMMICH_WORKERS_EXCLUDE
|
||||||
value: microservices
|
value: microservices
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ name: immich
|
|||||||
is: immich
|
is: immich
|
||||||
description: Immich is a self-hosted photo and video backup solution that allows you
|
description: Immich is a self-hosted photo and video backup solution that allows you
|
||||||
to store, manage, and share your media files securely.
|
to store, manage, and share your media files securely.
|
||||||
version: 1.135.3
|
version: 1.135.3-1
|
||||||
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/immich.svg
|
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/immich.svg
|
||||||
requires:
|
requires:
|
||||||
- name: redis
|
- name: redis
|
||||||
@@ -10,18 +10,16 @@ requires:
|
|||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: immich
|
namespace: immich
|
||||||
externalDnsDomain: '{{ .cloud.domain }}'
|
externalDnsDomain: '{{ .cloud.domain }}'
|
||||||
serverImage: ghcr.io/immich-app/immich-server:v1.135.3
|
|
||||||
mlImage: ghcr.io/immich-app/immich-machine-learning:v1.135.3
|
|
||||||
timezone: UTC
|
|
||||||
serverPort: 2283
|
|
||||||
mlPort: 3003
|
|
||||||
storage: 250Gi
|
storage: 250Gi
|
||||||
cacheStorage: 10Gi
|
cacheStorage: 10Gi
|
||||||
redisHostname: redis.redis.svc.cluster.local
|
|
||||||
dbHostname: postgres.postgres.svc.cluster.local
|
|
||||||
dbUsername: immich
|
|
||||||
domain: immich.{{ .cloud.domain }}
|
domain: immich.{{ .cloud.domain }}
|
||||||
tlsSecretName: wildcard-wild-cloud-tls
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
|
db:
|
||||||
|
host: '{{ .apps.postgres.host }}'
|
||||||
|
name: immich
|
||||||
|
user: immich
|
||||||
|
redis:
|
||||||
|
host: '{{ .apps.redis.host }}'
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: dbPassword
|
- key: dbPassword
|
||||||
requiredSecrets:
|
requiredSecrets:
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
ports:
|
ports:
|
||||||
- port: 3001
|
- port: 3001
|
||||||
targetPort: {{ .serverPort }}
|
targetPort: 2283
|
||||||
selector:
|
selector:
|
||||||
app: immich
|
app: immich
|
||||||
component: server
|
component: server
|
||||||
@@ -25,7 +25,7 @@ metadata:
|
|||||||
app: immich-machine-learning
|
app: immich-machine-learning
|
||||||
spec:
|
spec:
|
||||||
ports:
|
ports:
|
||||||
- port: {{ .mlPort }}
|
- port: 3003
|
||||||
selector:
|
selector:
|
||||||
app: immich
|
app: immich
|
||||||
component: machine-learning
|
component: machine-learning
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ spec:
|
|||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
env:
|
env:
|
||||||
- name: PGHOST
|
- name: PGHOST
|
||||||
value: {{ .dbHostname }}
|
value: {{ .db.host }}
|
||||||
- name: PGUSER
|
- name: PGUSER
|
||||||
value: postgres
|
value: postgres
|
||||||
- name: PGPASSWORD
|
- name: PGPASSWORD
|
||||||
@@ -35,9 +35,9 @@ spec:
|
|||||||
name: keila-secrets
|
name: keila-secrets
|
||||||
key: postgres.password
|
key: postgres.password
|
||||||
- name: DB_NAME
|
- name: DB_NAME
|
||||||
value: {{ .dbName }}
|
value: {{ .db.name }}
|
||||||
- name: DB_USER
|
- name: DB_USER
|
||||||
value: {{ .dbUsername }}
|
value: {{ .db.user }}
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: keila
|
- name: keila
|
||||||
image: "{{ .image }}"
|
image: "pentacent/keila:0.17.1"
|
||||||
ports:
|
ports:
|
||||||
- containerPort: {{ .port }}
|
- containerPort: 4000
|
||||||
env:
|
env:
|
||||||
- name: DB_URL
|
- name: DB_URL
|
||||||
valueFrom:
|
valueFrom:
|
||||||
@@ -32,7 +32,7 @@ spec:
|
|||||||
- name: URL_PORT
|
- name: URL_PORT
|
||||||
value: "443"
|
value: "443"
|
||||||
- name: PORT
|
- name: PORT
|
||||||
value: "{{ .port }}"
|
value: "4000"
|
||||||
- name: SECRET_KEY_BASE
|
- name: SECRET_KEY_BASE
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -72,13 +72,13 @@ spec:
|
|||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /
|
path: /
|
||||||
port: {{ .port }}
|
port: 4000
|
||||||
initialDelaySeconds: 30
|
initialDelaySeconds: 30
|
||||||
periodSeconds: 10
|
periodSeconds: 10
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /
|
path: /
|
||||||
port: {{ .port }}
|
port: 4000
|
||||||
initialDelaySeconds: 5
|
initialDelaySeconds: 5
|
||||||
periodSeconds: 5
|
periodSeconds: 5
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -1,38 +1,37 @@
|
|||||||
name: keila
|
name: keila
|
||||||
is: keila
|
is: keila
|
||||||
description: Keila is an open-source email marketing platform that allows you to send newsletters and manage mailing lists with privacy and control.
|
description: Keila is an open-source email marketing platform that allows you to send newsletters and manage mailing lists with privacy and control.
|
||||||
version: 0.17.1
|
version: 0.17.1-1
|
||||||
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/keila.svg
|
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/keila.svg
|
||||||
requires:
|
requires:
|
||||||
- name: postgres
|
- name: postgres
|
||||||
- name: smtp
|
- name: smtp
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: keila
|
namespace: keila
|
||||||
externalDnsDomain: "{{ .cloud.domain }}"
|
externalDnsDomain: '{{ .cloud.domain }}'
|
||||||
image: pentacent/keila:0.17.1
|
|
||||||
port: 4000
|
|
||||||
storage: 1Gi
|
storage: 1Gi
|
||||||
domain: keila.{{ .cloud.domain }}
|
domain: keila.{{ .cloud.domain }}
|
||||||
dbHostname: "{{ .apps.postgres.host }}"
|
disableRegistration: 'true'
|
||||||
dbPort: "{{ .apps.postgres.port }}"
|
|
||||||
dbName: keila
|
|
||||||
dbUsername: keila
|
|
||||||
disableRegistration: "true"
|
|
||||||
adminUser: admin@{{ .cloud.domain }}
|
adminUser: admin@{{ .cloud.domain }}
|
||||||
tlsSecretName: wildcard-wild-cloud-tls
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
|
db:
|
||||||
|
host: '{{ .apps.postgres.host }}'
|
||||||
|
port: '{{ .apps.postgres.port }}'
|
||||||
|
name: keila
|
||||||
|
user: keila
|
||||||
smtp:
|
smtp:
|
||||||
host: "{{ .apps.smtp.host }}"
|
host: '{{ .apps.smtp.host }}'
|
||||||
port: "{{ .apps.smtp.port }}"
|
port: '{{ .apps.smtp.port }}'
|
||||||
from: "{{ .apps.smtp.from }}"
|
from: '{{ .apps.smtp.from }}'
|
||||||
user: "{{ .apps.smtp.user }}"
|
user: '{{ .apps.smtp.user }}'
|
||||||
tls: "{{ .apps.smtp.tls }}"
|
tls: '{{ .apps.smtp.tls }}'
|
||||||
startTls: "{{ .apps.smtp.startTls }}"
|
startTls: '{{ .apps.smtp.startTls }}'
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: secretKeyBase
|
- key: secretKeyBase
|
||||||
default: "{{ random.AlphaNum 64 }}"
|
default: "{{ random.AlphaNum 64 }}"
|
||||||
- key: dbPassword
|
- key: dbPassword
|
||||||
- key: dbUrl
|
- key: dbUrl
|
||||||
default: "postgres://{{ .app.dbUsername }}:{{ .secrets.dbPassword }}@{{ .app.dbHostname }}:{{ .app.dbPort }}/keila?sslmode=disable"
|
default: "postgres://{{ .app.db.user }}:{{ .secrets.dbPassword }}@{{ .app.db.host }}:{{ .app.db.port }}/{{ .app.db.name }}?sslmode=disable"
|
||||||
- key: adminPassword
|
- key: adminPassword
|
||||||
- key: smtpPassword
|
- key: smtpPassword
|
||||||
requiredSecrets:
|
requiredSecrets:
|
||||||
|
|||||||
@@ -7,5 +7,5 @@ spec:
|
|||||||
component: web
|
component: web
|
||||||
ports:
|
ports:
|
||||||
- port: 80
|
- port: 80
|
||||||
targetPort: {{ .port }}
|
targetPort: 4000
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
@@ -8,15 +8,15 @@ data:
|
|||||||
{
|
{
|
||||||
hostname: "{{ .domain }}"
|
hostname: "{{ .domain }}"
|
||||||
bind: "0.0.0.0"
|
bind: "0.0.0.0"
|
||||||
port: {{ .backendPort }}
|
port: 8536
|
||||||
tls_enabled: false
|
tls_enabled: false
|
||||||
|
|
||||||
database: {
|
database: {
|
||||||
uri: "postgresql://{{ .dbUser }}:DBPASSWORD@{{ .dbHost }}:{{ .dbPort }}/{{ .dbName }}"
|
uri: "postgresql://{{ .db.user }}:DBPASSWORD@{{ .db.host }}:{{ .db.port }}/{{ .db.name }}"
|
||||||
}
|
}
|
||||||
|
|
||||||
pictrs: {
|
pictrs: {
|
||||||
url: "http://lemmy-pictrs:{{ .pictrsPort }}/"
|
url: "http://lemmy-pictrs:8080/"
|
||||||
api_key: "PICTRS_API_KEY"
|
api_key: "PICTRS_API_KEY"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,9 +26,9 @@ spec:
|
|||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
env:
|
env:
|
||||||
- name: PGHOST
|
- name: PGHOST
|
||||||
value: "{{ .dbHost }}"
|
value: "{{ .db.host }}"
|
||||||
- name: PGPORT
|
- name: PGPORT
|
||||||
value: "{{ .dbPort }}"
|
value: "{{ .db.port }}"
|
||||||
- name: PGUSER
|
- name: PGUSER
|
||||||
value: postgres
|
value: postgres
|
||||||
- name: PGPASSWORD
|
- name: PGPASSWORD
|
||||||
@@ -37,9 +37,9 @@ spec:
|
|||||||
name: lemmy-secrets
|
name: lemmy-secrets
|
||||||
key: postgres.password
|
key: postgres.password
|
||||||
- name: DB_NAME
|
- name: DB_NAME
|
||||||
value: "{{ .dbName }}"
|
value: "{{ .db.name }}"
|
||||||
- name: DB_USER
|
- name: DB_USER
|
||||||
value: "{{ .dbUser }}"
|
value: "{{ .db.user }}"
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ metadata:
|
|||||||
name: lemmy-backend
|
name: lemmy-backend
|
||||||
namespace: {{ .namespace }}
|
namespace: {{ .namespace }}
|
||||||
spec:
|
spec:
|
||||||
replicas: {{ .backendReplicas }}
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
component: backend
|
component: backend
|
||||||
@@ -65,7 +65,7 @@ spec:
|
|||||||
mountPath: /config
|
mountPath: /config
|
||||||
containers:
|
containers:
|
||||||
- name: backend
|
- name: backend
|
||||||
image: {{ .backendImage }}
|
image: dessalines/lemmy:0.19.15
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -75,9 +75,9 @@ spec:
|
|||||||
- name: LEMMY_CONFIG_LOCATION
|
- name: LEMMY_CONFIG_LOCATION
|
||||||
value: /config/lemmy.hjson
|
value: /config/lemmy.hjson
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: "{{ .timezone }}"
|
value: "UTC"
|
||||||
ports:
|
ports:
|
||||||
- containerPort: {{ .backendPort }}
|
- containerPort: 8536
|
||||||
name: http
|
name: http
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: config
|
- name: config
|
||||||
@@ -85,13 +85,13 @@ spec:
|
|||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /api/v3/site
|
path: /api/v3/site
|
||||||
port: {{ .backendPort }}
|
port: 8536
|
||||||
initialDelaySeconds: 30
|
initialDelaySeconds: 30
|
||||||
periodSeconds: 10
|
periodSeconds: 10
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /api/v3/site
|
path: /api/v3/site
|
||||||
port: {{ .backendPort }}
|
port: 8536
|
||||||
initialDelaySeconds: 10
|
initialDelaySeconds: 10
|
||||||
periodSeconds: 5
|
periodSeconds: 5
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ metadata:
|
|||||||
name: lemmy-pictrs
|
name: lemmy-pictrs
|
||||||
namespace: {{ .namespace }}
|
namespace: {{ .namespace }}
|
||||||
spec:
|
spec:
|
||||||
replicas: {{ .pictrsReplicas }}
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
component: pictrs
|
component: pictrs
|
||||||
@@ -22,7 +22,7 @@ spec:
|
|||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- name: pictrs
|
- name: pictrs
|
||||||
image: {{ .pictrsImage }}
|
image: asonix/pictrs:0.5.5
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -30,7 +30,7 @@ spec:
|
|||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
env:
|
env:
|
||||||
- name: PICTRS__SERVER__BIND
|
- name: PICTRS__SERVER__BIND
|
||||||
value: "0.0.0.0:{{ .pictrsPort }}"
|
value: "0.0.0.0:8080"
|
||||||
- name: PICTRS__MEDIA__VIDEO_CODEC
|
- name: PICTRS__MEDIA__VIDEO_CODEC
|
||||||
value: vp9
|
value: vp9
|
||||||
- name: PICTRS__MEDIA__GIF__MAX_WIDTH
|
- name: PICTRS__MEDIA__GIF__MAX_WIDTH
|
||||||
@@ -54,7 +54,7 @@ spec:
|
|||||||
- name: PICTRS__STORE__PATH
|
- name: PICTRS__STORE__PATH
|
||||||
value: /mnt/files
|
value: /mnt/files
|
||||||
ports:
|
ports:
|
||||||
- containerPort: {{ .pictrsPort }}
|
- containerPort: 8080
|
||||||
name: http
|
name: http
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: storage
|
- name: storage
|
||||||
@@ -62,13 +62,13 @@ spec:
|
|||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /healthz
|
path: /healthz
|
||||||
port: {{ .pictrsPort }}
|
port: 8080
|
||||||
initialDelaySeconds: 30
|
initialDelaySeconds: 30
|
||||||
periodSeconds: 10
|
periodSeconds: 10
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /healthz
|
path: /healthz
|
||||||
port: {{ .pictrsPort }}
|
port: 8080
|
||||||
initialDelaySeconds: 10
|
initialDelaySeconds: 10
|
||||||
periodSeconds: 5
|
periodSeconds: 5
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ metadata:
|
|||||||
name: lemmy-ui
|
name: lemmy-ui
|
||||||
namespace: {{ .namespace }}
|
namespace: {{ .namespace }}
|
||||||
spec:
|
spec:
|
||||||
replicas: {{ .uiReplicas }}
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
component: ui
|
component: ui
|
||||||
@@ -21,7 +21,7 @@ spec:
|
|||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- name: ui
|
- name: ui
|
||||||
image: {{ .uiImage }}
|
image: dessalines/lemmy-ui:0.19.15
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -29,25 +29,25 @@ spec:
|
|||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
env:
|
env:
|
||||||
- name: LEMMY_UI_LEMMY_INTERNAL_HOST
|
- name: LEMMY_UI_LEMMY_INTERNAL_HOST
|
||||||
value: "lemmy-backend:{{ .backendPort }}"
|
value: "lemmy-backend:8536"
|
||||||
- name: LEMMY_UI_LEMMY_EXTERNAL_HOST
|
- name: LEMMY_UI_LEMMY_EXTERNAL_HOST
|
||||||
value: "{{ .domain }}"
|
value: "{{ .domain }}"
|
||||||
- name: LEMMY_UI_HTTPS
|
- name: LEMMY_UI_HTTPS
|
||||||
value: "true"
|
value: "true"
|
||||||
ports:
|
ports:
|
||||||
- containerPort: {{ .uiPort }}
|
- containerPort: 1234
|
||||||
name: http
|
name: http
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /
|
path: /
|
||||||
port: {{ .uiPort }}
|
port: 1234
|
||||||
initialDelaySeconds: 30
|
initialDelaySeconds: 30
|
||||||
periodSeconds: 10
|
periodSeconds: 10
|
||||||
timeoutSeconds: 5
|
timeoutSeconds: 5
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /
|
path: /
|
||||||
port: {{ .uiPort }}
|
port: 1234
|
||||||
initialDelaySeconds: 10
|
initialDelaySeconds: 10
|
||||||
periodSeconds: 5
|
periodSeconds: 5
|
||||||
timeoutSeconds: 5
|
timeoutSeconds: 5
|
||||||
|
|||||||
@@ -25,18 +25,18 @@ spec:
|
|||||||
service:
|
service:
|
||||||
name: lemmy-backend
|
name: lemmy-backend
|
||||||
port:
|
port:
|
||||||
number: {{ .backendPort }}
|
number: 8536
|
||||||
- path: /pictrs
|
- path: /pictrs
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
backend:
|
backend:
|
||||||
service:
|
service:
|
||||||
name: lemmy-pictrs
|
name: lemmy-pictrs
|
||||||
port:
|
port:
|
||||||
number: {{ .pictrsPort }}
|
number: 8080
|
||||||
- path: /
|
- path: /
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
backend:
|
backend:
|
||||||
service:
|
service:
|
||||||
name: lemmy-ui
|
name: lemmy-ui
|
||||||
port:
|
port:
|
||||||
number: {{ .uiPort }}
|
number: 1234
|
||||||
|
|||||||
@@ -1,38 +1,29 @@
|
|||||||
name: lemmy
|
name: lemmy
|
||||||
is: lemmy
|
is: lemmy
|
||||||
description: Lemmy is a selfhosted social link aggregation and discussion platform. It is an open source alternative to Reddit, designed for the fediverse.
|
description: Lemmy is a selfhosted social link aggregation and discussion platform. It is an open source alternative to Reddit, designed for the fediverse.
|
||||||
version: 0.19.15
|
version: 0.19.15-2
|
||||||
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/lemmy.svg
|
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/lemmy.svg
|
||||||
requires:
|
requires:
|
||||||
- name: postgres
|
- name: postgres
|
||||||
- name: smtp
|
- name: smtp
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: lemmy
|
namespace: lemmy
|
||||||
backendImage: dessalines/lemmy:0.19.15
|
externalDnsDomain: lemmy.{{ .cloud.baseDomain }}
|
||||||
uiImage: dessalines/lemmy-ui:0.19.15
|
domain: lemmy.{{ .cloud.domain }}
|
||||||
pictrsImage: asonix/pictrs:0.5.5
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
backendPort: 8536
|
|
||||||
uiPort: 1234
|
|
||||||
pictrsPort: 8080
|
|
||||||
backendReplicas: 1
|
|
||||||
uiReplicas: 1
|
|
||||||
pictrsReplicas: 1
|
|
||||||
storage: 10Gi
|
storage: 10Gi
|
||||||
pictrsStorage: 50Gi
|
pictrsStorage: 50Gi
|
||||||
timezone: UTC
|
db:
|
||||||
domain: lemmy.{{ .cloud.domain }}
|
host: '{{ .apps.postgres.host }}'
|
||||||
externalDnsDomain: lemmy.{{ .cloud.baseDomain }}
|
port: '{{ .apps.postgres.port }}'
|
||||||
tlsSecretName: lemmy-tls
|
name: lemmy
|
||||||
dbName: lemmy
|
user: lemmy
|
||||||
dbUser: lemmy
|
|
||||||
dbHost: postgres.postgres.svc.cluster.local
|
|
||||||
dbPort: 5432
|
|
||||||
smtp:
|
smtp:
|
||||||
host: "{{ .apps.smtp.host }}"
|
host: '{{ .apps.smtp.host }}'
|
||||||
port: "{{ .apps.smtp.port }}"
|
port: '{{ .apps.smtp.port }}'
|
||||||
user: "{{ .apps.smtp.user }}"
|
user: '{{ .apps.smtp.user }}'
|
||||||
from: "noreply@{{ .cloud.baseDomain }}"
|
from: 'noreply@{{ .cloud.baseDomain }}'
|
||||||
tls: "{{ .apps.smtp.tls }}"
|
tls: '{{ .apps.smtp.tls }}'
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: dbPassword
|
- key: dbPassword
|
||||||
- key: adminPassword
|
- key: adminPassword
|
||||||
|
|||||||
@@ -9,5 +9,5 @@ spec:
|
|||||||
component: backend
|
component: backend
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
port: {{ .backendPort }}
|
port: 8536
|
||||||
targetPort: {{ .backendPort }}
|
targetPort: 8536
|
||||||
|
|||||||
@@ -9,5 +9,5 @@ spec:
|
|||||||
component: pictrs
|
component: pictrs
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
port: {{ .pictrsPort }}
|
port: 8080
|
||||||
targetPort: {{ .pictrsPort }}
|
targetPort: 8080
|
||||||
|
|||||||
@@ -9,5 +9,5 @@ spec:
|
|||||||
component: ui
|
component: ui
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
port: {{ .uiPort }}
|
port: 1234
|
||||||
targetPort: {{ .uiPort }}
|
targetPort: 1234
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ spec:
|
|||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
env:
|
env:
|
||||||
- name: PGHOST
|
- name: PGHOST
|
||||||
value: {{ .dbHost }}
|
value: {{ .db.host }}
|
||||||
- name: PGUSER
|
- name: PGUSER
|
||||||
value: postgres
|
value: postgres
|
||||||
- name: PGPASSWORD
|
- name: PGPASSWORD
|
||||||
@@ -37,9 +37,9 @@ spec:
|
|||||||
name: listmonk-secrets
|
name: listmonk-secrets
|
||||||
key: postgres.password
|
key: postgres.password
|
||||||
- name: DB_NAME
|
- name: DB_NAME
|
||||||
value: {{ .dbName }}
|
value: {{ .db.name }}
|
||||||
- name: DB_USER
|
- name: DB_USER
|
||||||
value: {{ .dbUser }}
|
value: {{ .db.user }}
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -31,17 +31,17 @@ spec:
|
|||||||
- name: LISTMONK_app__address
|
- name: LISTMONK_app__address
|
||||||
value: "0.0.0.0:9000"
|
value: "0.0.0.0:9000"
|
||||||
- name: LISTMONK_app__root_url
|
- name: LISTMONK_app__root_url
|
||||||
value: "{{ .rootUrl }}"
|
value: "https://{{ .domain }}"
|
||||||
- name: LISTMONK_db__host
|
- name: LISTMONK_db__host
|
||||||
value: {{ .dbHost }}
|
value: {{ .db.host }}
|
||||||
- name: LISTMONK_db__port
|
- name: LISTMONK_db__port
|
||||||
value: "{{ .dbPort }}"
|
value: "{{ .db.port }}"
|
||||||
- name: LISTMONK_db__user
|
- name: LISTMONK_db__user
|
||||||
value: {{ .dbUser }}
|
value: {{ .db.user }}
|
||||||
- name: LISTMONK_db__database
|
- name: LISTMONK_db__database
|
||||||
value: {{ .dbName }}
|
value: {{ .db.name }}
|
||||||
- name: LISTMONK_db__ssl_mode
|
- name: LISTMONK_db__ssl_mode
|
||||||
value: {{ .dbSSLMode }}
|
value: disable
|
||||||
- name: LISTMONK_db__password
|
- name: LISTMONK_db__password
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ name: listmonk
|
|||||||
is: listmonk
|
is: listmonk
|
||||||
description: Listmonk is a standalone, self-hosted, newsletter and mailing list manager.
|
description: Listmonk is a standalone, self-hosted, newsletter and mailing list manager.
|
||||||
It is fast, feature-rich, and packed into a single binary.
|
It is fast, feature-rich, and packed into a single binary.
|
||||||
version: 5.0.3
|
version: 5.0.3-1
|
||||||
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/listmonk.svg
|
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/listmonk.svg
|
||||||
requires:
|
requires:
|
||||||
- name: postgres
|
- name: postgres
|
||||||
@@ -10,18 +10,16 @@ defaultConfig:
|
|||||||
namespace: listmonk
|
namespace: listmonk
|
||||||
externalDnsDomain: '{{ .cloud.domain }}'
|
externalDnsDomain: '{{ .cloud.domain }}'
|
||||||
domain: listmonk.{{ .cloud.domain }}
|
domain: listmonk.{{ .cloud.domain }}
|
||||||
rootUrl: https://listmonk.{{ .cloud.domain }}
|
|
||||||
tlsSecretName: wildcard-wild-cloud-tls
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
storage: 1Gi
|
storage: 1Gi
|
||||||
dbHost: postgres.postgres.svc.cluster.local
|
db:
|
||||||
dbPort: 5432
|
host: '{{ .apps.postgres.host }}'
|
||||||
dbName: listmonk
|
port: '{{ .apps.postgres.port }}'
|
||||||
dbUser: listmonk
|
name: listmonk
|
||||||
dbSSLMode: disable
|
user: listmonk
|
||||||
timezone: UTC
|
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: dbPassword
|
- key: dbPassword
|
||||||
- key: dbUrl
|
- key: dbUrl
|
||||||
default: 'postgres://{{ .app.dbUser }}:{{ .secrets.dbPassword }}@{{ .app.dbHost }}:{{ .app.dbPort }}/{{ .app.dbName }}?sslmode={{ .app.dbSSLMode }}'
|
default: 'postgres://{{ .app.db.user }}:{{ .secrets.dbPassword }}@{{ .app.db.host }}:{{ .app.db.port }}/{{ .app.db.name }}?sslmode=disable'
|
||||||
requiredSecrets:
|
requiredSecrets:
|
||||||
- postgres.password
|
- postgres.password
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ spec:
|
|||||||
restartPolicy: OnFailure
|
restartPolicy: OnFailure
|
||||||
containers:
|
containers:
|
||||||
- name: db-init
|
- name: db-init
|
||||||
image: {{ .image }}
|
image: loomio/loomio:latest
|
||||||
command:
|
command:
|
||||||
- /bin/bash
|
- /bin/bash
|
||||||
- -c
|
- -c
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: worker
|
- name: worker
|
||||||
image: {{ .workerImage }}
|
image: loomio/loomio:latest
|
||||||
env:
|
env:
|
||||||
- name: TASK
|
- name: TASK
|
||||||
value: worker
|
value: worker
|
||||||
@@ -46,7 +46,7 @@ spec:
|
|||||||
name: loomio-secrets
|
name: loomio-secrets
|
||||||
key: secretCookieToken
|
key: secretCookieToken
|
||||||
- name: ACTIVE_STORAGE_SERVICE
|
- name: ACTIVE_STORAGE_SERVICE
|
||||||
value: {{ .activeStorageService }}
|
value: local
|
||||||
- name: SMTP_AUTH
|
- name: SMTP_AUTH
|
||||||
value: {{ .smtp.auth }}
|
value: {{ .smtp.auth }}
|
||||||
- name: SMTP_DOMAIN
|
- name: SMTP_DOMAIN
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ metadata:
|
|||||||
name: loomio
|
name: loomio
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
component: web
|
component: web
|
||||||
@@ -14,13 +16,13 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: loomio
|
- name: loomio
|
||||||
image: {{ .image }}
|
image: loomio/loomio:latest
|
||||||
command:
|
command:
|
||||||
- /bin/bash
|
- /bin/bash
|
||||||
- -c
|
- -c
|
||||||
- |
|
- |
|
||||||
set -e
|
set -e
|
||||||
bundle exec rake db:schema:load db:seed
|
bundle exec rake db:migrate db:seed
|
||||||
bundle exec thrust puma -C config/puma.rb
|
bundle exec thrust puma -C config/puma.rb
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 3000
|
- containerPort: 3000
|
||||||
@@ -54,17 +56,17 @@ spec:
|
|||||||
name: loomio-secrets
|
name: loomio-secrets
|
||||||
key: secretCookieToken
|
key: secretCookieToken
|
||||||
- name: FORCE_SSL
|
- name: FORCE_SSL
|
||||||
value: "{{ .forceSSL }}"
|
value: "1"
|
||||||
- name: USE_RACK_ATTACK
|
- name: USE_RACK_ATTACK
|
||||||
value: "{{ .useRackAttack }}"
|
value: "1"
|
||||||
- name: PUMA_WORKERS
|
- name: PUMA_WORKERS
|
||||||
value: "{{ .pumaWorkers }}"
|
value: "2"
|
||||||
- name: MIN_THREADS
|
- name: MIN_THREADS
|
||||||
value: "{{ .minThreads }}"
|
value: "5"
|
||||||
- name: MAX_THREADS
|
- name: MAX_THREADS
|
||||||
value: "{{ .maxThreads }}"
|
value: "5"
|
||||||
- name: ACTIVE_STORAGE_SERVICE
|
- name: ACTIVE_STORAGE_SERVICE
|
||||||
value: {{ .activeStorageService }}
|
value: local
|
||||||
- name: SMTP_AUTH
|
- name: SMTP_AUTH
|
||||||
value: {{ .smtp.auth }}
|
value: {{ .smtp.auth }}
|
||||||
- name: SMTP_DOMAIN
|
- name: SMTP_DOMAIN
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: loomio
|
name: loomio
|
||||||
is: loomio
|
is: loomio
|
||||||
description: Loomio is a collaborative decision-making tool that makes it easy for groups to make decisions together
|
description: Loomio is a collaborative decision-making tool that makes it easy for groups to make decisions together
|
||||||
version: 3.0.11
|
version: 3.0.11-2
|
||||||
icon: https://www.loomio.com/brand/logo_gold.svg
|
icon: https://www.loomio.com/brand/logo_gold.svg
|
||||||
requires:
|
requires:
|
||||||
- name: postgres
|
- name: postgres
|
||||||
@@ -10,39 +10,30 @@ requires:
|
|||||||
- name: smtp
|
- name: smtp
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: loomio
|
namespace: loomio
|
||||||
externalDnsDomain: "{{ .cloud.domain }}"
|
externalDnsDomain: '{{ .cloud.domain }}'
|
||||||
image: loomio/loomio:latest
|
|
||||||
workerImage: loomio/loomio:latest
|
|
||||||
appName: Loomio
|
appName: Loomio
|
||||||
domain: "loomio.{{ .cloud.domain }}"
|
domain: 'loomio.{{ .cloud.domain }}'
|
||||||
tlsSecretName: wildcard-wild-cloud-tls
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
port: 3000
|
|
||||||
storage:
|
storage:
|
||||||
uploads: 5Gi
|
uploads: 5Gi
|
||||||
files: 5Gi
|
files: 5Gi
|
||||||
plugins: 1Gi
|
plugins: 1Gi
|
||||||
redisUrl: "{{ .apps.redis.uri }}"
|
redisUrl: '{{ .apps.redis.uri }}'
|
||||||
adminEmail: "{{ .operator.email }}"
|
adminEmail: '{{ .operator.email }}'
|
||||||
supportEmail: "{{ .operator.email }}"
|
supportEmail: '{{ .operator.email }}'
|
||||||
forceSSL: "1"
|
|
||||||
useRackAttack: "1"
|
|
||||||
pumaWorkers: "2"
|
|
||||||
minThreads: "5"
|
|
||||||
maxThreads: "5"
|
|
||||||
activeStorageService: local
|
|
||||||
db:
|
db:
|
||||||
name: loomio
|
name: loomio
|
||||||
user: loomio
|
user: loomio
|
||||||
host: "{{ .apps.postgres.host }}"
|
host: '{{ .apps.postgres.host }}'
|
||||||
port: "{{ .apps.postgres.port }}"
|
port: '{{ .apps.postgres.port }}'
|
||||||
smtp:
|
smtp:
|
||||||
auth: plain
|
auth: plain
|
||||||
domain: "{{ .cloud.domain }}"
|
domain: '{{ .cloud.domain }}'
|
||||||
host: "{{ .apps.smtp.host }}"
|
host: '{{ .apps.smtp.host }}'
|
||||||
port: "{{ .apps.smtp.port }}"
|
port: '{{ .apps.smtp.port }}'
|
||||||
user: "{{ .apps.smtp.user }}"
|
user: '{{ .apps.smtp.user }}'
|
||||||
tls: "{{ .apps.smtp.tls }}"
|
tls: '{{ .apps.smtp.tls }}'
|
||||||
from: "{{ .apps.smtp.from }}"
|
from: '{{ .apps.smtp.from }}'
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: dbPassword
|
- key: dbPassword
|
||||||
default: "{{ random.AlphaNum 32 }}"
|
default: "{{ random.AlphaNum 32 }}"
|
||||||
|
|||||||
@@ -27,9 +27,9 @@ spec:
|
|||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
env:
|
env:
|
||||||
- name: PGHOST
|
- name: PGHOST
|
||||||
value: "{{ .dbHostname }}"
|
value: "{{ .db.host }}"
|
||||||
- name: PGPORT
|
- name: PGPORT
|
||||||
value: "{{ .dbPort }}"
|
value: "{{ .db.port }}"
|
||||||
- name: PGUSER
|
- name: PGUSER
|
||||||
value: postgres
|
value: postgres
|
||||||
- name: PGPASSWORD
|
- name: PGPASSWORD
|
||||||
@@ -38,9 +38,9 @@ spec:
|
|||||||
name: mastodon-secrets
|
name: mastodon-secrets
|
||||||
key: postgres.password
|
key: postgres.password
|
||||||
- name: MASTODON_DB
|
- name: MASTODON_DB
|
||||||
value: "{{ .dbName }}"
|
value: "{{ .db.name }}"
|
||||||
- name: MASTODON_USER
|
- name: MASTODON_USER
|
||||||
value: "{{ .dbUsername }}"
|
value: "{{ .db.user }}"
|
||||||
- name: MASTODON_PASSWORD
|
- name: MASTODON_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -108,7 +108,7 @@ spec:
|
|||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- name: db-migrate
|
- name: db-migrate
|
||||||
image: {{ .image }}
|
image: ghcr.io/mastodon/mastodon:v4.5.3
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -150,22 +150,22 @@ spec:
|
|||||||
name: mastodon-secrets
|
name: mastodon-secrets
|
||||||
key: activeRecordKeyDerivationSalt
|
key: activeRecordKeyDerivationSalt
|
||||||
- name: DB_HOST
|
- name: DB_HOST
|
||||||
value: "{{ .dbHostname }}"
|
value: "{{ .db.host }}"
|
||||||
- name: DB_PORT
|
- name: DB_PORT
|
||||||
value: "{{ .dbPort }}"
|
value: "{{ .db.port }}"
|
||||||
- name: DB_NAME
|
- name: DB_NAME
|
||||||
value: "{{ .dbName }}"
|
value: "{{ .db.name }}"
|
||||||
- name: DB_USER
|
- name: DB_USER
|
||||||
value: "{{ .dbUsername }}"
|
value: "{{ .db.user }}"
|
||||||
- name: DB_PASS
|
- name: DB_PASS
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: mastodon-secrets
|
name: mastodon-secrets
|
||||||
key: dbPassword
|
key: dbPassword
|
||||||
- name: REDIS_HOST
|
- name: REDIS_HOST
|
||||||
value: "{{ .redisHostname }}"
|
value: "{{ .redis.host }}"
|
||||||
- name: REDIS_PORT
|
- name: REDIS_PORT
|
||||||
value: "{{ .redisPort }}"
|
value: "{{ .redis.port }}"
|
||||||
- name: REDIS_PASSWORD
|
- name: REDIS_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ spec:
|
|||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- name: sidekiq
|
- name: sidekiq
|
||||||
image: {{ .image }}
|
image: ghcr.io/mastodon/mastodon:v4.5.3
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -33,7 +33,7 @@ spec:
|
|||||||
- exec
|
- exec
|
||||||
- sidekiq
|
- sidekiq
|
||||||
- -c
|
- -c
|
||||||
- "{{ .sidekiq.concurrency }}"
|
- "25"
|
||||||
- -q
|
- -q
|
||||||
- default,8
|
- default,8
|
||||||
- -q
|
- -q
|
||||||
@@ -91,13 +91,13 @@ spec:
|
|||||||
name: mastodon-secrets
|
name: mastodon-secrets
|
||||||
key: activeRecordKeyDerivationSalt
|
key: activeRecordKeyDerivationSalt
|
||||||
- name: DB_HOST
|
- name: DB_HOST
|
||||||
value: "{{ .dbHostname }}"
|
value: "{{ .db.host }}"
|
||||||
- name: DB_PORT
|
- name: DB_PORT
|
||||||
value: "{{ .dbPort }}"
|
value: "{{ .db.port }}"
|
||||||
- name: DB_NAME
|
- name: DB_NAME
|
||||||
value: "{{ .dbName }}"
|
value: "{{ .db.name }}"
|
||||||
- name: DB_USER
|
- name: DB_USER
|
||||||
value: "{{ .dbUsername }}"
|
value: "{{ .db.user }}"
|
||||||
- name: DB_PASS
|
- name: DB_PASS
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -109,9 +109,9 @@ spec:
|
|||||||
name: mastodon-secrets
|
name: mastodon-secrets
|
||||||
key: postgres.password
|
key: postgres.password
|
||||||
- name: REDIS_HOST
|
- name: REDIS_HOST
|
||||||
value: "{{ .redisHostname }}"
|
value: "{{ .redis.host }}"
|
||||||
- name: REDIS_PORT
|
- name: REDIS_PORT
|
||||||
value: "{{ .redisPort }}"
|
value: "{{ .redis.port }}"
|
||||||
- name: REDIS_PASSWORD
|
- name: REDIS_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -131,9 +131,9 @@ spec:
|
|||||||
- name: SMTP_FROM_ADDRESS
|
- name: SMTP_FROM_ADDRESS
|
||||||
value: "{{ .smtp.from }}"
|
value: "{{ .smtp.from }}"
|
||||||
- name: SMTP_AUTH_METHOD
|
- name: SMTP_AUTH_METHOD
|
||||||
value: "{{ .smtp.authMethod }}"
|
value: "plain"
|
||||||
- name: SMTP_ENABLE_STARTTLS
|
- name: SMTP_ENABLE_STARTTLS
|
||||||
value: "{{ .smtp.enableStarttls }}"
|
value: "auto"
|
||||||
- name: SMTP_TLS
|
- name: SMTP_TLS
|
||||||
value: "{{ .smtp.tls }}"
|
value: "{{ .smtp.tls }}"
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ spec:
|
|||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- name: streaming
|
- name: streaming
|
||||||
image: {{ .streamingImage }}
|
image: ghcr.io/mastodon/mastodon-streaming:v4.5.3
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -30,32 +30,32 @@ spec:
|
|||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
ports:
|
ports:
|
||||||
- name: streaming
|
- name: streaming
|
||||||
containerPort: {{ .streamingPort }}
|
containerPort: 4000
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
env:
|
env:
|
||||||
- name: NODE_ENV
|
- name: NODE_ENV
|
||||||
value: production
|
value: production
|
||||||
- name: PORT
|
- name: PORT
|
||||||
value: "{{ .streamingPort }}"
|
value: "4000"
|
||||||
- name: STREAMING_CLUSTER_NUM
|
- name: STREAMING_CLUSTER_NUM
|
||||||
value: "1"
|
value: "1"
|
||||||
- name: DB_HOST
|
- name: DB_HOST
|
||||||
value: "{{ .dbHostname }}"
|
value: "{{ .db.host }}"
|
||||||
- name: DB_PORT
|
- name: DB_PORT
|
||||||
value: "{{ .dbPort }}"
|
value: "{{ .db.port }}"
|
||||||
- name: DB_NAME
|
- name: DB_NAME
|
||||||
value: "{{ .dbName }}"
|
value: "{{ .db.name }}"
|
||||||
- name: DB_USER
|
- name: DB_USER
|
||||||
value: "{{ .dbUsername }}"
|
value: "{{ .db.user }}"
|
||||||
- name: DB_PASS
|
- name: DB_PASS
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: mastodon-secrets
|
name: mastodon-secrets
|
||||||
key: dbPassword
|
key: dbPassword
|
||||||
- name: REDIS_HOST
|
- name: REDIS_HOST
|
||||||
value: "{{ .redisHostname }}"
|
value: "{{ .redis.host }}"
|
||||||
- name: REDIS_PORT
|
- name: REDIS_PORT
|
||||||
value: "{{ .redisPort }}"
|
value: "{{ .redis.port }}"
|
||||||
- name: REDIS_PASSWORD
|
- name: REDIS_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ spec:
|
|||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: {{ .image }}
|
image: ghcr.io/mastodon/mastodon:v4.5.3
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -36,7 +36,7 @@ spec:
|
|||||||
- config/puma.rb
|
- config/puma.rb
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
containerPort: {{ .webPort }}
|
containerPort: 3000
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
env:
|
env:
|
||||||
- name: LOCAL_DOMAIN
|
- name: LOCAL_DOMAIN
|
||||||
@@ -85,13 +85,13 @@ spec:
|
|||||||
name: mastodon-secrets
|
name: mastodon-secrets
|
||||||
key: activeRecordKeyDerivationSalt
|
key: activeRecordKeyDerivationSalt
|
||||||
- name: DB_HOST
|
- name: DB_HOST
|
||||||
value: "{{ .dbHostname }}"
|
value: "{{ .db.host }}"
|
||||||
- name: DB_PORT
|
- name: DB_PORT
|
||||||
value: "{{ .dbPort }}"
|
value: "{{ .db.port }}"
|
||||||
- name: DB_NAME
|
- name: DB_NAME
|
||||||
value: "{{ .dbName }}"
|
value: "{{ .db.name }}"
|
||||||
- name: DB_USER
|
- name: DB_USER
|
||||||
value: "{{ .dbUsername }}"
|
value: "{{ .db.user }}"
|
||||||
- name: DB_PASS
|
- name: DB_PASS
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -103,9 +103,9 @@ spec:
|
|||||||
name: mastodon-secrets
|
name: mastodon-secrets
|
||||||
key: postgres.password
|
key: postgres.password
|
||||||
- name: REDIS_HOST
|
- name: REDIS_HOST
|
||||||
value: "{{ .redisHostname }}"
|
value: "{{ .redis.host }}"
|
||||||
- name: REDIS_PORT
|
- name: REDIS_PORT
|
||||||
value: "{{ .redisPort }}"
|
value: "{{ .redis.port }}"
|
||||||
- name: REDIS_PASSWORD
|
- name: REDIS_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -125,9 +125,9 @@ spec:
|
|||||||
- name: SMTP_FROM_ADDRESS
|
- name: SMTP_FROM_ADDRESS
|
||||||
value: "{{ .smtp.from }}"
|
value: "{{ .smtp.from }}"
|
||||||
- name: SMTP_AUTH_METHOD
|
- name: SMTP_AUTH_METHOD
|
||||||
value: "{{ .smtp.authMethod }}"
|
value: "plain"
|
||||||
- name: SMTP_ENABLE_STARTTLS
|
- name: SMTP_ENABLE_STARTTLS
|
||||||
value: "{{ .smtp.enableStarttls }}"
|
value: "auto"
|
||||||
- name: SMTP_TLS
|
- name: SMTP_TLS
|
||||||
value: "{{ .smtp.tls }}"
|
value: "{{ .smtp.tls }}"
|
||||||
- name: STREAMING_API_BASE_URL
|
- name: STREAMING_API_BASE_URL
|
||||||
|
|||||||
@@ -23,11 +23,11 @@ spec:
|
|||||||
service:
|
service:
|
||||||
name: mastodon-streaming
|
name: mastodon-streaming
|
||||||
port:
|
port:
|
||||||
number: {{ .streamingPort }}
|
number: 4000
|
||||||
- path: /
|
- path: /
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
backend:
|
backend:
|
||||||
service:
|
service:
|
||||||
name: mastodon-web
|
name: mastodon-web
|
||||||
port:
|
port:
|
||||||
number: {{ .webPort }}
|
number: 3000
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: mastodon
|
name: mastodon
|
||||||
is: mastodon
|
is: mastodon
|
||||||
description: Mastodon is a free, open-source social network server based on ActivityPub.
|
description: Mastodon is a free, open-source social network server based on ActivityPub.
|
||||||
version: 4.5.3
|
version: 4.5.3-2
|
||||||
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/mastodon.svg
|
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/mastodon.svg
|
||||||
requires:
|
requires:
|
||||||
- name: postgres
|
- name: postgres
|
||||||
@@ -9,43 +9,30 @@ requires:
|
|||||||
- name: smtp
|
- name: smtp
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: mastodon
|
namespace: mastodon
|
||||||
externalDnsDomain: "{{ .cloud.domain }}"
|
externalDnsDomain: '{{ .cloud.domain }}'
|
||||||
timezone: UTC
|
|
||||||
image: ghcr.io/mastodon/mastodon:v4.5.3
|
|
||||||
streamingImage: ghcr.io/mastodon/mastodon-streaming:v4.5.3
|
|
||||||
domain: mastodon.{{ .cloud.domain }}
|
domain: mastodon.{{ .cloud.domain }}
|
||||||
locale: en
|
locale: en
|
||||||
singleUserMode: false
|
singleUserMode: false
|
||||||
# Database configuration
|
|
||||||
dbHostname: "{{ .apps.postgres.host }}"
|
|
||||||
dbPort: "{{ .apps.postgres.port }}"
|
|
||||||
dbName: mastodon_production
|
|
||||||
dbUsername: mastodon
|
|
||||||
# Redis configuration
|
|
||||||
redisHostname: "{{ .apps.redis.host }}"
|
|
||||||
redisPort: "{{ .apps.redis.port }}"
|
|
||||||
# Ports
|
|
||||||
webPort: 3000
|
|
||||||
streamingPort: 4000
|
|
||||||
# Storage
|
|
||||||
assetsStorage: 10Gi
|
assetsStorage: 10Gi
|
||||||
systemStorage: 100Gi
|
systemStorage: 100Gi
|
||||||
# SMTP configuration
|
|
||||||
smtp:
|
|
||||||
enabled: "{{ .apps.smtp.host | ternary true false }}"
|
|
||||||
server: "{{ .apps.smtp.host }}"
|
|
||||||
port: "{{ .apps.smtp.port }}"
|
|
||||||
from: notifications@{{ .cloud.domain }}
|
|
||||||
user: "{{ .apps.smtp.user }}"
|
|
||||||
authMethod: plain
|
|
||||||
enableStarttls: auto
|
|
||||||
tls: "{{ .apps.smtp.tls }}"
|
|
||||||
# TLS
|
|
||||||
tlsSecretName: wildcard-wild-cloud-tls
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
# Sidekiq configuration
|
|
||||||
sidekiq:
|
sidekiq:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
concurrency: 25
|
db:
|
||||||
|
host: '{{ .apps.postgres.host }}'
|
||||||
|
port: '{{ .apps.postgres.port }}'
|
||||||
|
name: mastodon_production
|
||||||
|
user: mastodon
|
||||||
|
redis:
|
||||||
|
host: '{{ .apps.redis.host }}'
|
||||||
|
port: '{{ .apps.redis.port }}'
|
||||||
|
smtp:
|
||||||
|
enabled: '{{ .apps.smtp.host | ternary true false }}'
|
||||||
|
server: '{{ .apps.smtp.host }}'
|
||||||
|
port: '{{ .apps.smtp.port }}'
|
||||||
|
from: notifications@{{ .cloud.domain }}
|
||||||
|
user: '{{ .apps.smtp.user }}'
|
||||||
|
tls: '{{ .apps.smtp.tls }}'
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: secretKeyBase
|
- key: secretKeyBase
|
||||||
default: "{{ random.AlphaNum 128 }}"
|
default: "{{ random.AlphaNum 128 }}"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
ports:
|
ports:
|
||||||
- port: {{ .streamingPort }}
|
- port: 4000
|
||||||
targetPort: streaming
|
targetPort: streaming
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
name: streaming
|
name: streaming
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
ports:
|
ports:
|
||||||
- port: {{ .webPort }}
|
- port: 3000
|
||||||
targetPort: http
|
targetPort: http
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
name: http
|
name: http
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ spec:
|
|||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- name: vapid-init
|
- name: vapid-init
|
||||||
image: {{ .image }}
|
image: ghcr.io/mastodon/mastodon:v4.5.3
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ data:
|
|||||||
public_baseurl: https://{{ .domain }}
|
public_baseurl: https://{{ .domain }}
|
||||||
|
|
||||||
listeners:
|
listeners:
|
||||||
- port: {{ .port }}
|
- port: 8008
|
||||||
tls: false
|
tls: false
|
||||||
type: http
|
type: http
|
||||||
x_forwarded: true
|
x_forwarded: true
|
||||||
@@ -20,17 +20,17 @@ data:
|
|||||||
database:
|
database:
|
||||||
name: psycopg2
|
name: psycopg2
|
||||||
args:
|
args:
|
||||||
user: {{ .dbUsername }}
|
user: {{ .db.user }}
|
||||||
password: ${DB_PASSWORD}
|
password: ${DB_PASSWORD}
|
||||||
database: {{ .dbName }}
|
database: {{ .db.name }}
|
||||||
host: {{ .dbHostname }}
|
host: {{ .db.host }}
|
||||||
port: 5432
|
port: 5432
|
||||||
cp_min: 5
|
cp_min: 5
|
||||||
cp_max: 10
|
cp_max: 10
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
enabled: true
|
enabled: true
|
||||||
host: {{ .redisHostname }}
|
host: {{ .redis.host }}
|
||||||
port: 6379
|
port: 6379
|
||||||
password: ${REDIS_PASSWORD}
|
password: ${REDIS_PASSWORD}
|
||||||
|
|
||||||
|
|||||||
@@ -33,11 +33,11 @@ spec:
|
|||||||
name: matrix-secrets
|
name: matrix-secrets
|
||||||
key: postgres.password
|
key: postgres.password
|
||||||
- name: DB_HOSTNAME
|
- name: DB_HOSTNAME
|
||||||
value: "{{ .dbHostname }}"
|
value: "{{ .db.host }}"
|
||||||
- name: DB_DATABASE_NAME
|
- name: DB_DATABASE_NAME
|
||||||
value: "{{ .dbName }}"
|
value: "{{ .db.name }}"
|
||||||
- name: DB_USERNAME
|
- name: DB_USERNAME
|
||||||
value: "{{ .dbUsername }}"
|
value: "{{ .db.user }}"
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
initContainers:
|
initContainers:
|
||||||
- name: generate-signing-key
|
- name: generate-signing-key
|
||||||
image: "{{ .image }}"
|
image: "matrixdotorg/synapse:v1.144.0"
|
||||||
command: ["/bin/sh", "-c"]
|
command: ["/bin/sh", "-c"]
|
||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
@@ -80,7 +80,7 @@ spec:
|
|||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
containers:
|
containers:
|
||||||
- name: synapse
|
- name: synapse
|
||||||
image: "{{ .image }}"
|
image: "matrixdotorg/synapse:v1.144.0"
|
||||||
command: ["/bin/sh", "-c"]
|
command: ["/bin/sh", "-c"]
|
||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
@@ -127,17 +127,17 @@ spec:
|
|||||||
# Start Synapse with the processed config
|
# Start Synapse with the processed config
|
||||||
exec /start.py
|
exec /start.py
|
||||||
ports:
|
ports:
|
||||||
- containerPort: {{ .port }}
|
- containerPort: 8008
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
name: http
|
name: http
|
||||||
- containerPort: {{ .federationPort }}
|
- containerPort: 8448
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
name: federation
|
name: federation
|
||||||
env:
|
env:
|
||||||
- name: SYNAPSE_CONFIG_PATH
|
- name: SYNAPSE_CONFIG_PATH
|
||||||
value: /data/homeserver.yaml
|
value: /data/homeserver.yaml
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: "{{ .timezone }}"
|
value: "UTC"
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -179,14 +179,14 @@ spec:
|
|||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /health
|
path: /health
|
||||||
port: {{ .port }}
|
port: 8008
|
||||||
initialDelaySeconds: 60
|
initialDelaySeconds: 60
|
||||||
periodSeconds: 30
|
periodSeconds: 30
|
||||||
timeoutSeconds: 5
|
timeoutSeconds: 5
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /health
|
path: /health
|
||||||
port: {{ .port }}
|
port: 8008
|
||||||
initialDelaySeconds: 30
|
initialDelaySeconds: 30
|
||||||
periodSeconds: 10
|
periodSeconds: 10
|
||||||
timeoutSeconds: 5
|
timeoutSeconds: 5
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ spec:
|
|||||||
service:
|
service:
|
||||||
name: matrix-synapse
|
name: matrix-synapse
|
||||||
port:
|
port:
|
||||||
number: {{ .port }}
|
number: 8008
|
||||||
---
|
---
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
@@ -49,4 +49,4 @@ spec:
|
|||||||
service:
|
service:
|
||||||
name: matrix-synapse
|
name: matrix-synapse
|
||||||
port:
|
port:
|
||||||
number: {{ .federationPort }}
|
number: 8448
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: matrix
|
name: matrix
|
||||||
is: matrix
|
is: matrix
|
||||||
description: Matrix is an open standard for secure, decentralized, real-time communication. This deploys the Synapse homeserver for self-hosted Matrix federation and messaging.
|
description: Matrix is an open standard for secure, decentralized, real-time communication. This deploys the Synapse homeserver for self-hosted Matrix federation and messaging.
|
||||||
version: v1.144.0
|
version: v1.144.0-2
|
||||||
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/matrix.svg
|
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/matrix.svg
|
||||||
requires:
|
requires:
|
||||||
- name: postgres
|
- name: postgres
|
||||||
@@ -10,20 +10,18 @@ requires:
|
|||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: matrix
|
namespace: matrix
|
||||||
externalDnsDomain: '{{ .cloud.domain }}'
|
externalDnsDomain: '{{ .cloud.domain }}'
|
||||||
image: matrixdotorg/synapse:v1.144.0
|
|
||||||
timezone: UTC
|
|
||||||
port: 8008
|
|
||||||
federationPort: 8448
|
|
||||||
storage: 50Gi
|
storage: 50Gi
|
||||||
mediaStorage: 100Gi
|
mediaStorage: 100Gi
|
||||||
serverName: '{{ .cloud.domain }}'
|
serverName: '{{ .cloud.domain }}'
|
||||||
dbHostname: postgres.postgres.svc.cluster.local
|
|
||||||
dbUsername: matrix
|
|
||||||
dbName: matrix
|
|
||||||
redisHostname: redis.redis.svc.cluster.local
|
|
||||||
domain: matrix.{{ .cloud.domain }}
|
domain: matrix.{{ .cloud.domain }}
|
||||||
tlsSecretName: wildcard-wild-cloud-tls
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
enableRegistration: false
|
enableRegistration: false
|
||||||
|
db:
|
||||||
|
host: '{{ .apps.postgres.host }}'
|
||||||
|
name: matrix
|
||||||
|
user: matrix
|
||||||
|
redis:
|
||||||
|
host: '{{ .apps.redis.host }}'
|
||||||
smtp:
|
smtp:
|
||||||
host: '{{ .apps.smtp.host }}'
|
host: '{{ .apps.smtp.host }}'
|
||||||
port: '{{ .apps.smtp.port }}'
|
port: '{{ .apps.smtp.port }}'
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ spec:
|
|||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
port: {{ .port }}
|
port: 8008
|
||||||
targetPort: {{ .port }}
|
targetPort: 8008
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
- name: federation
|
- name: federation
|
||||||
port: {{ .federationPort }}
|
port: 8448
|
||||||
targetPort: {{ .federationPort }}
|
targetPort: 8448
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
selector:
|
selector:
|
||||||
app: matrix-synapse
|
app: matrix-synapse
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ kind: Deployment
|
|||||||
metadata:
|
metadata:
|
||||||
name: memcached
|
name: memcached
|
||||||
spec:
|
spec:
|
||||||
replicas: {{ .replicas }}
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
component: cache
|
component: cache
|
||||||
@@ -14,24 +14,24 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: memcached
|
- name: memcached
|
||||||
image: "{{ .image }}"
|
image: "memcached:1.6.32-alpine"
|
||||||
ports:
|
ports:
|
||||||
- containerPort: {{ .port }}
|
- containerPort: 11211
|
||||||
name: memcached
|
name: memcached
|
||||||
args:
|
args:
|
||||||
- -m
|
- -m
|
||||||
- "{{ .memoryLimit }}"
|
- "{{ .memoryLimit }}"
|
||||||
- -c
|
- -c
|
||||||
- "{{ .maxConnections }}"
|
- "1024"
|
||||||
- -p
|
- -p
|
||||||
- "{{ .port }}"
|
- "11211"
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
memory: "{{ .resources.requests.memory }}"
|
memory: 64Mi
|
||||||
cpu: "{{ .resources.requests.cpu }}"
|
cpu: 100m
|
||||||
limits:
|
limits:
|
||||||
memory: "{{ .resources.limits.memory }}"
|
memory: 128Mi
|
||||||
cpu: "{{ .resources.limits.cpu }}"
|
cpu: 200m
|
||||||
securityContext:
|
securityContext:
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
runAsUser: 11211
|
runAsUser: 11211
|
||||||
|
|||||||
@@ -2,21 +2,11 @@ name: memcached
|
|||||||
is: memcached
|
is: memcached
|
||||||
description: Memcached is an in-memory key-value store for small chunks of arbitrary
|
description: Memcached is an in-memory key-value store for small chunks of arbitrary
|
||||||
data, commonly used as a cache layer.
|
data, commonly used as a cache layer.
|
||||||
version: 1.6.32
|
version: 1.6.32-1
|
||||||
icon: https://www.vectorlogo.zone/logos/memcached/memcached-icon.svg
|
icon: https://www.vectorlogo.zone/logos/memcached/memcached-icon.svg
|
||||||
requires: []
|
requires: []
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: memcached
|
namespace: memcached
|
||||||
image: memcached:1.6.32-alpine
|
host: memcached.memcached.svc.cluster.local
|
||||||
port: 11211
|
|
||||||
memoryLimit: 64m
|
memoryLimit: 64m
|
||||||
maxConnections: 1024
|
|
||||||
replicas: 1
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
memory: 64Mi
|
|
||||||
cpu: 100m
|
|
||||||
limits:
|
|
||||||
memory: 128Mi
|
|
||||||
cpu: 200m
|
|
||||||
defaultSecrets: []
|
defaultSecrets: []
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ metadata:
|
|||||||
name: memcached
|
name: memcached
|
||||||
spec:
|
spec:
|
||||||
ports:
|
ports:
|
||||||
- port: {{ .port }}
|
- port: 11211
|
||||||
targetPort: {{ .port }}
|
targetPort: 11211
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
name: memcached
|
name: memcached
|
||||||
selector:
|
selector:
|
||||||
|
|||||||
@@ -1,20 +1,15 @@
|
|||||||
name: mysql
|
name: mysql
|
||||||
is: mysql
|
is: mysql
|
||||||
description: MySQL is an open-source relational database management system
|
description: MySQL is an open-source relational database management system
|
||||||
version: 9.1.0
|
version: 9.1.0-1
|
||||||
icon: https://www.mysql.com/common/logos/logo-mysql-170x115.png
|
icon: https://www.mysql.com/common/logos/logo-mysql-170x115.png
|
||||||
requires: []
|
requires: []
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: mysql
|
namespace: mysql
|
||||||
externalDnsDomain: '{{ .cloud.domain }}'
|
host: mysql.mysql.svc.cluster.local
|
||||||
image: mysql:9.1.0
|
|
||||||
port: 3306
|
|
||||||
storage: 20Gi
|
storage: 20Gi
|
||||||
dbName: mysql
|
dbName: mysql
|
||||||
rootUser: root
|
|
||||||
user: mysql
|
user: mysql
|
||||||
timezone: UTC
|
|
||||||
enableSSL: false
|
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: rootPassword
|
- key: rootPassword
|
||||||
- key: password
|
- key: password
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ spec:
|
|||||||
publishNotReadyAddresses: true
|
publishNotReadyAddresses: true
|
||||||
ports:
|
ports:
|
||||||
- name: mysql
|
- name: mysql
|
||||||
port: {{ .port }}
|
port: 3306
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: mysql
|
targetPort: mysql
|
||||||
selector:
|
selector:
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
ports:
|
ports:
|
||||||
- name: mysql
|
- name: mysql
|
||||||
port: {{ .port }}
|
port: 3306
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: mysql
|
targetPort: mysql
|
||||||
selector:
|
selector:
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ spec:
|
|||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- name: mysql
|
- name: mysql
|
||||||
image: {{ .image }}
|
image: mysql:9.1.0
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
@@ -53,10 +53,10 @@ spec:
|
|||||||
- name: MYSQL_DATABASE
|
- name: MYSQL_DATABASE
|
||||||
value: {{ .dbName }}
|
value: {{ .dbName }}
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: {{ .timezone }}
|
value: UTC
|
||||||
ports:
|
ports:
|
||||||
- name: mysql
|
- name: mysql
|
||||||
containerPort: {{ .port }}
|
containerPort: 3306
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
exec:
|
exec:
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ spec:
|
|||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- name: open-webui
|
- name: open-webui
|
||||||
image: {{ .image }}
|
image: ghcr.io/open-webui/open-webui:v0.9.5
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
@@ -29,12 +29,12 @@ spec:
|
|||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
containerPort: {{ .port }}
|
containerPort: 8080
|
||||||
env:
|
env:
|
||||||
- name: WEBUI_AUTH
|
- name: WEBUI_AUTH
|
||||||
value: "{{ .enableAuth }}"
|
value: "true"
|
||||||
- name: ENABLE_SIGNUP
|
- name: ENABLE_SIGNUP
|
||||||
value: "{{ .enableSignup }}"
|
value: "false"
|
||||||
- name: OPENAI_API_BASE_URL
|
- name: OPENAI_API_BASE_URL
|
||||||
value: "{{ .vllmApiUrl }}"
|
value: "{{ .vllmApiUrl }}"
|
||||||
- name: OPENAI_API_KEY
|
- name: OPENAI_API_KEY
|
||||||
|
|||||||
@@ -3,19 +3,15 @@ is: open-webui
|
|||||||
description: Open WebUI is a comprehensive, open-source web interface for AI models.
|
description: Open WebUI is a comprehensive, open-source web interface for AI models.
|
||||||
Features a user-friendly design, supports various LLM runners, and operates entirely
|
Features a user-friendly design, supports various LLM runners, and operates entirely
|
||||||
offline. Perfect for creating a ChatGPT-like experience with local or hosted models.
|
offline. Perfect for creating a ChatGPT-like experience with local or hosted models.
|
||||||
version: 0.9.5
|
version: 0.9.5-1
|
||||||
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/open-webui.svg
|
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/open-webui.svg
|
||||||
requires: []
|
requires: []
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: open-webui
|
namespace: open-webui
|
||||||
externalDnsDomain: '{{ .cloud.domain }}'
|
externalDnsDomain: '{{ .cloud.domain }}'
|
||||||
image: ghcr.io/open-webui/open-webui:v0.9.5
|
|
||||||
port: 8080
|
|
||||||
storage: 10Gi
|
storage: 10Gi
|
||||||
domain: chat.{{ .cloud.domain }}
|
domain: chat.{{ .cloud.domain }}
|
||||||
vllmApiUrl: http://vllm-service.llm.svc.cluster.local:8000/v1
|
vllmApiUrl: http://vllm-service.llm.svc.cluster.local:8000/v1
|
||||||
enableAuth: true
|
|
||||||
enableSignup: false
|
|
||||||
adminEmail: '{{ .operator.email }}'
|
adminEmail: '{{ .operator.email }}'
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: secretKey
|
- key: secretKey
|
||||||
|
|||||||
@@ -5,19 +5,19 @@ kind: "ConfigMap"
|
|||||||
metadata:
|
metadata:
|
||||||
name: "openproject-core"
|
name: "openproject-core"
|
||||||
data:
|
data:
|
||||||
DATABASE_HOST: "{{ .dbHostname }}"
|
DATABASE_HOST: "{{ .db.host }}"
|
||||||
DATABASE_PORT: "5432"
|
DATABASE_PORT: "{{ .db.port }}"
|
||||||
DATABASE_NAME: "{{ .dbName }}"
|
DATABASE_NAME: "{{ .db.name }}"
|
||||||
DATABASE_USERNAME: "{{ .dbUsername }}"
|
DATABASE_USERNAME: "{{ .db.user }}"
|
||||||
DATABASE_URL: "postgresql://{{ .dbUsername }}@{{ .dbHostname }}:5432/{{ .dbName }}"
|
DATABASE_URL: "postgresql://{{ .db.user }}@{{ .db.host }}:{{ .db.port }}/{{ .db.name }}"
|
||||||
OPENPROJECT_SEED_ADMIN_USER_PASSWORD_RESET: "{{ .adminPasswordReset }}"
|
OPENPROJECT_SEED_ADMIN_USER_PASSWORD_RESET: "true"
|
||||||
OPENPROJECT_SEED_ADMIN_USER_NAME: "{{ .adminUserName }}"
|
OPENPROJECT_SEED_ADMIN_USER_NAME: "{{ .adminUserName }}"
|
||||||
OPENPROJECT_SEED_ADMIN_USER_MAIL: "{{ .adminUserEmail }}"
|
OPENPROJECT_SEED_ADMIN_USER_MAIL: "{{ .adminUserEmail }}"
|
||||||
OPENPROJECT_HTTPS: "{{ .https }}"
|
OPENPROJECT_HTTPS: "true"
|
||||||
OPENPROJECT_SEED_LOCALE: "{{ .seedLocale }}"
|
OPENPROJECT_SEED_LOCALE: "en"
|
||||||
OPENPROJECT_HOST__NAME: "{{ .domain }}"
|
OPENPROJECT_HOST__NAME: "{{ .domain }}"
|
||||||
OPENPROJECT_HSTS: "{{ .hsts }}"
|
OPENPROJECT_HSTS: "true"
|
||||||
OPENPROJECT_RAILS__CACHE__STORE: "{{ .cacheStore }}"
|
OPENPROJECT_RAILS__CACHE__STORE: "memcache"
|
||||||
OPENPROJECT_RAILS__RELATIVE__URL__ROOT: "{{ .railsRelativeUrlRoot }}"
|
OPENPROJECT_RAILS__RELATIVE__URL__ROOT: ""
|
||||||
POSTGRES_STATEMENT_TIMEOUT: "{{ .postgresStatementTimeout }}"
|
POSTGRES_STATEMENT_TIMEOUT: "120s"
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -5,5 +5,5 @@ kind: "ConfigMap"
|
|||||||
metadata:
|
metadata:
|
||||||
name: "openproject-memcached"
|
name: "openproject-memcached"
|
||||||
data:
|
data:
|
||||||
OPENPROJECT_CACHE__MEMCACHE__SERVER: "{{ .memcachedHostname }}:{{ .memcachedPort }}"
|
OPENPROJECT_CACHE__MEMCACHE__SERVER: "{{ .memcached.host }}:{{ .memcached.port }}"
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -38,11 +38,11 @@ spec:
|
|||||||
name: postgres-secrets
|
name: postgres-secrets
|
||||||
key: password
|
key: password
|
||||||
- name: DB_HOSTNAME
|
- name: DB_HOSTNAME
|
||||||
value: "{{ .dbHostname }}"
|
value: "{{ .db.host }}"
|
||||||
- name: DB_DATABASE_NAME
|
- name: DB_DATABASE_NAME
|
||||||
value: "{{ .dbName }}"
|
value: "{{ .db.name }}"
|
||||||
- name: DB_USERNAME
|
- name: DB_USERNAME
|
||||||
value: "{{ .dbUsername }}"
|
value: "{{ .db.user }}"
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ name: openproject
|
|||||||
is: openproject
|
is: openproject
|
||||||
description: OpenProject is an open-source project management software that provides
|
description: OpenProject is an open-source project management software that provides
|
||||||
comprehensive features for project planning, tracking, and collaboration.
|
comprehensive features for project planning, tracking, and collaboration.
|
||||||
version: 16.1.1
|
version: 16.1.1-1
|
||||||
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/openproject.svg
|
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/openproject.svg
|
||||||
requires:
|
requires:
|
||||||
- name: postgres
|
- name: postgres
|
||||||
@@ -10,27 +10,19 @@ requires:
|
|||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: openproject
|
namespace: openproject
|
||||||
externalDnsDomain: '{{ .cloud.domain }}'
|
externalDnsDomain: '{{ .cloud.domain }}'
|
||||||
serverImage: openproject/openproject:16.1.1-slim
|
|
||||||
timezone: UTC
|
|
||||||
serverPort: 8080
|
|
||||||
storage: 5Gi
|
storage: 5Gi
|
||||||
dbHostname: postgres.postgres.svc.cluster.local
|
|
||||||
dbUsername: openproject
|
|
||||||
dbName: openproject
|
|
||||||
memcachedHostname: memcached.memcached.svc.cluster.local
|
|
||||||
memcachedPort: 11211
|
|
||||||
domain: openproject.{{ .cloud.domain }}
|
|
||||||
https: true
|
|
||||||
hsts: true
|
|
||||||
seedLocale: en
|
|
||||||
adminUserName: OpenProject Admin
|
adminUserName: OpenProject Admin
|
||||||
adminUserEmail: '{{ .operator.email }}'
|
adminUserEmail: '{{ .operator.email }}'
|
||||||
adminPasswordReset: true
|
domain: openproject.{{ .cloud.domain }}
|
||||||
postgresStatementTimeout: 120s
|
|
||||||
tmpVolumesStorage: 2Gi
|
|
||||||
tlsSecretName: wildcard-wild-cloud-tls
|
tlsSecretName: wildcard-wild-cloud-tls
|
||||||
cacheStore: memcache
|
db:
|
||||||
railsRelativeUrlRoot: ''
|
host: '{{ .apps.postgres.host }}'
|
||||||
|
port: '{{ .apps.postgres.port }}'
|
||||||
|
name: openproject
|
||||||
|
user: openproject
|
||||||
|
memcached:
|
||||||
|
host: '{{ .apps.memcached.host }}'
|
||||||
|
port: '{{ .apps.memcached.port }}'
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: dbPassword
|
- key: dbPassword
|
||||||
- key: adminPassword
|
- key: adminPassword
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ spec:
|
|||||||
accessModes: ["ReadWriteOnce"]
|
accessModes: ["ReadWriteOnce"]
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: {{ .tmpVolumesStorage }}
|
storage: 2Gi
|
||||||
- name: app-tmp
|
- name: app-tmp
|
||||||
# we can't use emptyDir due to the sticky bit / world writable issue
|
# we can't use emptyDir due to the sticky bit / world writable issue
|
||||||
# see: https://github.com/kubernetes/kubernetes/issues/110835
|
# see: https://github.com/kubernetes/kubernetes/issues/110835
|
||||||
@@ -39,7 +39,7 @@ spec:
|
|||||||
accessModes: ["ReadWriteOnce"]
|
accessModes: ["ReadWriteOnce"]
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: {{ .tmpVolumesStorage }}
|
storage: 2Gi
|
||||||
- name: "data"
|
- name: "data"
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: openproject
|
claimName: openproject
|
||||||
@@ -91,7 +91,7 @@ spec:
|
|||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
containers:
|
containers:
|
||||||
- name: seeder
|
- name: seeder
|
||||||
image: "{{ .serverImage }}"
|
image: "openproject/openproject:16.1.1-slim"
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
args:
|
args:
|
||||||
- bash
|
- bash
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ spec:
|
|||||||
accessModes: ["ReadWriteOnce"]
|
accessModes: ["ReadWriteOnce"]
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: {{ .tmpVolumesStorage }}
|
storage: 2Gi
|
||||||
- name: app-tmp
|
- name: app-tmp
|
||||||
# we can't use emptyDir due to the sticky bit / world writable issue
|
# we can't use emptyDir due to the sticky bit / world writable issue
|
||||||
# see: https://github.com/kubernetes/kubernetes/issues/110835
|
# see: https://github.com/kubernetes/kubernetes/issues/110835
|
||||||
@@ -55,7 +55,7 @@ spec:
|
|||||||
accessModes: ["ReadWriteOnce"]
|
accessModes: ["ReadWriteOnce"]
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: {{ .tmpVolumesStorage }}
|
storage: 2Gi
|
||||||
- name: "data"
|
- name: "data"
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: openproject
|
claimName: openproject
|
||||||
@@ -118,7 +118,7 @@ spec:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
image: {{ .serverImage }}
|
image: openproject/openproject:16.1.1-slim
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ spec:
|
|||||||
accessModes: ["ReadWriteOnce"]
|
accessModes: ["ReadWriteOnce"]
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: {{ .tmpVolumesStorage }}
|
storage: 2Gi
|
||||||
- name: app-tmp
|
- name: app-tmp
|
||||||
# we can't use emptyDir due to the sticky bit / world writable issue
|
# we can't use emptyDir due to the sticky bit / world writable issue
|
||||||
# see: https://github.com/kubernetes/kubernetes/issues/110835
|
# see: https://github.com/kubernetes/kubernetes/issues/110835
|
||||||
@@ -55,7 +55,7 @@ spec:
|
|||||||
accessModes: ["ReadWriteOnce"]
|
accessModes: ["ReadWriteOnce"]
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: {{ .tmpVolumesStorage }}
|
storage: 2Gi
|
||||||
- name: "data"
|
- name: "data"
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: openproject
|
claimName: openproject
|
||||||
@@ -118,7 +118,7 @@ spec:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
image: {{ .serverImage }}
|
image: openproject/openproject:16.1.1-slim
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: postgres
|
- name: postgres
|
||||||
image: "{{ .image }}"
|
image: "pgvector/pgvector:pg15"
|
||||||
args:
|
args:
|
||||||
[
|
[
|
||||||
"-c",
|
"-c",
|
||||||
@@ -37,7 +37,7 @@ spec:
|
|||||||
- name: PGDATA
|
- name: PGDATA
|
||||||
value: /var/lib/postgresql/data/pgdata
|
value: /var/lib/postgresql/data/pgdata
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: "{{ .timezone }}"
|
value: "UTC"
|
||||||
- name: POSTGRES_DB
|
- name: POSTGRES_DB
|
||||||
value: "{{ .database }}"
|
value: "{{ .database }}"
|
||||||
- name: POSTGRES_USER
|
- name: POSTGRES_USER
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: postgres
|
name: postgres
|
||||||
is: postgres
|
is: postgres
|
||||||
description: PostgreSQL is a powerful, open source object-relational database system.
|
description: PostgreSQL is a powerful, open source object-relational database system.
|
||||||
version: 1.0.0
|
version: 1.0.0-1
|
||||||
icon: https://www.postgresql.org/media/img/about/press/elephant.png
|
icon: https://www.postgresql.org/media/img/about/press/elephant.png
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: postgres
|
namespace: postgres
|
||||||
@@ -10,7 +10,5 @@ defaultConfig:
|
|||||||
database: postgres
|
database: postgres
|
||||||
user: postgres
|
user: postgres
|
||||||
storage: 10Gi
|
storage: 10Gi
|
||||||
image: pgvector/pgvector:pg15
|
|
||||||
timezone: UTC
|
|
||||||
defaultSecrets:
|
defaultSecrets:
|
||||||
- key: password
|
- key: password
|
||||||
|
|||||||
@@ -5,6 +5,6 @@ metadata:
|
|||||||
name: postgres
|
name: postgres
|
||||||
spec:
|
spec:
|
||||||
ports:
|
ports:
|
||||||
- port: {{ .port }}
|
- port: 5432
|
||||||
selector:
|
selector:
|
||||||
app: postgres
|
app: postgres
|
||||||
|
|||||||
@@ -14,13 +14,11 @@ spec:
|
|||||||
app: redis
|
app: redis
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: "{{ .image }}"
|
- image: "redis:alpine"
|
||||||
name: redis
|
name: redis
|
||||||
ports:
|
ports:
|
||||||
- containerPort: {{ .port }}
|
- containerPort: 6379
|
||||||
env:
|
env:
|
||||||
- name: TZ
|
|
||||||
value: "{{ .timezone }}"
|
|
||||||
- name: REDIS_PASSWORD
|
- name: REDIS_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
name: redis
|
name: redis
|
||||||
is: redis
|
is: redis
|
||||||
description: Redis is an open source, in-memory data structure store, used as a database, cache and message broker.
|
description: Redis is an open source, in-memory data structure store, used as a database, cache and message broker.
|
||||||
version: 1.0.0
|
version: 1.0.0-1
|
||||||
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/redis.svg
|
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/redis.svg
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
namespace: redis
|
namespace: redis
|
||||||
image: redis:alpine
|
|
||||||
timezone: UTC
|
|
||||||
host: redis.redis.svc.cluster.local
|
host: redis.redis.svc.cluster.local
|
||||||
port: 6379
|
port: 6379
|
||||||
uri: redis://{{ .app.host }}:{{ .app.port }}/0
|
uri: redis://{{ .app.host }}:{{ .app.port }}/0
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ metadata:
|
|||||||
app: redis
|
app: redis
|
||||||
spec:
|
spec:
|
||||||
ports:
|
ports:
|
||||||
- port: {{ .port }}
|
- port: 6379
|
||||||
targetPort: {{ .port }}
|
targetPort: 6379
|
||||||
selector:
|
selector:
|
||||||
app: redis
|
app: redis
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ spec:
|
|||||||
nvidia.com/gpu.product: "{{ .gpuProduct }}"
|
nvidia.com/gpu.product: "{{ .gpuProduct }}"
|
||||||
containers:
|
containers:
|
||||||
- name: vllm
|
- name: vllm
|
||||||
image: "{{ .image }}"
|
image: vllm/vllm-openai:v0.5.4
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
@@ -33,11 +33,9 @@ spec:
|
|||||||
args:
|
args:
|
||||||
- --model={{ .model }}
|
- --model={{ .model }}
|
||||||
- --max-model-len={{ .maxModelLen }}
|
- --max-model-len={{ .maxModelLen }}
|
||||||
- --tensor-parallel-size={{ .tensorParallelSize }}
|
- --tensor-parallel-size=1
|
||||||
- --gpu-memory-utilization={{ .gpuMemoryUtilization }}
|
- --gpu-memory-utilization={{ .gpuMemoryUtilization }}
|
||||||
{{- if .apps.vllm.enforceEager }}
|
|
||||||
- --enforce-eager=True
|
- --enforce-eager=True
|
||||||
{{- end }}
|
|
||||||
env:
|
env:
|
||||||
- name: VLLM_TORCH_DTYPE
|
- name: VLLM_TORCH_DTYPE
|
||||||
value: "auto"
|
value: "auto"
|
||||||
|
|||||||
@@ -2,16 +2,14 @@ name: vllm
|
|||||||
is: vllm
|
is: vllm
|
||||||
description: vLLM is a fast and easy-to-use library for LLM inference and serving
|
description: vLLM is a fast and easy-to-use library for LLM inference and serving
|
||||||
with OpenAI-compatible API
|
with OpenAI-compatible API
|
||||||
version: 0.5.4
|
version: 0.5.4-1
|
||||||
icon: https://unpkg.com/@lobehub/icons-static-png@latest/dark/vllm.png
|
icon: https://unpkg.com/@lobehub/icons-static-png@latest/dark/vllm.png
|
||||||
requires: []
|
requires: []
|
||||||
defaultConfig:
|
defaultConfig:
|
||||||
image: vllm/vllm-openai:v0.5.4
|
namespace: llm
|
||||||
model: Qwen/Qwen2.5-7B-Instruct
|
model: Qwen/Qwen2.5-7B-Instruct
|
||||||
maxModelLen: 8192
|
maxModelLen: 8192
|
||||||
tensorParallelSize: 1
|
|
||||||
gpuMemoryUtilization: 0.9
|
gpuMemoryUtilization: 0.9
|
||||||
enforceEager: true
|
|
||||||
gpuProduct: RTX 4090
|
gpuProduct: RTX 4090
|
||||||
cpuRequest: '4'
|
cpuRequest: '4'
|
||||||
cpuLimit: '8'
|
cpuLimit: '8'
|
||||||
@@ -19,5 +17,4 @@ defaultConfig:
|
|||||||
memoryLimit: 24Gi
|
memoryLimit: 24Gi
|
||||||
gpuCount: 1
|
gpuCount: 1
|
||||||
domain: vllm.{{ .cloud.domain }}
|
domain: vllm.{{ .cloud.domain }}
|
||||||
namespace: llm
|
|
||||||
defaultSecrets: []
|
defaultSecrets: []
|
||||||
|
|||||||
Reference in New Issue
Block a user