diff --git a/.env.example b/.env.example index e5a2d5a..d1d118f 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,9 @@ DATABASE_URL= -MINIO_URL=http://localhost:9000 +MINIO_SERVER_URL=http://localhost:9000 +MINIO_CLIENT_URL=http://localhost:9000 MINIO_ENDPOINT=localhost MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin -MINIO_USE_SSL=false \ No newline at end of file +MINIO_USE_SSL=false +BODY_SIZE_LIMIT=Infinity \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index aa0a4a6..7613dda 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,9 +8,17 @@ services: # ORIGIN is only necessary when not using a reverse proxy or hosting that includes https - ORIGIN=http://localhost:3000 - SKIP_DB_WAIT=false - # Only necessary for externaly hosted databases such as NeonDB + - MINIO_SERVER_URL=minio + - MINIO_CLIENT_URL=http://localhost:9000 + - MINIO_ENDPOINT=minio + - MINIO_ACCESS_KEY=minioadmin + - MINIO_SECRET_KEY=minioadmin + - MINIO_USE_SSL=false + - BODY_SIZE_LIMIT=Infinity + # Only necessary for externally hosted databases such as NeonDB depends_on: - db + - minio db: image: postgres environment: diff --git a/src/lib/server/minio.ts b/src/lib/server/minio.ts index 5b0ef1a..b212c7b 100644 --- a/src/lib/server/minio.ts +++ b/src/lib/server/minio.ts @@ -1,16 +1,17 @@ import { Client } from "minio"; -import { MINIO_URL } from "$env/static/private"; -import { MINIO_ACCESS_KEY } from "$env/static/private"; -import { MINIO_SECRET_KEY } from "$env/static/private"; -import { MINIO_ENDPOINT } from "$env/static/private"; -const port = MINIO_URL?.split(":").pop(); // 9000 +const MINIO_SERVER_URL = process.env.MINIO_SERVER_URL; +const MINIO_ACCESS_KEY = process.env.MINIO_ACCESS_KEY; +const MINIO_SECRET_KEY = process.env.MINIO_SECRET_KEY; +const MINIO_CLIENT_URL = process.env.MINIO_CLIENT_URL; +const MINIO_USE_SSL = process.env.MINIO_USE_SSL; +const port = MINIO_CLIENT_URL?.split(":").pop(); // 9000 const minioClient = new Client({ - endPoint: MINIO_ENDPOINT ? MINIO_ENDPOINT : "localhost", + endPoint: MINIO_SERVER_URL ? MINIO_SERVER_URL : "localhost", port: port ? parseInt(port) : 9000, - useSSL: false, - accessKey: MINIO_ACCESS_KEY, - secretKey: MINIO_SECRET_KEY, + useSSL: MINIO_USE_SSL ? MINIO_USE_SSL === "true" : false, + accessKey: MINIO_ACCESS_KEY as string, + secretKey: MINIO_SECRET_KEY as string, }); export default minioClient; diff --git a/src/routes/api/upload/+server.ts b/src/routes/api/upload/+server.ts index 452bac9..3c73c30 100644 --- a/src/routes/api/upload/+server.ts +++ b/src/routes/api/upload/+server.ts @@ -3,7 +3,7 @@ import minioClient from "$lib/server/minio.js"; import type { RequestEvent } from "@sveltejs/kit"; import { generateId } from "lucia"; -import { MINIO_URL } from "$env/static/private"; +const MINIO_CLIENT_URL = process.env.MINIO_CLIENT_URL; export async function POST(event: RequestEvent): Promise { try { @@ -74,7 +74,7 @@ export async function POST(event: RequestEvent): Promise { fileName ); - const publicUrl = `${MINIO_URL}/profile-pics/${fileName}`; + const publicUrl = `${MINIO_CLIENT_URL}/profile-pics/${fileName}`; return new Response(JSON.stringify({ publicUrl }), { status: 200, diff --git a/svelte.config.js b/svelte.config.js index fe1cd45..c1ad216 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -14,7 +14,7 @@ const config = { preprocess: vitePreprocess(), kit: { adapter: adapter(), - csrf: { checkOrigin: true, } + csrf: { checkOrigin: true }, }, };