Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion charts/pixelfed/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.6.0
version: 0.7.0

# This is the version number of the application being deployed.
# renovate:image=ghcr.io/mattlqx/docker-pixelfed
Expand Down
8 changes: 4 additions & 4 deletions charts/pixelfed/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# pixelfed

![Version: 0.6.0](https://img.shields.io/badge/Version-0.6.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.12.3-nginx](https://img.shields.io/badge/AppVersion-v0.12.3--nginx-informational?style=flat-square)
![Version: 0.7.0](https://img.shields.io/badge/Version-0.7.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.12.3-nginx](https://img.shields.io/badge/AppVersion-v0.12.3--nginx-informational?style=flat-square)

A Helm chart for deploying Pixelfed on Kubernetes

Expand All @@ -26,7 +26,6 @@ A Helm chart for deploying Pixelfed on Kubernetes
| autoscaling.maxReplicas | int | `100` | |
| autoscaling.minReplicas | int | `1` | |
| autoscaling.targetCPUUtilizationPercentage | int | `80` | |
| externalDatabase.connection | string | `"pgsql"` | options: sqlite mysql pgsql sqlsrv |
| externalDatabase.database | string | `"pixelfed"` | |
| externalDatabase.enabled | bool | `false` | enable using an external mysql or postgresql cluster |
| externalDatabase.existingSecret | string | `""` | get database credentials from an existing Kubernetes Secret |
Expand Down Expand Up @@ -77,7 +76,8 @@ A Helm chart for deploying Pixelfed on Kubernetes
| pixelfed.app.name | string | `"Pixelfed"` | The name of your server/instance |
| pixelfed.app.url | string | `"https://localhost"` | change this to the domain of your pixelfed instance |
| pixelfed.atom_feeds | string | `"true"` | https://docs.pixelfed.org/technical-documentation/config/#atom_feeds |
| pixelfed.db_apply_new_migrations_automatically | bool | `false` | |
| pixelfed.db.apply_new_migrations_automatically | bool | `false` | |
| pixelfed.db.connection | string | `"pgsql"` | options: sqlite mysql pgsql sqlsrv |
| pixelfed.enable_config_cache | bool | `true` | Enable the config cache to allow you to manage settings via the admin dashboard |
| pixelfed.enforce_email_verification | bool | `true` | Enforce email verification |
| pixelfed.exp_emc | bool | `true` | Experimental Configuration |
Expand Down Expand Up @@ -192,4 +192,4 @@ A Helm chart for deploying Pixelfed on Kubernetes
| volumes | list | `[]` | Additional volumes on the output Deployment definition. |

----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)
92 changes: 92 additions & 0 deletions charts/pixelfed/templates/configmap-env.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "pixelfed.fullname" . }}-env
data:
# app data
APP_NAME: {{ .Values.pixelfed.app.name }}
APP_ENV: {{ .Values.pixelfed.app.env }}
APP_PORT: {{ .Values.service.targetPort | quote}}
APP_URL: {{ .Values.pixelfed.app.url }}
APP_LOCALE: {{ .Values.pixelfed.app.locale }}
{{- with .Values.pixelfed.app.domain }}
APP_DOMAIN: {{ . }}
{{- end }}

# registration related
OPEN_REGISTRATION: {{ .Values.pixelfed.open_registration | quote }}
ENFORCE_EMAIL_VERIFICATION: {{ .Values.pixelfed.enforce_email_verification | quote }}
IMAGE_QUALITY: {{ .Values.pixelfed.image_quality | quote }}
ACCOUNT_DELETION: {{ .Values.pixelfed.account_deletion | quote }}
OAUTH_ENABLED: {{ .Values.pixelfed.oauth_enabled | quote }}

# limits
MIN_PASSWORD_LENGTH: {{ .Values.pixelfed.min_password_length | quote }}
MAX_ACCOUNT_SIZE: {{ .Values.pixelfed.max_account_size | quote }}
MAX_PHOTO_SIZE: {{ .Values.pixelfed.max_photo_size | quote }}
MAX_AVATAR_SIZE: {{ .Values.pixelfed.max_avatar_size | quote }}
MAX_CAPTION_LENGTH: {{ .Values.pixelfed.max_caption_length | quote }}
MAX_BIO_LENGTH: {{ .Values.pixelfed.max_bio_length | quote }}
MAX_NAME_LENGTH: {{ .Values.pixelfed.max_name_length | quote }}
MAX_ALBUM_LENGTH: {{ .Values.pixelfed.max_album_length | quote }}
FORCE_HTTPS_URLS: {{ .Values.pixelfed.force_https_urls | quote }}
STORIES_ENABLED: {{ .Values.pixelfed.stories_enabled | quote }}
ENABLE_CONFIG_CACHE: {{ .Values.pixelfed.enable_config_cache | quote }}

