Никакой чуши. Соус.
Ссылка: мои скрипты package.json
"scripts": { "dev": "nodemon --watch 'src/**/*.ts' --exec 'node --loader ts-node/esm' src/index.ts", "start": "node --loader ts-node/esm ./src/index.ts" }
Шаг 1. Подтвердите, что вы вошли в Google через браузер.
Шаг 2. Убедитесь, что интерфейс командной строки gcloud установлен
- заваривать:
brew install google-cloud-sdk --cask
- совок
scoop bucket add extras scoop install extras/gcloud
Шаг 3. Войдите в систему с помощью интерфейса командной строки gcloud
gcloud auth login
Перейдите по указанному URL-адресу и войдите в свою учетную запись Google.
Примечание. Все идентификаторы ваших проектов можно найти здесь, в левом верхнем углу, справа от логотипа: https://console.cloud.google.com/welcome.
Шаг 4. Перейдите к своему проекту локально
cd path/to/project
Шаг 5: tsconfig.json
Вам нужны rootDir
и outDir
. В остальном делайте, что хотите. Вот мой:
{ "compilerOptions": { "target": "ES2022", "module": "ES2022", "rootDir": "./src", "moduleResolution": "node", "outDir": "./dist", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, "skipLibCheck": true } }
Шаг 6. Файл Docker
Настройте его по своему желанию. Вот мой:
FROM node:20.5.1-alpine WORKDIR /app COPY package.json . RUN npm install COPY . . run npx tsc CMD node ./dist
Шаг 7. Запуск
Из корневого каталога проекта:
gcloud run deploy --platform managed --set-env-vars NODE_ENV=production
После этого настройте параметры развертывания по своему усмотрению. Вот мои:
Allow Unauthenticated Invocations: true Data Center: lowa (number 30 on the list)
Шаг 8. Настройка личного домена: GCP
- перейдите на https://console.cloud.google.com/run/
- нажмите на развернутое приложение
- go to
Integrations
- нажмите
Add Intgration
- выберите Личные домены — Балансировка нагрузки Google Cloud
- под
Routes
заменитеDomain 1
на свой собственный домен, например.hello.example.com
- прокрутите страницу вниз и нажмите
Deploy
.
Шаг 9. Получите IP-адрес балансировщика нагрузки
- подожди 2–5 минут
- обновите страницу GCP и нажмите
View Details
на интеграции.
- прокрутить вниз
- теперь вы должны увидеть подробную информацию о DNS-записи
A
. скопируйте значение IP/записи
Шаг 10. Cloudflare
- перейдите в панель управления Cloudflare
- авторизоваться
- зайти на свой сайт
- добавьте запись DNS типа
A
и вставьте IP-адрес балансировщика нагрузки, скопированный на шаге 9. - установите тип записи
proxied
Все готово. Теперь подождите, пока центр сертификации Google выдаст вам SSL-сертификат, и все готово!
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Удаление интеграции
GCP не позволяет удалить интеграцию (ошибка, idk). Вот обход:
Способ 1: удалить приложение Cloud Run
Способ 2: удалить все ресурсы интеграции
- перейдите на https://console.cloud.google.com/run/
- нажмите на развернутое приложение
- go to
Integrations
- нажмите
View Details
на интеграцию - прокрутите вниз до
Resources
- иди один за другим и удаляй все
После того, как вы закончите, просто удалите DNS-запись из Cloudflare и все!