mirror of
https://github.com/invoiceninja/dockerfiles.git
synced 2026-01-06 14:37:26 +01:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ee20766ef | ||
|
|
5ba28528c3 | ||
|
|
9388f66a29 | ||
|
|
b445cf0402 | ||
|
|
11c8901fe4 | ||
|
|
3814e957e0 | ||
|
|
62b1d8cb94 | ||
|
|
4cd773700e |
18
.github/workflows/build_push.yml
vendored
18
.github/workflows/build_push.yml
vendored
@@ -44,13 +44,13 @@ jobs:
|
|||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@v1
|
uses: docker/setup-buildx-action@v1
|
||||||
|
|
||||||
- name: Cache Docker layers
|
# - name: Cache Docker layers
|
||||||
uses: actions/cache@v2
|
# uses: actions/cache@v2
|
||||||
with:
|
# with:
|
||||||
path: /tmp/.buildx-cache
|
# path: /tmp/.buildx-cache
|
||||||
key: ${{ runner.os }}-buildx-${{ github.sha }}
|
# key: ${{ runner.os }}-buildx-${{ github.sha }}
|
||||||
restore-keys: |
|
# restore-keys: |
|
||||||
${{ runner.os }}-buildx-
|
# ${{ runner.os }}-buildx-
|
||||||
|
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
@@ -70,8 +70,8 @@ jobs:
|
|||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
push: ${{ github.event_name != 'pull_request' }}
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
tags: ${{ steps.prep.outputs.tags }}
|
tags: ${{ steps.prep.outputs.tags }}
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
cache-from: invoiceninja/invoiceninja:${{ steps.prep.outputs.major }}
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
cache-to: type=inline
|
||||||
|
|
||||||
- name: Image digest
|
- name: Image digest
|
||||||
run: echo ${{ steps.docker_build.outputs.digest }}
|
run: echo ${{ steps.docker_build.outputs.digest }}
|
||||||
|
|||||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -8,4 +8,7 @@ ehthumbs.db
|
|||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
|
||||||
# Helm
|
# Helm
|
||||||
charts/**/charts/
|
charts/**/charts/
|
||||||
|
|
||||||
|
# Compose filesystem
|
||||||
|
/docker
|
||||||
|
|||||||
31
README.md
31
README.md
@@ -1,23 +1,30 @@
|
|||||||

|