# instance config
INSTANCE_DESCRIPTION: {{ .Values.pixelfed.instance.description | quote }}
INSTANCE_CONTACT_FORM: {{ .Values.pixelfed.instance.contact_form | quote }}
INSTANCE_DISCOVER_PUBLIC: {{ .Values.pixelfed.instance.discover_public | quote }}
INSTANCE_PUBLIC_HASHTAGS: {{ .Values.pixelfed.instance.public_hashtags | quote }}
{{- with .Values.pixelfed.instance.contact_email }}
INSTANCE_CONTACT_EMAIL: {{ .Values.pixelfed.instance.contact_email }}
{{- end }}
INSTANCE_PROFILE_EMBEDS: {{ .Values.pixelfed.instance.profile_embeds | quote }}
INSTANCE_POST_EMBEDS: {{ .Values.pixelfed.instance.post_embeds | quote }}
INSTANCE_REPORTS_EMAIL_ENABLED: {{ .Values.pixelfed.instance.reports.email_enabled | quote }}
{{- with .Values.pixelfed.instance.reports.email_addresses }}
INSTANCE_REPORTS_EMAIL_ADDRESSES: {{ join "," . }}
{{- end }}
INSTANCE_REPORTS_EMAIL_AUTOSPAM: {{ .Values.pixelfed.instance.reports.email_autospam | quote }}
INSTANCE_LANDING_SHOW_DIRECTORY: {{ .Values.pixelfed.instance.landing.show_directory | quote }}
INSTANCE_LANDING_SHOW_EXPLORE: {{ .Values.pixelfed.instance.landing.show_explore | quote }}
INSTANCE_CUR_REG: {{ .Values.pixelfed.instance.cur_reg | quote }}
INSTANCE_SHOW_PEERS: {{ .Values.pixelfed.instance.show_peers | quote }}

# public feed
PF_HIDE_NSFW_ON_PUBLIC_FEEDS: {{ .Values.pixelfed.pf.hide_nsfw_on_public_feeds | quote }}
PF_LOCAL_AVATAR_TO_CLOUD: {{ .Values.pixelfed.pf.local_avatar_to_cloud | quote }}
PF_ADMIN_INVITES_ENABLED: {{ .Values.pixelfed.pf.admin_invites_enabled | quote }}
PF_MAX_USER_BLOCKS: {{ .Values.pixelfed.pf.max_user_blocks | quote }}
PF_MAX_USER_MUTES: {{ .Values.pixelfed.pf.max_user_mutes | quote }}
PF_MAX_DOMAIN_BLOCKS: {{ .Values.pixelfed.pf.max_domain_blocks | quote }}
PF_ENABLE_CLOUD: {{ .Values.pixelfed.pf.enable_cloud | quote }}
PF_MAX_USERS: {{ .Values.pixelfed.pf.max_users | quote }}
PF_ENFORCE_MAX_USERS: {{ .Values.pixelfed.pf.enforce_max_users | quote }}
PF_OPTIMIZE_IMAGES: {{ .Values.pixelfed.pf.optimize_images | quote }}
PF_OPTIMIZE_VIDEOS: {{ .Values.pixelfed.pf.optimize_videos | quote }}
PF_MAX_COLLECTION_LENGTH: {{ .Values.pixelfed.pf.max_collection_length | quote }}

# Laravel Configuration
SESSION_DRIVER: "database"
CACHE_DRIVER: "redis"
QUEUE_DRIVER: "redis"
BROADCAST_DRIVER: "log"
LOG_CHANNEL: {{ .Values.pixelfed.laravel.log_channel }}
HORIZON_PREFIX: "horizon-"

# activity pub
ACTIVITY_PUB: {{ .Values.pixelfed.activity_pub.enabled | quote }}
AP_REMOTE_FOLLOW: {{ .Values.pixelfed.activity_pub.remote_follow | quote }}
AP_SHAREDINBOX: {{ .Values.pixelfed.activity_pub.sharedinbox | quote }}
AP_INBOX: {{ .Values.pixelfed.activity_pub.inbox | quote }}
AP_OUTBOX: {{ .Values.pixelfed.activity_pub.outbox | quote }}

# mail
MAIL_DRIVER: "{{ .Values.pixelfed.mail.driver }}"
MAIL_ENCRYPTION: "{{ .Values.pixelfed.mail.encryption }}"

