diff --git a/start.sh b/start.sh index dd8426a..a20dedc 100644 --- a/start.sh +++ b/start.sh @@ -1037,6 +1037,66 @@ echo "==> Created Caddy config at /app/data/caddy/Caddyfile" # Start Caddy server echo "==> Starting Caddy server" + +# First inject the config.js script tags into all HTML files +echo "==> Injecting config.js into web application HTML files" + +# Function to inject the script tag +inject_script_tag() { + file="$1" + if [ -f "$file" ]; then + echo "==> Injecting config.js into $file" + # Make a backup just in case + cp "$file" "${file}.bak" + # Insert the script tag right after the opening head tag + sed -i 's/<head>/<head>\n <script src="\/config.js" type="text\/javascript"><\/script>/' "$file" + else + echo "==> WARNING: Could not find $file to inject config script" + fi +} + +# Inject into all the web apps +inject_script_tag "/app/web/photos/index.html" +inject_script_tag "/app/web/accounts/index.html" +inject_script_tag "/app/web/auth/index.html" +inject_script_tag "/app/web/cast/index.html" + +# Also create a runtime-config.js file with properly escaped content +cat > /app/web/photos/runtime-config.js <<EOT +// Runtime configuration for Ente +window.ENTE_CONFIG = { + API_URL: '${API_ENDPOINT}', + PUBLIC_ALBUMS_URL: '${CLOUDRON_APP_ORIGIN}/public' +}; + +// Next.js environment variables +window.process = window.process || {}; +window.process.env = window.process.env || {}; +window.process.env.NEXT_PUBLIC_ENTE_ENDPOINT = '${API_ENDPOINT}'; +window.process.env.NEXT_PUBLIC_ENTE_PUBLIC_ALBUMS_ENDPOINT = '${CLOUDRON_APP_ORIGIN}/public'; + +console.log('Ente runtime config loaded from runtime-config.js'); +console.log('API_URL:', window.ENTE_CONFIG.API_URL); +console.log('PUBLIC_ALBUMS_URL:', window.ENTE_CONFIG.PUBLIC_ALBUMS_URL); +EOT + +# Copy the runtime-config.js to each app directory +for app_dir in /app/web/photos /app/web/accounts /app/web/auth /app/web/cast; do + cp /app/web/photos/runtime-config.js "$app_dir/" + + # Update the HTML to include this file too + index_file="$app_dir/index.html" + if [ -f "$index_file" ]; then + echo "==> Adding runtime-config.js to $index_file" + sed -i 's/<\/head>/<script src="runtime-config.js" type="text\/javascript"><\/script>\n <\/head>/' "$index_file" + fi +done + +# Ensure all files are readable +chmod -R 644 /app/web/*/runtime-config.js + +echo "==> Config injected into all web applications" + caddy start --config /app/data/caddy/Caddyfile --adapter caddyfile & CADDY_PID=$! echo "==> Caddy started with PID $CADDY_PID"