92ceb76f23
NOTES.txt:
- Detect ingress scheme dynamically (http/https based on .Values.ingress.tls)
- Include first path in ingress URL output
- Use .Values.service.port in port-forward example instead of hardcoded 80
- Add -n {{ .Release.Namespace }} to all kubectl commands
postiz-config.yaml:
- Merge temporal enabled/external branches: external address now also emits
TEMPORAL_NAMESPACE and TEMPORAL_TLS, not just TEMPORAL_ADDRESS
temporal-init-job.yaml:
- Use .Values.temporal.postgresql.seeds as PGHOST source (with fallback to
bitnami sub-chart service name) so init job and runtime use the same host
- Switch to quoted heredoc (<<-'SQL') + psql --set to pass credentials as
psql variables, preventing shell expansion from breaking on special chars
temporal-secret.yaml:
- Add required validation: temporal.postgresql.password must be set explicitly
when temporal.enabled=true
values.yaml:
- Remove hardcoded default passwords (postgresPassword, temporal.postgresql.password)
replaced with empty strings to avoid predictable default credentials
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
302 lines
6.7 KiB
YAML
302 lines
6.7 KiB
YAML
replicaCount: 1
|
|
|
|
image:
|
|
repository: ghcr.io/gitroomhq/postiz-app
|
|
pullPolicy: IfNotPresent
|
|
tag: "latest"
|
|
|
|
imagePullSecrets: []
|
|
nameOverride: ""
|
|
fullnameOverride: ""
|
|
|
|
serviceAccount:
|
|
create: true
|
|
annotations: {}
|
|
name: ""
|
|
|
|
podAnnotations: {}
|
|
|
|
podSecurityContext: {}
|
|
|
|
securityContext: {}
|
|
|
|
service:
|
|
type: ClusterIP
|
|
port: 80
|
|
additionalPorts: []
|
|
|
|
ingress:
|
|
enabled: false
|
|
className: ""
|
|
annotations: {}
|
|
hosts:
|
|
- host: chart-example.local
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
port: 80
|
|
tls: []
|
|
extraRules: []
|
|
|
|
resources: {}
|
|
|
|
extraContainers: []
|
|
|
|
extraVolumes: []
|
|
extraVolumeMounts: []
|
|
|
|
autoscaling:
|
|
enabled: false
|
|
minReplicas: 1
|
|
maxReplicas: 100
|
|
targetCPUUtilizationPercentage: 80
|
|
|
|
nodeSelector: {}
|
|
|
|
tolerations: []
|
|
|
|
affinity: {}
|
|
|
|
# PostgreSQL configuration (Bitnami sub-chart)
|
|
postgresql:
|
|
enabled: true
|
|
auth:
|
|
username: postiz
|
|
password: postiz-password
|
|
database: postiz
|
|
# postgresPassword is used by the temporal init job to create the temporal user.
|
|
# Set this explicitly; if left empty, Bitnami generates a random password
|
|
# that the init job cannot retrieve.
|
|
postgresPassword: ""
|
|
service:
|
|
ports:
|
|
postgresql: 5432
|
|
|
|
# Redis configuration (Bitnami sub-chart)
|
|
redis:
|
|
enabled: true
|
|
auth:
|
|
password: postiz-redis-password
|
|
master:
|
|
service:
|
|
ports:
|
|
redis: 6379
|
|
|
|
# Temporal workflow orchestration (required since Postiz v2.12.0)
|
|
# temporal.enabled=true → deploys Temporal alongside Postiz using the postgresql sub-chart
|
|
# temporal.enabled=false → Temporal must be deployed separately; set temporal.address
|
|
temporal:
|
|
enabled: true
|
|
# address: override auto-computed service address (<release>-temporal:7233)
|
|
address: ""
|
|
namespace: "default"
|
|
tls: false
|
|
# apiKey: only required for Temporal Cloud; leave empty for self-hosted
|
|
apiKey: ""
|
|
image:
|
|
repository: temporalio/auto-setup
|
|
tag: "1.28.1"
|
|
pullPolicy: IfNotPresent
|
|
postgresql:
|
|
# Credentials for the temporal user created in the shared PostgreSQL instance.
|
|
# The init job creates this user via the postgres superuser before Temporal starts.
|
|
user: temporal
|
|
password: ""
|
|
# seeds: PostgreSQL hostname. Defaults to the Bitnami postgresql sub-chart service.
|
|
seeds: ""
|
|
|
|
# Non-sensitive environment variables (injected via ConfigMap)
|
|
env:
|
|
# === Required ===
|
|
FRONTEND_URL: "http://localhost:4200"
|
|
NEXT_PUBLIC_BACKEND_URL: "http://localhost:3000"
|
|
BACKEND_INTERNAL_URL: "http://localhost:3000"
|
|
|
|
# === Application behaviour ===
|
|
IS_GENERAL: "true"
|
|
NX_ADD_PLUGINS: "false"
|
|
MAIN_URL: ""
|
|
DISABLE_REGISTRATION: "false"
|
|
RUN_CRON: ""
|
|
API_LIMIT: "90"
|
|
RESTRICT_UPLOAD_DOMAINS: ""
|
|
DISALLOW_PLUS: ""
|
|
DISABLE_IMAGE_COMPRESSION: "false"
|
|
MOBILE_APP_SCHEME: ""
|
|
NOT_SECURED: "false"
|
|
|
|
# === Storage ===
|
|
STORAGE_PROVIDER: "local"
|
|
UPLOAD_DIRECTORY: ""
|
|
NEXT_PUBLIC_UPLOAD_STATIC_DIRECTORY: ""
|
|
CLOUDFLARE_REGION: "auto"
|
|
|
|
# === Email ===
|
|
EMAIL_PROVIDER: "resend"
|
|
EMAIL_HOST: ""
|
|
EMAIL_PORT: ""
|
|
EMAIL_SECURE: "false"
|
|
EMAIL_FROM_ADDRESS: ""
|
|
EMAIL_FROM_NAME: ""
|
|
|
|
# === OAuth / OIDC sign-in ===
|
|
POSTIZ_GENERIC_OAUTH: "false"
|
|
POSTIZ_OAUTH_URL: ""
|
|
POSTIZ_OAUTH_AUTH_URL: ""
|
|
POSTIZ_OAUTH_TOKEN_URL: ""
|
|
POSTIZ_OAUTH_USERINFO_URL: ""
|
|
POSTIZ_OAUTH_SCOPE: "openid profile email"
|
|
NEXT_PUBLIC_POSTIZ_OAUTH_DISPLAY_NAME: ""
|
|
NEXT_PUBLIC_POSTIZ_OAUTH_LOGO_URL: ""
|
|
|
|
# === Social providers — non-sensitive settings ===
|
|
X_URL: ""
|
|
DISABLE_X_ANALYTICS: ""
|
|
STRIP_LINKS_FROM_X_POSTS: ""
|
|
MASTODON_URL: "https://mastodon.social"
|
|
NEYNAR_LOGIN_URL: ""
|
|
MEWE_HOST: ""
|
|
|
|
# === MCP / Agent ===
|
|
MCP_URL: ""
|
|
BACKEND_URL: ""
|
|
|
|
# === Payments ===
|
|
FEE_AMOUNT: "0.05"
|
|
|
|
# === Analytics & tracking (frontend) ===
|
|
NEXT_PUBLIC_SENTRY_DSN: ""
|
|
NEXT_PUBLIC_GTM_ID: ""
|
|
NEXT_PUBLIC_FACEBOOK_PIXEL: ""
|
|
NEXT_PUBLIC_POSTHOG_HOST: ""
|
|
NEXT_PUBLIC_POSTHOG_KEY: ""
|
|
SENTRY_ORG: ""
|
|
SENTRY_PROJECT: ""
|
|
SENTRY_SPOTLIGHT: "false"
|
|
|
|
# === Misc frontend ===
|
|
NEXT_PUBLIC_DISCORD_SUPPORT: ""
|
|
NEXT_PUBLIC_POLOTNO: ""
|
|
NEXT_PUBLIC_VERSION: ""
|
|
NEXT_PUBLIC_APP_VERSION: ""
|
|
NEXT_PUBLIC_OVERRIDE_BACKEND_URL: ""
|
|
|
|
# === Runtime ===
|
|
PORT: "3000"
|
|
TZ: "UTC"
|
|
NODE_ENV: "production"
|
|
|
|
# Sensitive environment variables (injected via Secret)
|
|
secrets:
|
|
# === Required ===
|
|
DATABASE_URL: ""
|
|
REDIS_URL: ""
|
|
JWT_SECRET: ""
|
|
|
|
# === Storage — Cloudflare R2 ===
|
|
CLOUDFLARE_ACCOUNT_ID: ""
|
|
CLOUDFLARE_ACCESS_KEY: ""
|
|
CLOUDFLARE_SECRET_ACCESS_KEY: ""
|
|
CLOUDFLARE_BUCKETNAME: ""
|
|
CLOUDFLARE_BUCKET_URL: ""
|
|
|
|
# === Email ===
|
|
RESEND_API_KEY: ""
|
|
EMAIL_USER: ""
|
|
EMAIL_PASS: ""
|
|
|
|
# === OAuth / OIDC sign-in ===
|
|
POSTIZ_OAUTH_CLIENT_ID: ""
|
|
POSTIZ_OAUTH_CLIENT_SECRET: ""
|
|
|
|
# === Social providers ===
|
|
X_API_KEY: ""
|
|
X_API_SECRET: ""
|
|
LINKEDIN_CLIENT_ID: ""
|
|
LINKEDIN_CLIENT_SECRET: ""
|
|
REDDIT_CLIENT_ID: ""
|
|
REDDIT_CLIENT_SECRET: ""
|
|
GITHUB_CLIENT_ID: ""
|
|
GITHUB_CLIENT_SECRET: ""
|
|
FACEBOOK_APP_ID: ""
|
|
FACEBOOK_APP_SECRET: ""
|
|
INSTAGRAM_APP_ID: ""
|
|
INSTAGRAM_APP_SECRET: ""
|
|
THREADS_APP_ID: ""
|
|
THREADS_APP_SECRET: ""
|
|
YOUTUBE_CLIENT_ID: ""
|
|
YOUTUBE_CLIENT_SECRET: ""
|
|
GOOGLE_GMB_CLIENT_ID: ""
|
|
GOOGLE_GMB_CLIENT_SECRET: ""
|
|
TIKTOK_CLIENT_ID: ""
|
|
TIKTOK_CLIENT_SECRET: ""
|
|
PINTEREST_CLIENT_ID: ""
|
|
PINTEREST_CLIENT_SECRET: ""
|
|
DRIBBBLE_CLIENT_ID: ""
|
|
DRIBBBLE_CLIENT_SECRET: ""
|
|
DISCORD_CLIENT_ID: ""
|
|
DISCORD_CLIENT_SECRET: ""
|
|
DISCORD_BOT_TOKEN_ID: ""
|
|
SLACK_ID: ""
|
|
SLACK_SECRET: ""
|
|
SLACK_SIGNING_SECRET: ""
|
|
TELEGRAM_TOKEN: ""
|
|
TELEGRAM_BOT_NAME: ""
|
|
MASTODON_CLIENT_ID: ""
|
|
MASTODON_CLIENT_SECRET: ""
|
|
NEYNAR_CLIENT_ID: ""
|
|
NEYNAR_SECRET_KEY: ""
|
|
MEWE_APP_ID: ""
|
|
MEWE_API_KEY: ""
|
|
TWITCH_CLIENT_ID: ""
|
|
TWITCH_CLIENT_SECRET: ""
|
|
KICK_CLIENT_ID: ""
|
|
KICK_SECRET: ""
|
|
VK_ID: ""
|
|
WHOP_CLIENT_ID: ""
|
|
BEEHIIVE_API_KEY: ""
|
|
BEEHIIVE_PUBLICATION_ID: ""
|
|
LISTMONK_DOMAIN: ""
|
|
LISTMONK_USER: ""
|
|
LISTMONK_API_KEY: ""
|
|
LISTMONK_LIST_ID: ""
|
|
LISTMONK_WELCOME_TEMPLATE_ID: ""
|
|
EXTENSION_ID: ""
|
|
|
|
# === AI / Generation ===
|
|
OPENAI_API_KEY: ""
|
|
OPENAI_APP_CHALLANGE: ""
|
|
ELEVENSLABS_API_KEY: ""
|
|
FAL_KEY: ""
|
|
TAVILY_API_KEY: ""
|
|
KIEAI_API_KEY: ""
|
|
TRANSLOADIT_AUTH: ""
|
|
TRANSLOADIT_SECRET: ""
|
|
TRANSLOADIT_TEMPLATE: ""
|
|
|
|
# === Payments ===
|
|
STRIPE_PUBLISHABLE_KEY: ""
|
|
STRIPE_SECRET_KEY: ""
|
|
STRIPE_SIGNING_KEY: ""
|
|
STRIPE_SIGNING_KEY_CONNECT: ""
|
|
STRIPE_DISCOUNT_ID: ""
|
|
NOWPAYMENTS_API_KEY: ""
|
|
NOWPAYMENTS_AMOUNT: ""
|
|
|
|
# === Analytics secrets ===
|
|
FACEBOOK_PIXEL_ACCESS_TOKEN: ""
|
|
NEXT_PUBLIC_TRACKING_TRIAL: ""
|
|
DATAFAST_API_KEY: ""
|
|
DATAFAST_WEBSITE_ID: ""
|
|
SENTRY_AUTH_TOKEN: ""
|
|
|
|
# === MCP / Agent ===
|
|
AGENT_API_KEY: ""
|
|
AGENT_MEDIA_SSO_KEY: ""
|
|
|
|
# === Short-link providers ===
|
|
DUB_TOKEN: ""
|
|
SHORT_IO_SECRET_KEY: ""
|
|
KUTT_API_KEY: ""
|
|
LINK_DRIP_API_KEY: ""
|