NetrunНа главную

Код от нейросети

Приложение из Google AI Studio: как выложить без Cloud Run

· 6 мин чтения

Коротко

Приложение из Google AI Studio можно выложить без Cloud Run: скачайте его ZIP-архивом или синхронизируйте с GitHub и опубликуйте на любом хостинге, который запускает Node.js. Главное — ключ Gemini API должен жить на сервере в переменной GEMINI_API_KEY, а не в коде страницы: всё, что попало во фронтенд, может прочитать любой посетитель. Внутри AI Studio ключ подставляется в серверную часть сам, а при запуске в другом месте его нужно задать в настройках хостинга. В Netrun для этого есть вкладка «Секреты», а проект загружается архивом или из GitHub.

  • Режим Build в Google AI Studio создаёт веб-приложение с фронтендом на React по умолчанию и серверной частью на Node.js.
  • Внутри AI Studio ключ Gemini API подставляется только в серверную часть приложения и не попадает в код, который видит браузер.
  • Приложение из AI Studio можно скачать ZIP-архивом или связать с репозиторием GitHub, а при запуске вне AI Studio переменную GEMINI_API_KEY задают в настройках хостинга.
  • Ключ, подставленный во фронтенд при сборке, например через define в vite.config, оказывается текстом в JS-файлах сайта и виден любому посетителю.
  • Обычная публикация из AI Studio в Cloud Run требует проекта Google Cloud с включённой оплатой, а без неё, на начальном уровне Starter Tier, подходящие аккаунты могут опубликовать не больше двух приложений.

В Google AI Studio можно описать приложение словами и через минуту получить работающий прототип с Gemini внутри: чат-помощника, генератор картинок, обработчик документов. Внутри AI Studio всё работает, а дальше возникает вопрос, как выложить приложение на свой адрес. Кнопка публикации в AI Studio ведёт в Cloud Run, а это проект Google Cloud с оплатой по использованию; без привязанной оплаты подходящие аккаунты могут опубликовать не больше двух приложений, и такой путь подходит не всем.

Приложение из AI Studio — обычный проект на React и Node.js, и его можно опубликовать на любом хостинге, который умеет запускать Node.js. Подвох один, но серьёзный: ключ Gemini API. Пока приложение живёт в AI Studio, ключ спрятан на сервере, а при переезде его легко случайно отдать каждому посетителю. Ниже — как этого не допустить. Похожая история у проектов из Lovable и v0.

Где опубликовать приложение из Google AI Studio
ВариантПлюсыМинусы
Cloud Run прямо из AI StudioПубликация в один клик, ключ сразу на сервере, адрес вида имя.ai.studioНужен проект Google Cloud с оплатой, счёт зависит от использования; без оплаты — до двух приложений и не для всех аккаунтов
Поделиться внутри AI StudioНичего не нужно настраивать, ключ не виденПриложение живёт внутри AI Studio, без своего адреса и домена
Хостинг только для статикиПросто и часто бесплатноСерверная часть не работает, а ключ во фронтенде виден всем
NetrunZIP или GitHub, Node.js-сервер работает, ключ во вкладке «Секреты», оплата российской картойНа бесплатном тарифе сайт засыпает без посетителей, свой домен — на Pro, обновление по git push не автоматическое
Свой VPSПолный контроль над серверомNode.js, HTTPS, автозапуск и обновления настраиваете сами
  1. Выгрузите код из AI Studio#

    В режиме Build скачайте приложение ZIP-архивом или свяжите его с репозиторием GitHub: синхронизация работает в обе стороны, и правки из AI Studio потом удобно забирать. Архив пригодится, если хочется опубликовать проект прямо сейчас, GitHub — если вы будете дорабатывать приложение. Внутри обычно лежат файлы фронтенда на React, серверная часть на Node.js и package.json со списком зависимостей. Файл .env с ключом в архиве может и не оказаться — ключ всё равно придётся задать заново.

  2. Найдите, где в коде живёт ключ#

    Поищите в проекте GEMINI_API_KEY и API_KEY. Если ключ читается в серверном файле через process.env, всё в порядке: он останется на сервере. Если же запросы к Gemini отправляются прямо из компонентов React или ключ подставляется при сборке через define в vite.config, он окажется текстом в JS-файлах сайта, и его прочитает любой, кто откроет инструменты разработчика. Такое встречается в проектах, созданных до появления серверной части в AI Studio, и в коде, который правили вручную.

  3. Перенесите запросы к Gemini на сервер#

    Если ключ оказался во фронтенде, попросите саму AI Studio или любую другую нейросеть: перенеси все запросы к Gemini в серверную часть, ключ бери из process.env.GEMINI_API_KEY, а фронтенд пусть обращается к своему адресу вроде /api/generate. Получится небольшой сервер-посредник: браузер отправляет ему текст, сервер добавляет ключ и спрашивает Gemini. Этот же сервер может раздавать собранные файлы фронтенда, и тогда всё приложение — один проект.

  4. Проверьте, как запускается сервер#

    В package.json должна быть команда start, которая запускает сервер, а если фронтенд нужно собирать — команда build. Сервер должен слушать адрес 0.0.0.0 и порт из переменной PORT, а не фиксированный порт на localhost, иначе по ссылке приложение не откроется. Если сомневаетесь, загрузите папку на бесплатную проверку Netrun: она работает без регистрации и покажет, что платформа поняла про проект.

  5. Впишите ключ в секреты и опубликуйте#

    Загрузите архив или подключите репозиторий GitHub — Netrun определит Node.js и соберёт проект. На вкладке «Секреты» добавьте переменную GEMINI_API_KEY со своим ключом: там она хранится зашифрованной и попадает в переменные окружения сервера. После правки секретов запустите публикацию заново, чтобы сервер увидел ключ. Если ключ раньше хоть раз оказывался в публичном коде, создайте в AI Studio новый, а старый удалите.

  6. Следите за расходом ключа#

    Каждый запрос посетителя к Gemini идёт через ваш ключ, и лимиты или счёт тоже ваши. Для открытого приложения стоит добавить простые ограничения: не больше нескольких запросов в минуту с одного адреса, вход для тех, кто пользуется постоянно, разумная длина запроса. Расход ключа виден в Google AI Studio, загляните туда через день-два после публикации. Логи сервера в кабинете Netrun покажут, если кто-то шлёт запросы пачками.

