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:
root
2025-12-22 12:41:22 +01:00
parent 4fd9d3f400
commit eb32dd1064
11 changed files with 19 additions and 17 deletions

View File

@@ -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);

View File

@@ -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 {

View File

@@ -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: [] }), {

View File

@@ -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) {