@@ -225,7 +225,7 @@ helm install my-probo ././charts/probo \
|
|||||||
- Storage: Azure Blob Storage (with S3 compatibility)
|
- Storage: Azure Blob Storage (with S3 compatibility)
|
||||||
- Kubernetes: Azure Kubernetes Service (AKS)
|
- Kubernetes: Azure Kubernetes Service (AKS)
|
||||||
|
|
||||||
#### Exemple
|
#### Example
|
||||||
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -242,9 +242,12 @@ helm install my-probo ././charts/probo \
|
|||||||
--set s3.endpoint="https://<your-storage-account>.blob.core.windows.net" \
|
--set s3.endpoint="https://<your-storage-account>.blob.core.windows.net" \
|
||||||
--set s3.bucket="my-probo-bucket" \
|
--set s3.bucket="my-probo-bucket" \
|
||||||
--set s3.accessKeyId="<azure-access-key>" \
|
--set s3.accessKeyId="<azure-access-key>" \
|
||||||
--set s3.secretAccessKey="<azure-secret-key>"
|
--set s3.secretAccessKey="<azure-secret-key>" \
|
||||||
|
--set s3.usePathStyle=true
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> **Note:** Azure Blob Storage requires `s3.usePathStyle=true` to construct URLs correctly (path-style: `https://account.blob.core.windows.net/container/...` instead of virtual-hosted style: `https://bucket.account.blob.core.windows.net/...`).
|
||||||
|
|
||||||
### DigitalOcean
|
### DigitalOcean
|
||||||
- PostgreSQL: Managed PostgreSQL Database
|
- PostgreSQL: Managed PostgreSQL Database
|
||||||
- Storage: DigitalOcean Spaces
|
- Storage: DigitalOcean Spaces
|
||||||
|
|||||||
@@ -160,6 +160,7 @@ The following parameters **must** be configured:
|
|||||||
| `s3.bucket` | S3 bucket name | `probod` |
|
| `s3.bucket` | S3 bucket name | `probod` |
|
||||||
| `s3.region` | AWS region | `us-east-1` |
|
| `s3.region` | AWS region | `us-east-1` |
|
||||||
| `s3.endpoint` | S3 endpoint (for S3-compatible) | `""` |
|
| `s3.endpoint` | S3 endpoint (for S3-compatible) | `""` |
|
||||||
|
| `s3.usePathStyle` | Use path-style URLs (required for Azure Blob Storage) | `false` |
|
||||||
| `chrome.enabled` | Deploy Chrome | `true` |
|
| `chrome.enabled` | Deploy Chrome | `true` |
|
||||||
| `chrome.external.addr` | External Chrome (if disabled) | `""` |
|
| `chrome.external.addr` | External Chrome (if disabled) | `""` |
|
||||||
| `ingress.enabled` | Enable ingress | `false` |
|
| `ingress.enabled` | Enable ingress | `false` |
|
||||||
|
|||||||
@@ -179,6 +179,10 @@ spec:
|
|||||||
- name: AWS_ENDPOINT
|
- name: AWS_ENDPOINT
|
||||||
value: {{ $s3Endpoint | quote }}
|
value: {{ $s3Endpoint | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.s3.usePathStyle }}
|
||||||
|
- name: AWS_USE_PATH_STYLE
|
||||||
|
value: "true"
|
||||||
|
{{- end }}
|
||||||
# Email (SMTP)
|
# Email (SMTP)
|
||||||
- name: MAILER_SENDER_NAME
|
- name: MAILER_SENDER_NAME
|
||||||
value: {{ .Values.probo.mailer.senderName | quote }}
|
value: {{ .Values.probo.mailer.senderName | quote }}
|
||||||
|
|||||||
@@ -244,6 +244,14 @@ s3:
|
|||||||
# accessKeyId: "..." # Spaces access key
|
# accessKeyId: "..." # Spaces access key
|
||||||
# secretAccessKey: "..." # Spaces secret
|
# secretAccessKey: "..." # Spaces secret
|
||||||
|
|
||||||
|
# Azure Blob Storage example (uncomment and adjust):
|
||||||
|
# region: "eastus"
|
||||||
|
# bucket: "probo-container"
|
||||||
|
# endpoint: "https://mystorageaccount.blob.core.windows.net"
|
||||||
|
# accessKeyId: "mystorageaccount" # Storage account name
|
||||||
|
# secretAccessKey: "..." # Storage account access key
|
||||||
|
# usePathStyle: true # Required for Azure Blob Storage
|
||||||
|
|
||||||
# Chrome for PDF generation
|
# Chrome for PDF generation
|
||||||
chrome:
|
chrome:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|||||||
@@ -317,6 +317,10 @@ s3:
|
|||||||
endpoint: ""
|
endpoint: ""
|
||||||
accessKeyId: "" # REQUIRED when minio.enabled=false: S3 access key
|
accessKeyId: "" # REQUIRED when minio.enabled=false: S3 access key
|
||||||
secretAccessKey: "" # REQUIRED when minio.enabled=false: S3 secret key
|
secretAccessKey: "" # REQUIRED when minio.enabled=false: S3 secret key
|
||||||
|
# Use path-style URLs (required for Azure Blob Storage and some S3-compatible services)
|
||||||
|
# When true: https://endpoint/bucket/key
|
||||||
|
# When false (default): https://bucket.endpoint/key
|
||||||
|
usePathStyle: false
|
||||||
|
|
||||||
# MinIO configuration
|
# MinIO configuration
|
||||||
# Enable included MinIO for testing/development (NOT for production)
|
# Enable included MinIO for testing/development (NOT for production)
|
||||||
|
|||||||
@@ -21,5 +21,6 @@ type (
|
|||||||
AccessKeyID string `json:"access-key-id"`
|
AccessKeyID string `json:"access-key-id"`
|
||||||
SecretAccessKey string `json:"secret-access-key"`
|
SecretAccessKey string `json:"secret-access-key"`
|
||||||
Endpoint string `json:"endpoint"`
|
Endpoint string `json:"endpoint"`
|
||||||
|
UsePathStyle bool `json:"use-path-style"`
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -239,7 +239,9 @@ func (impl *Implm) Run(
|
|||||||
html2pdf.WithTracerProvider(tp),
|
html2pdf.WithTracerProvider(tp),
|
||||||
)
|
)
|
||||||
|
|
||||||
s3Client := s3.NewFromConfig(awsConfig)
|
s3Client := s3.NewFromConfig(awsConfig, func(o *s3.Options) {
|
||||||
|
o.UsePathStyle = impl.cfg.AWS.UsePathStyle
|
||||||
|
})
|
||||||
|
|
||||||
err = migrator.NewMigrator(pgClient, coredata.Migrations, l.Named("migrations")).Run(ctx, "migrations")
|
err = migrator.NewMigrator(pgClient, coredata.Migrations, l.Named("migrations")).Run(ctx, "migrations")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user