diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..fd64391 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.8" + +services: + soul23_cloud_site: + image: marcogll/soul23_cloud_site:latest + restart: unless-stopped + ports: + # Cambia el puerto de la izquierda si quieres exponerlo en otro puerto externo (por ej. "80:3001") + - "3001:3001" + environment: + - NODE_ENV=production + # Si en el futuro necesitas variables como API keys, añádelas aquí: + # - API_KEY=xxxx + + diff --git a/server.js b/server.js index ba296ca..b0ffeb3 100644 --- a/server.js +++ b/server.js @@ -18,14 +18,27 @@ app.get("/healthchecker", (req, res) => { // Magic link para redirigir a la app de Telegram según plataforma app.get("/telegram", (req, res) => { - const ua = (req.headers["user-agent"] || "").toLowerCase(); + const uaRaw = req.headers["user-agent"] || ""; + const ua = uaRaw.toLowerCase(); - const isIOS = + // Log para debug + console.log("[/telegram] User-Agent:", uaRaw); + + // Permitir forzar plataforma por query param: ?platform=ios|android + const platform = (req.query.platform || "").toString().toLowerCase(); + + const isIOSQuery = platform === "ios"; + const isAndroidQuery = platform === "android"; + + const isIOSUA = ua.includes("iphone") || ua.includes("ipad") || ua.includes("ipod") || ua.includes("ios"); - const isAndroid = ua.includes("android"); + const isAndroidUA = ua.includes("android"); + + const isIOS = isIOSQuery || isIOSUA; + const isAndroid = isAndroidQuery || isAndroidUA; if (isIOS) { // iOS -> App Store