diff --git a/apps/server/src/config/schema.ts b/apps/server/src/config/schema.ts index bcd881c72..362b070c4 100644 --- a/apps/server/src/config/schema.ts +++ b/apps/server/src/config/schema.ts @@ -39,6 +39,10 @@ export const configSchema = z.object({ .string() .default("false") .transform((s) => s !== "false" && s !== "0"), + STORAGE_SKIP_CREATE_BUCKET: z + .string() + .default("false") + .transform((s) => s !== "false" && s !== "0"), // Redis REDIS_URL: z.string().url().startsWith("redis://").optional(), diff --git a/apps/server/src/storage/storage.service.ts b/apps/server/src/storage/storage.service.ts index 01ccf6f70..7fdc2bcb3 100644 --- a/apps/server/src/storage/storage.service.ts +++ b/apps/server/src/storage/storage.service.ts @@ -44,6 +44,8 @@ export class StorageService implements OnModuleInit { private client: Client; private bucketName: string; + private skipCreateBucket: boolean; + constructor( private readonly configService: ConfigService, private readonly minioService: MinioService, @@ -55,6 +57,16 @@ export class StorageService implements OnModuleInit { async onModuleInit() { this.client = this.minioService.client; this.bucketName = this.configService.getOrThrow("STORAGE_BUCKET"); + this.skipCreateBucket = this.configService.getOrThrow("STORAGE_SKIP_CREATE_BUCKET"); + + if (this.skipCreateBucket) { + this.logger.log("Skipping the creation of the storage bucket."); + this.logger.warn("Make sure that the following paths are publicly accessible: "); + this.logger.warn("- /pictures/*"); + this.logger.warn("- /previews/*"); + this.logger.warn("- /resumes/*"); + return; + } try { // Create a storage bucket if it doesn't exist