Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Доступен LibreDB Studio, веб-редактор баз данных

06.09.2026 16:48 (MSK)

Доступен LibreDB Studio, веб-клиент и IDE для работы с базами данных (актуальный выпуск 0.13.7). Приложение распространяется под лицензией MIT и предназначено для установки на собственный сервер: администратор запускает его на своей машине, а пользователи подключаются через браузер. Среди расширенных возможностей: централизованный вход через SSO (OIDC), разграничение прав доступа (RBAC), полный журнал аудита запросов, построение ER-диаграмм, визуализация вывода EXPLAIN и сравнение схем.

Поддерживается 16 движков: PostgreSQL, MySQL, Oracle, SQL Server, SQLite, libSQL, DuckDB, MongoDB, Redis, Couchbase, ClickHouse, Druid, Elasticsearch, OpenSearch, Apache Trino и Apache Cassandra. Для запуска достаточно команды "docker run -p 3000:3000 libredb/libredb-studio", также поддерживается установка через Helm и доступен пакет npm (@libredb/studio). Доступна online-демонстрация.

Проект также предлагает встроенного AI-помощника, использование которого необязательно. AI-помощник может подключаться к внешним сервисам (Gemini, OpenAI) или к локальной модели через Ollama. В последнем случае запросы, схема и данные не отправляются во внешние сервисы и не покидают локальную сеть. Помощник генерирует SQL по описанию на естественном языке, работает в режиме только для чтения, а сформированный запрос выполняется лишь после подтверждения человеком.



  1. Главная ссылка к новости (https://github.com/libredb/lib...)
Автор новости: libredb
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66216-libredb
Ключевые слова: libredb
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (53) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 17:58, 06/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    осталось выложить баш-скрипт на сайте, админу корпорации выполнить его через судо и готов удобный интерфейс для хакеров в корпоративные базы...
     
     
  • 2.2, Аноним (2), 18:14, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    проще вместо веб-редактора на этой страничке выложить логин и пароль от ssh/rdp
     
     
  • 3.5, Аноним (5), 19:23, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Так доступ должен быть только у кого надо. А не у всех.
     
     
  • 4.46, Tty4 (?), 21:34, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Зато на новый релиз за тебя перейдут 😁
     
     
  • 5.47, libredb (ok), 02:50, 08/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    😁 Будем считать это планом миграции.
     
  • 2.8, libredb (ok), 21:52, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Автор проекта. По существу, без спора с шуткой.

    Есть: без аутентификации не открывается ни один маршрут (локальные учётки или OIDC/SSO), RBAC admin/user, ограничение частоты на логине и на запросах к БД, проверка Origin на изменяющих запросах, CSP и сопутствующие заголовки, сравнение пароля за постоянное время, пароли к базам шифруются в серверном хранилище, каждое событие аудита, отдельной JSON-строкой в stdout.

    Нет, и написано у нас же: копия учётных данных в браузере не шифруется, агентский режим и часть аудита помечены как partial. Список , docs/SECURITY.md, там у каждой строки указан файл, который её реализует, и тест, который падает, если её сломать.

    И да, голым в интернет это ставить не надо. Инструмент внутренний, за вашим периметром.

     
     
  • 3.11, ананим.orig (?), 22:01, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А браузеру клиента доверяете?
    Т.е. в одной вкладке порнохаб, в другой госуслуги,.. и в следующей сабж?
     
     
  • 4.13, libredb (ok), 22:18, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Не доверяю, и не должен: соседняя вкладка не читает localStorage чужого origin, это граница самого браузера. Если она пробита, вместе с сабжем уходят и госуслуги, прикладной код там не спасает никого.

    Реальный риск не соседняя вкладка, а XSS в нашем же origin: только он до этого localStorage и добирается. Поэтому строки 0.1 и 1.1 в таблице самые важные. Вывод модели никогда не становится HTML-строкой, строковый путь убран, а не экранирован, так что его нельзя вернуть правкой правил разметки. Плюс CSP и остальные заголовки, на каждое есть тест.

    Чего не делаем: localStorage не шифруем. Это источник рендера, шифрование потребует мастер-пароля и процедуры восстановления, а это уже другой продукт. Написано у нас же, docs/SECURITY.md, раздел Known limits.

    Против вредоносного расширения или уже скомпрометированной машины ответа нет ни у нас, ни у любого веб-приложения: расширение читает localStorage любого origin. Если это в вашей модели угроз, веб-клиент вам не подходит.

    Так честнее, чем обещать обратное.

     
     
  • 5.19, Аноним (19), 22:43, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Учитывая, что на базе Монако, то не проще было завернуть в Электрон тогда и не использовать браузеры?
     
     
  • 6.21, libredb (ok), 23:01, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не проще: обёртка есть, и она не Electron, а Tauri v2.

    Сервер она не заменяет, а запускает его же, тот самый standalone-payload как sidecar, ждёт 200 на /api/db/health и открывает системный webview на 127.0.0.1.
    Под Linux desktop-AppImage собирается в релизном CI на каждую архитектуру. Под macOS и Windows пока нет, и упирается это в платные подписи, а не в технику.

    Electron не взяли осознанно: ~5-10 МБ против ~85-120 МБ, системный webview вместо своего Chromium, а Node-in-renderer, ради которого его обычно и берут, нам не нужен,  весь UI отдаёт сам сервер. Сравнение и причины целиком: docs/DESKTOP_WRAPPER_SPIKE.md.

    Браузер это не отменяет: продукт серверный.
    Ставит админ, доступ раздаётся ролями, пароли к базам не расходятся по машинам. Обёртка — для случая «одна машина, один человек».

     
  • 5.23, ананим.orig (?), 23:18, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Так честнее, чем обещать обратное.

    Так и я об этом.

    Не, поймите правильно, я рад сабжу.
    Для кучи сайто писателей, хоммэйд и прочего оутсорс вполне себе.

    Но что за мода все пихать в/через веб до сих пор шокирует?

     
     
  • 6.24, libredb (ok), 23:28, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Мода эта раздражает и меня, честно.
    Причина тут не в ней: в веб ушла не «удобность», а то, что учётные данные к базам остаются на сервере и не расходятся по тридцати машинам, а доступ и журнал живут в одном месте.
    Толстый клиент это тоже умеет, только его потом надо раздавать и обновлять.

    Спасибо за вопросы, они были по делу.

     
     
  • 7.36, Аноним (36), 11:45, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > учётные данные к базам остаются на сервере

    Т.е. вся эта вебня ради единственной параноидальной идейки "всё на сервере"? Вам не кажется, что вы на защиту потратили больше ресурсов, чем на собственно СУБД? :)

    Веб - это маразм В ЛЮБОМ виде, чем вы его ни оправдывайте. Не говоря о том, что как правило люди работают в ОДНОЙ системе. Нужен виновозный клиент - пишем Win32 приложение. Нужен Линукс - вообще тысячи языков и ГУЁв. Но вот так лабать вебню чисто потому, что вам лень или потому что неспособны писать под Оффтопик - такое себе развлечение, это уже не опенсорс, а лизание яиц.

     
  • 4.17, Норм (?), 22:37, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы забыли про (бульен) АйАй в этой штуке.
    То есть чел который это юзает доверяет бомжу на улице, базу данных, очень ценную наверное. Вкладки бравзер...
     
     
  • 5.22, libredb (ok), 23:09, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ИИ здесь необязателен, и это не оборот речи.
    Без конфигурации LLM_* провайдер по умолчанию требует ключа, availability отвечает NO_MODEL_CONFIGURED, панель не рендерится, обращений к модели не происходит вообще.


    Если включать, вы выбираете куда. Ollama на своей машине: ничего не покидает сеть.
    Внешний провайдер: наружу уходит и схема, и строки того, что прочитано.
    Мы это не смягчаем, что именно уходит по каждой поверхности, с указанием места вызова, в docs/AGENT_DATA_FLOW.md, и отдельным пунктом в Known limits.

    Запрос модель только предлагает: режим только для чтения,
    выполняется после подтверждения человеком.

     
  • 3.25, mikhailnov (ok), 01:23, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Автор, вы нейробот? :-)
     
     
  • 4.28, Аноним (28), 02:56, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    еще какой, только нейроботы поделия микрослопа юзают tssssssss
     
  • 2.56, Meta (?), 20:29, 08/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ты што? Там же SSO. Как ты скрипт удаленно собрался выполнять?
     

  • 1.4, Аноним (5), 19:22, 06/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Казалось бы что может пойти не так. Программа от китайцев на дырявом языке.
     
     
  • 2.12, BrainFucker (ok), 22:12, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А что с TypeScript не так? У типичного местного контингента дыр побольше будет.
     
     
  • 3.44, Аноним (44), 14:44, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > А что с TypeScript не так?

    поделие мелкослопа, что тут может быть еще не так?

     
  • 2.18, Аноним (19), 22:42, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В топе контрибьютеров одни турки и Claude. Откуда взялись китайцы?
     

  • 1.6, Норм (?), 20:31, 06/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Адмнистратор запускает на своей машине а клиенты подключаются?
    К редактору баз данных? Чтобы что?
    Зачем редактору клиенты?
     
     
  • 2.9, libredb (ok), 21:54, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Затем же, зачем в конторе один bastion, а не тридцать ноутбуков с боевыми паролями. Ставит админ, доступ раздаёт ролями, пароли к базам не расходятся по машинам, кто какой запрос выполнил, видно в журнале
    Если вы один и база локальная, вам это не нужно, берите psql или DBeaver. Это не замена им
     
     
  • 3.14, Норм (?), 22:30, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Затем же, зачем в конторе один bastion, а не тридцать ноутбуков с
    > боевыми паролями. Ставит админ, доступ раздаёт ролями, пароли к базам не
    > расходятся по машинам, кто какой запрос выполнил, видно в журнале
    > Если вы один и база локальная, вам это не нужно, берите psql
    > или DBeaver. Это не замена им

    В базе обычно свои юзеры с ролями.
    Пароли к базам не расходятся, а расходятся пароли к тулзе для доступа к базам - найс.
    Ну допустим. 🤷‍♀️ Чего в мире только не бывает.

     
     
  • 4.29, Аноним (29), 03:36, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > расходятся пароли к тулзе для доступа к базам

    Про SSO в вашей деревне, полагаю, не слышали.

    > Ну допустим. 🤷‍♀️ Чего в мире только не бывает.

     
     
  • 5.33, User (??), 07:59, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да вот как бы тебе сказать? Проще через ldap2pg+kerberos один раз настроить, чем с вебней всю жисть маяться. Это в том (очень и очень) нечастом случае, когда толпе народа нужен доступ к боевым базам.
     

  • 1.7, Аноним (7), 21:31, 06/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Для запуска достаточно команды "docker run

    Звиздец. А без этого прям уже никак не сделать в 2026?

     
     
  • 2.10, libredb (ok), 22:00, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Docker не обязателен, это просто самая короткая строчка для новости.
    Нативно, без контейнера: deb/rpm, AppImage, snap, tar.gz с релизов, Homebrew. Все они несут свой Node внутри, ставить его отдельно не нужно. Через npm, npx @libredb/studio, там Node ваш. Под Windows есть winget и choco.

    Кому нужен контейнер или кластер, образ и Helm-чарт тоже есть, но это выбор, а не условие.

     
     
  • 3.15, Норм (?), 22:32, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Все они несут свой Node внутри

    Замечательно! Вот это самое необходимое на машине админа для ковыряния в бд.

     
     
  • 4.20, libredb (ok), 22:44, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Претензию понимаю, но это не «ещё один Node в системе».

    В deb/rpm рантайм лежит внутри пакета: /usr/lib/libredb-studio/node/bin/node, в PATH его нет,
    системный node не трогается и не нужен.
    npm во время работы не запускается вообще, зависимости уже внутри пакета, ставится и сносится одной командой пакетного менеджера.

    Дальше это обычный пакет: юнит /usr/lib/systemd/system/libredb-studio.service, конфиг /etc/libredb-studio/env, состояние /var/lib/libredb-studio.
    Прямой запуск, без systemd, по умолчанию слушает 127.0.0.1.

    Состав зависимостей не на слово: SBOM публикуется с каждым релизом.

     
  • 2.16, Норм (?), 22:33, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> Для запуска достаточно команды "docker run
    > Звиздец. А без этого прям уже никак не сделать в 2026?

    Низя, там хтонический ужас в виде нмп лефтпадов и прочих жаваскриптов.

     
  • 2.32, User (??), 07:51, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Можно. Но полинтернета для ноды качать тебе не понравится.
     

  • 1.26, mikhailnov (ok), 01:28, 07/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >  if systemctl is-active --quiet libredb-studio.service 2>/dev/null; then
    >    systemctl restart libredb-studio.service >/dev/null 2>&1 || true
    >  fi

    https://github.com/libredb/libredb-studio/blob/4d66b72ddd3447b3271732f9a366426

    это можно заменить на systemctl try-restart

     
     
  • 2.43, libredb (ok), 14:31, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Спасибо,
    вы правы: заменил на systemctl try-restart, добавил тест на последовательность вызовов : https://github.com/libredb/libredb-studio/pull/624. Автор проекта.
     

  • 1.27, vasuikoff (?), 02:04, 07/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Я считаю что это очень нужная и полезная в работе вещь. Автору желаю терпения и неукротимой веры в то, что делает он все правильно.
     
     
  • 2.40, libredb (ok), 13:48, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо
     

  • 1.30, Аноним (30), 07:31, 07/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А firebird?
     
     
  • 2.45, libredb (ok), 14:45, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, и в трекере у меня было написано «не будем»: Firebird лежал в одном списке с Db2 и Sybase, причина, дорогие нативные клиенты

    Пошёл проверять после вашего вопроса, а драйвер оказался чистый JS, без нативщины вообще, и лицензия тут ни при чём.
    Отписка была ленивая, и написал её я сам. Перенёс Firebird в открытые вопросы, к тому, что можем сделать

    ref: https://github.com/libredb/libredb-studio/issues/424

     

  • 1.31, User (??), 07:50, 07/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уф. Мало нам pgadmin'а так ещё и для других бидэ тех же щщщей да погуще лей за грехи наши...
     
     
  • 2.38, Аноним (36), 11:54, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Пусть расцветают тысячи клиентов СУБД :)) Лишь бы писали на нормальных языках, с адекватным UI (в отличии от вебни в топике) и внятными целями "почему этот проект должен жить и чем он лучше остальных наклёпаных клиентов".
     

  • 1.37, Аноним (36), 11:52, 07/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Поддерживается 16 движков

    Каким образом? Там реально написан UI для каждого вида? Редактирование таблицы, колонок...

     
     
  • 2.39, libredb (ok), 13:48, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    UI один, отдельного интерфейса под каждый движок нет.
    Есть один абстрактный класс с 13 обязательными методами (query, getSchema, getOverview, getTableStats, getIndexStats и так далее) и по файлу на каждый id в src/lib/db/providers. UI по типу базы не ветвится: он читает то, что провайдер о себе публикует, семь флагов возможностей и набор подписей. Поэтому у MongoDB в дереве Collection и document, у Redis — Key Pattern и key, у Elasticsearch Index, а редактор Cassandra подписан «CQL, без JOIN, без подзапросов, без OFFSET».

    Про правку конкретно. Форма создания таблицы есть там, где провайдер объявляет supportsCreateTable: Postgres, MySQL, MSSQL, Oracle, SQLite, DuckDB, libSQL, Trino.
    У ClickHouse, Druid, Cassandra, Elasticsearch, OpenSearch, MongoDB, Redis и Couchbase кнопки просто нет, а не есть и падает.

    Правка строки на месте — семь движков: Postgres, MySQL, MSSQL, Oracle, SQLite, DuckDB, libSQL.
    Формы ALTER COLUMN нет ни для одного движка, и это осознанно: изменения схемы выводятся как SQL, применяет человек.

    Шестнадцать — это движки, к которым подключаются; в union DatabaseType семнадцать id, семнадцатый это встроенный libredb. На каждый id в репозитории есть docs/providers/<id>.md и интеграционный тест, это правило, а не пожелание.

     
     
  • 3.48, Аноним (36), 10:43, 08/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не совсем понял правка строки Вы могли бы где-то показать конкретный скрин... большой текст свёрнут, показать
     
     
  • 4.49, libredb (ok), 12:21, 08/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Скрин можно не рисовать, можно пощупать: trial.libredb.org, admin@libredb.org / Admin!2026.

    Спасибо, ваш вопрос нашёл у нас баг, а не только пробел.

    вы попали точно в дырку. Issue: https://github.com/libredb/libredb-studio/issues/648

    Если возьмётесь или просто допишете туда свои случаи, буду рад.

    Формы "создание колонки" не существует вообще, DDL-форма в продукте одна, та самая.

    Правка строки: в сетке результатов правятся ячейки, на подтверждение генерируется UPDATE на строку. Колонка ключа определяется по имени, id или *_id (src/hooks/use-inline-editing.ts), а не из метаданных первичного ключа. Составной ключ или другое имя, правки нет.


    Почему так вышло, без отмазок: цель проекта не "писать SQL удобнее", а сделать доступ к базам управляемым и подотчётным на своём сервере. Поэтому работа шла в редактор, доступ и журнал, а DDL-формы получили меньше всего внимания. Сам я таблицы через формы почти не делаю, и по результату это видно.

    Одно про формы вообще, из опыта. Форма, которая кавычит идентификаторы за вас, потом отвечает "table does not exist" на то же имя в другом регистре, а человек так и не увидел, что именно она сгенерировала. Поэтому у нас идентификаторы не кавычатся вообще, поле имени сводится к [a-z0-9_], и SQL показан до кнопки. Форму выше это не оправдывает, но выбор был осознанный.

     
  • 4.51, libredb (ok), 13:26, 08/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Забыл ответить на вторую половину. Формы ALTER нет, но diff двух схем генерирует миграцию с ветвлением по диалекту: 'src/lib/schema-diff/migration-generator.ts'. Где движок не может, там отказ с причиной, а не кривой стейтмент. Цепочку drop FK, rename, тип он за вас не выстроит, порядок за человеком.
     
  • 4.53, libredb (ok), 16:24, 08/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Возвращаюсь с результатом: баг, в который вы попали, закрыт. #648 взял внешний участник, PR #651.

    Проверено на живых движках, а не по документации: postgres 18, mysql 26.7, mssql 2022, oracle 23, sqlite 3.53, libsql, duckdb 1.5.5, trino 476.

     

  • 1.41, OpenEcho (?), 13:49, 07/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Т.е. кроме как без слива в SSO (OIDC) зайти не получится без больших "братьев"...
    И про песни как поднять свой OIDC и про два пальца, конечно же по плечу всем, тоже верю
     
     
  • 2.42, libredb (ok), 14:17, 07/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Про демо вы правы, и это наша недоработка в новости: в ней стоит одна ссылка, на app.libredb.org, а он действительно OIDC-only, через Auth0 с гуглом и гитхабом. Второй демо-хост, без всякого SSO, в новость не попал: trial.libredb.org, вход admin@libredb.org / Admin!2026.

    В продукте SSO не обязателен и не является режимом по умолчанию.
    По умолчанию 'NEXT_PUBLIC_AUTH_PROVIDER=local', это свой логин и пароль, при входе наружу не уходит ни одного запроса, а если переменные не заданы, пароль администратора генерируется при первом запуске и печатается в лог один раз.
    OIDC включается отдельно, и IdP может быть свой: Keycloak и Zitadel описаны в docs/OIDC.md наравне с Auth0 и Okta.

    Честный минус local-режима: это две учётные записи из переменных окружения, admin и, если задан пароль, user.
    Группы, много людей, отзыв доступа — за этим придётся идти к IdP. Так что скепсис не пустой, он просто про масштаб, а не про обязательность

     
     
  • 3.52, OpenEcho (?), 14:17, 08/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В продукте SSO не обязателен и не является режимом по умолчанию

    ИМХО, это должно быть в описании, инструмент явно для low level access к ДБ и доступ как правило дается маленькой группе девелоперов в small businesses. OIDC это определенно плюс для больших контор, но будет PITA для временных и малых сетапов, которые как правило закрыты от доступа с инета.

    Спасибо за разьяснение и удачи !

     

  • 1.50, Аноним (50), 13:12, 08/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    50 лет развития сетевого ПО и безопасности в мусорку.
     
     
  • 2.54, Аноним (54), 19:38, 08/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    И туда им и дорога, честно говоря.
     

  • 1.55, Аноним (54), 19:39, 08/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спасибо что используете github, а не какой-нибудь, прости Господи, gitflic/gitverse.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру