Page MenuHomePhorge

D4151.1775192392.diff
No OneTemporary

Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None

D4151.1775192392.diff

diff --git a/bin/quickstart.sh b/bin/quickstart.sh
--- a/bin/quickstart.sh
+++ b/bin/quickstart.sh
@@ -24,6 +24,7 @@
docker volume rm kolab_mariadb || :
docker volume rm kolab_imap || :
docker volume rm kolab_ldap || :
+docker volume rm kolab_minio || :
# We can't use the following artisan commands because it will just block if redis is unavailable:
# src/artisan octane:stop >/dev/null 2>&1 || :
@@ -34,7 +35,7 @@
bin/regen-certs
docker-compose build coturn ldap kolab mariadb meet pdns proxy redis haproxy roundcube
-docker-compose up -d coturn ldap kolab mariadb meet pdns redis roundcube
+docker-compose up -d coturn ldap kolab mariadb meet pdns redis roundcube minio
# Workaround until we have docker-compose --wait (https://github.com/docker/compose/pull/8777)
function wait_for_container {
diff --git a/config.demo/src/.env b/config.demo/src/.env
--- a/config.demo/src/.env
+++ b/config.demo/src/.env
@@ -194,3 +194,7 @@
PASSPORT_PROXY_OAUTH_CLIENT_ID=942edef5-3dbd-4a14-8e3e-d5d59b727bee
PASSPORT_PROXY_OAUTH_CLIENT_SECRET=L6L0n56ecvjjK0cJMjeeV1pPAeffUBO0YSSH63wf
+MINIO_USER=minio
+MINIO_PASSWORD=W3lcom32@ph3lia
+MINIO_BUCKET=kolab
+FILESYSTEM_DISK=minio
diff --git a/config.prod/src/.env b/config.prod/src/.env
--- a/config.prod/src/.env
+++ b/config.prod/src/.env
@@ -151,3 +151,8 @@
OPENEXCHANGERATES_API_KEY={{ openexchangerates_api_key }}
FIREBASE_API_KEY={{ firebase_api_key }}
+
+MINIO_USER=minio
+MINIO_PASSWORD=W3lcom32@ph3lia
+MINIO_BUCKET=kolab
+FILESYSTEM_DISK=minio
diff --git a/docker-compose.yml b/docker-compose.yml
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -337,6 +337,29 @@
- ./meet/server:/src/meet/:ro
- ./docker/certs/meet.${APP_WEBSITE_DOMAIN}.cert:/etc/pki/tls/certs/meet.${APP_WEBSITE_DOMAIN}.cert
- ./docker/certs/meet.${APP_WEBSITE_DOMAIN}.key:/etc/pki/tls/private/meet.${APP_WEBSITE_DOMAIN}.key
+ minio:
+ container_name: kolab-minio
+ restart: on-failure
+ healthcheck:
+ interval: 10s
+ test: "curl -f http://127.0.0.1:9000/minio/health/live || exit 1"
+ timeout: 5s
+ retries: 30
+ start_period: 5m
+ environment:
+ - MINIO_ROOT_USER=${MINIO_USER}
+ - MINIO_ROOT_PASSWORD=${MINIO_PASSWORD}
+ image: minio/minio
+ networks:
+ kolab:
+ ipv4_address: 172.18.0.14
+ ports:
+ - "9000:9000"
+ - "9001:9001"
+ entrypoint: sh
+ command: -c 'mkdir -p /data/${MINIO_BUCKET} && minio server /data --console-address ":9001"'
+ volumes:
+ - minio:/data
networks:
kolab:
driver: bridge
@@ -347,3 +370,4 @@
mariadb:
imap:
ldap:
+ minio:
diff --git a/src/app/Backends/Storage.php b/src/app/Backends/Storage.php
--- a/src/app/Backends/Storage.php
+++ b/src/app/Backends/Storage.php
@@ -25,7 +25,7 @@
*/
public static function fileDelete(Item $file): void
{
- $disk = LaravelStorage::disk('files');
+ $disk = LaravelStorage::disk(\config('filesystems.default'));
$path = $file->path . '/' . $file->id;
@@ -45,7 +45,7 @@
*/
public static function fileChunkDelete(Chunk $chunk): void
{
- $disk = LaravelStorage::disk('files');
+ $disk = LaravelStorage::disk(\config('filesystems.default'));
$path = self::chunkLocation($chunk->chunk_id, $chunk->item);
@@ -79,7 +79,7 @@
$response->setCallback(function () use ($file) {
$file->chunks()->orderBy('sequence')->get()->each(function ($chunk) use ($file) {
- $disk = LaravelStorage::disk('files');
+ $disk = LaravelStorage::disk(\config('filesystems.default'));
$path = Storage::chunkLocation($chunk->chunk_id, $file);
$stream = $disk->readStream($path);
@@ -108,7 +108,7 @@
return self::fileInputResumable($stream, $params, $file);
}
- $disk = LaravelStorage::disk('files');
+ $disk = LaravelStorage::disk(\config('filesystems.default'));
$chunkId = \App\Utils::uuidStr();
@@ -197,8 +197,8 @@
throw new \Exception("Invalid 'from' parameter for resumable file upload.");
}
- $disk = LaravelStorage::disk('files');
+ $disk = LaravelStorage::disk(\config('filesystems.default'));
$chunkId = \App\Utils::uuidStr();
$path = self::chunkLocation($chunkId, $file);
@@ -266,7 +266,7 @@
*/
protected static function mimetype(string $path): string
{
- $disk = LaravelStorage::disk('files');
+ $disk = LaravelStorage::disk(\config('filesystems.default'));
$mimetype = $disk->mimeType($path);
diff --git a/src/composer.json b/src/composer.json
--- a/src/composer.json
+++ b/src/composer.json
@@ -26,6 +26,7 @@
"laravel/octane": "^1.2",
"laravel/passport": "^11.3",
"laravel/tinker": "^2.7",
+ "league/flysystem-aws-s3-v3": "^3.0",
"mlocati/spf-lib": "^3.1",
"mollie/laravel-mollie": "^2.19",
"pear/crypt_gpg": "^1.6.6",
diff --git a/src/config/filesystems.php b/src/config/filesystems.php
--- a/src/config/filesystems.php
+++ b/src/config/filesystems.php
@@ -52,6 +52,16 @@
'visibility' => 'public',
],
+ 'minio' => [
+ 'driver' => 's3',
+ 'key' => env('MINIO_USER'),
+ 'secret' => env('MINIO_PASSWORD'),
+ 'region' => 'local',
+ 'bucket' => env('MINIO_BUCKET'),
+ 'endpoint' => 'http://minio:9000',
+ 'use_path_style_endpoint' => true,
+ ],
+
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 3, 4:59 AM (22 h, 23 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18822647
Default Alt Text
D4151.1775192392.diff (5 KB)

Event Timeline