|
||||||
[](https://hub.docker.com/r/invoiceninja/invoiceninja)
|
[](https://hub.docker.com/r/invoiceninja/invoiceninja)
|
||||||
[](https://hub.docker.com/r/invoiceninja/invoiceninja)
|
[](https://hub.docker.com/r/invoiceninja/invoiceninja)
|
||||||
|
[](https://artifacthub.io/packages/search?repo=invoiceninja)
|
||||||
|
|
||||||
# Docker for [Invoice Ninja](https://www.invoiceninja.com/)
|
|
||||||
|
# Docker for [Invoice Ninja](https://www.invoiceninja.com/)
|
||||||
|
|
||||||
:crown: **Features**
|
:crown: **Features**
|
||||||
|
|
||||||
:lock: Automatic HTTPS (:heart: [Caddy](https://caddyserver.com/))
|
:lock: Automatic HTTPS (:heart: [Caddy](https://caddyserver.com/))
|
||||||
:fire: NGINX webserver support [NGINX](https://nginx.org/)
|
:fire: NGINX webserver support [NGINX](https://nginx.org/)
|
||||||
:hammer: Fully production-ready through docker-compose
|
:hammer: Fully production-ready through Helm Chart
|
||||||
:pencil: Adjustable to your needs via environment variable
|
:pencil: Adjustable to your needs via environment variable
|
||||||
|
|
||||||
## You want some Kubernetes + Helm with that?
|
## Get some Kubernetes + Helm with that!
|
||||||
[Helm Chat](https://github.com/Saddamus/invoiceninja-helm) by @Saddamus
|
|
||||||
[Kubernetes](https://github.com/invoiceninja/dockerfiles/issues/94) by @spacepluk
|
|
||||||
|
|
||||||
## Quickstart V5 Launch
|
Introducing our very own [Helm Chart](https://github.com/invoiceninja/dockerfiles/tree/master/charts/invoiceninja) that helps you launch a simple standalone app to a production-ready, highly available Invoice Ninja setup. All you need to do is initialise Kubernetes (available with Docker Desktop), install [Helm](https://helm.sh/docs/intro/install/), and spin up Invoice Ninja using the steps provided [here](https://github.com/invoiceninja/dockerfiles/tree/master/charts/invoiceninja#installing-the-chart).
|
||||||
|
|
||||||
The dockerfile has been revamped to make is easier to get started, by default the base image selected in 5 which will pull in the latest v5 stable image.
|
Other resources:
|
||||||
|
|
||||||
|
[Helm Chart](https://github.com/Saddamus/invoiceninja-helm) by @Saddamus
|
||||||
|
[K8s Manifest](https://github.com/invoiceninja/dockerfiles/issues/94) by @spacepluk
|
||||||
|
|
||||||
|
## Alternatively get started with Docker Compose
|
||||||
|
|
||||||
|
The dockerfile has been revamped to make it easier to get started, by default the base image selected is 5 which will pull in the latest v5 stable image.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/invoiceninja/dockerfiles.git
|
git clone https://github.com/invoiceninja/dockerfiles.git
|
||||||
@@ -65,7 +72,7 @@ For example, lets say your APP_URL is ```http://in5.test:8000``` and your LAN IP
|
|||||||
|
|
||||||
```192.168.0.124 in5.test```
|
```192.168.0.124 in5.test```
|
||||||
|
|
||||||
**Please note that PDF generation using local host your domain name MUST end in .test for your PDFs to generate correctly, this is a DNS resolver issue with chromium.
|
**Please note that for PDF generation using local host, your domain name MUST end in .test for your PDFs to generate correctly, this is a DNS resolver issue with chromium.
|
||||||
|
|
||||||
All that is left to do now is bring up the container
|
All that is left to do now is bring up the container
|
||||||
|
|
||||||
@@ -75,9 +82,13 @@ All that is left to do now is bring up the container
|
|||||||
|
|
||||||
**Note: When performing the setup, the Database host is ```db```
|
**Note: When performing the setup, the Database host is ```db```
|
||||||
|
|
||||||
## Updating the Image when using `docker-compose`
|
### Running on ARM64 (Raspberry Pi 4)
|
||||||
|
|
||||||
As `docker-compose` does not support any form of version control, this git provide updates to `docker-compose.yml` directly.
|
When deploying on an ARM64 system, you need to comment out the `image: mysql:5` line and uncomment `image: mariadb:10.4` in the `docker-compose.yml` file.
|
||||||
|
|
||||||
|
### Updating the Image when using `docker-compose`
|
||||||
|
|
||||||
|
As `docker-compose` does not support any form of version control, this git provide updates to `docker-compose.yml` directly.
|
||||||
|
|
||||||
To upgrade to a newer release image, please make sure to update the `docker-compose.yml` first by running
|
To upgrade to a newer release image, please make sure to update the `docker-compose.yml` first by running
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ dependencies:
|
|||||||
version: 1.4.2
|
version: 1.4.2
|
||||||
- name: nginx
|
- name: nginx
|
||||||
repository: https://charts.bitnami.com/bitnami
|
repository: https://charts.bitnami.com/bitnami
|
||||||
version: 8.8.0
|
version: 8.8.1
|
||||||
- name: mariadb
|
- name: mariadb
|
||||||
repository: https://charts.bitnami.com/bitnami
|
repository: https://charts.bitnami.com/bitnami
|
||||||
version: 9.3.6
|
version: 9.3.6
|
||||||
- name: redis
|
- name: redis
|
||||||
repository: https://charts.bitnami.com/bitnami
|
repository: https://charts.bitnami.com/bitnami
|
||||||
version: 12.9.0
|
version: 12.9.2
|
||||||
digest: sha256:008659600506cbc8dd5c9b8e96ce81430e4d8582368646469aa17a37441f5bbc
|
digest: sha256:fd3577637e412f553b3300f0c174ea7282073e0971da621d2f5c0e43b8f2fdfc
|
||||||
generated: "2021-03-29T18:41:17.978475+08:00"
|
generated: "2021-04-07T20:59:19.568334+08:00"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: invoiceninja
|
name: invoiceninja
|
||||||
description: A Helm chart to install Invoiceninja
|
description: A Helm chart to install Invoice Ninja
|
||||||
# A chart can be either an 'application' or a 'library' chart.
|
# A chart can be either an 'application' or a 'library' chart.
|
||||||
#
|
#
|
||||||
# Application charts are a collection of templates that can be packaged into versioned archives
|
# Application charts are a collection of templates that can be packaged into versioned archives
|
||||||
@@ -13,14 +13,14 @@ type: application
|
|||||||
# This is the chart version. This version number should be incremented each time you make changes
|
# 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.
|
# to the chart and its templates, including the app version.
|
||||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||||
version: 0.2.0
|
version: 0.3.2
|
||||||
# This is the version number of the application being deployed. This version number should be
|
# This is the version number of the application being deployed. This version number should be
|
||||||
# incremented each time you make changes to the application. Versions are not expected to
|
# incremented each time you make changes to the application. Versions are not expected to
|
||||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||||
appVersion: 5.1.32
|
appVersion: 5.1.41
|
||||||
keywords:
|
keywords:
|
||||||
- invoiceninja
|
- invoiceninja
|
||||||
home: https://github.com/lwj5/invoiceninja-chart
|
home: https://invoiceninja.github.io/dockerfiles
|
||||||
sources:
|
sources:
|
||||||
- https://github.com/invoiceninja/invoiceninja
|
- https://github.com/invoiceninja/invoiceninja
|
||||||
- https://github.com/invoiceninja/dockerfiles
|
- https://github.com/invoiceninja/dockerfiles
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
# Invoiceninja
|
# Invoice Ninja Helm Chart
|
||||||
|
|
||||||
This helm chart installs a Invoiceninja and its dependencies into a running
|
This helm chart installs a Invoice Ninja and its dependencies into a running
|
||||||
Kubernetes cluster.
|
Kubernetes cluster.
|
||||||
|
|
||||||
The chart installs the [Invoiceninja](https://hub.docker.com/r/invoiceninja/invoiceninja) docker image.
|
The chart installs the [Invoice Ninja](https://hub.docker.com/r/invoiceninja/invoiceninja) docker image.
|
||||||
|
|
||||||
Please read [Upgrading](#upgrading) section before upgrading MAJOR versions.
|
Please read [Upgrading](#upgrading) section before upgrading MAJOR versions.
|
||||||
|
|
||||||
@@ -12,6 +12,7 @@ Please read [Upgrading](#upgrading) section before upgrading MAJOR versions.
|
|||||||
- The Bitnami [common](https://github.com/bitnami/charts/tree/master/bitnami/common) helm chart
|
- The Bitnami [common](https://github.com/bitnami/charts/tree/master/bitnami/common) helm chart
|
||||||
- The Bitnami [mariadb](https://github.com/bitnami/charts/tree/master/bitnami/mariadb) helm chart
|
- The Bitnami [mariadb](https://github.com/bitnami/charts/tree/master/bitnami/mariadb) helm chart
|
||||||
- The Bitnami [nginx](https://github.com/bitnami/charts/tree/master/bitnami/nginx) helm chart
|
- The Bitnami [nginx](https://github.com/bitnami/charts/tree/master/bitnami/nginx) helm chart
|
||||||
|
- The Bitnami [redis](https://github.com/bitnami/charts/tree/master/bitnami/redis) helm chart
|
||||||
- Tested on Kubernetes 1.17+
|
- Tested on Kubernetes 1.17+
|
||||||
|
|
||||||
## Installing the Chart
|
## Installing the Chart
|
||||||
@@ -23,7 +24,7 @@ helm repo add invoiceninja https://invoiceninja.github.io/dockerfiles
|
|||||||
helm install invoiceninja invoiceninja/invoiceninja
|
helm install invoiceninja invoiceninja/invoiceninja
|
||||||
```
|
```
|
||||||
|
|
||||||
The command deploys Invoiceninja on the Kubernetes cluster in the default namespace. The [Parameters](#parameters) section lists the parameters that can be configured during installation.
|
The command deploys Invoice Ninja on the Kubernetes cluster in the default namespace. The [Parameters](#parameters) section lists the parameters that can be configured during installation.
|
||||||
|
|
||||||
> **Tip**: List all releases using `helm list`
|
> **Tip**: List all releases using `helm list`
|
||||||
|
|
||||||
@@ -39,11 +40,13 @@ The command removes all the Kubernetes components associated with the chart and
|
|||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
The following table lists the configurable parameters of the Invoiceninja chart and their default values.
|
The following table lists the configurable parameters of the Invoice Ninja chart and their default values.
|
||||||
|
|
||||||
|
> NOTE: You MUST set any values that default to random or risk losing access after an upgrade. See how [here](#installing-with-arguments)
|
||||||
|
|
||||||
### Global Configuration
|
### Global Configuration
|
||||||
|
|
||||||
The following table shows the configuration options for the Invoiceninja helm chart:
|
The following table shows the configuration options for the Invoice Ninja helm chart:
|
||||||
|
|
||||||
### Global parameters
|
### Global parameters
|
||||||
|
|
||||||
@@ -65,40 +68,40 @@ The following table shows the configuration options for the Invoiceninja helm ch
|
|||||||
| `kubeVersion` | Force target Kubernetes version (using Helm capabilities if not set) | `nil` |
|
| `kubeVersion` | Force target Kubernetes version (using Helm capabilities if not set) | `nil` |
|
||||||
| `extraDeploy` | Array of extra objects to deploy with the release | `[]` (evaluated as a template) |
|
| `extraDeploy` | Array of extra objects to deploy with the release | `[]` (evaluated as a template) |
|
||||||
|
|
||||||
### Invoiceninja parameters
|
### Invoice Ninja parameters
|
||||||
|
|
||||||
| Parameter | Description | Default |
|
| Parameter | Description | Default |
|
||||||
| -------------------- | --------------------------------------------------------------- | ------------------------------------------------------- |
|
| -------------------- | ---------------------------------------------------------------- | ------------------------------------------------------- |
|
||||||
| `image.registry` | Invoiceninja image registry | `docker.io` |
|
| `image.registry` | Invoice Ninja image registry | `docker.io` |
|
||||||
| `image.repository` | Invoiceninja image name | `invoiceninja/invoiceninja` |
|
| `image.repository` | Invoice Ninja image name | `invoiceninja/invoiceninja` |
|
||||||
| `image.tag` | Invoiceninja image tag | Check `values.yaml` file |
|
| `image.tag` | Invoice Ninja image tag | Check `values.yaml` file |
|
||||||
| `image.pullPolicy` | Invoiceninja image pull policy | `IfNotPresent` |
|
| `image.pullPolicy` | Invoice Ninja image pull policy | `IfNotPresent` |
|
||||||
| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
|
| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
|
||||||
| `image.debug` | Specify if debug logs should be enabled | `false` |
|
| `image.debug` | Specify if debug logs should be enabled | `false` |
|
||||||
| `serviceAccountName` | Name of a service account for the Invoiceninja pods | `default` |
|
| `serviceAccountName` | Name of a service account for the Invoice Ninja pods | `default` |
|
||||||
| `debug` | Turn on debug mode on Invoiceninja | `false` |
|
| `debug` | Turn on debug mode on Invoice Ninja | `false` |
|
||||||
| `appKey` | Laravel Application Key | _random 32 character alphanumeric string_ |
|
| `appKey` | Laravel Application Key | _random 32 character alphanumeric string_ |
|
||||||
| `logChannel` | Name of log channel to use | `nil` |
|
| `logChannel` | Name of log channel to use | `nil` |
|
||||||
| `broadcastDriver` | Name of broadcast driver to use | `nil` |
|
| `broadcastDriver` | Name of broadcast driver to use | `nil` |
|
||||||
| `cacheDriver` | Name of cache driver to use | `nil` |
|
| `cacheDriver` | Name of cache driver to use | `nil` |
|
||||||
| `sessionDriver` | Name of session driver to use | `nil` |
|
| `sessionDriver` | Name of session driver to use | `nil` |
|
||||||
| `queueConnection` | Name of queue connection to use | `nil` |
|
| `queueConnection` | Name of queue connection to use | `nil` |
|
||||||
| `snappdf` | Use snappdf instead of Phantom JS PDF generation | `true` |
|
| `snappdf` | Use snappdf instead of Phantom JS PDF generation | `true` |
|
||||||
| `extraEnvVars` | Extra environment variables to be set on Invoiceninja container | `{}` |
|
| `extraEnvVars` | Extra environment variables to be set on Invoice Ninja container | `{}` |
|
||||||
| `extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars | `nil` |
|
| `extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars | `nil` |
|
||||||
| `extraEnvVarsSecret` | Name of existing Secret containing extra env vars | `nil` |
|
| `extraEnvVarsSecret` | Name of existing Secret containing extra env vars | `nil` |
|
||||||
|
|
||||||
### Invoiceninja deployment parameters
|
### Invoice Ninja deployment parameters
|
||||||
|
|
||||||
| Parameter | Description | Default |
|
| Parameter | Description | Default |
|
||||||
| --------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------ |
|
| --------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------ |
|
||||||
| `replicaCount` | Number of Invoiceninja Pods to run | `1` |
|
| `replicaCount` | Number of Invoice Ninja Pods to run | `1` |
|
||||||
| `containerPorts.fastcgi` | FastCGI port to expose at container level | `9000` |
|
| `containerPorts.fastcgi` | FastCGI port to expose at container level | `9000` |
|
||||||
| `podSecurityContext` | Invoiceninja pods' Security Context | Check `values.yaml` file |
|
| `podSecurityContext` | Invoice Ninja pods' Security Context | Check `values.yaml` file |
|
||||||
| `containerSecurityContext` | Invoiceninja containers' Security Context | Check `values.yaml` file |
|
| `containerSecurityContext` | Invoice Ninja containers' Security Context | Check `values.yaml` file |
|
||||||
| `resources` | The resources for the Invoiceninja container | `{}` |
|
| `resources` | The resources for the Invoice Ninja container | `{}` |
|
||||||
| `livenessProbe` | Liveness probe configuration for Invoiceninja | Check `values.yaml` file |
|
| `livenessProbe` | Liveness probe configuration for Invoice Ninja | Check `values.yaml` file |
|
||||||
| `readinessProbe` | Readiness probe configuration for Invoiceninja | Check `values.yaml` file |
|
| `readinessProbe` | Readiness probe configuration for Invoice Ninja | Check `values.yaml` file |
|
||||||
| `updateStrategy` | Set up update strategy | `RollingUpdate` |
|
| `updateStrategy` | Set up update strategy | `RollingUpdate` |
|
||||||
| `podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
|
| `podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
|
||||||
| `nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
| `nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
||||||
@@ -107,8 +110,8 @@ The following table shows the configuration options for the Invoiceninja helm ch
|
|||||||
| `affinity` | Affinity for pod assignment | `{}` (evaluated as a template) |
|
| `affinity` | Affinity for pod assignment | `{}` (evaluated as a template) |
|
||||||
| `nodeSelector` | Node labels for pod assignment | `{}` (evaluated as a template) |
|
| `nodeSelector` | Node labels for pod assignment | `{}` (evaluated as a template) |
|
||||||
| `tolerations` | Tolerations for pod assignment | `[]` (evaluated as a template) |
|
| `tolerations` | Tolerations for pod assignment | `[]` (evaluated as a template) |
|
||||||
| `podLabels` | Extra labels for Invoiceninja pods | `{}` |
|
| `podLabels` | Extra labels for Invoice Ninja pods | `{}` |
|
||||||
| `podAnnotations` | Annotations for Invoiceninja pods | `{}` |
|
| `podAnnotations` | Annotations for Invoice Ninja pods | `{}` |
|
||||||
| `extraVolumeMounts` | Additional volume mounts | `[]` |
|
| `extraVolumeMounts` | Additional volume mounts | `[]` |
|
||||||
| `extraVolumes` | Additional volumes | `[]` |
|
| `extraVolumes` | Additional volumes | `[]` |
|
||||||
|
|
||||||
@@ -119,7 +122,7 @@ The following table shows the configuration options for the Invoiceninja helm ch
|
|||||||
| `service.type` | Kubernetes Service type | `ClusterIP` |
|
| `service.type` | Kubernetes Service type | `ClusterIP` |
|
||||||
| `service.port` | Service FastCGI port | `9000` |
|
| `service.port` | Service FastCGI port | `9000` |
|
||||||
| `service.nodePort` | Kubernetes FastCGI node port | `""` |
|
| `service.nodePort` | Kubernetes FastCGI node port | `""` |
|
||||||
| `service.clusterIP` | Invoiceninja service clusterIP IP | `None` |
|
| `service.clusterIP` | Invoice Ninja service clusterIP IP | `None` |
|
||||||
| `service.loadBalancerSourceRanges` | Restricts access for LoadBalancer (only with `service.type: LoadBalancer`) | `[]` |
|
| `service.loadBalancerSourceRanges` | Restricts access for LoadBalancer (only with `service.type: LoadBalancer`) | `[]` |
|
||||||
| `service.loadBalancerIP` | loadBalancerIP if service type is `LoadBalancer` | `nil` |
|
| `service.loadBalancerIP` | loadBalancerIP if service type is `LoadBalancer` | `nil` |
|
||||||
| `service.externalTrafficPolicy` | Enable client source IP preservation | `Cluster` |
|
| `service.externalTrafficPolicy` | Enable client source IP preservation | `Cluster` |
|
||||||
@@ -134,7 +137,7 @@ The following table shows the configuration options for the Invoiceninja helm ch
|
|||||||
| `nginx.ingress.hostname` | Default host for the ingress resource | `invoiceninja.local` |
|
| `nginx.ingress.hostname` | Default host for the ingress resource | `invoiceninja.local` |
|
||||||
| `nginx.serverBlock` | Custom NGINX server block | `nil` |
|
| `nginx.serverBlock` | Custom NGINX server block | `nil` |
|
||||||
| `nginx.extraVolumes` | Array to add extra volumes | Check `values.yaml` file |
|
| `nginx.extraVolumes` | Array to add extra volumes | Check `values.yaml` file |
|
||||||
| `nginx.extraVolumes[0].persistentVolumeClaim.claimName` | Name of Invoiceninja public PVC | `invoiceninja-public` |
|
| `nginx.extraVolumes[0].persistentVolumeClaim.claimName` | Name of Invoice Ninja public PVC | `invoiceninja-public` |
|
||||||
| `nginx.extraVolumeMounts` | Array to add extra mount | Check `values.yaml` file |
|
| `nginx.extraVolumeMounts` | Array to add extra mount | Check `values.yaml` file |
|
||||||
|
|
||||||
> See [Dependencies](#dependencies) for more.
|
> See [Dependencies](#dependencies) for more.
|
||||||
@@ -158,16 +161,18 @@ The following table shows the configuration options for the Invoiceninja helm ch
|
|||||||
|
|
||||||
### Redis parameters
|
### Redis parameters
|
||||||
|
|
||||||
| Parameter | Description | Default |
|
| Parameter | Description | Default |
|
||||||
| --------------------------------- | -------------------------------------------- | ------- |
|
| --------------------------------- | -------------------------------------------- | ----------------------------------------- |
|
||||||
| `redis.enabled` | If external redis is used, set it to `false` | `true` |
|
| `redis.enabled` | If external redis is used, set it to `false` | `true` |
|
||||||
| `redis.password` | Redis password | `nil` |
|
| `redis.password` | Redis password | _random 10 character alphanumeric string_ |
|
||||||
| `redis.usePassword` | Use redis password | `false` |
|
| `redis.sentinel.enabled` | Enable sentinel containers | `true` |
|
||||||
| `externalRedis.host` | Host of the external redis | `nil` |
|
| `redis.sentinel.usePassword` | Use password for sentinel containers | `false` |
|
||||||
| `externalRedis.port` | Port of the external redis | `6379` |
|
| `externalRedis.host` | Host of the external redis | `nil` |
|
||||||
| `externalRedis.password` | Password for the external redis | `nil` |
|
| `externalRedis.port` | Port of the external redis | `6379` |
|
||||||
| `externalRedis.databases.default` | Database to use by default | `0` |
|
| `externalRedis.password` | Password for the external redis | `nil` |
|
||||||
| `externalRedis.databases.cache` | Database to use by cache | `1` |
|
| `externalRedis.sentinel` | Using sentinels | `false` |
|
||||||
|
| `externalRedis.databases.default` | Database to use by default | `0` |
|
||||||
|
| `externalRedis.databases.cache` | Database to use by cache | `1` |
|
||||||
|
|
||||||
> See [Dependencies](#dependencies) for more.
|
> See [Dependencies](#dependencies) for more.
|
||||||
|
|
||||||
@@ -191,13 +196,13 @@ The following table shows the configuration options for the Invoiceninja helm ch
|
|||||||
|
|
||||||
### Other parameters
|
### Other parameters
|
||||||
|
|
||||||
| Parameter | Description | Default |
|
| Parameter | Description | Default |
|
||||||
| -------------------------- | --------------------------------------- | ------- |
|
| -------------------------- | ---------------------------------------- | ------- |
|
||||||
| `autoscaling.enabled` | Enable autoscaling for Invoiceninja | `false` |
|
| `autoscaling.enabled` | Enable autoscaling for Invoice Ninja | `false` |
|
||||||
| `autoscaling.minReplicas` | Minimum number of Invoiceninja replicas | `1` |
|
| `autoscaling.minReplicas` | Minimum number of Invoice Ninja replicas | `1` |
|
||||||
| `autoscaling.maxReplicas` | Maximum number of Invoiceninja replicas | `11` |
|
| `autoscaling.maxReplicas` | Maximum number of Invoice Ninja replicas | `11` |
|
||||||
| `autoscaling.targetCPU` | Target CPU utilization percentage | `nil` |
|
| `autoscaling.targetCPU` | Target CPU utilization percentage | `nil` |
|
||||||
| `autoscaling.targetMemory` | Target Memory utilization percentage | `nil` |
|
| `autoscaling.targetMemory` | Target Memory utilization percentage | `nil` |
|
||||||
|
|
||||||
## Installing with Arguments
|
## Installing with Arguments
|
||||||
|
|
||||||
@@ -205,11 +210,17 @@ Specify each parameter using the `--set key=value[,key=value]` argument to `helm
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
helm install invoiceninja \
|
helm install invoiceninja \
|
||||||
--set replicaCount=3,livenessProbe.initialDelaySeconds=90 \
|
--set appKey=changeit \
|
||||||
|
--set replicaCount=3 \
|
||||||
|
--set nginx.replicaCount=3 \
|
||||||
|
--set redis.cluster.slaveCount=3 \
|
||||||
|
--set redis.password=changeit \
|
||||||
|
--set mariadb.auth.rootPassword=changeit \
|
||||||
|
--set mariadb.auth.password=changeit \
|
||||||
invoiceninja/invoiceninja
|
invoiceninja/invoiceninja
|
||||||
```
|
```
|
||||||
|
|
||||||
The above command sets the number of replicas to 4, and the liveness probe delay to 90 seconds.
|
The above command sets the number of replicas to 3 for a highly available (HA) setup. Note that you would need to use an external DB such as MariaDB Galera for a full HA production setup.
|
||||||
|
|
||||||
Alternatively, a YAML file that specifies the values for the parameters can be provided while [installing](https://helm.sh/docs/helm/helm_install/) the chart. For example,
|
Alternatively, a YAML file that specifies the values for the parameters can be provided while [installing](https://helm.sh/docs/helm/helm_install/) the chart. For example,
|
||||||
|
|
||||||
|
|||||||
@@ -16,18 +16,19 @@ Externally through the following DNS name:
|
|||||||
-- OR --
|
-- OR --
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{- if contains "NodePort" .Values.service.type }}
|
{{- if contains "NodePort" .Values.nginx.service.type }}
|
||||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.names.fullname" . }})
|
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "invoiceninja.nginx.fullname" . }})
|
||||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||||
echo http://$NODE_IP:$NODE_PORT
|
echo http://$NODE_IP:$NODE_PORT
|
||||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
{{- else if contains "LoadBalancer" .Values.nginx.service.type }}
|
||||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||||
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "common.names.fullname" . }}'
|
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "invoiceninja.nginx.fullname" . }}'
|
||||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "common.names.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "invoiceninja.nginx.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
||||||
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
||||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
{{- else if contains "ClusterIP" .Values.nginx.service.type }}
|
||||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "common.names.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
export SVC_NAME=$(kubectl get svc --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name=nginx,app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||||
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
|
export SVC_PORT=$(kubectl get svc --namespace {{ .Release.Namespace }} $SVC_NAME -o jsonpath="{.spec.ports[0].port}")
|
||||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
echo "Add the line '127.0.0.1 {{ .Values.nginx.ingress.hostname }}' to your hosts file"
|
||||||
kubectl -n {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
|
echo "Visit http://{{ .Values.nginx.ingress.hostname }} to use your application"
|
||||||
|
kubectl -n {{ .Release.Namespace }} port-forward svc/$SVC_NAME 80:$SVC_PORT
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -140,7 +140,11 @@ Return the Redis Hostname
|
|||||||
*/}}
|
*/}}
|
||||||
{{- define "invoiceninja.redisHost" -}}
|
{{- define "invoiceninja.redisHost" -}}
|
||||||
{{- if .Values.redis.enabled }}
|
{{- if .Values.redis.enabled }}
|
||||||
|
{{- if .Values.redis.sentinel.enabled }}
|
||||||
|
{{- printf "%s-%s" (include "invoiceninja.redis.fullname" .) "headless" | trunc 63 | trimSuffix "-" -}}
|
||||||
|
{{- else }}
|
||||||
{{- printf "%s-%s" (include "invoiceninja.redis.fullname" .) "master" | trunc 63 | trimSuffix "-" -}}
|
{{- printf "%s-%s" (include "invoiceninja.redis.fullname" .) "master" | trunc 63 | trimSuffix "-" -}}
|
||||||
|
{{- end -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- printf "%s" .Values.externalRedis.host -}}
|
{{- printf "%s" .Values.externalRedis.host -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -151,7 +155,11 @@ Return the Redis Port
|
|||||||
*/}}
|
*/}}
|
||||||
{{- define "invoiceninja.redisPort" -}}
|
{{- define "invoiceninja.redisPort" -}}
|
||||||
{{- if .Values.redis.enabled }}
|
{{- if .Values.redis.enabled }}
|
||||||
|
{{- if .Values.redis.sentinel.enabled }}
|
||||||
|
{{- printf "26379" -}}
|
||||||
|
{{- else }}
|
||||||
{{- printf "6379" -}}
|
{{- printf "6379" -}}
|
||||||
|
{{- end -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- printf "%d" (.Values.externalRedis.port | int ) -}}
|
{{- printf "%d" (.Values.externalRedis.port | int ) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -189,3 +197,47 @@ Return the Redis Secret Name
|
|||||||
{{- printf "%s" (include "invoiceninja.redis.fullname" .) -}}
|
{{- printf "%s" (include "invoiceninja.redis.fullname" .) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Return the Broadcast Connection Name
|
||||||
|
*/}}
|
||||||
|
{{- define "invoiceninja.redisBroadcastConnection" -}}
|
||||||
|
{{- if or (and .Values.redis.enabled .Values.redis.sentinel.enabled) (and .Values.externalRedis.host .Values.externalRedis.sentinel) }}
|
||||||
|
{{- printf "sentinel-default" -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- printf "default" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Return the Cache Connection Name
|
||||||
|
*/}}
|
||||||
|
{{- define "invoiceninja.redisCacheConnection" -}}
|
||||||
|
{{- if or (and .Values.redis.enabled .Values.redis.sentinel.enabled) (and .Values.externalRedis.host .Values.externalRedis.sentinel) }}
|
||||||
|
{{- printf "sentinel-cache" -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- printf "cache" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Return the Queue Connection Name
|
||||||
|
*/}}
|
||||||
|
{{- define "invoiceninja.redisQueueConnection" -}}
|
||||||
|
{{- if or (and .Values.redis.enabled .Values.redis.sentinel.enabled) (and .Values.externalRedis.host .Values.externalRedis.sentinel) }}
|
||||||
|
{{- printf "sentinel-default" -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- printf "default" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Return the Session Connection Name
|
||||||
|
*/}}
|
||||||
|
{{- define "invoiceninja.redisSessionConnection" -}}
|
||||||
|
{{- if or (and .Values.redis.enabled .Values.redis.sentinel.enabled) (and .Values.externalRedis.host .Values.externalRedis.sentinel) }}
|
||||||
|
{{- printf "sentinel-default" -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- printf "default" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|||||||
@@ -13,36 +13,38 @@ metadata:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
data:
|
data:
|
||||||
{{- if .Values.nginx.ingress.enabled }}
|
{{- if .Values.nginx.ingress.enabled }}
|
||||||
APP_URL: "http://{{ .Values.nginx.ingress.hostname }}/"
|
APP_URL: "http://{{ .Values.nginx.ingress.hostname }}"
|
||||||
{{- else }}
|
{{- else }}
|
||||||
APP_URL: "http://{{ include "common.names.fullname" . }}/"
|
APP_URL: "http://{{ include "common.names.fullname" . }}"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
APP_DEBUG: {{ .Values.debug | quote }}
|
APP_DEBUG: {{ .Values.debug | quote }}
|
||||||
DB_HOST1: {{ include "invoiceninja.databaseHost" . | quote }}
|
DB_HOST1: {{ include "invoiceninja.databaseHost" . | quote }}
|
||||||
DB_PORT1: {{ include "invoiceninja.databasePort" . | quote }}
|
DB_PORT1: {{ include "invoiceninja.databasePort" . | quote }}
|
||||||
DB_USERNAME1: {{ include "invoiceninja.databaseUser" . | quote }}
|
DB_USERNAME1: {{ include "invoiceninja.databaseUser" . | quote }}
|
||||||
DB_DATABASE1: {{ include "invoiceninja.databaseName" . | quote }}
|
DB_DATABASE1: {{ include "invoiceninja.databaseName" . | quote }}
|
||||||
{{- if not (empty .Values.logChannel) }}
|
{{- if .Values.logChannel }}
|
||||||
LOG_CHANNEL: {{ .Values.logChannel | quote }}
|
LOG_CHANNEL: {{ .Values.logChannel | quote }}
|
||||||
|
{{- else }}
|
||||||
|
LOG_CHANNEL: stderr
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if not (empty .Values.broadcastDriver) }}
|
{{- if .Values.broadcastDriver }}
|
||||||
BROADCAST_DRIVER: {{ .Values.broadcastDriver | quote }}
|
BROADCAST_DRIVER: {{ .Values.broadcastDriver | quote }}
|
||||||
{{- else if or .Values.redis.enabled (not (empty .Values.externalRedis.host)) }}
|
{{- else if or .Values.redis.enabled .Values.externalRedis.host }}
|
||||||
BROADCAST_DRIVER: redis
|
BROADCAST_DRIVER: redis
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if not (empty .Values.cacheDriver) }}
|
{{- if .Values.cacheDriver }}
|
||||||
CACHE_DRIVER: {{ .Values.cacheDriver | quote }}
|
CACHE_DRIVER: {{ .Values.cacheDriver | quote }}
|
||||||
{{- else if or .Values.redis.enabled (not (empty .Values.externalRedis.host)) }}
|
{{- else if or .Values.redis.enabled .Values.externalRedis.host }}
|
||||||
CACHE_DRIVER: redis
|
CACHE_DRIVER: redis
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if not (empty .Values.sessionDriver) }}
|
{{- if .Values.sessionDriver }}
|
||||||
SESSION_DRIVER: {{ .Values.sessionDriver | quote }}
|
SESSION_DRIVER: {{ .Values.sessionDriver | quote }}
|
||||||
{{- else if or .Values.redis.enabled (not (empty .Values.externalRedis.host)) }}
|
{{- else if or .Values.redis.enabled .Values.externalRedis.host }}
|
||||||
SESSION_DRIVER: redis
|
SESSION_DRIVER: redis
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if not (empty .Values.queueConnection) }}
|
{{- if .Values.queueConnection }}
|
||||||
QUEUE_CONNECTION: {{ .Values.queueConnection | quote }}
|
QUEUE_CONNECTION: {{ .Values.queueConnection | quote }}
|
||||||
{{- else if or .Values.redis.enabled (not (empty .Values.externalRedis.host)) }}
|
{{- else if or .Values.redis.enabled .Values.externalRedis.host }}
|
||||||
QUEUE_CONNECTION: redis
|
QUEUE_CONNECTION: redis
|
||||||
{{- end }}
|
{{- end }}
|
||||||
PHANTOMJS_PDF_GENERATION: {{ not .Values.snappdf | quote}}
|
PHANTOMJS_PDF_GENERATION: {{ not .Values.snappdf | quote}}
|
||||||
@@ -50,3 +52,7 @@ data:
|
|||||||
REDIS_PORT: {{ include "invoiceninja.redisPort" . | quote }}
|
REDIS_PORT: {{ include "invoiceninja.redisPort" . | quote }}
|
||||||
REDIS_DB: {{ include "invoiceninja.redisDatabase" . | quote }}
|
REDIS_DB: {{ include "invoiceninja.redisDatabase" . | quote }}
|
||||||
REDIS_CACHE_DB: {{ include "invoiceninja.redisCacheDatabase" . | quote }}
|
REDIS_CACHE_DB: {{ include "invoiceninja.redisCacheDatabase" . | quote }}
|
||||||
|
REDIS_BROADCAST_CONNECTION: {{ include "invoiceninja.redisBroadcastConnection" . | quote }}
|
||||||
|
REDIS_CACHE_CONNECTION: {{ include "invoiceninja.redisCacheConnection" . | quote }}
|
||||||
|
REDIS_QUEUE_CONNECTION: {{ include "invoiceninja.redisQueueConnection" . | quote }}
|
||||||
|
SESSION_CONNECTION: {{ include "invoiceninja.redisSessionConnection" . | quote }}
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ spec:
|
|||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: {{ include "invoiceninja.databaseSecretName" . }}
|
name: {{ include "invoiceninja.databaseSecretName" . }}
|
||||||
key: mariadb-password
|
key: mariadb-password
|
||||||
{{- if not (and .Values.redis.enabled (not .Values.redis.usePassword)) }}
|
{{- if or (and .Values.redis.enabled .Values.redis.usePassword) (or .Values.externalRedis.password .Values.externalRedis.existingSecret) }}
|
||||||
- name: REDIS_PASSWORD
|
- name: REDIS_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
|
|||||||
@@ -12,13 +12,13 @@
|
|||||||
# - myRegistryKeySecretName
|
# - myRegistryKeySecretName
|
||||||
# storageClass: myStorageClass
|
# storageClass: myStorageClass
|
||||||
|
|
||||||
## Invoiceninja image version
|
## Invoice Ninja image version
|
||||||
## ref: https://github.com/invoiceninja/dockerfiles
|
## ref: https://github.com/invoiceninja/dockerfiles
|
||||||
##
|
##
|
||||||
image:
|
image:
|
||||||
registry: docker.io
|
registry: docker.io
|
||||||
repository: invoiceninja/invoiceninja
|
repository: invoiceninja/invoiceninja
|
||||||
tag: 5.1.32
|
tag: 5.1.42
|
||||||
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
||||||
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
|
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
|
||||||
##
|
##
|
||||||
@@ -30,7 +30,7 @@ image:
|
|||||||
# pullSecrets:
|
# pullSecrets:
|
||||||
# - myRegistryKeySecretName
|
# - myRegistryKeySecretName
|
||||||
|
|
||||||
## String to turn on debug mode in Invoiceninja
|
## String to turn on debug mode in Invoice Ninja
|
||||||
##
|
##
|
||||||
debug: false
|
debug: false
|
||||||
|
|
||||||
@@ -169,7 +169,7 @@ containerSecurityContext:
|
|||||||
##
|
##
|
||||||
replicaCount: 1
|
replicaCount: 1
|
||||||
|
|
||||||
## Set up update strategy for Invoiceninja installation. Set to Recreate if you use persistent volume that cannot be mounted by more than one pods to makesure the pods is destroyed first.
|
## Set up update strategy for Invoice Ninja installation. Set to Recreate if you use persistent volume that cannot be mounted by more than one pods to makesure the pods is destroyed first.
|
||||||
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
|
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
|
||||||
## Example:
|
## Example:
|
||||||
## updateStrategy:
|
## updateStrategy:
|
||||||
@@ -247,7 +247,7 @@ service:
|
|||||||
annotations: {}
|
annotations: {}
|
||||||
|
|
||||||
## Configure extra options for liveness and readiness probes
|
## Configure extra options for liveness and readiness probes
|
||||||
## This applies to all the Invoiceninja in the sharded cluster
|
## This applies to all the Invoice Ninja in the sharded cluster
|
||||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
|
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
|
||||||
##
|
##
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
@@ -286,7 +286,7 @@ resources:
|
|||||||
persistence:
|
persistence:
|
||||||
public:
|
public:
|
||||||
enabled: true
|
enabled: true
|
||||||
## Invoiceninja data Persistent Volume Storage Class
|
## Invoice Ninja data Persistent Volume Storage Class
|
||||||
## If defined, storageClassName: <storageClass>
|
## If defined, storageClassName: <storageClass>
|
||||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||||
## If undefined (the default) or set to null, no storageClassName spec is
|
## If undefined (the default) or set to null, no storageClassName spec is
|
||||||
@@ -305,7 +305,7 @@ persistence:
|
|||||||
dataSource: {}
|
dataSource: {}
|
||||||
storage:
|
storage:
|
||||||
enabled: true
|
enabled: true
|
||||||
## Invoiceninja data Persistent Volume Storage Class
|
## Invoice Ninja data Persistent Volume Storage Class
|
||||||
## If defined, storageClassName: <storageClass>
|
## If defined, storageClassName: <storageClass>
|
||||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||||
## If undefined (the default) or set to null, no storageClassName spec is
|
## If undefined (the default) or set to null, no storageClassName spec is
|
||||||
@@ -335,19 +335,19 @@ autoscaling:
|
|||||||
##
|
##
|
||||||
redis:
|
redis:
|
||||||
enabled: true
|
enabled: true
|
||||||
usePassword: false
|
sentinel:
|
||||||
cluster:
|
enabled: true
|
||||||
enabled: false
|
usePassword: false
|
||||||
|
|
||||||
## External Redis Configuration
|
## External Redis Configuration
|
||||||
##
|
##
|
||||||
## All of these values are only used when redis.enabled is set to false
|
## All of these values are only used when redis.enabled is set to false
|
||||||
##
|
##
|
||||||
externalRedis:
|
externalRedis:
|
||||||
## Redis host
|
## Redis/Sentinel host
|
||||||
##
|
##
|
||||||
host: ""
|
host: ""
|
||||||
## Redis port number
|
## Redis/Sentinel port number
|
||||||
##
|
##
|
||||||
port: 6379
|
port: 6379
|
||||||
## Redis password
|
## Redis password
|
||||||
@@ -358,6 +358,8 @@ externalRedis:
|
|||||||
## NOTE: When it's set, the `externalRedis.password` parameter is ignored
|
## NOTE: When it's set, the `externalRedis.password` parameter is ignored
|
||||||
##
|
##
|
||||||
# existingSecret:
|
# existingSecret:
|
||||||
|
## Whether Redis Sentinel are used
|
||||||
|
sentinel: false
|
||||||
## Redis databases
|
## Redis databases
|
||||||
##
|
##
|
||||||
databases:
|
databases:
|
||||||
@@ -392,7 +394,7 @@ externalDatabase:
|
|||||||
## Database host
|
## Database host
|
||||||
##
|
##
|
||||||
host: ""
|
host: ""
|
||||||
## non-root Username for Invoiceninja Database
|
## non-root Username for Invoice Ninja Database
|
||||||
##
|
##
|
||||||
user: invoiceninja
|
user: invoiceninja
|
||||||
## Database password
|
## Database password
|
||||||
@@ -419,13 +421,13 @@ nginx:
|
|||||||
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
|
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
|
||||||
##
|
##
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
## Configure the ingress resource that allows you to access the Invoiceninja
|
## Configure the ingress resource that allows you to access the Invoice Ninja
|
||||||
## ref: http://kubernetes.io/docs/user-guide/ingress/
|
## ref: http://kubernetes.io/docs/user-guide/ingress/
|
||||||
##
|
##
|
||||||
ingress:
|
ingress:
|
||||||
enabled: true
|
enabled: true
|
||||||
hostname: invoiceninja.local
|
hostname: invoiceninja.local
|
||||||
## Configure the serverblock for Invoiceninja
|
## Configure the serverblock for Invoice Ninja
|
||||||
## Note: you may need to replace the fastcgi_pass value if the release name is different
|
## Note: you may need to replace the fastcgi_pass value if the release name is different
|
||||||
##
|
##
|
||||||
serverBlock: |
|
serverBlock: |
|
||||||
@@ -454,7 +456,7 @@ nginx:
|
|||||||
fastcgi_buffers 4 16k;
|
fastcgi_buffers 4 16k;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
## Configure the extraVolumes and extraVolumeMounts for Invoiceninja
|
## Configure the extraVolumes and extraVolumeMounts for Invoice Ninja
|
||||||
## Note: you may need to replace the claimName if the release name is different
|
## Note: you may need to replace the claimName if the release name is different
|
||||||
##
|
##
|
||||||
extraVolumes:
|
extraVolumes:
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
FROM mysql:5
|
FROM mysql:5
|
||||||
|
# When running on ARM64 use MariaDB instead of MySQL
|
||||||
|
#FROM mariadb:10.4
|
||||||
ENV force_color_prompt yes
|
ENV force_color_prompt yes
|
||||||
|
|
||||||
RUN apt-get update;
|
RUN apt-get update;
|
||||||
@@ -7,4 +9,4 @@ RUN apt-get install -y cron;
|
|||||||
ENTRYPOINT \
|
ENTRYPOINT \
|
||||||
service cron start; \
|
service cron start; \
|
||||||
printenv | grep -v "no_proxy" >> /etc/environment; \
|
printenv | grep -v "no_proxy" >> /etc/environment; \
|
||||||
docker-entrypoint.sh mysqld
|
docker-entrypoint.sh mysqld
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ server {
|
|||||||
listen 80 default_server;
|
listen 80 default_server;
|
||||||
server_name _;
|
server_name _;
|
||||||
|
|
||||||
|
client_max_body_size 100M;
|
||||||
|
|
||||||
root /var/www/app/public/;
|
root /var/www/app/public/;
|
||||||
index index.php;
|
index index.php;
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ services:
|
|||||||
- app
|
- app
|
||||||
# Run webserver nginx on port 80
|
# Run webserver nginx on port 80
|
||||||
# Feel free to modify depending what port is already occupied
|
# Feel free to modify depending what port is already occupied
|
||||||
ports:
|
ports:
|
||||||
- "80:80"
|
- "80:80"
|
||||||
#- "443:443"
|
#- "443:443"
|
||||||
networks:
|
networks:
|
||||||
@@ -32,24 +32,22 @@ services:
|
|||||||
- ./docker/app/storage:/var/www/app/storage:rw,delegated
|
- ./docker/app/storage:/var/www/app/storage:rw,delegated
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
networks:
|
networks:
|
||||||
- invoiceninja
|
- invoiceninja
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
- "in5.localhost:192.168.0.124 " #host and ip
|
- "in5.localhost:192.168.0.124 " #host and ip
|
||||||
|
|
||||||
db:
|
db:
|
||||||
image: mysql:5
|
image: mysql:5
|
||||||
|
# When running on ARM64 use MariaDB instead of MySQL
|
||||||
|
# image: mariadb:10.4
|
||||||
# For auto DB backups comment out image and use the build block below
|
# For auto DB backups comment out image and use the build block below
|
||||||
# build:
|
# build:
|
||||||
# context: ./config/mysql
|
# context: ./config/mysql
|
||||||
ports:
|
ports:
|
||||||
- "3305:3306"
|
- "3305:3306"
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
env_file: env
|
||||||
- MYSQL_ROOT_PASSWORD=ninjaAdm1nPassword
|
|
||||||
- MYSQL_USER=ninja
|
|
||||||
- MYSQL_PASSWORD=ninja
|
|
||||||
- MYSQL_DATABASE=ninja
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./docker/mysql/data:/var/lib/mysql:rw,delegated
|
- ./docker/mysql/data:/var/lib/mysql:rw,delegated
|
||||||
|
|
||||||
@@ -82,7 +80,7 @@ services:
|
|||||||
# EOF'
|
# EOF'
|
||||||
# networks:
|
# networks:
|
||||||
# - invoiceninja
|
# - invoiceninja
|
||||||
#
|
#
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
invoiceninja:
|
invoiceninja:
|
||||||
|
|||||||
4
env
4
env
@@ -7,6 +7,10 @@ DB_PORT1=3306
|
|||||||
DB_USERNAME1=ninja
|
DB_USERNAME1=ninja
|
||||||
DB_PASSWORD1=ninja
|
DB_PASSWORD1=ninja
|
||||||
DB_DATABASE1=ninja
|
DB_DATABASE1=ninja
|
||||||
|
MYSQL_ROOT_PASSWORD=ninjaAdm1nPassword
|
||||||
|
MYSQL_USER=ninja
|
||||||
|
MYSQL_PASSWORD=ninja
|
||||||
|
MYSQL_DATABASE=ninja
|
||||||
|
|
||||||
#this is a system variable please do not remove
|
#this is a system variable please do not remove
|
||||||
IS_DOCKER=true
|
IS_DOCKER=true
|
||||||
|
|||||||
Reference in New Issue
Block a user