Есть классный менеджер паролей именно под разработчиков — gopass. Все секреты лежат в виде файлов, шифруются через GPG и версионируются в Git, так что вы можете хранить их локально, синхронизировать через любой git‑ремоут и при этом всегда иметь историю изменений.
Рабочий цикл выглядит очень по консольному: из терминала листаете хранилище, смотрите пароли, генерируете новые, копируете в буфер, всё командами вроде
GPG при этом даёт нормальное асимметричное шифрование: секреты зашифрованы вашим ключом, приватная часть не покидает машину, а расшаривание в команде сводится к добавлению ключей коллег в хранилище. Для кроссплатформенности gopass написан на Go и работает на macOS, Linux и Windows, так что можно настроить один git‑репозиторий с зашифрованными секретами и пользоваться им с любых рабочих машин.
Код в репо, на картинке ламповый пример работы.
@prog_tools
Рабочий цикл выглядит очень по консольному: из терминала листаете хранилище, смотрите пароли, генерируете новые, копируете в буфер, всё командами вроде
gopass ls, gopass show, gopass generate. Поверх этого есть плагины: интеграция с браузером через gopass‑bridge, помощь с Git‑кредами, проверка паролей через Have I Been Pwned и т.п., так что одним инструментом можно закрыть и личные пароли, и секреты для проектов.GPG при этом даёт нормальное асимметричное шифрование: секреты зашифрованы вашим ключом, приватная часть не покидает машину, а расшаривание в команде сводится к добавлению ключей коллег в хранилище. Для кроссплатформенности gopass написан на Go и работает на macOS, Linux и Windows, так что можно настроить один git‑репозиторий с зашифрованными секретами и пользоваться им с любых рабочих машин.
Код в репо, на картинке ламповый пример работы.
@prog_tools
🔥5❤1
SurfSense — это open‑source альтернатива NotebookLM, Perplexity и Glean: AI‑агент для исследований, который подключается к вашим личным источникам (поисковые движки, Slack, Linear, Jira, ClickUp, Confluence, Notion, Gmail, YouTube, GitHub, Discord, Airtable, Google Calendar, Luma, Elasticsearch и другие).
Для тех, кто проспал последний год, NotebookLM — этосервис Google, где вы загружаете свои документы, и AI (Gemini) помогает вам суммировать, отвечать на вопросы, создавать FAQ, учебные материалы и подкасты, опираясь только на ваши источники.
Что делает SurfSense:
🔘 Поддерживает 100+ LLM (включая локальные Ollama) и 6000+ моделей эмбеддингов.
🔘 Продвинутый RAG: иерархические индексы (2‑уровневый), гибридный поиск (семантический + полнотекстовый), ранжирование (Pinecone, Cohere, Flashrank).
🔘 Подкаст‑агент: создаёт 3‑минутный подкаст менее чем за 20 секунд, поддерживает локальные TTS (Kokoro) и облачных провайдеров.
🔘 Поддержка 50+ форматов файлов (PDF, DOCX, видео, аудио, email и т.д.).
🔘 Self‑hostable: можно поднять через Docker Compose или вручную.
Быстрый старт:
1️⃣
3️⃣ Скопируйте
3️⃣
4️⃣ Откройте https://localhost:3000
Где попробовать:
GitHub: https://github.com/MODSetter/SurfSense
Сайт: https://surfsense.com
Discord: https://discord.gg/ejRNvftDp9
Технический стек: FastAPI, PostgreSQL (pgvector), LangGraph, LangChain, Celery, Redis, Next.js 15, React 19, TypeScript, Docker.
@prog_tools
Для тех, кто проспал последний год, NotebookLM — это
Что делает SurfSense:
Быстрый старт:
git clone https://github.com/MODSetter/SurfSense.env.example в .env, добавьте API‑ключи (OpenAI, Tavily и т.д.).docker compose up -dГде попробовать:
GitHub: https://github.com/MODSetter/SurfSense
Сайт: https://surfsense.com
Discord: https://discord.gg/ejRNvftDp9
Технический стек: FastAPI, PostgreSQL (pgvector), LangGraph, LangChain, Celery, Redis, Next.js 15, React 19, TypeScript, Docker.
@prog_tools
Media is too big
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2
Forwarded from Нейроканал
Cloud․ru открыл свою платформу, на которой можно запускать LLM и строить AI-решения внутри РФ: что-то вроде Replicate, но без проблем с доступностью и с оплатой в рублях.
Суть простая: берёшь готовую модель из каталога (GigaChat, Qwen, Llama и другие) или загружаешь свою с HuggingFace, и сразу получаешь к ней API. Без заморочек с настройкой GPU-серверов, кластеров и безопасности — всё уже настроено и работает в облаке.
Внутри Evolution AI Factory шесть сервисов:
🔘 ML Inference — запуск моделей по API, совместимому с OpenAI.
🔘 Foundation Models — каталог популярных моделей, готовых к использованию.
🔘 AI Agents — конструктор для создания агентов, которые могут взаимодействовать с системами и принимать решения.
🔘 Evolution Notebooks — JupyterLab для экспериментов.
🔘 ML Finetuning — дообучение моделей на своих данных.
🔘 Managed RAG — подключение внутренних баз знаний, чтобы модель отвечала только по документам компании.
Соответствует ФЗ-152, с круглосуточной поддержкой и SLA. Для компаний, которым важно держать данные в РФ и не возиться с инфраструктурой — это прямо то, что нужно. Можно быстро прототипировать идею или запустить продакшен-решение без собственной команды DevOps и ML-инженеров.
Прям импортозамещение здорового человека, такое мы любим.
@neuro_channel
Суть простая: берёшь готовую модель из каталога (GigaChat, Qwen, Llama и другие) или загружаешь свою с HuggingFace, и сразу получаешь к ней API. Без заморочек с настройкой GPU-серверов, кластеров и безопасности — всё уже настроено и работает в облаке.
Внутри Evolution AI Factory шесть сервисов:
Соответствует ФЗ-152, с круглосуточной поддержкой и SLA. Для компаний, которым важно держать данные в РФ и не возиться с инфраструктурой — это прямо то, что нужно. Можно быстро прототипировать идею или запустить продакшен-решение без собственной команды DevOps и ML-инженеров.
Прям импортозамещение здорового человека, такое мы любим.
@neuro_channel
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1
Termix — это опенсорсная полностью self‑hosted альтернатива Termius для управления серверами по SSH через единый веб‑интерфейс. Разворачивается в докере как бекенд и синхронизируется с клиентами под веб, Windows, Linux, macOS, iOS и Android.
Ключевые возможности:
🔘 SSH‑терминал с вкладками и сплитами до 4 панелей, кастомизацией темы и шрифтов.
🔘 SSH‑туннели с автопереподключением и мониторингом состояния.
🔘 Файловый менеджер поверх SSH: просмотр/редактирование кода, картинок, аудио/видео, загрузка/выгрузка и операции над файлами.
🔘 Менеджер хостов с тегами, папками, автозаливкой SSH‑ключей и хранением логинов.
🔘 Мониторинг: CPU, память, диск, сеть, аптайм и системная информация по любому SSH‑серверу, плюс дашборд.
Под капотом: веб‑клиент на React + Tailwind + Shadcn, бекенд с зашифрованной SQLite, автоматическая настройка SSL, вход с OIDC и 2FA (TOTP), поддержка нескольких языков интерфейса. Проект под Apache 2.0, основной способ установки — docker‑компоуз с томом для данных, остальное — нативные сборки и приложения в сторах под все основные платформы.
Код в репо, на скриншоте как выглядит интерфейс.
@prog_tools
Ключевые возможности:
Под капотом: веб‑клиент на React + Tailwind + Shadcn, бекенд с зашифрованной SQLite, автоматическая настройка SSL, вход с OIDC и 2FA (TOTP), поддержка нескольких языков интерфейса. Проект под Apache 2.0, основной способ установки — docker‑компоуз с томом для данных, остальное — нативные сборки и приложения в сторах под все основные платформы.
Код в репо, на скриншоте как выглядит интерфейс.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Forwarded from Zen of Python
pymupdf4llm-C — извлекатель текста из PDF, написанный на C для скорости работы. Обходит PDF-страницы и сериализует блоки в структурированный JSON. Есть безопасные биндинги для Python и Rust без сырых указателей. Установка через pip:
Для каждой страницы создается JSON с массивом блоков:
Для таблиц добавляются
Как использовать
Можно писать в файлы:
Полезно, когда:
— требуется предсказуемая структура для векторных баз;
— нужно различать заголовки, списки, таблицы при чанкинге;
— скорость критична: C-реализация быстрее Python-аналогов;
— работаешь с документами, где важна иерархия и расположение элементов.
Перед использованием нужно собрать:
@zen_of_python
pip install pymupdf4llm-c или cargo: cargo add pymupdf4llm-c.Для каждой страницы создается JSON с массивом блоков:
[
{
"type": "paragraph|heading|table|list|figure",
"text": "content",
"bbox": [x0, y0, x1, y1],
"font_size": 11.0,
"font_weight": "normal",
"page_number": 0
}
]
Для таблиц добавляются
row_count, col_count, confidence. Координаты в PDF points, типы блоков для семантической обработки.Как использовать
from pymupdf4llm_c import to_json
# В память
results = to_json("report.pdf", collect=True)
for page in results:
for block in page:
if block['type'] == 'table':
process_table(block) # свой код для таблиц
Можно писать в файлы:
to_json(pdf_path, output_dir=Path("json")). Для Rust есть to_json_collect() и extract_page_json().Полезно, когда:
— требуется предсказуемая структура для векторных баз;
— нужно различать заголовки, списки, таблицы при чанкинге;
— скорость критична: C-реализация быстрее Python-аналогов;
— работаешь с документами, где важна иерархия и расположение элементов.
Перед использованием нужно собрать:
./build.sh. Проект свежий, но рабочий. Код в репо.@zen_of_python
❤3👍1
В свежем Git 2.52 подъехало несколько реально полезных штук, которые можно трогать руками уже сейчас:
🔘 Появилась команда
🔘 В
🔘 Новый экспериментальный
🔘 Для тех, кто живёт на
Под капотом 2.52 закладывает фундамент под Git 3.0: продолжается переход к SHA‑256 с возможностью работать между репозиториями на разных хешах, расширено использование Bloom‑фильтров для ускорения path‑запросов, а ещё появилась опциональная сборка с
С Git 3.0 по умолчанию поменяется и имя первой ветки:
Для ценителей — оригинальные релиз-ноутсы. На картинке пример использования
Инструкции по установке и обновлению там же где и всегда.
@prog_tools
git last-modified, которая за один проход показывает последний коммит для каждого файла в директории и работает примерно в 5,5 раза быстрее типичного скрипта ls-tree + git log -1.git maintenance добавили задачу geometric: она делает «геометрические» репаки без огромного all‑into‑one git gc, но периодически всё же запускает полный GC и чистит мусор — это сильно упрощает жизнь большим репозиториям.git repo даёт быстрый доступ к сводной информации о репо (git repo info, git repo structure), а git refs list/exists объединяют общие операции с ref’ами в один инструмент.sparse-checkout, добавили git sparse-checkout clean, который приводит рабочую директорию в порядок, если после изменения масок остались «лишние» файлы.Под капотом 2.52 закладывает фундамент под Git 3.0: продолжается переход к SHA‑256 с возможностью работать между репозиториями на разных хешах, расширено использование Bloom‑фильтров для ускорения path‑запросов, а ещё появилась опциональная сборка с
WITH_RUST, где часть служебной логики уже переписана на Rust. В третьей версии Rust станет обязательной зависимостью, а новый формат хешей и другие «ломающие» изменения уже тестируются через специальные build‑флаги.С Git 3.0 по умолчанию поменяется и имя первой ветки:
init.defaultBranch станет main вместо master, так что новые репозитории сразу будут создаваться с main без дополнительной настройки. К этому переходу экосистема уже давно готова: GitHub и GitLab по умолчанию создают новые проекты с веткой main, оставляя master только там, где его явно настроили сами пользователи.Для ценителей — оригинальные релиз-ноутсы. На картинке пример использования
git last-modified — средняя колонка с листинга файлов на GitHub.Инструкции по установке и обновлению там же где и всегда.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4
Если вы не хотите поднимать свой почтовый сервер с DNS, SPF, DKIM и прочим цирком, но хотите нормальный веб‑клиент под своим контролем, то есть один любопытный проект. Это современный самописный веб‑мейл, который не заменяет почтовый хостинг, а подключается к существующим провайдерам вроде IMAP/SMTP, SES, SendGrid, Mailgun, Postmark и собирает всё в один быстрый интерфейс. Данные и учётки лежат на вашем сервере, никакой внешней телеметрии, а по ощущениям это «Gmail‑лайк UI», только без привязки к одному вендору.
Что умеет Kurrier как веб‑почта:
🔘 Подключать сразу несколько источников: IMAP/SMTP, SES, SendGrid, Mailgun и любые совместимые SMTP/IMAP‑шлюзы.
🔘 Давать единый интерфейс для чтения, отправки, поиска и работы с несколькими личностями/адресами.
🔘 Работать как self‑hosted приложение без внешних зависимостей, с фокусом на приватность и контроле данных.
🔘 Быть «дружелюбным к разработчику»: чистые JSON‑структуры, дельта‑синхронизация писем, плагины и готовность к автоматизации.
Технически внутри это Next.js + Nitro‑воркер, PostgreSQL и Redis, всё упаковано в Docker‑окружение, которое можно поднять на обычном VPS или даже Raspberry Pi. Из требований — по документации достаточно 1 ГБ ОЗУ и 1 vCPU (2 ГБ рекомендуют для продакшена), а деплой по сути сводится к
Этот пример повторяет базовые шаги из официальной инструкции, но в проде всё равно стоит дочитать доку про туннели, домен и вебхуки.
Проект свежий, активно развивается, уже есть десятки релизов и несколько сотен звёзд на GitHub, так что сейчас самое время попробовать и, если зайдёт, накидать issues или pull request.
@prog_tools
Что умеет Kurrier как веб‑почта:
Технически внутри это Next.js + Nitro‑воркер, PostgreSQL и Redis, всё упаковано в Docker‑окружение, которое можно поднять на обычном VPS или даже Raspberry Pi. Из требований — по документации достаточно 1 ГБ ОЗУ и 1 vCPU (2 ГБ рекомендуют для продакшена), а деплой по сути сводится к
docker compose up и заполнению .env с провайдерами и доменом:git clone https://github.com/kurrier-org/kurrier
cd kurrier
cp .env.example .env # правим провайдеров и домен
docker compose up -d
Этот пример повторяет базовые шаги из официальной инструкции, но в проде всё равно стоит дочитать доку про туннели, домен и вебхуки.
Проект свежий, активно развивается, уже есть десятки релизов и несколько сотен звёзд на GitHub, так что сейчас самое время попробовать и, если зайдёт, накидать issues или pull request.
@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤1
pad.ws — это доска для рисования, которая одновременно является полноценной средой разработки прямо в браузере. По сути, у вас один бесконечный холст, где можно рисовать схемы, а рядом открывать терминал и редактор кода, подключённый к облачной Ubuntu‑машине.
Полгода назад эта поделка стала опенсорсной, теперь можно поднять на своём сервере.
В центре — доска на базе Excalidraw: рисуешь архитектуру, последовательности запросов, схемы баз, заметки — как в Miro. Прикол в том, что можно также кинуть на доску терминал и веб‑IDE (VS Code или Cursor), которые работают поверх облачного dev‑окружения, так что из блок‑схемы можно сразу провалиться в код и запустить его. Это удобно, когда нужно не прыгать между Miro, IDE и SSH, а держать всё в одном окне.
В репозитории есть docker‑compose с PostgreSQL для хранения досок, Redis для кеша и сессий, Keycloak для входа по OIDC и отдельным контейнером с самим pad (FastAPI + фронтенд). Лицензия MIT, основной стек — TypeScript на фронте, Python на бэкенде, так что при желании можно допилить под свои нужды.
Код в репо, демо на сайте.
@prog_tools
Полгода назад эта поделка стала опенсорсной, теперь можно поднять на своём сервере.
В центре — доска на базе Excalidraw: рисуешь архитектуру, последовательности запросов, схемы баз, заметки — как в Miro. Прикол в том, что можно также кинуть на доску терминал и веб‑IDE (VS Code или Cursor), которые работают поверх облачного dev‑окружения, так что из блок‑схемы можно сразу провалиться в код и запустить его. Это удобно, когда нужно не прыгать между Miro, IDE и SSH, а держать всё в одном окне.
В репозитории есть docker‑compose с PostgreSQL для хранения досок, Redis для кеша и сессий, Keycloak для входа по OIDC и отдельным контейнером с самим pad (FastAPI + фронтенд). Лицензия MIT, основной стек — TypeScript на фронте, Python на бэкенде, так что при желании можно допилить под свои нужды.
Код в репо, демо на сайте.
@prog_tools
🤯7🔥3
Вышла вторая версия Torrra — это TUI‑клиент, который позволяет искать и качать торренты прямо из консоли, без браузера и без отдельного GUI‑клиента. Сделан на Python, интерфейс собран на Textual, так что всё выглядит аккуратно и отзывчиво.
Можно подключаться к своим индексаторам Jackett или Prowlarr, смотреть результаты поиска и выбирать чем качать — через встроенный движок на базе libtorrent или передать внешний magnet в свой любимый клиент. Автор утверждает, что в версии v2 серьёзно ускорил UI, улучшил навигацию, прокачал поиск и работу с несколькими торрентами сразу, плюс почистил интеграцию с индексаторами и полирнул раскладку интерфейса.
Установить можно через
Поведение можно подкрутить через
Код в репо, на видео демонстрация работы.
@prog_tools
Можно подключаться к своим индексаторам Jackett или Prowlarr, смотреть результаты поиска и выбирать чем качать — через встроенный движок на базе libtorrent или передать внешний magnet в свой любимый клиент. Автор утверждает, что в версии v2 серьёзно ускорил UI, улучшил навигацию, прокачал поиск и работу с несколькими торрентами сразу, плюс почистил интеграцию с индексаторами и полирнул раскладку интерфейса.
Установить можно через
pipx install torrra, либо взять пакеты из AUR, Homebrew, докер‑образ или готовые бинарники под основные платформы. После установки минимальный сценарий такой: поднимаете Jackett или Prowlarr, запускаете torrra jackett --url https://localhost:9117 --api-key <ключ>, а дальше стрелками ходите по списку, Enter — скачать, p — пауза, r — продолжить, q — выйти.Поведение можно подкрутить через
config.toml: задать дефолтные индексаторы, пути, какие клиенты использовать, чтобы каждый раз не вбивать одно и то же в аргументах. Проект кроссплатформенный (Linux/macOS/Windows) и живой: есть документация и регулярные релизы.Код в репо, на видео демонстрация работы.
@prog_tools
This media is not supported in your browser
VIEW IN TELEGRAM
👍4❤3
Два топовых проекта для безопасной передачи файлов
1️⃣ LocalSend — опенсорсный AirDrop внутри одной сети, где устройства просто находят друг друга по локальному бродкасту. Про это вы скорее всего слышали уже. А вот дальше интереснее.
3️⃣ AltSendme — свежий p2p‑AirDrop через интернет: создаёте тикет, второй человек вводит его у себя, оба клиента идут в сеть iroh, находят друг друга по этому идентификатору и устанавливают зашифрованный QUIC‑туннель напрямую, минуя любые облачные хранилища.
Чтобы всё это работало за NAT, iroh сначала пытается пробить прямое соединение (NAT hole punching), а если не получается — временно использует релей‑сервер: он просто прокидывает зашифрованный трафик, пока нельзя выйти на прямой маршрут, после чего трафик идёт уже только между пир‑клиентами. Публичные релеи держит команда iroh и даёт их по умолчанию всем желающим, но код релея открыт: есть crate iroh-relay, если хочется полностью контролировать инфраструктуру и не зависеть от чужих узлов.
@prog_tools
Чтобы всё это работало за NAT, iroh сначала пытается пробить прямое соединение (NAT hole punching), а если не получается — временно использует релей‑сервер: он просто прокидывает зашифрованный трафик, пока нельзя выйти на прямой маршрут, после чего трафик идёт уже только между пир‑клиентами. Публичные релеи держит команда iroh и даёт их по умолчанию всем желающим, но код релея открыт: есть crate iroh-relay, если хочется полностью контролировать инфраструктуру и не зависеть от чужих узлов.
@prog_tools
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤1
CameraLink — это минималистичная опенсорс‑приложуха, которая превращает старый Android‑смартфон (Android 12+) в IP‑камеру с обычным HTTP и MJPEG‑стримом. Оно поднимает на телефоне встроенный веб‑сервер, даёт поток по
Как пользоваться
1️⃣ Установите APK (или соберите сами), запустите, выдайте доступ к камере и foreground‑сервисам, нажмите Start Streaming — на экране появится URL вида
3️⃣ Откройте этот адрес с любого устройства в той же сети (браузер или VLC) и смотрите
3️⃣ Для удалённого доступа через интернет настройте Tailscale: приложение будет раз в N секунд пинговать указанные MagicDNS‑имена/100.64.x.x‑адреса, чтобы туннель не простаивал.
Быстрый старт из исходников:
1️⃣
3️⃣
3️⃣ На телефоне отключите оптимизацию батареи для CameraLink — тогда foreground‑сервис с wake lock будет стабильно держать камеру и сеть часами.
Дальше можно тонко настроить порт HTTP, выбор фронтальной/тыловой камеры, JPEG‑качество, FPS и список Tailscale‑пиров через константы в
@prog_tools
/stream, кадры по /snapshot и продолжает стримить даже с выключенным экраном, плюс умеет пинговать Tailscale‑пиры, чтобы телефон не засыпал для удалённого доступа.Как пользоваться
https://IP_телефона:8080./stream (видео) или /snapshot (кадры).Быстрый старт из исходников:
git clone https://github.com/onepersonhere/camera-link && cd camera-link;./gradlew assembleDebug && ./gradlew installDebug (или запуск через Android Studio);Дальше можно тонко настроить порт HTTP, выбор фронтальной/тыловой камеры, JPEG‑качество, FPS и список Tailscale‑пиров через константы в
CameraStreamingService, StreamingServer и TailscalePinger. Это готовый код для домашнего видеонаблюдения, умного дверного глазка или своей NVR‑системы без облаков и сторонних серверов.@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4