Никакой чуши. Соус.

Ссылка: мои скрипты 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

  • нажмите 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: удалить все ресурсы интеграции

  • нажмите View Details на интеграцию
  • прокрутите вниз до Resources
  • иди один за другим и удаляй все

После того, как вы закончите, просто удалите DNS-запись из Cloudflare и все!