# database configuration
DB_CONNECTION: {{ .Values.pixelfed.db.connection }}
DB_APPLY_NEW_MIGRATIONS_AUTOMATICALLY: "{{ .Values.pixelfed.db.apply_new_migrations_automatically }}"
149 changes: 3 additions & 146 deletions charts/pixelfed/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,145 +40,10 @@ spec:
- name: http
containerPort: {{ .Values.service.targetPort }}
protocol: TCP
envFrom:
- configMapRef:
name: {{ include "pixelfed.fullname" . }}-env
env:
# app data
- name: APP_NAME
value: {{ .Values.pixelfed.app.name }}
- name: APP_ENV
value: {{ .Values.pixelfed.app.env }}
- name: APP_PORT
value: {{ .Values.service.targetPort | quote}}
- name: APP_URL
value: {{ .Values.pixelfed.app.url }}
- name: APP_LOCALE
value: {{ .Values.pixelfed.app.locale }}
{{- with .Values.pixelfed.app.domain }}
- name: APP_DOMAIN
value: {{ . }}
{{- end }}

# registration related
- name: OPEN_REGISTRATION
value: {{ .Values.pixelfed.open_registration | quote }}
- name: ENFORCE_EMAIL_VERIFICATION
value: {{ .Values.pixelfed.enforce_email_verification | quote }}
- name: IMAGE_QUALITY
value: {{ .Values.pixelfed.image_quality | quote }}
- name: ACCOUNT_DELETION
value: {{ .Values.pixelfed.account_deletion | quote }}
- name: OAUTH_ENABLED
value: {{ .Values.pixelfed.oauth_enabled | quote }}

# limits
- name: MIN_PASSWORD_LENGTH
value: {{ .Values.pixelfed.min_password_length | quote }}
- name: MAX_ACCOUNT_SIZE
value: {{ .Values.pixelfed.max_account_size | quote }}
- name: MAX_PHOTO_SIZE
value: {{ .Values.pixelfed.max_photo_size | quote }}
- name: MAX_AVATAR_SIZE
value: {{ .Values.pixelfed.max_avatar_size | quote }}
- name: MAX_CAPTION_LENGTH
value: {{ .Values.pixelfed.max_caption_length | quote }}
- name: MAX_BIO_LENGTH
value: {{ .Values.pixelfed.max_bio_length | quote }}
- name: MAX_NAME_LENGTH
value: {{ .Values.pixelfed.max_name_length | quote }}
- name: MAX_ALBUM_LENGTH
value: {{ .Values.pixelfed.max_album_length | quote }}
- name: FORCE_HTTPS_URLS
value: {{ .Values.pixelfed.force_https_urls | quote }}
- name: STORIES_ENABLED
value: {{ .Values.pixelfed.stories_enabled | quote }}
- name: ENABLE_CONFIG_CACHE
value: {{ .Values.pixelfed.enable_config_cache | quote }}

# instance config
- name: INSTANCE_DESCRIPTION
value: {{ .Values.pixelfed.instance.description | quote }}
- name: INSTANCE_CONTACT_FORM
value: {{ .Values.pixelfed.instance.contact_form | quote }}
- name: INSTANCE_DISCOVER_PUBLIC
value: {{ .Values.pixelfed.instance.discover_public | quote }}
- name: INSTANCE_PUBLIC_HASHTAGS
value: {{ .Values.pixelfed.instance.public_hashtags | quote }}
{{- with .Values.pixelfed.instance.contact_email }}
- name: INSTANCE_CONTACT_EMAIL
value: {{ .Values.pixelfed.instance.contact_email }}
{{- end }}
- name: INSTANCE_PROFILE_EMBEDS
value: {{ .Values.pixelfed.instance.profile_embeds | quote }}
- name: INSTANCE_POST_EMBEDS
value: {{ .Values.pixelfed.instance.post_embeds | quote }}
- name: INSTANCE_REPORTS_EMAIL_ENABLED
value: {{ .Values.pixelfed.instance.reports.email_enabled | quote }}
{{- with .Values.pixelfed.instance.reports.email_addresses }}
- name: INSTANCE_REPORTS_EMAIL_ADDRESSES
value: {{ join "," . }}
{{- end }}
- name: INSTANCE_REPORTS_EMAIL_AUTOSPAM
value: {{ .Values.pixelfed.instance.reports.email_autospam | quote }}
- name: INSTANCE_LANDING_SHOW_DIRECTORY
value: {{ .Values.pixelfed.instance.landing.show_directory | quote }}
- name: INSTANCE_LANDING_SHOW_EXPLORE
value: {{ .Values.pixelfed.instance.landing.show_explore | quote }}
- name: INSTANCE_CUR_REG
value: {{ .Values.pixelfed.instance.cur_reg | quote }}
- name: INSTANCE_SHOW_PEERS
value: {{ .Values.pixelfed.instance.show_peers | quote }}

