Fix Docker deployment and runtime environment variables
- Add --break-system-packages flag to pip install for Alpine Linux 3.12+ compatibility - Configure Astro server to bind to 0.0.0.0 for Docker container accessibility - Replace import.meta.env with process.env for runtime environment variable access in SSR - Enable dynamic LOGIN configuration at runtime Co-Authored-By: Warp <agent@warp.dev>
This commit is contained in:
@@ -25,7 +25,7 @@ export const GET: APIRoute = async ({ request }) => {
|
||||
|
||||
// Download-Verzeichnis aus Environment-Variable
|
||||
const downloadDir =
|
||||
import.meta.env.DOWNLOAD_DIR || path.join(process.cwd(), "downloaded");
|
||||
process.env.DOWNLOAD_DIR || path.join(process.cwd(), "downloaded");
|
||||
|
||||
const filePath = path.join(downloadDir, fileName);
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ export const POST: APIRoute = async ({ request }) => {
|
||||
}
|
||||
|
||||
// Prüfe ob Stream-Modus aktiviert ist
|
||||
const streamOnly = import.meta.env.STREAM_ONLY === "true";
|
||||
const streamOnly = process.env.STREAM_ONLY === "true";
|
||||
|
||||
// yt-dlp-wrap Instanz erstellen
|
||||
const ytDlpWrap = new YTDlpWrap();
|
||||
@@ -154,7 +154,7 @@ export const POST: APIRoute = async ({ request }) => {
|
||||
} else {
|
||||
// NORMALER MODUS: Datei speichern wie bisher
|
||||
const downloadDir =
|
||||
import.meta.env.DOWNLOAD_DIR || path.join(process.cwd(), "downloaded");
|
||||
process.env.DOWNLOAD_DIR || path.join(process.cwd(), "downloaded");
|
||||
|
||||
// Verzeichnis erstellen falls nicht vorhanden
|
||||
try {
|
||||
|
||||
@@ -19,7 +19,7 @@ export const GET: APIRoute = async ({ request }) => {
|
||||
}
|
||||
|
||||
// Prüfe ob Stream-Modus aktiviert ist
|
||||
const streamOnly = import.meta.env.STREAM_ONLY === "true";
|
||||
const streamOnly = process.env.STREAM_ONLY === "true";
|
||||
if (streamOnly) {
|
||||
return new Response(
|
||||
JSON.stringify({
|
||||
@@ -36,7 +36,7 @@ export const GET: APIRoute = async ({ request }) => {
|
||||
try {
|
||||
// Download-Verzeichnis aus Environment-Variable
|
||||
const downloadDir =
|
||||
import.meta.env.DOWNLOAD_DIR || path.join(process.cwd(), "downloaded");
|
||||
process.env.DOWNLOAD_DIR || path.join(process.cwd(), "downloaded");
|
||||
|
||||
if (!existsSync(downloadDir)) {
|
||||
return new Response(JSON.stringify({ files: [] }), {
|
||||
|
||||
@@ -16,8 +16,8 @@ export const POST: APIRoute = async ({ request }) => {
|
||||
const password = formData.get('password')?.toString();
|
||||
|
||||
// Credentials aus Environment-Variablen
|
||||
const envUsername = import.meta.env.LOGIN_USERNAME;
|
||||
const envPassword = import.meta.env.LOGIN_PASSWORD;
|
||||
const envUsername = process.env.LOGIN_USERNAME;
|
||||
const envPassword = process.env.LOGIN_PASSWORD;
|
||||
|
||||
// Prüfe ob Credentials konfiguriert sind
|
||||
if (!envUsername || !envPassword) {
|
||||
|
||||
@@ -11,7 +11,7 @@ if (loginEnabled && !session) {
|
||||
return Astro.redirect('/');
|
||||
}
|
||||
|
||||
const streamOnly = import.meta.env.STREAM_ONLY === "true";
|
||||
const streamOnly = process.env.STREAM_ONLY === "true";
|
||||
---
|
||||
|
||||
<Layout title={t(Astro, "files.title")}>
|
||||
|
||||
Reference in New Issue
Block a user