Создание пет-проекта Сайт рецептов
В этой серии постов я бы хотела рассказать о том, как проходит работа над моим учебным проектом - сайт для хранения рецептов, какие сложности встречаются и какие еще есть важные нюансы, о которых не стоит забывать. В первую очередь это будет подспорьем мне самой, я всегда смогу перечитать эти посты и не наступить на те же грабли. Кратко о проекте: сайт - записная книжка для хранения своих любимых рецептов. Стек: Java, Spring Boot, React, PostgreSQL. Разворот проекта - где, как и с чего начать? Вопрос 1 - личный сервер в домашней сети, аренда VPS или хостинга типа Render? Хостинг - самый простой вариант. Развернуть бэкенд и базу можно в пару кликов, есть красивый интерфейс для настройки env переменных, логов и тд. Но - бесплатных вариантов, которые работают сейчас без ВПН, крайне мало, и лично мне не удалось найти такой. Supabase подходит для разворота баз данных, но он не смог нормально соединиться с Render, где я развернула бэкенд. Поэтому я отказалась от этого варианта и начала рассматривать два других. Мне повезло иметь "запасной" личный сервер, который можно оставить постоянно включённым только для моего приложения. Этот вариант имеет ряд преимуществ. 1. Приличное количество ресурсов, оперативной памяти, диска и тд. Этого вполне хватит, чтобы развернуть свое небольшое приложение, и даже хватит на несколько микросервисов, а может и на локальную установку LLM. 2. Цена аренды- бесплатно. Ну если не рассматривать цену покупки такого сервера) Основная сложность с личным сервером - настройка доступа в интернете. Нужно либо настроить туннель, либо статический IP. Поначал это кажется сложнее, чем арендовать сервер) Там то просто заплати денежку и разворачивай свой проект. Но цена аренды VPS для меня кусается ( Это мой учебный проект, он не приносит дохода, и я не готова платить 1000р в месяц или больше только за аренду сервера. А именно столько потребуется: на пару легких микросервисов, развернутых в докере, а также небольшие допы в виде Grafana, Micrometer и тд, потребуется около 3-4 ГБ RAM. А если ставить локально LLM , пусть самую простую - добавь еще около 8 ГБ RAM. Поэтому я остановилась на варианте использования локального сервиса. Туннель или статический IP? Услуга статического IP - платная. Сейчас стоит около 200р у моего провайдера домашнего интернета. А туннели можно найти и бесплатно. Но часы известный, Cloudflare tunnel, не работает в РФ, соединение рвётся каждые 3-5 секунд. Остальные бесплатные варианты далеко не столь популярны, serveo.net перестал работать спустя примерно месяц после начала использования. И именно эта нестабильность заставляет меня склоняться к варианту "белого" IP. По крайней мере, он точно никуда не исчезнет через пару месяцев и не придется заново разворачивать и настраивать свой проект, потому что больше бесплатных туннелей не нашлось.