В начале декабря я публиковал статью про Postgresus 2.0 — инструмент для резервного копирования PostgreSQL. С момента этой статьи пришло много запросов на добавление других баз данных, много положительной обратной связи от пользователей и набралось больше 1000 звёзд на GitHub.
А потом я узнал, что нарушил торговый знак ?. Оказывается, нельзя брать первое понравившееся название — и использовать его. Точнее можно, но с оговорками.
В итоге было принято решение о маленьком ребрендинге. Теперь Postgresus — это Databasus. И поддерживает другие базы: MySQL, MariaDB и MongoDB (при этом оставляя основной фокус на PostgreSQL).
Ниже — детальнее, что из себя представляет проект и почему произошло переименование.
Содержание
О проекте
-
Как развернуть проект
Через shell скрипт
Через docker-compose.yml
Через Docker команду
Через Kubernetes Helm
Почему проект изменил название?
Заключение
О проекте
Databasus — это open source инструмент для резервного копирования баз данных. Главная задача проекта: делать копии баз данных по расписанию и сохранять их как локально, так и во внешних хранилищах. При этом уведомлять пользователя о статусе: когда копирование закончилось или провалилось.
Проект разворачивается одной командой в Docker. Его можно установить через shell скрипт, Docker команду, docker-compose.yml и теперь через Helm для Kubernetes. Детальнее о способах установки.
Функции:
Поддержка баз данных PostgreSQL (основной фокус проекта), MySQL, MariaDB и MongoDB.
Сохранение резервных копий локально, в S3, CloudFlare R2, Google Drive, Azure Blob Storage, NAS, через SFTP и rclone. Детальнее здесь.
Отправка уведомлений о статусе в Slack, Discord, Telegram, MS Teams, по почте и в настраиваемый вебхук. Детальнее здесь.
Разделение баз по проектам, выдача доступов другим пользователям и хранение аудит логов. Детальнее здесь.
Шифрование резервных копий и чувствительной информации (пароли, секреты и т.д.). Детальнее здесь.
Поддержка как self hosted баз, так и облачных.
Сайт - https://databasus.com
GitHub - https://github.com/databasus/databasus
Интерфейс проекта выглядит так:


Как развернуть проект?
Есть 4 способа развернуть проект:
через shell скрипт;
через docker-compose.yml;
через Docker команду;
через k8s Helm.
Через shell скрипт
Shell скрипт сначала устанавливает Docker, затем создаёт docker-compose.yml файл и запускает Databasus:
sudo apt-get install -y curl && \
sudo curl -sSL https://raw.githubusercontent.com/databasus/databasus/refs/heads/main/install-databasus.sh | sudo bash
Через docker-compose.yml
Создаем docker-compose.yml:
services:
databasus:
container_name: databasus
image: databasus/databasus:latest
ports:
- "4005:4005"
volumes:
- ./databasus-data:/databasus-data
restart: unless-stopped
И запускаем:
docker compose up -d
Через Docker команду
docker run -d \
--name databasus \
-p 4005:4005 \
-v ./databasus-data:/databasus-data \
--restart unless-stopped \
databasus/databasus:latest
Через Kubernetes Helm
helm install databasus oci://ghcr.io/databasus/charts/databasus \
-n databasus --create-namespace
kubectl port-forward svc/databasus-service 4005:4005 -n databasus
# Access at http://localhost:4005
Во всех 4-х случаях проект будет доступен на порту 4005.
Почему проект изменил название?
Тут есть несколько причин: и изменение позиционирования, и поддержка других баз данных (помимо PostgreSQL), и понимание, что Postgresus — слишком "узкоспециализированное" название.
Но решающим стал тот фактор, что "Postgres" — это товарный знак. Его нельзя использовать как часть своего названия. А я его включил целиком в своё название... Причём до ~2020-го года, до момента, когда PostgreSQL зарегистрировал товарный знак, так было можно делать. Пример этому тот же Postgres Pro. Но сейчас уже нельзя.
Точнее можно пользоваться названием под предлогом fair use. И, в целом, PostgreSQL способствуют такому подходу. Но все-таки с непонятными последствиями и шансом, что когда-то взгляды юристов поменяются — и придется переименовываться позже (ничего смертельного, конечно, но Docker Hub pull'ы потеряются).
Узнал я об этом, когда мысль "а не нарушаю ли я что-нибудь" пришла мне в голову в душе. И я все-таки догадался переспросить у ChatGPT. Оказалось, что все-таки нарушаю, а у PostgresSQL это детально расписано.
Заключение
Databasus с новым названием растёт и становится всё более полезным open source проектом. После каждой статьи или упоминания я очень радуюсь, что проект находит такой отклик у сообщества и действительно полезен.
Рекомендую прочитать предыдущие две статьи, если понравилась эта:
Если проект понравился или оказался полезным — буду раз звезде на GitHub или если поделитесь со знакомыми ❤️. И Telegram канал у меня есть, но это так, вдруг интересно.
Также может быть интересно:
tubecleaner
Ставлю +, но жду версию без докера.
AntonMoroz_LLCReal
А чем вас докер так не устроил?
tubecleaner
Странный вопрос. В разных компаниях/окружениях могут быть разные требования, не так ли?
gmev5
Вопрос отнюдь не странный, мне вот тоже стало интересно чем Вам помешал докер? Старая школа? ;-)
grbr2010
А зачем он? Присоединился к ожиданию
Nday001
Для быстрого и простого деплоя. Я всегда в первую очередь ищу способ установки в докер, чтобы быстро пощупать продукт.
Для запуска в нетиповых окружениях. Попробую эту штуку на Synology DSM.
Sleuthhound
Я тоже жду версию без докера или хотя бы чтобы сервисная БД была в отдельном от приложения контейнере.
RostislavDugin Автор
К сожалению, версия без Docker'a для Databsus'a не выйдет. У системы много компонентов
Установка даже в рамках одной ОС разных версий выйдет непредсказуемой. На разных ОС - вообще разные способы
В общем, тут выйдет неоправданно трудозатратно для проекта и неудобно для большинства пользователей
Если нужна версия без Docker'a, лучше взять условный go-backup или wal-g
Skyneon
неудобно для большинства пользователейПользователи сами решат. Мне например тоже нужна версия без Docker.
Начать можно сперва с Debian подобных систем или подробной докой или sh скриптом, потом написать для RHEL подобных.
RostislavDugin Автор
На этот случай у меня есть мем:
>60к загрузок из Docker Hub и ~4к звёзд на GitHub показывают, что пользователи уже решили. Точнее что очень крупному сегменту людей этого не хватает:
Если вам не подходит мой проект, на GitHub точно есть >5 CLI инструментов, которые во многом даже эффективнее и с ещё большим сообществом — используйте их. Зачем требовать от моего то, что навредит проекту?
Я вот не готов вложить несколько недель работы в нестабильную фичу, которая нужна 1%< пользователей и которая уменьшит предсказуемость среды исполнения. А потом её годами ещё сопровождать и чинить. Зачем эта возможность, учитывая, что проект работатает надёжнее без неё и ничего не теряет в функциональности?
Но, если вы считаете, что это полезная функция и готовы доказать, что так лучше - буду рад, если сделаете форк и докажете это. Проект в open source, всё открыто, вам никто не мешает дорабатывать под себя
Skyneon
Мне фиолетово по причине существования альтернатив, вы публикуете статью о продукте в ИТ-Сообществе. Будьте готовы получить фидбек. Сообщество это не только вайб-кодеры, девопсы, но и старая школа, в том числе люди которые по тем или иным причинам не буду ставить Docker ради вашего проекта. Хотите больше аудиторию ? Зачем писать здесь статью ? Хотите. Тогда не нужно тут писать что то в подобном стиле. Вы не готовы к native, а мы не готовы к Docker - все просто.
Это не функция или фича - это способ распространить/адаптировать продукт на большую аудиторию, в.т.ч на строгие и закрытые окружения, дать возможность более точной диагностики в случае падения продукта.
P.S Если же проект стоящий - найдется человек, который форкнет, потратит свое время и сделает это за Вас.
P.P.S Для информации - Docker Hub заблокирован в РФ с Мая 2024 года. Вопрос не том можно ли это обойти - вопрос зачем это делать?
RostislavDugin Автор
Значит проект для них не предназначен
Только ту, которым подходит мой проект. А кому не подходит - есть масса других инструментов. Databasus - это не история про поддержку 100% пользовательских сценариев, они слишком разные
Чтобы аудитория, которой полезен проект - о нем узнали. А не для всех и сразу. В статье нигде не идёт речи, что все должны пользоваться моим проектом
Это способ потратить уйму времени с КПД около нуля, уменьшить предсказуемость среды и испортить проект тем 99.9%, которые используют Docker
Может подскажите, на какую аудиторию вы распространили свой проект, убрав Docker?
Если бы Docker Hub не работал в РФ, из РФ не было бы ~12% пользователей
---
Это не фидбек. Это попытка доказать свою правоту, хотя я объяснил рациональные причины, почему принято такое решение
Вы зачем-то хотите от проекта то:
для чего он не предназначен;
контрпродуктивно и ухудшит его maintability;
требует эдак ~$5 000 вложений в виде моего времени, если его конвертировать в деньги;
не расширит аудиторию проекта, потому что у 99.9% разработчиков \ DevOps'ов нет проблем с Docker'ом, но ухудшит его для всех остальных;
...так ещё и вы не факт, что этим будете пользоваться :)
У любого решения есть компромиссы. Для Databasus'a был сознательно выбран Docker, потому что:
он даёт воспроизводимую среду, тем самым улучшая maintability при разработке;
даёт запустить проект за минуту, а не возиться с установкой и вечным дебагом;
даёт поддержку большинства платформ и не зависеть от пакетных менеджеров \ архитектур: Windows, MacOS, Linux - практически любые версии, включая ARM;
Не использовать Docker для такого проекта - это всё равно, что вставлять себе палки в колёса, постреливая в колено время от времени. Очень странно фокусироваться на преодолении проблем, которые давно решил прогресс, а не на проекте, функциях и пользе
А ещё напомню, что главный пользователь Databasus'a - это я. У меня есть Docker
Skyneon
Очень за Вас рад, никаких аргументов против я не увидел - только пустые слова про деньги и нежелание что-то делать. Вас никто не просил бросать Docker окружение или забить на него. Вас попросили сделать продукт вне Docker окружения (паралельно как альтернативный способ установки), не RPM пакет, не DEB пакет. Версию продукта которую можно установить вне слоев виртуализации, сетевого оверхеда и проблем с диагностикой при падении отдельных контейнеров или служб/компонентов внутри их среды Docker.
Почему-то вы считаете что Ваш продукт нужен только 99.9% разработчиков. У меня для Вас новости - еще есть инженеры, есть БДшники и много других ИТ специализаций, это тоже Ваша аудитория (внезапно), люди которые разворачивают, поддерживают и обслуживают базы PSQL. Незнаю в каком мире живете Вы, но в ИТ мире профессий больше чем одна.
Вообщем желаю Вам удачи!