Cloud Run — не единственный способ выложить приложение из Google AI Studio: это обычный проект на React и Node.js, и он работает на любом хостинге, который запускает Node.js. Единственное, что нельзя пропускать, — ключ Gemini API должен жить на сервере, а не в коде страницы. В Netrun проект загружается архивом или из GitHub, ключ хранится во вкладке «Секреты», а ссылка с HTTPS выдаётся сразу. На бесплатном тарифе сайт засыпает без посетителей и просыпается при открытии, а без пауз и со своим доменом он работает на Pro. Попробовать Netrun.

Частые вопросы

Можно ли выложить приложение из Google AI Studio без Cloud Run?

Да. Скачайте его ZIP-архивом или свяжите с GitHub и опубликуйте на любом хостинге, который запускает Node.js. Ключ Gemini API при этом задаётся в настройках хостинга переменной GEMINI_API_KEY. Cloud Run — лишь самый короткий путь из интерфейса AI Studio, а не обязательный.

Почему опасно держать ключ Gemini API во фронтенде?

Всё, что попало в код страницы, скачивается в браузер каждого посетителя, и ключ можно прочитать за минуту в инструментах разработчика. С чужим ключом кто угодно будет отправлять запросы за ваш счёт и выбирать ваши лимиты. Поэтому запросы к Gemini отправляет сервер, а браузер обращается только к нему.

Что делать, если ключ уже попал в опубликованный сайт?

Считайте его украденным. Создайте в Google AI Studio новый ключ, старый удалите, перенесите запросы к Gemini на сервер и впишите новый ключ в настройки хостинга. Пересоберите и опубликуйте сайт заново, чтобы в его файлах не осталось старого ключа.

Будет ли работать вход через Google, если приложение использует Firebase?

Да, Firebase остаётся у Google и работает с любого хостинга. Для входа через Firebase Authentication новый адрес сайта нужно добавить в список разрешённых доменов (Authorized domains) в консоли Firebase, иначе окно входа откажет. То же самое нужно сделать после подключения своего домена.

Почему приложение работает в AI Studio, а на хостинге пишет, что нет ключа?

Внутри AI Studio ключ подставляется автоматически, а в скачанный архив он не входит. На новом хостинге задайте переменную GEMINI_API_KEY в настройках проекта — в Netrun это вкладка «Секреты» — и опубликуйте проект заново. Имя переменной должно совпадать с тем, что читает код.

Где указать токены и другие секретные значения?

В проекте есть вкладка «Секреты» — там задаются значения из кода, например токен от BotFather. Мы храним их в зашифрованном виде: названия переменных вы видите, сами значения не показываем никому, включая вас.

Безопасны ли мои токены и секреты?

Да. Токены, ключи доступа и значения из кода хранятся в зашифрованном виде и не показываются в открытом виде.

Обновляется ли проект сам при изменениях в GitHub?

Нет, публикация новой версии — ваше решение: откройте проект и обновите его из GitHub или загрузите новый архив. Так случайный коммит не уезжает сразу к пользователям. Ссылка при обновлении остаётся прежней, а данные из постоянного хранилища сохраняются.

Запустите свой проект

Загрузите код, ответьте на пару вопросов — и получите рабочую ссылку. Есть бесплатный тариф

Попробовать Netrun
Все статьи блога