# public feed
- name: PF_HIDE_NSFW_ON_PUBLIC_FEEDS
value: {{ .Values.pixelfed.pf.hide_nsfw_on_public_feeds | quote }}
- name: PF_LOCAL_AVATAR_TO_CLOUD
value: {{ .Values.pixelfed.pf.local_avatar_to_cloud | quote }}
- name: PF_ADMIN_INVITES_ENABLED
value: {{ .Values.pixelfed.pf.admin_invites_enabled | quote }}
- name: PF_MAX_USER_BLOCKS
value: {{ .Values.pixelfed.pf.max_user_blocks | quote }}
- name: PF_MAX_USER_MUTES
value: {{ .Values.pixelfed.pf.max_user_mutes | quote }}
- name: PF_MAX_DOMAIN_BLOCKS
value: {{ .Values.pixelfed.pf.max_domain_blocks | quote }}
- name: PF_ENABLE_CLOUD
value: {{ .Values.pixelfed.pf.enable_cloud | quote }}
- name: PF_MAX_USERS
value: {{ .Values.pixelfed.pf.max_users | quote }}
- name: PF_ENFORCE_MAX_USERS
value: {{ .Values.pixelfed.pf.enforce_max_users | quote }}
- name: PF_OPTIMIZE_IMAGES
value: {{ .Values.pixelfed.pf.optimize_images | quote }}
- name: PF_OPTIMIZE_VIDEOS
value: {{ .Values.pixelfed.pf.optimize_videos | quote }}
- name: PF_MAX_COLLECTION_LENGTH
value: {{ .Values.pixelfed.pf.max_collection_length | quote }}

# Laravel Configuration
- name: SESSION_DRIVER
value: "database"
- name: CACHE_DRIVER
value: "redis"
- name: QUEUE_DRIVER
value: "redis"
- name: BROADCAST_DRIVER
value: "log"
- name: LOG_CHANNEL
value: {{ .Values.pixelfed.laravel.log_channel }}
- name: HORIZON_PREFIX
value: "horizon-"

# activity pub
- name: ACTIVITY_PUB
value: {{ .Values.pixelfed.activity_pub.enabled | quote }}
- name: AP_REMOTE_FOLLOW
value: {{ .Values.pixelfed.activity_pub.remote_follow | quote }}
- name: AP_SHAREDINBOX
value: {{ .Values.pixelfed.activity_pub.sharedinbox | quote }}
- name: AP_INBOX
value: {{ .Values.pixelfed.activity_pub.inbox | quote }}
- name: AP_OUTBOX
value: {{ .Values.pixelfed.activity_pub.outbox | quote }}

# redis
- name: REDIS_HOST
{{- if .Values.externalValkey.existingSecret }}
Expand Down Expand Up @@ -217,8 +82,6 @@ spec:
{{- end }}

# mail
- name: MAIL_DRIVER
value: "{{ .Values.pixelfed.mail.driver }}"
- name: MAIL_HOST
valueFrom:
secretKeyRef:
Expand Down Expand Up @@ -263,12 +126,8 @@ spec:
name: pixelfed-mail
key: password
{{- end }}
- name: MAIL_ENCRYPTION
value: "{{ .Values.pixelfed.mail.encryption }}"

# database configuration
- name: DB_CONNECTION
value: {{ .Values.externalDatabase.connection }}
- name: DB_HOST
{{- if and .Values.externalDatabase.enabled .Values.externalDatabase.existingSecret }}
valueFrom:
Expand Down Expand Up @@ -332,8 +191,6 @@ spec:
{{- else }}
value: {{ .Values.postgresql.primary.service.ports.postgresql | quote }}
{{- end }}
- name: DB_APPLY_NEW_MIGRATIONS_AUTOMATICALLY
value: "{{ .Values.pixelfed.db_apply_new_migrations_automatically }}"

{{- with .Values.livenessProbe }}
livenessProbe:
Expand Down
9 changes: 5 additions & 4 deletions charts/pixelfed/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,6 @@ affinity: {}
externalDatabase:
# -- enable using an external mysql or postgresql cluster
enabled: false
# -- options: sqlite mysql pgsql sqlsrv
connection: pgsql
host: ""
port: 3306
database: pixelfed
Expand Down Expand Up @@ -241,8 +239,11 @@ postgresql:
storageClass: ""

pixelfed:
# -- Automatically run [artisan migrate --force] if new migrations are detected.
db_apply_new_migrations_automatically: false
db:
# -- options: sqlite mysql pgsql sqlsrv
connection: pgsql
# -- Automatically run [artisan migrate --force] if new migrations are detected.
apply_new_migrations_automatically: false

# -- timezone for docker container
timezone: "europe/amsterdam"
Expand Down