-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
1 parent
1fbdc18
commit 61cb199
Showing
9 changed files
with
380 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
# Postiz Helm Chart | ||
|
||
This Helm chart deploys the Postiz application on a Kubernetes cluster using the Helm package manager. | ||
|
||
## Prerequisites | ||
|
||
- Kubernetes 1.12+ | ||
- Helm 3.0+ | ||
- PV provisioner support in the underlying infrastructure (if persistence is required) | ||
|
||
## Installing the Chart | ||
|
||
To install the chart with the release name `postiz-app`: | ||
|
||
```bash | ||
$ helm repo add postiz https://github.com/gitroomhq/postiz-helmchart | ||
$ helm install postiz-app postiz/postiz | ||
``` | ||
|
||
The command deploys Postiz on the Kubernetes cluster in the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation. | ||
|
||
> **Tip**: List all releases using `helm list` | ||
## Uninstalling the Chart | ||
|
||
To uninstall/delete the `postiz-app` deployment: | ||
|
||
```bash | ||
$ helm delete postiz-app | ||
``` | ||
|
||
The command removes all the Kubernetes components associated with the chart and deletes the release. | ||
|
||
## Parameters | ||
|
||
The following table lists the configurable parameters of the Postiz chart and their default values. | ||
|
||
| Parameter | Description | Default | | ||
| ------------------------ | ----------------------- | -------------- | | ||
| `replicaCount` | Number of replicas | `1` | | ||
| `image.repository` | Image repository | `ghcr.io/gitroomhq/postiz-app` | | ||
| `image.pullPolicy` | Image pull policy | `IfNotPresent` | | ||
| `image.tag` | Image tag | `latest` | | ||
| `service.type` | Kubernetes service type | `ClusterIP` | | ||
| `service.port` | Kubernetes service port | `80` | | ||
| `postgresql.enabled` | Deploy PostgreSQL | `true` | | ||
| `postgresql.auth.username` | PostgreSQL username | `postiz` | | ||
| `postgresql.auth.password` | PostgreSQL password | `postiz-password` | | ||
| `postgresql.auth.database` | PostgreSQL database | `postiz` | | ||
| `redis.enabled` | Deploy Redis | `true` | | ||
| `redis.auth.password` | Redis password | `postiz-redis-password` | | ||
|
||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, | ||
|
||
```bash | ||
$ helm install postiz-app \ | ||
--set postgresql.auth.password=secretpassword \ | ||
postiz/postiz | ||
``` | ||
|
||
The above command sets the PostgreSQL password to `secretpassword`. | ||
|
||
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, | ||
|
||
```bash | ||
$ helm install postiz-app -f values.yaml postiz/postiz | ||
``` | ||
|
||
> **Tip**: You can use the default [values.yaml](values.yaml) | ||
## Persistence | ||
|
||
The chart mounts a [Persistent Volume](http://kubernetes.io/docs/user-guide/persistent-volumes/) for the PostgreSQL and Redis data. The volume is created using dynamic volume provisioning. If you want to disable this functionality you can change the values.yaml to disable persistence and use an emptyDir instead. | ||
|
||
## Configuration and installation details | ||
|
||
### External database support | ||
|
||
You may want to have Postiz connect to an external database rather than installing one inside your cluster. Typical reasons for this are to use a managed database service, or to share a common database server for all your applications. To achieve this, set the `postgresql.enabled` parameter to `false` and specify the credentials for the external database using the `postgresql.auth.username`, `postgresql.auth.password`, and `postgresql.auth.database` parameters. | ||
|
||
### External Redis support | ||
|
||
Similar to the database, you can use an external Redis instance by setting `redis.enabled` to `false` and specifying the external Redis URL using the `REDIS_URL` environment variable in the `env` section of your values.yaml. | ||
|
||
## Upgrading | ||
|
||
### To 1.0.0 | ||
|
||
This is the first major release of the Postiz Helm chart. | ||
|
||
## Contributing | ||
|
||
We welcome contributions to this chart. Please read our [Contributing Guide](CONTRIBUTING.md) before submitting a pull request. | ||
|
||
## License | ||
|
||
This chart is licensed under the Apache License 2.0. See the [LICENSE](LICENSE) file for details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
apiVersion: v2 | ||
name: postiz-app | ||
description: A Social Media Scheduling App | ||
type: application | ||
version: 1.0.0 # Chart Version | ||
appVersion: "1.2.0" | ||
keywords: | ||
- social media | ||
- marketing | ||
- scheduling | ||
- queue | ||
home: https://postiz.com | ||
sources: | ||
- https://github.com/gitroomhq/postiz-app | ||
- https://github.com/gitroomhq/postiz-helmchart | ||
dependencies: | ||
- name: postgresql | ||
version: 15.5.28 | ||
repository: https://charts.bitnami.com/bitnami | ||
condition: postgresql.enabled | ||
- name: redis | ||
version: 20.1.0 | ||
repository: https://charts.bitnami.com/bitnami | ||
condition: redis.enabled |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
{{/* | ||
Expand the name of the chart. | ||
*/}} | ||
{{- define "postiz.name" -}} | ||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} | ||
{{- end }} | ||
|
||
{{/* | ||
Create a default fully qualified app name. | ||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). | ||
If release name contains chart name it will be used as a full name. | ||
*/}} | ||
{{- define "postiz.fullname" -}} | ||
{{- if .Values.fullnameOverride }} | ||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} | ||
{{- else }} | ||
{{- $name := default .Chart.Name .Values.nameOverride }} | ||
{{- if contains $name .Release.Name }} | ||
{{- .Release.Name | trunc 63 | trimSuffix "-" }} | ||
{{- else }} | ||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} | ||
{{- end }} | ||
{{- end }} | ||
{{- end }} | ||
|
||
{{/* | ||
Create chart name and version as used by the chart label. | ||
*/}} | ||
{{- define "postiz.chart" -}} | ||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} | ||
{{- end }} | ||
|
||
{{/* | ||
Common labels | ||
*/}} | ||
{{- define "postiz.labels" -}} | ||
helm.sh/chart: {{ include "postiz.chart" . }} | ||
{{ include "postiz.selectorLabels" . }} | ||
{{- if .Chart.AppVersion }} | ||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} | ||
{{- end }} | ||
app.kubernetes.io/managed-by: {{ .Release.Service }} | ||
{{- end }} | ||
|
||
{{/* | ||
Selector labels | ||
*/}} | ||
{{- define "postiz.selectorLabels" -}} | ||
app.kubernetes.io/name: {{ include "postiz.name" . }} | ||
app.kubernetes.io/instance: {{ .Release.Name }} | ||
{{- end }} | ||
|
||
{{/* | ||
Create the name of the service account to use | ||
*/}} | ||
{{- define "postiz.serviceAccountName" -}} | ||
{{- if .Values.serviceAccount.create }} | ||
{{- default (include "postiz.fullname" .) .Values.serviceAccount.name }} | ||
{{- else }} | ||
{{- default "default" .Values.serviceAccount.name }} | ||
{{- end }} | ||
{{- end }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
apiVersion: v1 | ||
kind: ConfigMap | ||
metadata: | ||
name: {{ include "postiz.fullname" . }}-config | ||
labels: | ||
{{- include "postiz.labels" . | nindent 4 }} | ||
data: | ||
{{- range $key, $value := .Values.env }} | ||
{{ $key }}: {{ $value | quote }} | ||
{{- end }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
apiVersion: apps/v1 | ||
kind: Deployment | ||
metadata: | ||
name: {{ include "postiz.fullname" . }} | ||
labels: | ||
{{- include "postiz.labels" . | nindent 4 }} | ||
spec: | ||
{{- if not .Values.autoscaling.enabled }} | ||
replicas: {{ .Values.replicaCount }} | ||
{{- end }} | ||
selector: | ||
matchLabels: | ||
{{- include "postiz.selectorLabels" . | nindent 6 }} | ||
template: | ||
metadata: | ||
{{- with .Values.podAnnotations }} | ||
annotations: | ||
{{- toYaml . | nindent 8 }} | ||
{{- end }} | ||
labels: | ||
{{- include "postiz.selectorLabels" . | nindent 8 }} | ||
spec: | ||
{{- with .Values.imagePullSecrets }} | ||
imagePullSecrets: | ||
{{- toYaml . | nindent 8 }} | ||
{{- end }} | ||
serviceAccountName: {{ include "postiz.serviceAccountName" . }} | ||
securityContext: | ||
{{- toYaml .Values.podSecurityContext | nindent 8 }} | ||
containers: | ||
- name: {{ .Chart.Name }} | ||
securityContext: | ||
{{- toYaml .Values.securityContext | nindent 12 }} | ||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" | ||
imagePullPolicy: {{ .Values.image.pullPolicy }} | ||
ports: | ||
- name: http | ||
containerPort: 3000 | ||
protocol: TCP | ||
envFrom: | ||
- configMapRef: | ||
name: {{ include "postiz.fullname" . }}-config | ||
- secretRef: | ||
name: {{ include "postiz.fullname" . }}-secrets | ||
resources: | ||
{{- toYaml .Values.resources | nindent 12 }} | ||
{{- with .Values.nodeSelector }} | ||
nodeSelector: | ||
{{- toYaml . | nindent 8 }} | ||
{{- end }} | ||
{{- with .Values.affinity }} | ||
affinity: | ||
{{- toYaml . | nindent 8 }} | ||
{{- end }} | ||
{{- with .Values.tolerations }} | ||
tolerations: | ||
{{- toYaml . | nindent 8 }} | ||
{{- end }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
apiVersion: v1 | ||
kind: Secret | ||
metadata: | ||
name: {{ include "postiz.fullname" . }}-secrets | ||
labels: | ||
{{- include "postiz.labels" . | nindent 4 }} | ||
type: Opaque | ||
data: | ||
{{- range $key, $value := .Values.secrets }} | ||
{{ $key }}: {{ $value | b64enc | quote }} | ||
{{- end }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
apiVersion: v1 | ||
kind: Service | ||
metadata: | ||
name: {{ include "postiz.fullname" . }} | ||
labels: | ||
{{- include "postiz.labels" . | nindent 4 }} | ||
spec: | ||
type: {{ .Values.service.type }} | ||
ports: | ||
- port: {{ .Values.service.port }} | ||
targetPort: http | ||
protocol: TCP | ||
name: http | ||
selector: | ||
{{- include "postiz.selectorLabels" . | nindent 4 }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
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 | ||
|
||
ingress: | ||
enabled: false | ||
className: "" | ||
annotations: {} | ||
hosts: | ||
- host: chart-example.local | ||
paths: | ||
- path: / | ||
pathType: ImplementationSpecific | ||
tls: [] | ||
|
||
resources: {} | ||
|
||
autoscaling: | ||
enabled: false | ||
minReplicas: 1 | ||
maxReplicas: 100 | ||
targetCPUUtilizationPercentage: 80 | ||
|
||
nodeSelector: {} | ||
|
||
tolerations: [] | ||
|
||
affinity: {} | ||
|
||
# PostgreSQL configuration | ||
postgresql: | ||
enabled: true | ||
auth: | ||
username: postiz | ||
password: postiz-password | ||
database: postiz | ||
service: | ||
ports: | ||
postgresql: 5432 | ||
|
||
# Redis configuration | ||
redis: | ||
enabled: true | ||
auth: | ||
password: postiz-redis-password | ||
master: | ||
service: | ||
ports: | ||
redis: 6379 | ||
|
||
# Environment variables | ||
env: | ||
FRONTEND_URL: "http://localhost:4200" | ||
NEXT_PUBLIC_BACKEND_URL: "http://localhost:3000" | ||
BACKEND_INTERNAL_URL: "http://backend:3000" | ||
UPLOAD_DIRECTORY: "" | ||
NEXT_PUBLIC_UPLOAD_STATIC_DIRECTORY: "" | ||
NX_ADD_PLUGINS: "false" | ||
IS_GENERAL: "true" | ||
|
||
# Sensitive environment variables (to be stored in Secrets) | ||
secrets: | ||
DATABASE_URL: "" | ||
REDIS_URL: "" | ||
JWT_SECRET: "" | ||
X_API_KEY: "" | ||
X_API_SECRET: "" | ||
LINKEDIN_CLIENT_ID: "" | ||
LINKEDIN_CLIENT_SECRET: "" | ||
REDDIT_CLIENT_ID: "" | ||
REDDIT_CLIENT_SECRET: "" | ||
GITHUB_CLIENT_ID: "" | ||
GITHUB_CLIENT_SECRET: "" | ||
RESEND_API_KEY: "" | ||
CLOUDFLARE_ACCOUNT_ID: "" | ||
CLOUDFLARE_ACCESS_KEY: "" | ||
CLOUDFLARE_SECRET_ACCESS_KEY: "" | ||
CLOUDFLARE_BUCKETNAME: "" | ||
CLOUDFLARE_BUCKET_URL: "" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
chart-dirs: | ||
- charts |