An eBPF Loophole: Using XDP for Egress Traffic
XDP (eXpress Data Path) — самый быстрый фреймворк для обработки пакетов в Linux, но изначально работал только для входящего трафика. Компания Loophole Labs обнаружила лазейку, позволяющую использовать XDP для исходящего трафика, exploiting уязвимость в том, как ядро Linux определяет направление пакета. Их решение обеспечивает в 10 раз лучшую производительность, чем текущие альтернативы, работает с существующими Docker/Kubernetes контейнерами и не требует модификаций ядра.
При обработке трафика со скоростью сотни гигабит в секунду во время миграции контейнеров и ВМ, XDP достигает скорости линии связи (line-rate), в то время как Traffic Control (TC) ограничен всего 21Gbps на исходящем трафике. Это критически важно для их инфраструктуры, где каждая CPU-единица имеет значение. Решение позволяет обрабатывать пакеты на максимальной скорости сетевого интерфейса, будь то 20Gbps или 200Gbps, без каких-либо изменений в существующей инфраструктуре.
Комментарии (70)
- XDP для egress – авторы используют виртуальные интерфейсы veth, чтобы заставить XDP обрабатывать исходящий трафик, что позволяет достичь 10-кратного прироста пропускной способности по сравнению с iptables/TC, при этом оставаясь совместимым с контейнерами и Kubernetes.
- производительность и совместимость – тесты показывают, что при использовании XDP для обработки исходящих пакетов достигается 20-ти кратное увеличение пропускной способности по сравнению с iptables/TC, при этом не требуется никаких изменений в контейнере или оркестраторе.
- почему не DPDK? – авторы отмечают, что DPDK требует специального драйвера и не может быть использован в контейнерах без привилегий, в то время как XDP работает в любом месте, где работает Linux kernel, и не требует специального оборудования.
- будущее: TC и eBPF – вместо того, чтобы продолжать использовать устаревший TC, сообщество может перейти на eBPF, что позволит в будущем использовать более продвинутые функции, такие как socket фильтры, которые могут быть реализованы в пространстве имен.
Show HN: Pipelex – Declarative language for repeatable AI workflows
Представлен Pipelex - новый open-source язык, созданный специально для AI агентов с целью разработки и выполнения повторяющихся AI рабочих процессов. Проект призван упростить создание сложных автоматизированных систем с использованием искусственного интеллекта, предоставляя разработчикам специализированный инструмент для реализации своих идей.
На данный момент репозиторий предлагает базовую структуру проекта, но подробная документация и примеры использования еще не полностью раскрыты. Цель разработчиков - создать гибкую платформу, которая позволит эффективно соединять различные AI сервисы и модели в единую рабочую среду, снижая порог входа для создания сложных AI-ориентированных приложений.
Комментарии (20)
- Declarative workflow DSL (Pipelex) позволяет описывать пайплайны на высоком уровне, что делает его более читаемым и удобным для совместной работы между техническими и нетехническими участниками.
- В отличие от BAML, Pipelex фокусируется на том, чтобы предоставить DSL для описания логики, а не только для LLM вызовов.
- Пользователи могут запускать пайплайны как локально через CLI, так и удалённо через API сервер, который также доступен как Docker образ.
- Поддержка MCP серверов в разработке, но уже сейчас можно использовать PipeFunc для вызова любых Python функций и инструментов.
- Сообщество приветствует вклад в развитии и интеграцию с другими инструментами и сервисами.
Apple will phase out Rosetta 2 in macOS 28 🔥 Горячее 💬 Длинная дискуссия
Предоставленный текст не содержит содержимого статьи о средстве перевода Rosetta от Apple Developer Documentation. Вместо этого там лишь сообщение о необходимости включить JavaScript для просмотра страницы. Без доступа к фактическому содержанию статьи невозможно создать её точный и ёмкий пересказ в соответствии с требованиями.
Комментарии (265)
- Apple объявляет о прекращении поддержки Rosetta 2 через два года, что фактически означает конец эпохи x86-64 на macOS.
- Разработчики и пользователи обсуждают, что это означает для сторонних приложений, которые не будут пересобраны под ARM, и как это повлияет на Docker, игры и другие инструменты.
- Обсуждается, что Apple могла бы открыть исходники Rosetta 2, чтобы сообщество могло бы продолжать поддержку.
- Участники обсуждают, что это может повлиять на Hackintosh и на то, что macOS может больше не поддерживать x86-64.
- Участники также обсуждают, что это может повлиять на игры, которые не будут пересобраны под ARM.
MinIO stops distributing free Docker images 🔥 Горячее 💬 Длинная дискуссия
В предоставленном тексте отсутствует содержимое самого issue #21647 "Docker release?" в репозитории minio/minio. Видна только навигационная структура GitHub без основного текста обсуждения. Для создания точного пересказа необходимо содержимое самого issue, включая описание проблемы, комментарии и любые детали, связанные с выпуском Docker-образа MinIO.
Комментарии (376)
- MinIO прекращает публикацию готовых Docker-образов, что вызвало волну обсуждений о «rug pull» и ожиданиях от OSS-проектов.
- Участники обсуждают, что компания имеет право прекратить предоставлять бесплатные образы, но отсутствие предупреждения и альтернативы вызывает раздражение.
- Появились альтернативы в виде Garage и SeaweedFS, но у них есть свои ограничения.
- Некоторые участники подчеркивают, что OSS-проекты не обязаны предоставлять бинарники, но при этом они также напоминают, что и сообщество не обязано использовать именно этот проект, если он становится менее удобным.
Major AWS outage takes down Fortnite, Alexa, Snapchat, and more
Произошла крупная авария в инфраструктуре AWS, приведшая к масштабным сбоям во множестве популярных сервисов. Среди пострадавших оказались Fortnite, Alexa, Snapchat и другие приложения, пользователи которых столкнулись с недоступностью сервисов. Причина инцидента на данный момент остается неясной, что вызывает вопросы о надежности облачных платформ.
Авария подчеркивает критическую зависимость множества сервисов от единого провайдера облачных услуг. По данным Downdetector, сбои были зафиксированы в различных регионах мира, что указывает на масштабный характер проблемы. Это уже не первый случай серьезных сбоев у AWS, что заставляет задуматься о необходимости диверсификации инфраструктуры для крупных технологических компаний.
Комментарии (62)
- Пользователь случайно обнаружил сбой в регионе компании во время тестирования Elixir + Phoenix LiveView.
- Проблема затронула Docker Hub и другие сервисы, что вызвало вопросы о перемещении Snapchat из GCP.
- Коллеги отреагировали с юмором, упомянув предстоящие внутренние расследования и сложности локального тестирования.
- Появились шутки о возможной причине сбоя, связанной с ИИ.
Docker Systems Status: Full Service Disruption 🔥 Горячее
20 октября 2025 года Docker столкнулся с полной остановкой работы ключевых сервисов, включая Registry, Hub, Scout и других. Проблемы затронули практически все компоненты экосистемы: от аутентификации и биллинга до автоматической сборки образов и документации. Пользователи по всему миру сообщают о недоступности сервисов как на клиентских машинах, так и через веб-интерфейсы.
Инженеры Docker идентифицировали корень проблемы в работе одного из облачных провайдеров и сейчас мониторят ситуацию, готовя системы к восстановлению после устранения неисправностей у провайдера. Инцидент начался в 01:22 PDT (08:22 UTC) и продолжается уже несколько часов, что вызывает серьезные опасения у разработчиков, зависимых от инфраструктуры Docker.
Комментарии (129)
- AWS и Docker Hub продолжают испытывать проблемы из-за сбоя AWS, что влияет на сборки и деплой по всему миру.
- Пользователи делятся обходными путями: использовать зеркало Google Container Registry, ghcr.io, ECR, Quay и другие публичные образы, а также временно перенаправлять трафик через прокси-репозиторий.
- Разработчики обсуждают, как избежать повторения ситуации: ставить локальный кеш-репозиторий, использовать оффлайн-репозиторий или мигрировать на другой публичный реестр.
- Несколько человек упоминают, что даже если бы мы могли бы настроить приватный репозиторий, большинство людей не будут это делать, потому что это требует дополнительной работы.
- Некоторые комментаторы подчеркивают, что даже если бы мы могли бы использовать приватный репозиторий, мы бы все еще были уязвимы к сбоям в AWS, потому что большинство облачных провайдеров зависят от AWS.
Nvidia DGX Spark: great hardware, early days for the ecosystem
NVIDIA представила DGX Spark - настольный "суперкомпьютер" для ИИ размером с Mac mini, стоимостью около $4,000. Внутри скрывается ARM64-система с 20-ядерным процессором, 128 ГБ ОЗУ и 3.7 ТБ SSD, а также мощный GPU NVIDIA GB10 на архитектуре Blackwell с 119.68 ГБ памяти. Устройство нацелено на исследователей ИИ, предназначено как для обучения, так и для запуска моделей.
Основная проблема - совместимость CUDA с ARM64. Большинство библиотек и туториалов предполагают x86-архитектуру, что создает множество сложностей при настройке. Автору удалось найти PyTorch 2.7 для CUDA на ARM, но не для версии 2.8. NVIDIA пытается упростить задачу через официальные Docker-контейнеры, а за последний недобю опубликовала обширную документацию, которой не хватало изначально.
Комментарии (85)
- Обсуждение в основном вращается вокруг сравнения DGX Spark с другими решениями: пользователи отмечают, что при цене в $70 000 он уступает RTX 5090 в производительности и даже RTX 4090, а единственное преимущество — 128 ГБ видеопамяти — ограничено пропускной способностью, что делает его неэффективным для инференса больших моделей.
- Участники также поднимают вопросы о цене, отсутствии DisplayPort и возможности подключения к обычному монитору, а также о том, что DGX Spark не может использоваться для обучения из-за ограниченной памяти и отсутствия NVLink.
- Некоторые комментаторы сравнивают его с MacBook Pro на Apple Silicon, отмечая, что ноутбук дешевле и при этом предлагающий 128 ГБ единой памяти может быть более практичен для инференса.
- Также обсуждается, что NVIDIA в целом не предоставляет нужного ПО для ARM64, что делает его менее привлекательным, и что в целом экосистема CUDA вокруг ARM64 остается сырой.
Hold Off on Litestream 0.5.0
Новая версия Litestream 0.5.0 приносит значительные изменения: изменился формат резервных копий, что делает невозможным восстановление из бэкапов предыдущих версий, и обновилась структура конфигурационного файла. Автор подробно описывает процесс миграции, столкнувшись с несколькими проблемами.
Первая проблема возникла при попытке загрузить данные в Backblaze — система выдавала ошибку из-за неверного URI, что потребовало фикса от разработчиков.
Вторая проблема: в новой версии удалили флаг -if-replica-exists, критически важный для проверки наличия бекапов перед запуском приложения. Хотя флаг обещали вернуть в следующей версии, его отсутствие в 0.5.0 создавало сложности.
Третья проблема: даже после исправления конфигурации, процесс восстановления падал с ошибкой transaction not available, что указывало на возможную проблему с транзакционностью в новых бэкапах.
Автор подчеркивает, что несмотря на трудности, он продолжает использовать Litestream за его полезность, но советует подождать с апгрейдом до следующего релиза.
Комментарии (15)
- The user is discussing issues they encountered while implementing lightweight read replicas for a Go SQLite driver, referencing a specific implementation and a GitHub repository.
- They mention that while there are issues, the concept is workable, and they already have a version that mostly works, noting the massive changelog and that it's not unexpected to have issues given the scope.
- Other users discuss the benefits of Litestream 0.5.0, including an official Docker image, though one user corrects that there has been an official Docker image for years, since version 0.3.4.
- One user shares they are staying on an older version (0.3.13) for now due to similar issues but are excited for 0.5.x once it stabilizes, praising the integration of Litestream, SQLite, and Caddy for single-box operations.
- A user notes the most disruptive part is the migration to a new LTX format, which is hard to do incrementally, and another user reflects on the versioning, noting that being a 0.x release means breaking changes are expected, though it might still be a minor footnote in the software's lifecycle.
- The original poster concludes by correcting an oversight about the Docker image, noting the badge has been present for years, and speculates that the user who thought the image was new might have had a bad initial experience that discouraged them from trying again.
Wireshark 4.6.0 Supports macOS Pktap Metadata (PID, Process Name, etc.)
p, "p. 1" - "p. 2" - "p. 3" - "p. 4" - "p. 5" - "p. 6" - "p. 7" - "p. 8" - "p. 9" - "p. 10" - "p. 11" - "p. 12" - "p. 13" - "p. 14" - "p. 15" - "p. 16" - "p. 17" - "p. 18" - "p. 19" - "p. 20" - "p. 21" - "p. 22" - "p. 23" - "p. 24" - "p. 25" - "p. 26" - "p. 27" - "p. 28" - "p. 29" - "p. 30" - "p. 31" - "p. 32" - "p. 33" - "p. 34" - "p. 35" - "p. 36" - "p. 37" - "p. 38" - "p. 39" - "p. 40" - "p. 41" - "p. 42" - "p. 43" - "p. 44" - "p. 45" - "p. 46" - "p. 47" - "p. 48" - "p. 49" - "p. 50" - "p. 51" - "p. 52" - "p. 53" - "p. 54" - "p. 55" - "p. 56" - "p. 57" - "p. 58" - "p. 59" - "p. 60" - "p. 61" - "p. 62" - "p. 63" - "p. 64" - "p. 65" - "p. 66" - "p. 67" - "p. 68" - "p. 69" - "p. 70" - "p. 71" - "p. 72" - "p. 73" - "p. 74" - "p. 75" - "p. 76" - "p. 77" - "p. 78" - "p. 79" - "p. 80" - "p. 81" - "p. 82" - "p. 83" - "p. 84" - "p. 85" - "p. 86" - "p. 87" - "p. 88" - "p. 89" - "p. 90" - "p. 91" - "p. 92" - "p. 93" - "p. 94" - "p. 95" - "p. 96" - "p. 97" - "p. 98" - "p. 99" - "p. 100" - "p. 101" - "p. 102" - "p. 103" - "p. 104" - "p. 105" - "p. 106" - "p. 107" - "p. 108" - "p. 109" - "p. 110" - "p. 111" - "p. 112" - "p. 113" - "p. 114" - "p. 115" - "p. 116" - "p. 117" - "p. 118" - "p. 119" - "p. 120" - "p. 121" - "p. 122" - "p. 123" - "p. 124" - "p. 125" - "p. 126" - "p. 127" - "p. 128" - "p. 129" - "p. 130" - "p. 131" - "p. 132" - "p. 133" - "p. 134" - "p. 135" - "p. 136" - "p. 137" - "p. 138" - "p. 139" - "p. 140" - "p. 141" - "p. 142" - "p. 143" - "p. 144" - "p. 145" - "p. 146" - "p. 147" - "p. 148" - "p. 149" - "p. 150" - "p. 151" - "p. 152" - "p. 153" - "p. 154" - "p. 155" - "p. 156" - "p. 157" - "p. 158" - "p. 159" - "p. 160" - "p. 161" - "p. 162" - "p. 163" - "p. 164" - "p. 165" - "p. 166" - "p. 167" - "p. 168" - "p. 169" - "p. 170" - "p. 171" - "p. 172" - "p. 173" - "p. 174" - "p. 175" - "p. 176" - "p. 177" - "p. 178" - "p. 179" - "p. 180" - "p. 181" - "p. 182" - "p. 183" - "p. 184" - "p. 185" - "p. 186" - "p. 187" - "p. 188" - "p. 189" - "p. 190" - "p. 191" - "p. 192" - "p. 193" - "p. 194" - "p. 195" - "p. 196" - "p. 197" - "p. 198" - "p. 199" - "p. 200" - "p. 201" - "p. 202" - "p. 203" - "p. 204" - "p. 205" - "p. 206" - "p. 207" - "p. 208" - "p. 209" - "p. 210" - "p. 211" - "p. 212" - "p. 213" - "p. 214" - "p. 215" - "p. 216" - "p. 217" - "p. 218" - "p. 219" - "p. 220" - "p. 221" - "p. 222" - "p. 223" - "p. 224" - "p. 225" - "p. 226" - "p. 227" - "p. 228" - "p. 229" - "p. 230" - "p. 231" - "p. 232" - "p. 233" - "p. 234" - "p. 235" - "p. 236" - "p. 237" - "p. 238" - "p. 239" - "p. 240" - "p. 241" - "p. 242" - "p. 243" - "p. 244" - "p. 245" - "p. 246" - "p. 247" - "p. 248" - "p. 249" - "p. 250" - "p. 251" - "p. 252" - "p. 253" - "p. 254" - "p. 255" - "p. 256" - "p. 257" - "p. 258" - "p. 259" - "p. 260" - "p. 261" - "p. 262" - "p. 263" - "p. 264" - "p. 265" - "p. 266" - "p. 267" - "p. 268" - "p. 269" - "p. 270" - "p. 271" - "p. 272" - "p. 273" - "p. 274" - "p. 275" - "p. 276" - "p. 277" - "p. 278" - "p. 279" - "p. 280" - "p. 281" - "p. 282" - "p. 283" - "p. 284" - "p. 285" - "p. 286" - "p. 287" - "p. 288" - "p. 289" - "p. 290" - "p. 291" - "p. 292" - "p. 293" - "p. 294" - "p. 295" - "p. 296" - "p. 297" - "p. 298" - "p. 299" - "p. 300" - "p. 301" - "p. 302" - "p. 303" - "p. 304" - "p. 305" - "p. 306" - "p. 307" - "p. 308" - "p. 309" - "p. 310" - "p. 311" - "p. 312" - "p. 313" - "p. 314" - "p. 315" - "p. 316" - "p. 317" - "p. 318" - "p. 319" - "p. 320" - "p. 321" - "p. 322" - "p. 323" - "p. 324" - "p. 325" - "p. 326" - "p. 327" - "p. 328" - "p. 329" - "p. 330" - "p. 331" - "p. 332" - "p. 333" - "p. 334" - "p. 335" - "p. 336" - "p. 337" - "p. 338" - "p. 339" - "p. 340" - "p. 341" - "p. 342" - "p. 343" - "p. 344" - "p. 345" - "p. 346" - "p. 347" - "p. 348" - "p. 349" - "p. 350" - "p. 351" - "p. 352" - "p. 353" - "p. 354" - "p. 355" - "p. 356" - "p. 357" - "p. 358" - "p. 359" - "p. 360" - "p. 361" - "p. 362" - "p. 363" - "p. 364" - "p. 365" - "p. 366" - "p. 367" - "p. 368" - "p. 369" - "p. 370" - "p. 371" - "p. 372" - "p. 373" - "p. 374" - "p. 375" - "p. 376" - "p. 377" - "p. 378" - "p. 379" - "p. 380" - "p. 381" - "p. 382" - "p. 383" - "p. 384" - "p. 385" - "p. 386" - "p. 387" - "p. 388" - "p. 389" - "p. 390" - "p. 391" - "p. 392" - "p. 393" - "p. 394" - "p. 395" - "p. 396" - "p. 397" - "p. 398" - "p. 399" - "p. 400" - "p. 401" - "p. 402" - "p. 403" - "p. 404" - "p. 405" - "p. 406" - "p. 407" - "p. 408" - "p. 409" - "p. 410" - "p. 411" - "p. 412" - "p. 413" - "p. 414" - "p. 415" - "p. 416" - "p. 417" - "p. 418" - "p. 419" - "p. 420" - "p. 421" - "p. 422" - "p. 423" - "p. 424" - "p. 425" - "p. 426" - "p. 427" - "p. 428" - "p. 429" - "p. 430" - "p. 431" - "p. 432" - "p. 433" - "p. 434" - "p. 435" - "p. 436" - "p. 437" - "p. 438" - "p. 439" - "p. 440" - "p. 441" - "p. 442" - "p. 443" - "p. 444" - "p. 445" - "p. 446" - "p. 447" - "p. 448" - "p. 449" - "p. 450" - "p. 451" - "p. 452" - "p. 453" - "p. 454" - "p. 455" - "p. 456" - "p. 457" - "p. 458" - "p. 459" - "p. 460" - "p. 461" - "p. 462" - "p. 463" - "p. 464" - "p. 465" - "p. 466" - "p. 467" - "p. 468" - "p. 469" - "p. 470" - "p. 471" - "p. 472" - "p. 473" - "p. 474" - "p. 475" - "p. 476" - "p. 477" - "p. 478" - "p. 479" - "p. 480" - "p. 481" - "p. 482" - "p. 483" - "p. 484" - "p. 485" - "p. 486" - "p. 487" - "p. 488" - "p. 489" - "p. 490" - "p. 491" - "p. 492" - "p. 493" - "p. 494" - "p. 495" - "p. 496" - "p. 497" - "p. 498" - "p. 499" - "p. 500" - "p. 501" - "p. 502" - "p. 503" - "p. 504" - "p. 505" - "p. 506" - "p. 507" - "p. 508" - "p. 509" - "p. 510" - "p. 511" - "p. 512" - "p. 513" - "p. 514" - "p. 515" - "p. 516" - "p. 517" - "p. 518" - "p. 519" - "p. 520" - "p. 521" - "p. 522" - "p. 523" - "p. 524" - "p. 525" - "p. 526" - "p. 527" - "p. 528" - "p. 529" - "p. 530" - "p. 531" - "p. 532" - "p. 533" - "p. 534" - "p. 535" - "p. 536" - "p. 537" - "p. 538" - "p. 539" - "p. 540" - "p. 541" - "p. 542" - "p. 543" - "p. 544" - "p. 545" - "p. 546" - "p. 547" - "p. 548" - "p. 549" - "p. 550" - "p. 551" - "p. 552" - "p. 553" - "p. 554" - "p. 555" - "p. 556" - "p. 557" - "p. 558" - "p. 559" - "p. 560" - "p. 561" - "p. 562" - "p. 563" - "p. 564" - "p. 565" - "p. 566" - "p. 567" - "p. 568" - "p. 569" - "p. 570" - "p. 571" - "p. 572" - "p. 573" - "p. 574" - "p. 575" - "p. 576" - "p. 577" - "p. 578" - "p. 579" - "p. 580" - "p. 581" - "p. 582" - "p. 583" - "p. 584" - "p. 585"
Комментарии (18)
- Wireshark позволяет использовать Android-устройства для удаленного захвата трафика в реальном времени через Bluetooth и интернет, а также iOS-устройства для интернет-захвата.
- Существуют методы интеграции Wireshark с Linux и Windows, хотя пользователи ищут более простые или эффективные решения, чем текущие.
- Wireshark может взаимодействовать с удаленными системами, например, путем перенаправления вывода tcpdump через FIFO (именованный канал), что позволяет анализировать трафик удаленно, даже в сложных средах, таких как Docker.
- Некоторые пользователи считают, что Wireshark устарел по сравнению с современными потребностями, отмечая его ограничения в расширяемости, программируемости и поддержке новых функций, особенно по сравнению с альтернативами вроде Microsoft Network Monitor.
- Wireshark остается ключевым инструментом для многих, но его функциональность может быть расширена или дополнена с помощью других инструментов и методов, таких как интеграция с ETW или использование дополнительных скриптов и утилит.
Why did containers happen? 💬 Длинная дискуссия
Разработчики долго спорили, можно ли запускать базы данных в контейнерах. Со временем стало ясно, что лучше использовать облачные решения, где провайдер управляет БД, а не хранить всё в эфемерных контейнерах, которые слишком легко удалить.
В то же время, ключевая инновация Docker — это не изоляция, а стандартизированная упаковка приложений. Вместо ручного редактирования серверов разработчики стали собирать приложения в переносимые образы. Это упростило развёртывание, особенно в облаке, где виртуальные машины требовали настройки вручную. Docker же позволил централизованно управлять образами через реестр, что ускорило разработку.
Важный момент: Docker изначально создавался для PaaS-платформы, чтобы упрощать развёртывание приложений, а не изолировать их. Потому и акцент на сборку, а не на безопасность. Многие функции, такие как read-only rootfs, делали контейнеры безопаснее, но главное — они решали проблему управления.
Кроме того, Docker популяризировал Go, показав его эффективность для системного программирования. Сегодня Go — один из главных языков, а многие стандартные библиотеки включают TLS, что упрощает разработку.
В итоге, контейнеры изменили подход к развёртыванию, сделав его более стандартизированным и автоматизированным. Это помогло DevOps-практикам, хотя некоторые аспекты, как безопасность, развиваются до сих пор.
Комментарии (211)
- Контейнеры появились как реакция на неспособность Linux/Unix обеспечить изоляцию и управление зависимостями, а не как решение для разработки и доставки ПО.
- Docker и подобные инструменты стали популярны, потому что они позволяют разработчикам легко запускать и тестировать приложения в изолированной среде, но это не основная причина их создания.
- Контейнеризация стала возможной благодаря тому, что Google и другие компании внедрили cgroups и namespaces в ядро Linux, что позволило создать легковесную альтернативу виртуальным машинам.
- Использование контейнеров для разработки и тестирования приложений стало возможным благодаря тому, что контейнеры предоставляют изоляцию и контроль над зависимостями, что делает их удобными для этих целей.
Modern Linux tools
Проект Gamedev Guide обновил раздел о современных инструментах Linux для разработчиков. Основное внимание уделено оптимизации рабочего процесса: авторы рекомендуют использовать Docker для изоляции окружений, что ускоряет сборку и тестирование. Особо отмечена интеграция с Windows Subsystem for Linux (WSL2) для кросс-платформенной разработки, а также инструменты вроде Ninja для ускоренной компиляции C++ проектов. В статье приводятся примеры настройки CI/CD пайплайнов под Linux, что особенно полезно для крупных команд. Авторы подчеркивают, что современный Linux уже не уступает в инструментах для разработки под Windows, а в чём-то даже превосходит.
Комментарии (123)
- Обсуждение в основном вращается вокруг того, что «современные» инструменты не всегда объективно лучше, а скорее улучшают UX и визуально оформляют вывод, и что важнее уметь пользоваться базовыми утилитами, чем полагаться на специфические инструменты, которые могут не оказаться в других окружениях.
- Участники обсуждают, что важно знать и уметь использовать базовые инструменты, такие как
find,grep,sed,awk,vi,ed,less,tail,head,tar,ls,cat,dd,top,ps,kill,df,du,free,uptime,w,who,last,ls,df,mount,umount,fdisk,lsblk,blkid,lsusb,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsomod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsmod,lsomod,lsmod,lsmod,lsmod,lsmod,lsomod,lsmod,lsmod,lsmod,lsmod,lsomod,lsmod,lsmod,lsomod,lsmod,lsmod,lsomod,lsmod,lsomod,lsmod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod,lsomod, `
WinBoat: Windows apps on Linux with seamless integration 🔥 Горячее 💬 Длинная дискуссия
WinBoat — это инструмент, который позволяет запускать Windows-приложения в Linux с полной интеграцией. Он предоставляет удобный графический интерфейс, автоматизирует установку Windows и обеспечивает доступ к файловой системе Linux из Windows. Проект с открытым исходным кодом, распространяется под лицензией MIT.
Комментарии (173)
- WinBoat – это контейнер Docker с Windows внутри, который запускает приложения в изолированном окружении и предоставляет доступ к ним через RDP.
- Проект не требует лицензии Windows, но юридически он не может быть свободно распространяемым, так как включает в себя не-лицензионные компоненты.
- Пользователи отмечают, что проект не предоставляет никакой новой функциональности по сравнению с существующими решениями, такими как Wine или VirtualBox, и что он не решает проблему, которую он заявляет, что решает.
- Некоторые комментаторы выражают обеспокоенность по поводу того, что проект может быть небезопасен в плане безопасности, так как он требует привилегий root для запуска Docker.
- Проект не предоставляет никакой информации о том, что он делает, и не объясняет, как он это делает, что делает его трудным для пользователей понять, что именно он предлагает.
Doing Rails Wrong 🔥 Горячее 💬 Длинная дискуссия
Диалог высмеивает современную тенденцию усложнять разработку на Rails, добавляя множество инструментов вроде Vite, React, TypeScript, Babel, PostCSS, Tailwind, ESLint, Prettier, Husky, Docker и Redis. Всё это оправдывается стремлением к «современности» и скорости, но приводит к громоздкой настройке.
В противовес этому демонстрируется простота «ванильного» Rails: один командой запускается мгновенно работающее приложение с быстрой загрузкой и формами. Ключевая идея — Rails уже содержит всё необходимое, а избыточные инструменты лишь создают сложность без реальной выгоды. Фраза «Просто используй Rails, блин!» резюмирует мысль: не усложняй там, где это не нужно.
Комментарии (205)
- Участники обсуждают растущую сложность современных веб-фреймворков, отмечая, что Rails предлагает более простой и "батарейками включенный" подход по сравнению с перегруженными инструментами JS-экосистемы.
- Многие выражают ностальгию по классическому Rails, критикуя такие новые решения, как Hotwire и Stimulus, за сложность освоения и недостаток документации, в то время как другие защищают их как "путь Rails".
- Поднимается тема чрезмерного усложнения проектов (over-engineering), особенно для небольших команд, где монолитные фреймворки (Rails, Django) часто продуктивнее разделения на фронтенд и бэкенд.
- JS-экосистема подвергается критике за постоянное "изобретение велосипедов", сложность инструментов и модульность, которая приводит к усталости от инструментария, хотя некоторые защищают её гибкость.
- Отмечается, что выбор инструментов должен определяться конкретными задачами проекта, а не модными тенденциями, и что проверенные временем технологии часто эффективнее для небольших и средних приложений.
Devpush – Open-source and self-hostable alternative to Vercel, Render, Netlify
Devpush — это опенсорсная альтернатива Vercel, предназначенная для автоматического деплоя приложений на любых языках программирования. В отличие от коммерческих решений, он не ограничивается JavaScript-экосистемой и работает с любым стеком технологий, предоставляя непрерывную доставку из Git-репозитория.
Проект позволяет разработчикам быстро развертывать приложения через простые push-запросы в ветку, автоматически собирая и запуская их на собственной инфраструктуре. Это особенно полезно для команд, которым нужен контроль над окружением и гибкость в выборе инструментов без привязки к конкретному провайдеру.
Комментарии (82)
- Пользователи обсуждают и сравнивают различные инструменты для развертывания и управления контейнеризированными приложениями на собственном железе, такие как Coolify, Dokploy, CapRover, Cosmos Cloud, Piku и /dev/push.
- Ключевые темы: простота использования и UX (сравнение с Vercel), поддержка различных рантаймов и Docker, безопасность установки (curl | sh), зрелость и стабильность проектов.
- Автор /dev/push объясняет фокус на удобстве и опыте, близком к Vercel, в отличие от более мощных, но сложных container-centric решений, и анонсирует планы по добавлению новых функций.
- Поднимаются вопросы о необходимости глубоких знаний Linux для самохостинга и ответственности, а также о альтернативных подходах (Kubernetes vs более простые решения).
- Упоминаются recent controversies вокруг Vercel как возможный драйвер роста интереса к альтернативам и открытым решениям.
RediShell: Critical remote code execution vulnerability in Redis
Обнаружена критическая уязвимость удалённого выполнения кода в Redis (CVE-2025-49844) с максимальным баллом CVSS 10.0. Проблема связана с ошибкой Use-After-Free, присутствующей в коде около 13 лет, которая позволяет аутентифицированному злоумышленнику выполнить произвольный код на хосте через специально сформированный Lua-скрипт.
Уязвимость затрагивает все версии Redis и представляет особую опасность, учитывая распространённость системы в 75% облачных сред. Атака позволяет получить полный контроль над системой, включая кражу, шифрование данных и перемещение внутри инфраструктуры. Эксплуатация требует лишь отправки вредоносного скрипта, что делает угрозу высокой для публично доступных экземпляров Redis.
Комментарии (44)
- Уязвимость в Redis (CVE-2024-XXXX) позволяет выполнить произвольный код после аутентификации через уязвимость use-after-free в Lua-скриптах.
- Критичность уязвимости (CVSS 10) оспаривается, так как для эксплуатации требуется аутентификация или доступ к Lua-скриптам, что редко встречается в типичных конфигурациях.
- Проблема усугубляется большим количеством экземпляров Redis (десятки тысяч), публично доступных в интернете без настроенной аутентификации.
- Уязвимость существует в коде более десяти лет, исправлена в Redis 8.1.4 и форке Valkey, но многие системы остаются незащищенными.
- Обсуждаются проблемы безопасности по умолчанию в Docker-конфигурациях и необходимость обновления устаревшей версии Lua в проектах.
Talk Python in Production
Talk Python in Production – это книга, которая учит разворачивать Python-приложения без привязки к облачным провайдерам. Вместо микросервисов и Kubernetes автор предлагает «stack-native» подход: один мощный сервер, Docker Compose, NGINX и минимум внешних сервисов. Книга сопровождается GitHub-репозиторием с примерами кода, конфигами и скриптами CI/CD, а также готовыми Docker-образами.
Комментарии (62)
- Обсуждение началось с критики обложки книги, вызванной использованием AI-изображения без ретуши, что вызвало волну схожих жалоб на дизайн и оформление.
- Участники обсуждали ценность и применимость таких изображений, их влияние на восприятие контента и общий уровень подготовки материала.
- Были подняты вопросы о том, как технологии генерации изображений влияют на качество и доверие к материалу, а также обсуждались проблемы читабельности текста и его контрастности на фоне.
- Обсуждались также и другие темы, включая ценообразование, сравнение стоимости облачных провайдеров, а также вопросы, связанные с публикацией книги и её содержанием.
- В целом, обсуждение подчеркнуло важность внимательного подхода к визуальному оформлению и качеству контента, а также подчеркнуло, что читатели ожидают большего, чем просто базовые знания в области технологий.
More random home lab things I've recently learned
че-г-го-г-г-д-и-не-и-в-г-и-г-д-г-и-ы-г-г-г-г-г-р-р-г-г-г-г-г-г-г-г-г-з-г-г-г-к-г-г-г-г-г-г-г-г-г-а-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-з-г-г-г-г-г-г-г-г-г-з-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-з-г-г-г-з-г-г-г-г-г-г-г-г-з-г-г-г-г-г-г-г-з-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-з-г-г-г-г-з-г-г-г-г-г-г-з-г-г-г-г-г-г-г-г-г-г-г-з-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-з-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г-г
Комментарии (97)
- Обсуждение охватывает широкий спектр тем: от выбора оборудования (Raspberry Pi, NUC, серверные и мини-ПК), до споров о том, что считается "настоящим" хоумлабом, и доходчиво-высокие цены на электричество и стоимость оборудования.
- Участники обмениваются советами по оптимизации энергопотребления, обсуждают преимущества и недостатки различных решений, таких как Proxmox, Docker и Kubernetes, и делятся личным опытом.
- Обсуждаются различные подходы к управлению питанием и охлаждением, а также влияние стоимости электроэнергии на выбор оборудования.
- Участники также обсуждают, какие сервисы и приложения наиболее полезны для домашнего использования, и делятся советами по их настройке и использованию.
- В конце концов, обсуждение поднимает вопрос о том, что делает "хоумлаб" таким, каким он является, и какие факторы влияют на это восприятие.
Modern messaging: Running your own XMPP server
Запуск собственного XMPP-сервера на базе ejabberd позволяет избежать слежки за перепиской и утечек данных, которые характерны для коммерческих мессенджеров. Это особенно актуально на фоне планов ЕС по автоматическому мониторингу всех чатов и сообщений. XMPP поддерживает шифрование OMEMO, обмен файлами, групповые чаты и аудио-/видеозвонки, оставаясь ресурсоэффективным решением.
Для развёртывания сервера требуется настроить DNS-записи для оснвных и вспомогательных поддоменов, установить ejabberd через официальный репозиторий или GitHub, открыть необходимые порты (5222, 5269, 5280 и другие) и настроить конфигурацию в YAML. Ключевые настройки включают отказ от модулей, нарушающих приватность (mod_last, mod_bosh), использование SQLite вместо Mnesia и генерацию свежих DH-параметров. Все шаги автоматизированы с помощью Ansible-ролей в открытом репозитории.
Комментарии (114)
- Участники обсуждают проблемы с клиентами XMPP, особенно на iOS: отсутствие реакций, ненадежные уведомления, неудовлетворительный пользовательский интерфейс и недостаток современных функций (гифки, звонки).
- Многие отмечают простоту настройки и надежность серверов XMPP (Prosody, ejabberd), но подчеркивают, что основная сложность для широкого внедрения — это сетевой эффект и нежелание неподготовленных пользователей мириться с отсутствием привычного удобства.
- В качестве альтернатив упоминаются Matrix (критикуется за сложность и нестабильность), Delta.Chat (на основе email) и Signal (отмечаются проблемы с приватностью из-за номера телефона и возможный уход из ЕС).
- Поднимается вопрос цензуры и тотального мониторинга в ЕС, что может подтолкнуть пользователей к самохостингу и децентрализованным решениям.
- Обсуждаются технические аспекты развертывания: проблемы с блокировкой портов на публичных сетях, необходимость reverse proxy, использование Docker для упрощения установки и управления.
Embracing the parallel coding agent lifestyle
Инженеры всё чаще запускают несколько агентов одновременно — например, одновременно работают несколько экземпляров Claude Code или Codex CLI в разных директориях или даже в разных репозиториях. Саймон Уиллисон, который сам пишет код на Python и JavaScript, решил проверить, насколько полезно это на практике.
Основная идея: если ты уже знаешь, что именно ты хочешь сделать, то параллельные агенты позволяют тебе экономить время на рутинные задачи, пока ты сам занят более сложной работой. Агент может исследовать новую библиотеку, собрать доказательства концепции или найти примеры использования API без всякого риска для проекта. Для таких задач достаточно лишь четко указать модели, что именно от нее требуется.
В статье приводятся конкретные примеры: агент может самостоятельно запустить тесты и увидеть, что за ним стоит поправить предупреждение об устаревшем вызове. Или же, если ты уже решил, какую архитектуру использовать, можно просто сказать агенту, какие именно классы и методы нужно вызвать, и он сам найдет, где их стоит применить.
Саймон отмечает, что главное — это четко формулировать задачу и дать агенту контекст. Тогда сгенерированный код будет легко и быстро проверяем, и ревью требуется меньше усилий. Он также подчеркивает, что важно следить, чтобы агент не пытался внедрить изменения в тот репозиторий, где это не требуется. С другой стороны, если агент предлагает решение, которое требует лишь небольшой доработки, это может быть выгодно при условии, что оно не будет затем отвергнуто.
В заключение Саймон пишет, что пока еще не ясно, какие именно задачи лучше всего делегировать агенту, а какие стоит выполнять самому. Он экспериментирует с разными моделями и способами их запуска, включая запуск в Docker-контейнерах для изоляции. Он также отмечает, что в будущем, вероятно, придется еще больше полагаться на такие инструменты, и потому важно научиться использовать их эффективно и безопасно.
Комментарии (121)
- Обсуждение в основном вращается вокруг трёх тем: высокая стоимость ревью кода, параллельные агенты и их влияние на фокус и продуктивность, а также культурные и этические аспекты использования AI-агентов.
- Участники делятся личными стратегиями, такими как использование различных инструментов вроде Conductor и Crystal для управления агентами, и обсуждают, как сделать их более эффективными.
- Обсуждается, как сделать ревью кода менее трудоёмким, включая использование инструментов вроде bottleneck для ревью кода, и как влияет на продуктивность и фокус.
- Также обсуждается, как влияет на эффективность работы использование AI-агентов, и какие могут быть последствия для долгосрочной устойчивости и качества кода.
Beginner Guide to VPS Hetzner and Coolify
Автор делится детальным чеклистом по настройке защищённого VPS для self-hosting, основанным на личном опыте развёртывания. Рекомендует Hetzner за лучшее соотношение цены и производительности в Европе, но отмечает альтернативы вроде DigitalOcean (удобнее, но дороже) или AWS Lightsail (сложнее для новичков). Ключевые шаги включают обновление системы, создание пользователя с sudo-правами, настройку аутентификации по SSH-ключам с обязательным отключением парольного входа и root-доступа, а также настройку фаервола UFW с политикой запрета входящих соединений по умолчанию, кроме SSH, HTTP и HTTPS. Отдельно упоминается опциональное усиление безопасности через смену порта SSH и привязку к конкретному IP. Практический вывод: такой подход создаёт надёжную основу для развёртывания приложений с минимальной поверхностью для атак.
Комментарии (123)
- Пользователи отмечают отсутствие подробного описания Coolify в статье, несмотря на его упоминание в заголовке.
- Обсуждаются преимущества и недостатки различных хостинг-провайдеров (Hetzner, OVH, DigitalOcean) и их ценовая политика.
- Предлагаются альтернативные инструменты для развертывания и управления серверами: Docker Compose, CapRover, Cloud66, Webmin/Virtualmin, NixOS, Ansible.
- Поднимаются вопросы безопасности и настройки сервера: конфигурация брандмауэра, ограничение доступа по SSH, использование Cloudflare.
- Высказываются критические замечания о пользовательском интерфейсе блога и качестве обслуживания клиентов некоторых провайдеров.
Leveling Up My Homelab
Автор переосмыслил свой домашний серверный стенд, перейдя от хаотичного набора устройств к продуманной, масштабируемой инфраструктуре. Прежняя конфигурация включала маломощные мини-ПК (Mac Mini M1 и Beelink SER3), Synology NAS без поддержки Docker и ручное управление через скрипты. Хотя это было компактно и просто, система не справлялась с экспериментами: не хватало вычислительной мощности, оркестрации, аварийного восстановления и удалённого доступа.
Новый стенд развёрнут в 22U-стойке с акцентом на производственные стандарты: кластер Kubernetes на восьми Beelink SER9 Pro (32 ГБ RAM, GPU), выделенный сервер БД, планируемые Mac Mini на M4, мощное хранилище UniFi UNAS PRO и 10G сеть. Цель — устойчивость, автоматизация через GitOps и пространство для инженерного роста без ограничений.
Комментарии (36)
- Обсуждение затрат на оборудование и электроэнергию для домашних лабораторий, включая переход на энергоэффективные решения.
- Критика программного обеспечения Ubiquiti и Synology в пользу решений на базе TrueNAS, BSD/Linux для надежности хранения данных.
- Дебаты о целесообразности масштабных домашних лабораторий: от хобби и обучения до избыточности для личных нужд.
- Практические советы по оптимизации: использование коротких кабелей, мини-ПК с пассивным охлаждением, резервное копирование.
- Обмен идеями по полезным самохостинговым сервисам: RSS-ридеры, менеджеры паролей, медиатеки, инструменты для разработки.
Ask HN: Who wants to be hired? (October 2025) 💬 Длинная дискуссия
—
Комментарии (231)
- Разработчики ищут удалённую работу, многие открыты к релокации, предпочитают гибридный формат или готовы к редким командировкам.
- Основные технологические стеки включают Python, JavaScript/TypeScript, React, Node.js, облачные платформы (AWS, GCP) и контейнеризацию (Docker, Kubernetes).
- Специализации варьируются от full-stack, data engineering и машинного обучения до дизайна продуктов и UX/UI.
- Ключевые интересы: работа с LLM, AI-агентами, компьютерным зрением, распределёнными системами и дизайн-системами.
- Многие кандидаты имеют опыт более 10 лет, опыт построения масштабируемых продуктов и решения сложных бизнес-задач.
Designing agentic loops 🔥 Горячее
Кодирующие агенты вроде Claude Code и Codex CLI позволяют ИИ не только писать код, но и запускать его, исправлять ошибки и экспериментировать с решениями. Ключевой навык для эффективного использования таких инструментов — проектирование агентских циклов: настройка последовательности действий, где ИИ применяет инструменты в цикле для достижения чётко сформулированной цели. Это превращает агентов в инструменты «грубой силы» для решения задач, если можно определить цель и дать нужные инструменты для итераций.
Однако такая мощь сопряжена с рисками, особенно в «YOLO-режиме», когда агент выполняет команды без подтверждения. Это может привести к удалению файлов, утечке данных или использованию машины для атак. Для снижения рисков автор рекомендует запускать агентов в песочницах (например, Docker), использовать облачные среды вроде GitHub Codespaces или полагаться на удалённые серверы, где ущерб будет ограничен. Также важно тщательно подбирать инструменты для цикла, чтобы агент мог эффективно и безопасно решать задачи.
Комментарии (111)
- Предлагаются альтернативы Docker для песочниц: bubblewrap, firejail, пользовательские аккаунты, KVM и контейнеры.
- Обсуждаются принципы проектирования агентских циклов: избегание фреймворков, малое число мощных инструментов, важность человеческого контроля.
- Подчеркиваются риски безопасности YOLO-режима и необходимость изоляции (контейнеры без сети, VM) для предотвращения утечек данных.
- Отмечается эффективность асинхронных циклов (например, в Claude Code Plan mode) для выполнения задач без постоянного вмешательства.
- Упоминаются практические реализации: MCP, инструменты для работы с документами, использование checkpoint-ов и систем оркестрации.
Show HN: Devbox – Containers for better dev environments
Devbox — это инструмент для создания изолированных сред разработки на основе Docker. Каждый проект работает в собственном контейнере, что предотвращает конфликты зависимостей и сохраняет чистоту основной системы. Контейнеры автоматически перезапускаются и сохраняются между перезагрузками, а код остаётся на файловой системе хоста для удобного редактирования.
Инструмент предлагает простые команды CLI, встроенные проверки безопасности и шаблоны для Python, Node.js, Go и веб-разработки. Также поддерживаются расширенные функции Docker, такие как проброс портов, монтирование томов и настройка переменных окружения.
Комментарии (49)
- Обсуждаются сходства и отличия Devbox от альтернатив: Devcontainers (от Microsoft), Toolbx, Distrobox и других, с акцентом на поддержку в разных IDE и сложность их реализации вне VSCode.
- Поднимается проблема конфликта имен с другими проектами, в первую очередь с Devbox от Jetify, что указывает на возможное отсутствие анализа существующих решений.
- Отмечаются вопросы о безопасности и изоляции, в частности, возможность использования Docker-in-Docker и её последствия.
- Участники делятся личным опытом использования Devbox и аналогичных инструментов, отмечая их удобство для создания воспроизводимых сред без потери производительности.
- Обсуждается, решает ли подход с контейнерами проблему "dependency hell" и насколько он оправдан для разных языков и типов разработки (веб, мобильная).
Docker Hub Is Down
24 сентября 2025 года Docker столкнулся с проблемами аутентификации в Docker Hub, включая реестр, веб-сервисы и связанные компоненты вроде Docker Scout и Build Cloud. Инцидент начался около 16:09 по тихоокеанскому времени с повышенного уровня ошибок при запросах на вход, что привело к расследованию и последующему внедрению исправления к 18:09.
К 18:29 проблема была полностью решена, и система вернулась в рабочее состояние. Пользователям рекомендовали перезайти в аккаунт для обновления сессии, если проблемы сохраняются. Это подчёркивает важность мониторинга и быстрого реагирования на сбои в критической инфраструктуре.
Комментарии (79)
- Пользователи столкнулись с масштабным простоем Docker Hub, что привело к сбоям в деплое, CI/CD и разработке
- Обсуждаются решения для избежания зависимости от Docker Hub: локальные mirror-реестры (Harbor, Zot), pull-through кэши (AWS ECR, GAR, GitLab Registry)
- Предлагаются альтернативные регистри: Quay.io, GitHub Container Registry, публичный ECR от AWS с mirror Docker Hub
- Отмечается, что некоторые системы кэширования (например, GAR) также пострадали из-за проблем с аутентификацией на стороне Docker Hub
- Подчёркивается важность стратегии с собственным внутренним реестром для критичных окружений
My game's server is blocked in Spain whenever there's a football match on 🔥 Горячее 💬 Длинная дискуссия
—
Комментарии (154)
- La Liga в Испании блокирует IP-адреса для борьбы с пиратством во время футбольных матчей, что приводит к массовым перебоям в работе интернета и блокировке легитимных сервисов, включая Cloudflare и Docker.
- Власти и суды делегируют частным компаниям право цензуры в масштабах всей страны без должного судебного надзора, что вызывает вопросы о законности и коррупции.
- Стоимость легального просмотра футбола в Европе завышена (до 100+ евро/мес), что подталкивает пользователей к пиратству и использованию нелегальных IPTV-сервисов.
- Бизнесы (бары, пабы) вынуждены платить большие fees за трансляции, а официальное приложение La Liga запрашивает доступ к микрофону и GPS для слежки за нарушениями.
- Молодое поколение теряет интерес к футболу из-за высокой стоимости, коррупции в индустрии и скандалов, что может привести к естественному разрешению проблемы.
Traefik's 10-year anniversary
Traefik отмечает десятилетие развития как облачного прокси-приложения с открытым исходным кодом. За эти годы проект вырос из простого инструмента маршрутизации в полноценную платформу, включающую Traefik Proxy, Traefik Hub API Gateway и решения для управления API. Сообщество сыграло ключевую роль в его эволюции, способствуя появлению функций для Kubernetes, Docker Swarm, веб-приложений и даже шлюзов для ИИ.
Платформа теперь предлагает решения для безопасности, такие как WAF, управление политиками API и интеграции с экосистемами вроде HashiCorp, Microsoft и Oracle. Traefik продолжает адаптироваться к современным потребностям, включая поддержку GitOps и мокирование API, демонстрируя гибкость и устойчивость в быстро меняющейся ИТ-среде.
Комментарии (129)
- Пользователи отмечают сложность настройки и неудовлетворительную документацию Traefik, особенно при нестандартных требованиях.
- Многие предпочитают альтернативы, такие как Caddy, за его простоту и автоматизацию TLS, или Envoy как CNCF-стандарт.
- Traefik хвалят за интеграцию с Docker и автоматическое управление сертификатами, но критикуют за закрытие базовых функций в enterprise-версии.
- Поддержка динамической конфигурации через Docker-лейблы считается сильной стороной, но сам формат конфигурации часто называют запутанным.
- Проект признают зрелым и полезным для конкретных сценариев, но выбор инструмента часто зависит от личных предпочтений и задач.
Podman Desktop celebrates 3M downloads
Проект Podman Desktop достиг знакового рубежа в 3 миллиона загрузок, что подчёркивает его растущую популярность среди разработчиков. Команда выражает глубокую благодарность сообществу за активное участие: пользователи не только сообщают о проблемах и предлагают новые функции, но и создают расширения, делятся опытом с коллегами и способствуют постоянному улучшению инструмента.
Отзывы пользователей highlight ключевые преимущества, такие как удобство управления контейнерами в едином интерфейсе, работа без прав root и постепенное совершенствование функционала. В честь события запущен специальный сайт-сюрприз, символизирующий признание усилий сообщества.
Комментарии (60)
- Podman рассматривается как бесплатная и более легкая альтернатива Docker, особенно из-за проблем с лицензированием Docker Desktop и его ресурсоемкостью.
- Основные преимущества Podman: возможность запуска без прав root (rootless), лучшая интеграция с systemd и более современная архитектура.
- Для многих сценариев использования Podman является практически прямой заменой (drop-in replacement) Docker, но есть нюансы и отдельные случаи несовместимости.
- Некоторые пользователи предпочитают CLI-интерфейс и не видят необходимости в GUI, как в Podman Desktop.
- Решение об использовании Podman часто связано с конкретными потребностями: работа на ARM/Windows, использование в RHEL, избегание лицензионных ограничений.
Systemd can be a cause of restrictions on daemons
Systemd всё чаще становится причиной скрытых ограничений для демонов, вызывая ситуации, когда служба работает при ручном запуске от root, но отказывает в штатном режиме. Это происходит из-за директив вроде ProtectHome= (блокирующей доступ к домашним каталогам) или PrivateTmp= (создающей изолированный /tmp), которые могут приводить к "таинственным" ошибкам вроде "permission denied" или исчезновению файлов в /tmp.
Особенно коварны ограничения на IP-адреса, которые могут неожиданно блокировать DNS-запросы, если демон не использует systemd-resolved. Пока проблему можно решить, удалив ограничения из .service-файла, но в будущем некоторые демоны могут начать требовать эти настройки, что усложнит диагностику.
Комментарии (91)
- Обсуждаются возможности systemd для изоляции и ограничения сервисов через настройки юнитов, что может служить альтернативой контейнеризации.
- Поднимается вопрос сложности отладки и логирования при использовании усиленных настроек безопасности systemd.
- Участники делятся практическим опытом настройки hardening'а для конкретных сервисов (например, Jellyfin) и решения возникающих проблем.
- Высказываются полярные мнения о systemd: от критики за усложнение и нарушение UNIX-принципов до поддержки за гибкость и мощные функции.
- Затрагивается тема культурного феномена хейта вокруг systemd и его сравнение с другими инструментами (Docker, Podman).
Node 20 will be deprecated on GitHub Actions runners
GitHub Actions начинает процесс отказа от Node 20, так как его поддержка завершится в апреле 2026 года. Планируется переход на Node 24 осенью 2025 года. Сейчас последняя версия раннера поддерживает обе версии, но по умолчанию используется Node 20. Для тестирования Node 24 можно установить переменную окружения FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true.
С 4 марта 2026 года раннеры перейдут на Node 24 по умолчанию. Чтобы продолжить использовать Node 20 после этой даты, нужно установить ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true, но это будет работать только до лета 2026 года, когда Node 20 окончательно удалят. Node 24 несовместим с macOS 13.4 и ниже, а также не поддерживает ARM32, что повлияет на самохостинг. Разработчикам действий и пользователям рекомендуется обновить конфигурации и рабочие процессы соответственно.
Комментарии (41)
- Пользователи выражают недовольство частыми устареваниями (deprecations) и проблемами совместимости в GitHub Actions, особенно с версиями Node.js (пропуск версии 22, переход на 24) и действиями (например, actions/checkout).
- Обсуждаются проблемы безопасности из-за уязвимостей в устаревших версиях Node.js в раннерах GHA, что может привести к компрометации репозиториев и инфраструктуры.
- Предлагаются альтернативы: использование самодельных скриптов для установки Node.js, упаковка действий в Docker-контейнеры или переход на самописные раннеры (например, github-act-runner) для большего контроля.
- Критикуется привязка к проприетарному сервису (GHA) для обеспечения долгосрочной стабильности сборок; предлагается выносить логику сборки в собственные скрипты (Makefile).
- Отмечаются проблемы с экосистемой Node.js: медленная адаптация зависимостей к новым LTS-версиям и отсутствие расширенной поддержки старых ОС со стороны провайдеров.
How Container Filesystem Works: Building a Docker-Like Container from Scratch
Как работает файловая система контейнеров: создание Docker-подобного контейнера с нуля
Одна из суперспособностей контейнеров — их изолированное представление файловой системы. Изнутри контейнера она может выглядеть как полноценный дистрибутив Linux, часто отличающийся от хостового. Запустите docker run nginx, и Nginx окажется в своём привычном пользовательском пространстве Debian независимо от того, какую версию Linux использует хост. Но как создаётся эта иллюзия?
В этой статье мы соберём небольшой, но реалистичный Docker-подобный контейнер, используя только стандартные инструменты Linux: unshare, mount и pivot_root. Без магии рантайма и (почти) без упрощений. По пути вы узнаете, почему пространство имён монтирования — это основа изоляции контейнеров, в то время как другие пространства имён, такие как PID, cgroup, UTS и даже сетевое, играют скорее вспомогательную роль.
К концу — особенно если совместить это с руководством по сетям контейнеров — вы сможете запускать полнофункциональные Docker-подобные контейнеры, используя только стандартные команды Linux. Это конечная цель каждого aspiring container guru.
Предварительные требования
- Базовое знакомство с Docker (или Podman и подобными) контейнерами
- Основные знания Linux (скрипты shell, общее понимание пространств имён)
- Фундаментальные принципы файловых систем (единая иерархия каталогов, таблица монтирования, bind mount и т.д.)
Визуализация конечного результата
На диаграмме ниже показано, как выглядит изоляция файловой системы при создании Docker нового контейнера. Нормально, если рисунок кажется сложным. С помощью практических упражнений в этом руководстве мы построим комплексную ментальную модель работы контейнеров, так что когда мы вернёмся к диаграмме в заключительном разделе, она будет выглядеть гораздо понятнее.
Кликните для увеличения
Что именно изолирует Mount Namespace?
Проведём быстрый эксперимент. В Терминале 1 запустим новую сессию shell в собственном пространстве имён монтирования:
sudo unshare --mount bash
Теперь в Терминале 2 создадим файл где-нибудь в файловой системе хоста:
echo "Hello from host's mount namespace" | sudo tee /opt/marker.txt
Удивительно или нет, но при попытке найти этот файл в новом пространстве имён монтирования с помощью Терминала 1 он окажется там:
cat /opt/marker.txt
Так что же мы изолировали с помощью unshare --mount? 🤔
Ответ — таблицу монтирования. Вот как это проверить. Из Терминала 1 смонтируем что-нибудь:
sudo mount --bind /tmp /mnt
💡 Эта команда использует bind mount для простоты, но подойдёт и обычное монтирование (блочного устройства).
Теперь, если вывести содержимое папки /mnt в Терминале 1, должны отобразиться файлы из /tmp:
ls -l /mnt
Но в то же время папка /mnt осталась пустой в пространстве имён монтирования хоста. Если запустить ту же команду ls из Терминала 2, файлов не будет:
ls -lah /mnt
Наконец, «представления» файловой системы начали расходиться между пространствами имён. Однако мы смогли достичь этого только создав новую точку монтирования.
Пространства имён монтирования, визуализировано
Из man страницы mount namespace:
Пространства имён монтирования обеспечивают изоляцию списка монтирований, видимых процессами в каждом экземпляре пространства имён. Таким образом, процессы в каждом из экземпляров пространства имён монтирования будут видеть distinct single directory hierarchies.
Сравните таблицы монтирования, запустив findmnt из Терминала 1 и Терминала 2:
Пространство имён хоста
Новое пространство имён
Комментарии (27)
- Обсуждаются технологические предшественники и аналоги Docker, такие как chroot (1979), FreeBSD jails (~2000) и Solaris Containers/Zones.
- Подчеркивается, что Docker — это не только chroot, но и комбинация технологий: пространства имён Linux, overlay FS, OCI registry и идея неизменяемых образов.
- Отмечается гениальность и кажущаяся очевидность идеи Docker в ретроспективе, а также его роль в создании критической массы и упрощённых workflow.
- Указывается на значительно более слабую изоляцию chroot по сравнению с пространствами имён Linux, которые использует Docker.
- Упоминается существование минималистичных реализаций концепций Docker, например, «Bocker» — на bash в 100 строк кода.
- Обсуждается история использования многослойных файловых систем (например, для записи CD/DVD) как одна из основ технологий контейнеризации.
- Приводится пример смелого публичного выступления, связанного с внутренним устройством Docker.
OCI Registry Explorer
Registry Explorer — интерактивный просмотрщик образов и репозиториев.
Введите публичный образ (ubuntu:latest) или реп (ubuntu), листайте слои и файлы без скачивания.
Примеры
cgr.dev/chainguard/static:latest-glibcgcr.io/distroless/staticghcr.io/homebrew/core/craneregistry.k8s.ioи др.
Как работает
Сервис на Cloud Run, движок — google/go-containerregistry.
Первый запрос к слою качает и индексирует его; дальше читаем по Range-запросам.
Трафик регистри уменьшается: скачивайте один раз и шлите ссылку.
Docker Hub предоставляет безлимитный доступ.
Случайный доступ к gzip
Храним ~1 % распакованных данных; по ним строим «точки входа» в поток и читаем без распаковки всего слоя.
Код: github.com/jonjohnsonjr/dagdotdev
Комментарии (7)
- @jonjonsonjr: это его pet-проект для отладки образов; часть фич спрятана как пасхалки.
- @mshekow: инструмент oci.dag.dev — лучший браузер регистри, можно развернуть самому (Go-CLI).
- @gucci-on-fleek: поддерживает zstd, cosign-подписи, показывает размер каждого файла и ссылки на Sigstore.
- @glitchcrab: использует регулярно, быстрее чем crane.
- @lclc: сервер не выдержал наплыва посетителей с HN — «Rate exceeded».
Nano Banana image examples 🔥 Горячее 💬 Длинная дискуссия
Коллекция готовых образов
- Собраны минимальные и полные сборки под NanoPi R6S/R6C, Orange Pi 5/5B/5 Plus, Banana Pi BPI-M2S/M2P/M2 Zero, Radxa Zero 3
- Ядро 6.x, U-Boot, Wi-Fi/BT, аппаратное ускорение, Docker, Portainer, Home Assistant, OpenWRT, Kodi, RetroArch, ROS2
- Записать:
dd if=*.img of=/dev/sdX bs=4M status=progress - Логин/пароль: root/1234 или pi/bananapi
Быстрый старт
- Скачать свежий образ из
/releases - Распаковать и записать на SD/SSD
- Вставить, включить, дождаться загрузки
- Подключиться по SSH/IP, сменить пароль
Сборка своего образа
- Установить Docker →
./build.sh board=opi5 flavour=server - Через 15–30 мин появится готовый
.img
Горячие клавиши
armbian-config– сеть, ядро, dtbbananapi-config– overclock, GPIO, камераhtop,armbianmonitor -m– контроль железа
Полезные ссылки
Комментарии (165)
- Nano Banana (Gemini 2.5 Flash) показывает выдающееся качество редактирования и сохранения персонажа, но многие считают примеры «черри-пиком» после десятков попыток.
- Пользователи жалуются на «copy-paste»-эффект, отказы по безопасности и неточности деталей (текст, одежда, пропорции).
- NSFW-контент в демках вызывает споры: примеры с поднятыми юбками и сексуализированными персонажами портят восприятие.
- Модель хороша для прототипов, раскрасок и мемов, но пока требует тщательного промпт-инжиниринга и повторных генераций.
- Технически это не «одна модель», а тюнированный пайплайн Gemini для локального редактирования; открытых весов и полной документации нет.
Show HN: TailGuard – Bridge your WireGuard router into Tailscale via a container
Tailguard — Docker-контейнер, связывающий Tailscale и WireGuard.
- Поднимается одной командой, не требует root.
- Перенаправляет трафик Tailscale → WireGuard и обратно.
- Подходит для «проброса» Tailscale в сети, где нативный клиент не ставится.
Комментарии (26)
- TailGuard — это контейнер, который автоматически берёт конфиг WireGuard и объявляет подсети из туннеля как Tailscale-subnet-router; остальному tailnet они сразу доступны.
- Проект начинался с «пары строк», но пришлось добавить переподключение при смене IP, DNS-ротацию и лёгкий React-UI; всё упаковано в Go-сервис + контейнер.
- Решение работает и с fly.io: вместо camellia.conf на клиенте поднимают TailGuard-контейнер рядом с их WireGuard-шлюзом и получают приватную сеть fly внутри Tailscale.
- На Android единовременно можно только один VPN, поэтому TailGuard удобнее «двойных» подключений; на iOS/WG-официальном клиенте можно выборочно маршрутизировать.
- Альтернатива — готовые 5G-роутеры GL.iNet (IMEI-клон, встроенный Tailscale/WireGuard), но у автора был опыт с TP-Link Deco X50-5G и он его «не особо рекомендует».
Immich – High performance self-hosted photo and video management 🔥 Горячее 💬 Длинная дискуссия
Immich — быстрый и бесплатный аналог Google Фото, который ставится у себя на сервере.
Хранит фото/видео, делает резервные копии, группирует по лицам и геометкам, ищет по объектам и тексту.
Есть веб, мобильные приложения, автозагрузка, совместные альбомы и RAW.
Запускается в Docker за пару минут.
Комментарии (163)
- Пользователи хвалят Immich за быстрый рост, «почти идеальный» клиент и удобную замену Google Photos.
- Ключевые претензии: нет стабильного релиза, агрессивные обновления зависимостей, отсутствие официального пакета в Debian.
- Некоторые страдают от слабого поиска, отсутствия OCR, сжатия и SQLite-варианта.
- Часть людей отказывается от самостоятельного хостинга из-за «bus-factor = 1», дорогого блок-хранилила и риска потерять фото.
- Альтернативы: Ente.io (E2E-шифрование), PhotoPrism, Nextcloud Photos; кто-то просто докупает место у PikaPods.
Show HN: Bottlefire – Build single-executable microVMs from Docker images
Bottlefire — превращает Docker-образы в единый исполняемый файл с микро-VM на Firecracker.
Запуск без root и настроек, где есть KVM.
curl -fL https://bottlefire.dev/run/
Собирается утилитой bake, внутри: сеть, порты, shared-папки.
Цены
Публичные образы — бесплатно.
Pro: 5 $/мес, 20 ГБ «активных» образов, любые регистри.
curl -fL -H "Authorization: Bearer …" -o app \
https://images.bottlefire.dev/ghcr.io/org/app:1.0
Нужен больше или ECR/GCP — пишите.
Спонсорство от 50 $/мес — публикуй свои образы для всех.
Комментарии (21)
- Участник спросил, можно ли «заморозить» microVM в bottlefire и возобновить позже — ответ: Firecracker умеет снимки, но в текущем формате пока не реализовано.
- Вопрос о запуске microVM в обычном облаке:部分 провайдеры (GCP, DigitalOcean) уже позволяют запускать Firecracker.
- Сеть у bake устроена через SOCKS5-прокси поверх tun2socks, используя сетёвой стек хоста.
- Проект по сути обёртка bake: с KVM можно запустить любой Docker-контейнер без установки Docker.
- Участники сравнили с docker2exe/dockerc, обсудили GUI-оболочку, 9p для rootfs и возможность адаптации под Apple Hypervisor.framework.
I ditched Docker for Podman 🔥 Горячее 💬 Длинная дискуссия
—
Комментарии (603)
- Кто-то в восторге от Podman: нет лицензий, rootless, systemd-интеграция,
podman generate kube. - Кто-то страдает: старые версии в Ubuntu, тормоза, сетевые сбои, SELinux, UID-маппинг, compose не докручен.
- Docker упрекают в daemon-root и тяжёлом демоне, но хвалят за «просто работает» и DX.
- Часть вообще ушла в FreeBSD Jails, OrbStack, Colima или bash-скрипты на VPS.
- Вывод: Podman годится, если готовы поборотьься; иначе остаёмся на Docker или ищем третий путь.
WinBoat: Run Windows apps on Linux with seamless integration
Winboat — запуск Windows-программ в Linux с нативным видом и интеграцией.
Использует Wine + патчи для:
- единого меню «Пуск»;
- перетаскивания файлов между ОС;
- общего буфера обмена;
- тем оформления Linux;
- автоматического монтирования дисков.
Установка:
git clone https://github.com/TibixDev/winboat
cd winboat && ./install
Запуск: winboat <путь_к_exe>.
Комментарии (58)
- Пользователи сомневаются в «бесшовной интеграции» и считают, что маркетинговые обещания не совпадают с предупреждениями о багах.
- Уточняется, что WinBoat — это Docker-контейнер с Windows-VM, который через RDP/RemoteApp выводит окна приложений на Linux-декстоп.
- Нет GPU-ускорения; для игр с анти-читом (Fortnite) и тяжёлых задач это ограничение критично.
- Проект позиционируется как более «пользовательский» аналог WinApps, но требует лицензии Windows и всё ещё на стадии бета.
Ask HN: Who wants to be hired? (September 2025) 💬 Длинная дискуссия
—
Комментарии (181)
- 20+ специалистов из 4 континентов ищут удалённую работу; большинство — full-stack, DevOps, ML/AI и мобильные разработчики.
- Регионы: США (Austin, SF, NYC, Florida), Латинская Америка (Буэнос-Айрес, Богота, Медельин), Европа (Лондон, Осло, Хорватия), Азия (Бангкок, Ханой), Африка (Лагос) и др.
- Ключевые стеки: Rust/Go/Python, React/Node, AWS/GCP, Docker/K8s, LLM/AI-инструменты, iOS/Android, а также редкие — DSP, C++, embedded.
- Готовность к релокации: ~30 % «да», ~60 % «только удалённо», остальные — «возможно при убедительном предложении».
- Уровни: от стажёров и new-grad до 20-летних ветеранов и CTO; многие предоставляют портфолио и рекомендательные письма.
Use One Big Server (2022) 🔥 Горячее 💬 Длинная дискуссия
Один большой сервер вместо оркестра микросервисов
Современный сервер Azure с двумя AMD EPYC 3-го поколения даёт:
- 128 физических ядер / 256 потоков
- до 8 ТБ ОЗУ, 200 ГБ/с пропускная способность
- 128 линий PCIe 4.0 → 30 NVMe + 100 Гбит/с сеть
- 4 TFLOPS — в 2000 г. хватило бы для первой строчки Top500
Что он умеет
- 800 Гбит/с видео (Netflix)
- 1 млн IOPS в NoSQL, 70 k IOPS в PostgreSQL
- 500 k RPS nginx, компиляция ядра Linux за 20 с, кодирование 4K-видео 75 fps
Сколько стоит
- Аренда:
– OVH: 128 ядер, 512 ГБ ОЗУ, 50 Гбит/с — $1 318/мес.
– Hetzner: 32 ядра, 128 ГБ — €140/мес.
– AWS m6a.metal: 96 ядер, 768 ГБ — $6 055/мес. - Покупка: ~$40 000 за аналогичную конфигурацию у Dell.
Вывод
Для большинства задач один такой сервер перекрывает потребности всей компании. Распределённые системы нужны редко; чаще достаточно «одного большого сервера» и простого деплоя.
Комментарии (250)
- «Облачный налог» заставляет инженеров выбирать только дорогие облачные решения, хотя за $200/мес. у Hetzner можно взять 48 ядер и 128 ГБ ОЗУ, тогда как AWS даёт лишь 4 vCPU и 16 ГБ.
- Многие участники подтверждают: при стабильной нагрузке гибрид «colo + VPS» или одна большая машина дешевле и проще, чем микросервисы и K8s.
- Ключевые риски: единая точка отказа, необходимость админов и железных рук; зато нет «meta-слоёв» Docker-proxy-nginx и можно выжимать максимум из железа.
- Часть команд тратит годы на «cloud-native» пайплайны и закрывается, не успев выйти на рынок; проще начать с PaaS/Hetzner и переезжать, когда счёт действительно больно.
- Для критичных задач достаточно двух физических серверов (active/backup) и CDN; 99,9 % доступности хватает большинству бизнесов, которым на деле не нужен 100 % uptime.
AI models need a virtual machine
AI-модели нуждаются в виртуальной машине
Современные приложения с ИИ включают модель в «обвязку», которая обеспечивает вызов инструментов, поиск контекста, безопасность и прочие сервисы. Первые чат-боты были простым REPL-циклом: запрос → модель → ответ. С появлением протоколов вроде MCP логика управления стала сложнее и требует свойств ОС: изоляции, расширяемости, переносимости, контроля доступа к файлам и инструментам.
Мы предлагаем рассматривать этот слой как виртуальную машину для ИИ-моделей (MVM), где одна из «инструкций» — вызов LLM. Это развязывает разработку моделей от кода интеграции и даёт «write once, run anywhere» аналогично JVM.
Зачем MVM
- Безопасность и приватность «из коробки», а не как дополнение.
- Повторное использование: любая модель подключается к экосистеме инструментов и политик безопасности.
- Переносимость: модель и политики можно поставлять и запускать в разных средах.
Пример работы
- Пользователь: «Забронируй рейс».
- MVM передаёт запрос модели.
- Модель: «вызови booking-tool».
- MVM проверяет, разрешён ли этот инструмент, и только потом вызывает его.
Такой контроль есть в любом коммерческом ИИ-продукте; MVM выносит его в стандартизированную платформу.
Инструкции MVM
- загрузка/выгрузка модели и инструментов;
- вызов модели с контекстом;
- парсинг её ответа;
- вызов разрешённых инструментов;
- работа с памятью, историей, вводом пользователя;
- стандартные управляющие конструкции (if, seq, loop).
Комментарии (108)
- Критики считают, что статья расплывчата: «VM для ИИ» сводится к обычной песочнице/контейнеру, а не к полноценной машине.
- Основная проблема — не инструменты, а разрешения: нужно точно ограничить, какие действия и данные доступны агенту, иначе он может, например, купить билет с 37-часовой пересадкой ради 3 $.
- Многие предлагают использовать уже существующие механизмы: Docker, отдельный пользователь, контейнеры, WebAssembly или capability-модель вроде Fuchsia.
- Часть комментаторов указывает, что продвинутые модели (ChatGPT Code Interpreter, OpenHands) уже работают в изолированных средах, но этого всё равно недостаточно.
- Итог: вместо новой «ОС для ИИ» нужно чёткое управление правами и данными; VM лишь метафора для этой задачи.
Seedbox Lite: A lightweight torrent streaming app with instant playback
seedbox-lite — лёгкий торрент-медиацентр «всё в одном».
Склонируйте репозиторий, запустите docker-compose up, и получите:
- qBittorrent — закачка/раздача
- Jellyfin — потоковое видео/аудио
- Jackett — поиск торрентов
- FlareSolverr — обход Cloudflare
- FileBrowser — файловый менеджер
Всё упаковано в один docker-compose.yml, занимает минимум ресурсов и работает на любом железе с Docker.
Комментарии (51)
- Проект SeedBox Lite позиционируется как «образовательный», но сопровождается смехотворным легальным дисклеймером и скриншотом Marvel-фильма, что вызывает насмешки.
- По коду заметны следы генерации ИИ: шаблонная аутентификация, бесполезные комментарии в Dockerfile.
- Клиент фактически является «leech-only»: есть скрипт verify-no-uploads.js, гарантирующий нулевой сид.
- Пользователи критикуют нарушение принципов торрент-сети (последовательное скачивание, отсутствие раздачи) и отмечают, что такие клиенты попадают в чёрные списки.
- Проект не решает проблему совместимости с TV-приставками (Jellyfin уже на Roku/LG) и вызывает вопросы о целесообразности серверной части.
The Deletion of Docker.io/Bitnami 🔥 Горячее 💬 Длинная дискуссия
- Отложено: удаление каталога
docker.io/bitnamiперенесено на 29 сентября. - Браун-ауты: 28 авг, 2 и 17 сентября по 10 образов будут недоступны 24 ч.
- С 28 августа новые образы и Helm-чарты больше не публикуются в Docker Hub; исходники остаются на GitHub.
Что меняется
Образы и чарты переезжают в Bitnami Legacy; для продолжения работы обновите CI/CD и кластеры.
Как действовать
- Bitnami Secure Images (BSI) — рекомендованный путь; часть бесплатна только для dev/test, продакшен требует подписки.
- Bitnami Legacy Registry — временное решение.
BSI предлагает как обновлённые Debian-образы, так и новые Photon Linux hardened (совместимы с теми же Helm-чартами).
Комментарии (213)
- Broadcom/Bitnami прекращают публикацию готовых образов в публичных регистри, оставляя только исходники под Apache-2, и требуют платной подписки для OCI-хостинга.
- Пользователи обвиняют компанию в «оркловом» повороте: монетизация на чужом open-source, отсутствие вклада, резкое отключение «доброй воли».
- Многие рады уходу Bitnami: образы считаются перегруженными, с непонятными скриптами и сложной кастомизацией.
- Обсуждаются альтернативы — Minimus, Chainguard, StageX, официальные образы; возникают вопросы о судьбе Helm-чартов и совместимости.
- Кто-то уже мигрировал, кто-то зеркалирует; другие предлагают форкнуть репозиторий и собирать образы самостоятельно.
Show HN: Meetup.com and eventribe alternative to small groups
Cactoide — мобильная open-source платформа для RSVP и управления мероприятиями.
Альтернатива Meetup.com и Eventbrite для малого бизнеса и небольших групп.
- GitHub: polaroi8d/cactoide
- Лицензия: MIT
- Стек: Go, PostgreSQL, React Native (iOS/Android), Tailwind CSS
- Функции
- Создание/редактирование событий
- Подтверждение участия (RSVP)
- Push-уведомления
- QR-коды на входе
- Ограничение по билетам
- Экспорт списков в CSV
- Установка
git clone https://github.com/polaroi8d/cactoide.git cd cactoide docker-compose up - Вклад: присылайте PR и issues.
Комментарии (48)
- Meetup.com критикуют за цену ($180/год) и старый UI, но хвалят за базу участников и дискавери.
- Facebook/WhatsApp/Telegram используют бесплатно, но с плохим поиском и рассылками.
- Punchbowl, Luma, Partiful — удобные, но закрытые и собирают данные.
- Появляются открытые альтернативы: Mobilizon (федеративный), Cactoide (self-host, open-source, без регистрации).
- Основной барьер для новых платформ — отсутствие накопленной базы участников, а не функционал.
Kiwi.com flight search MCP server
Как создать инструкцию по установке MCP-сервера
-
Определите тип сервера
stdio– локальный процесс.sse– удалённый HTTP-эндпоинт.
-
Соберите метаданные
- Название, описание, автора, ссылку на репозиторий.
- Требования: Node.js, Python, Docker и т.д.
- Порт (для SSE), путь к исполняемому файлу (для stdio).
-
Сформируйте
claude_desktop_config.json
Пример stdio:{ "mcpServers": { "my-server": { "command": "node", "args": ["build/index.js"], "env": { "API_KEY": "xxx" } } } }Пример SSE:
{ "mcpServers": { "my-server": { "url": "http://localhost:3000/sse", "headers": { "Authorization": "Bearer xxx" } } } } -
Сгенерируйте инструкцию
- Установите зависимости (
npm i,pip install -r requirements.txt). - Скопируйте
claude_desktop_config.jsonв%APPDATA%\Claude\(Win) или~/Library/Application Support/Claude/(macOS). - Перезапустите Claude Desktop.
- Установите зависимости (
-
Проверьте работу
Откройте Claude → шестерёнка → Developer → MCP → убедитесь, что сервер “Connected”. -
Опубликуйте
ДобавьтеREADME.mdс шагами выше и примером конфига.
Комментарии (82)
- Пользователи хотят не просто «забронировать», а исследовать: «покажи самые дёшевые окна в Токио за 3 месяца».
- Все сходятся, что полностью автономное бронирование пока ненадёжно: доверие к ИИ низкое, цены скачут, а условия договора надо принимать вручную.
- MCP-серверы рассматриваются как новая «AI-API» — удобно для агентов, но бизнес может быстро закрыть доступ, если это ударит по рекламе и контролю.
- Kiwi и прочие агрегаторы могут зарабатывать на самой продаже билетов и страховках, а не на рекламе, но риски покупки у посредников остаются.
- Пока что MCP-инструменты лучше работают как «умный поиск с последующим подтверждением человека», а не как полностью автономный консьерж.
Running our Docker registry on-prem with Harbor
Мы перенесли Docker-реестр в собственный дата-центр на Harbor, отказавшись от Docker Hub и ECR.
Причины: счета за лицензию и трафик, 45-секундные задержки деплоя, риски утечек, лимиты API.
Критерии нового решения: надёжность, скорость, простота, open-source.
Выбрали Harbor: богаче функций, чем «голый» distribution, ставится через docker-compose.
v1-дизайн
- Хранилище: S3-совместимый Pure FlashBlade.
- Две независимые копии в Ashburn и Chicago (пока без HA PostgreSQL/Redis).
- Политики очистки для экономии места.
Минимальные права на бакет
s3:AbortMultipartUpload, DeleteObject, GetBucketLocation, GetObject, ListBucket, ListBucketMultipartUploads, ListMultipartUploadParts, PutObject
harbor.yml (фрагмент)
hostname: "#{node['fqdn']}"
http: { port: 80 }
data_volume: /data
storage_service:
s3:
bucket: docker-registry-bucket
accesskey: "#{bucket_credentials['access_key']}"
secretkey: "#{bucket_credentials['secret_key']}"
regionendpoint: "https://purestorage.#{node['domain']}"
metric: { enabled: true, port: 9090, path: /metrics }
Конфиг разворачивается Chef на выделенных нодах, SSL-терминация на F5.
Комментарии (59)
- Harbor удобен: SSO, Terraform-провайдер, но нет API для токена при
docker login, приходится создавать robot-аккаунты. - Ресурсы 32 CPU / 64 GB RAM выглядят завышенными для 32 000 пуллов за два месяца; скорее всего, просто оверпровижн.
- Многие используют один «источник истины» Harbor + региональные кэши или просто registry в режиме pull-through-cache.
- У Harbor нет OIDC-доступа из GitHub Actions, апгрейды ручные; Nexus проще для Maven/NuGet, но тоже прожорлив и иногда не чистит блобы.
- ECR в AWS дешёв (~3 $/мес) и без хостинга, но не on-prem; для S3-подобного хранилища советуют SeaweedFS, Garage или Pure Flashblade.
Agent-C: a 4KB AI agent
agent-c — сверхлёгкий AI-агент от bravenewxyz.
Проект открыт, код на GitHub.
Комментарии (78)
- 4 КБ-агент на Си вызывает OpenRouter через curl и исполняет команды, что вызывает шутки о «русской рулетке» и безопасности.
- Критика: сжатие UPX, отсутствие проверок ошибок, жёстко заданные константы, popen вместо libcurl.
- Лицензии обсуждают от «Copy me» до CC0, BSD, Apache, GPL и WTFPL.
- Некоторые предлагают запускать под отдельным пользователем или в Docker, локально через Ollama/LM Studio.
- Промпт заставляет агента говорить как Наполеон Динамит («Gosh!», «Sweet!»).
- Сравнивают с Rust-версией «alors» и оффлайн-Python-примером на 44 строки.
Ghrc.io appears to be malicious 🔥 Горячее
ghrc.io — опечатка к ghcr.io — маскируется под реестр контейнеров, но крадёт GitHub-токены.
Как работает атака
- Обычные пути (
/,/404) возвращают стандартную страницу nginx. - API-путь
/v2/отдаёт401 Unauthorizedи заголовок
www-authenticate: Bearer realm="https://ghrc.io/token".
Docker, containerd, podman и Kubernetes-рантаймы, получив этот заголовок, отправляют свои учётные данные на ghrc.io/token.
Когда утекут токены
docker login ghrc.io- GitHub Action
docker/login-actionсregistry: ghrc.io - Секрет Kubernetes для ghrc.io
Простой docker pull ghrc.io/… без логина не передаёт токенов.
Что делать
Если вы когда-либо логинились на ghrc.io:
- Смените пароль GitHub.
- Отзовите все PAT и OAuth-токены.
Комментарии (58)
- Пользователи обсуждают, что домен-ошибка
ghrc.io(вместо правильногоghcr.io) уже зарегистрирован и может использоваться для атак. - Основная уязвимость: GitHub Container Registry всё ещё требует «классические» токены, которые нельзя ограничить по областям, усиливая риск утечки.
- Многие открытые проекты уже ошибочно используют
ghrc.ioв конфигах CI/CD, что делает атаку массовой. - Рекомендации: отказаться от сокращений вроде «ghcr», использовать DNSSEC/SSO-короткие токены, контактировать abuse@dynadot.com для блокировки злоумышленного домена.
We put a coding agent in a while loop 🔥 Горячее 💬 Длинная дискуссия
RepoMirror — сервис для зеркалирования репозиториев GitHub.
- Как работает: клонирует репозитории и обновляет их по расписанию.
- Форматы: поддерживает Git, LFS, релизы, issues, PR, wiki.
- Доступ: публичные и приватные репы (OAuth-токен).
- Скорость: CDN, параллельные загрузки, дедупликация.
- API: REST/Webhook для управления зеркалами.
- Статистика: размер, частота обновлений, ошибки.
- Архив: хранение старых снапшотов.
- CLI:
repomirror sync <owner>/<repo>. - Самостоятельный хостинг: Docker-образ + конфиг
repomirror.yml.
Комментарии (271)
- Появится новая «грязная» работа: разгребать legacy-код, порождённый «vibe-coding’ом» продажниками.
- Агенты в цикле успешно портировали код, но иногда убивали себя pkill’ом, чтобы выйти из бесконечного цикла.
- Короткие промпты (≈100 слов) работают лучше 1500-словных «улучшений» — агенты быстрее и умнее.
- Без чётких тестов и стиля код «почти работает», но превращается в неподдерживаемый slop.
- Стоимость: Sonnet-агент ≈ $10,5/час; без лимитов легко проснуться с огромным счётом.
DeepWiki: Understand Any Codebase
DeepWiki — сервис от создателей Devin, который мгновенно превращает любой GitHub-репозиторий в интерактивную вики.
Просто замените github.com на deepwiki.com и задавайте вопросы без чтения кода.
8 практических приёмов
-
Разведка репозитория
За 2 минуты получаю архитектуру, ключевые модули и точки расширения. -
Контекст для агентов
Копирую сводку в Claude/Cursor, чтобы сразу писать релевантный код. -
Быстрый старт
ГенерируюREADME-инструкции по запуску без ручного изученияdocker-compose.yml. -
Поиск «кухонных» деталей
Уточняю, где хранятся env-переменные, какие скриптыnpm runдоступны и т.д. -
Сравнение форков
Загружаю две вики и спрашиваю: «Что добавлено в форке X по сравнению с оригиналом?» -
Онбординг новичков
Раздаю ссылку на вики вместо 30-минутных экскурсий по коду. -
Проверка зависимостей
Запрашиваю список уязвимых пакетов и актуальные версии. -
Документация API
Прошу сгенерировать примеры вызовов REST-endpoints прямо из кода.
Ограничения
- Публичные репозитории работают сразу.
- Приватные — через GitHub OAuth с нужными правами.
- Нет поддержки SVN и Mercurial.
DeepWiki экономит часы при изучении чужого кода и делает LLM-агентов значительно точнее.
Комментарии (36)
- DeepWiki вызывает противоречивые ощущения: кто-то хвалит автодиаграммы и «глубокие» ответы, кто-то ругает за неточности и «AI-slop».
- Пользователи LibreOffice, PureLB и других проектов жалуются на ложную документацию и баг-репорты, которые тратят время мейнтейнеров.
- Некоторые считают, что диаграммы слишком абстрактны и не привязаны к реальному коду.
- Появились попытки сделать open-source/локальные аналоги, но официального способа «выключить» DeepWiki для своего репозитория пока нет.
Turning a Decommissioned iPhone into a UniFi Protect Camera
Как превратить старый iPhone в камеру UniFi Protect
Переехав на экосистему UniFi, я захотел добавить в Protect ещё одну камеру. Под рукой оказался старый iPhone — компактный «мини-ПК» с хорошей камерой. Официально Protect работает только с UniFi-камерами, но поддерживает сторонние устройства через ONVIF.
В App Store не нашёл приложений, которые напрямую транслируют по ONVIF, зато понял: ONVIF лишь «рукопожатие», а сам поток идёт через RTSP. Значит, схема такая:
iPhone (RTSP) → ONVIF-прокси → Protect
-
RTSP-поток с iPhone
Установил IP Camera Lite (бесплатный тестовый режим). Настроил поток:
rtsp://admin:admin@192.168.17.189:8554/live
Проверил черезffplay— картинка и звук пошли. -
ONVIF-прокси в Docker
Нашёл на Reddit упоминание контейнераrtsp-to-onvif. Поднял его на Synology, поправилconfig.yaml:- интерфейс
eth4(10 GbE-адаптер); - IP и путь RTSP-потока;
- точные width/height, взятые из вывода
ffplay.
- интерфейс
-
Добавление в Protect
В веб-интерфейсе Protect включил «Discover 3rd-Party Cameras», увидел новое устройство, нажал Adopt, ввёлadmin/admin. После донастройки камера появилась в списке.
Результат: iPhone теперь полноценная камера Protect, а Surveillance Station и Scrypted можно отключить.
Комментарии (43)
- Пользователь подключил iPhone к UniFi Protect, но не раскрыл, как победил «бесконечный спиннер» и зависание видео.
- Сообщество разочаровано отсутствием деталей и подозревает, что сам автор уже не помнит, что именно помогло.
- UniFi Protect не умеет в live-аудио и детекцию людей/машин на сторонних камерах без отдельного «AI-устройства» за ≈ $200.
- Старые iPhone как 24/7-камеры критикуют за перегрев и разбухание батарей; предлагают либо удалить аккумулятор, либо купить $30–50 камеру.
- Кто-то пошутил, что фанаты UniFi — «веганы техно-мира»: всем обязательно расскажут, что у них UniFi.
Nitro: A tiny but flexible init system and process supervisor
nitro — миниатюрный, но гибкий init и супервизор процессов.
Назначение
- init для встраиваемых, десктопных и серверных Linux-систем
- initramfs, контейнеров (Docker, Podman, LXC, K8s)
- непривилегированный демон на POSIX
Конфигурация — каталог скриптов (по умолчанию /etc/nitro).
Требования
- Unix-сокеты
tmpfsили записываемый/run
Плюсы
- Всё состояние в RAM, работает на read-only root.
- Событийная модель без polling.
- Ноль аллокаций и ограниченных fd во время работы.
- Один статический бинарник + опциональный
nitroctl. - Сервисы — просто каталоги со скриптами, компиляция не нужна.
- Перезапуск, логирование, цепочки логов, независимость от времени.
- Запускается на FreeBSD через
/etc/ttys.
Сервис
Каждый подкаталог /etc/nitro может содержать:
setup— предзапуск, должен завершиться с 0.run— основной процесс (не должен завершаться).finish— пост-обработка, получает код выхода и сигнал.log→ symlink на другой сервис для логов.down— не поднимать автоматически.- Имена ≤ 64 символов, без
/,,, переводов строк. - Каталоги с
@в конце игнорируются (параметризованные сервисы).
Специальные сервисы
LOG— лог по умолчанию.SYS/setup— перед стартом остальных.SYS/finish— перед остановкой всех.SYS/final— после завершения всех процессов.SYS/fatal— при критической ошибке.SYS/reincarnate— вместо выключения (полезно для initramfs).
Параметризованные сервисы
Каталог foo@ + symlink foo@bar → запуск foo@/run bar.
nitroctl up foo@baz запустит foo@/run baz даже без symlink.
Жизненный цикл
- Подъём:
SYS/setup, затем все непомеченныеdown. - Работа: перезапуск при падении (пауза 2 с при частых падениях).
- Останов:
nitroctl Shutdown/Reboot→SYS/finish→ SIGTERM (7 с) → SIGKILL →SYS/final→ reboot/off/exit.
Управление nitroctl
nitroctl [команда] [сервис]
list— состояния, pid, uptime, код выхода.up/down— запустить/остановить (SIGTERM илиdown-signal).start/stop/restart— с ожиданием успеха.p/c/h— SIGSTOP/SIGCONT/SIGHUP.
Комментарии (82)
- Участники сравнивают Nitro с runit, s6, dinit и systemd: общие черты — минимализм, отсутствие декларативных зависимостей, ручная настройка порядка запуска.
- Некоторые считают Nitro скорее «голым» супервизором процессов, чем полноценной init-системой из-за отсутствия управления ресурсами, пользователями и параллельного запуска.
- Обсуждаются контейнерные кейсы: одни считают наличие init внутри контейнера избыточным, другие — необходимым при форке процессов.
- Упоминаются альтернативы: собственные минимальные init-системы на C и Rust, а также новый модульный подход в NixOS.
- Критика имени: «nitro» уже занято AWS Nitro, Nitro.js и другими проектами; предлагают сменить название.
Leaving Gmail for Mailbox.org 🔥 Горячее 💬 Длинная дискуссия
Покинул Gmail ради Mailbox.org.
С 2007 г. Google получал мои письма «бесплатно», но в 2025-м решил заплатить деньгами, а не приватностью: почта в открытом виде, доступ спецслужб США и пр.
Потребности: только базовый обмен письмами (≈ 50/день), без заметок, календарей и пр.
Рассматривал Proton и Tutanota (E2E-шифрование), но они требуют родных клиентов, а я привык к Apple Mail. Остался Mailbox.org:
- €2,50/мес (оплата за год) = 10 ГБ почта + 5 ГБ облако;
- можно докупать до 100 ГБ по €0,20/ГБ;
- PGP встроен или внешний;
- без автопродления.
Зарегистрировал giuliomagnifico@mailbox.org, заплатил €3 за пробный месяц. Веб-интерфейс лаконичнее Gmail, мобильный тоже удобен. Папки вместо меток — прямо в Apple Mail.
Перенёс всё через imapsync на домашнем сервере:
docker compose run --rm imapsync imapsync \
--host1 imap.gmail.com --user1 … --password1 … --ssl1 \
--host2 imap.mailbox.org --user2 … --password2 … --ssl2 \
--automap --syncinternaldates --skipsize \
--exclude "\[Gmail\]/All Mail" \
--regextrans2 "s/\[Imap\]\/Archive/Archive/"
Процесс занял ≈ 3 ч, 11 201 письмо. Gmail теперь можно стереть.
Комментарии (286)
- Пользователи массово уходят из Gmail ради диверсификации и приватности, выбирая Fastmail, Mailbox.org, ProtonMail, Tutanota, Zoho, Migadu, Purelymail и др.
- Fastmail хвалят за надёжность, быстрый импорт и поддержку собственного домена; Mailbox.org — за PGP и IMAP, но ругают спам-фильтр и UI.
- Почти все письма всё равно могут попасть на серверы Google/Microsoft, а «настоящий» E2E-шифрование работает лишь внутри одного провайдера (Proton↔Proton и т.д.).
- Самостоятельный хостинг (Postfix/Dovecot, Stalwart, mox) даёт полный контроль, но требует заморочек с DKIM/SPF и репутацией IP.
- Ключевой совет: регистрируйте собственный домен — тогда смена почтового сервиса не заставит менять адрес.
Static sites with Python, uv, Caddy, and Docker
Стек для Python-статики: uv + Caddy + Docker
Я почти полностью перешёл на uv — он быстрый, удобен и сам ставит нужный Python. Статические сайты собираю Python-скриптами, а раздаю через Caddy в многоступенчевом Docker-контейнере.
Пример на sus
Dockerfile (сжато):
FROM ghcr.io/astral-sh/uv:debian AS build
WORKDIR /src
COPY . .
RUN uv python install 3.13
RUN uv run --no-dev sus
FROM caddy:alpine
COPY Caddyfile /etc/caddy/Caddyfile
COPY --from=build /src/output /srv/
- Берём образ с uv, копируем код.
- uv ставит Python 3.13 и зависимости, запускает
sus, который кладёт сайт в/output. - Вторая стадия — лёгкий Caddy. Копируем конфиг и готовые статические файлы в
/srv.
Caddyfile минимален:
:80
root * /srv
file_server
Запуск:
docker build -t sus .
docker run -p 80:80 sus
Итог: быстрая сборка, маленький образ, автоматический HTTPS при нужном домене.
Комментарии (75)
- Почти все комментаторы считают выбранный стек (Docker, uv, Caddy, Coolify) избыточным для статического личного сайта.
- Критика сводится к тому, что достаточно «HTML → Nginx/Apache» или даже «HTML → FTP».
- Автор отвечает: хотел остаться в экосистеме Coolify ради единого CI/CD и «zero-SSH» деплоя.
- Некоторые предлагают минимальные Dockerfile (nginx:alpine + COPY) или вообще отказаться от контейнеров.
- Обсуждение выродилось в дискуссию о «культуре овер-инжиниринга» и самоучках, использующих сложные инструменты без понимания базовых.
Don't pick weird subnets for embedded networks, use VRFs
Не выбирайте странные подсети для встраиваемых сетей, используйте VRF
Встраиваемая сеть — это, например, переносная стойка с видео- и сетевым оборудованием, которую подключают к сети площадки. Устройства внутри стойки должны общаться между собой, но перенастраивать их IP при каждой смене локации неудобно. Обычно добавляют маршрутизатор с NAT и используют простую подсеть вроде 10.0.0.0/24. Проблема возникает, если внешняя сеть площадки использует ту же подсеть — возникают конфликты. Люди начинают выбирать «редкие» диапазоны (172.16.42.0/24, 10.11.12.0/24), но конфликты всё равно случаются.
IPv6-решение
Использовать link-local адреса fe80::/64 и протоколы обнаружения (avahi). Маршрутизатор раздаёт маршруты, и внутренние устройства получают доступ в интернет. Недостаток: большинство встраиваемых устройств (аудио- и видеомикшеры) не поддерживают IPv6. Аналогичный IPv4-механизм APIPA (169.254.0.0/16) не даёт шлюза и интернета.
Универсальное решение
Вместо экзотических подсетей ограничьте «странность» настройками маршрутизатора. Используйте VRF (Virtual Routing and Forwarding), чтобы изолировать внутреннюю сеть и избежать конфликтов, не меняя адресацию устройств.
Комментарии (22)
- Docker случайно выбирает подсеть RFC1918, которая может конфликтовать с корпоративной сетью; это частая проблема в AWS и вызывает головную боль при отладке.
- IPv6-поддержка всё ещё редка, поэтому обсуждают альтернативы: IPv4 link-local, CGNAT 100.64.0.0/10, «benchmark» 198.18.0.0/15 и даже выделение «мертвой» подсети.
- Некоторые просто используют VRF или VLAN, чтобы изолировать трафик и избежать конфликтов, хотя это требует понимания маршрутизации.
- Участники сомневаются, что IPv4 исчезнет скоро: у провайдеров его много, а стимул перехода на IPv6 минимален без внешнего давления.
Using Podman, Compose and BuildKit 🔥 Горячее
Для сборки Docker Compose-проекта без Docker используются Podman, Docker Compose CLI и BuildKit.
Проблемы
- Podman предлагает два варианта:
– официальныйdocker-compose, но без BuildKit (нетadditional_contexts);
–podman-compose, но без!reset,configsи т.д. - Постоянно догонять новые фичи Docker Compose не хочется.
Решение
-
Запускаем официальный
docker-composeчерез Podmanpacman -S docker-compose docker-buildx systemctl --user start podman.socket docker context create podman --docker host=unix://$XDG_RUNTIME_DIR/podman/podman.sock docker context use podmanCompose автоматически поднимает контейнер
buildx_buildkit_default. -
Собственный BuildKit-демон (systemd)
pacman -S buildkit systemctl --user start buildkit.service docker buildx create --name local unix://$XDG_RUNTIME_DIR/buildkit/rootless docker buildx use local -
Убираем демон: Bake → Bakah
docker buildx bake --print >bake.json– экспорт в JSON.- Bakah превращает JSON в вызовы Buildah (без демона).
docker buildx bake --print >bake.json bakah --file bake.json
Bakah пока без HCL, переменных и прочих продвинутых фич, но достаточно для сложных проектов.
Комментарии (106)
- Podman предлагает альтернативы Docker-Compose: kube-файлы, systemd-интеграцию и Quadlets, но у compose-режима есть баги (зависимости «убивают» общие сервисы).
- Многие разработчики всё же возвращаются к Docker/Compose или OrbStack/Colima из-за привычного UX и меньшей борьбы.
- Для продакшена без Kubernetes рекомендуют Docker Swarm или Quadlets, которые «встраиваются» в systemd.
- Rootless-режим в Podman работает «из коробки», тогда как в Docker требует ручной настройки.
- Поддержка multi-arch-сборок и BuildKit в Podman есть, но сложнее, чем у Docker.
Show HN: PlutoPrint – Generate PDFs and PNGs from HTML with Python
PlutoPrint — библиотека Python для генерации PDF и изображений из HTML, работает на базе PlutoBook.
Установка: pip install plutoprint.
Основные возможности
- HTML → PDF/PNG/JPEG — одна строка кода.
- CSS/JS — полная поддержка современных стандартов.
- Шаблоны — Jinja2, Django, Flask и др.
- Пакетная обработка — асинхронный режим.
- Docker-образ для быстрого деплоя.
Быстрый старт
from plutoprint import PlutoPrint
pp = PlutoPrint()
pp.html_to_pdf("report.html", "report.pdf")
Параметры
format: pdf, png, jpegwidth/height,orientation,margin,header/footer,dpi
Примеры
- Отчёты, чеки, инвойсы, почтовые этикетки, скриншоты страниц.
Лицензия
MIT.
Комментарии (30)
- Пользователи сравнивают PlutoPrint с WeasyPrint, Puppeteer и Typst: новый движок на C++ обещает быть быстрее и легче по памяти, но покрывает не весь CSS.
- Рекомендуют прогнать тесты с print-css.rocks и проверить прод-качество (проблемы с thead, page-break-inside и т.д.).
- Puppeteer даёт полную поддержку веб-платформы, но требует Chromium и много RAM, особенно для 200-500-страничных PDF.
- Есть вопросы по flexbox, SVG, оглавлению, поддержке Markdown и крэшу на macOS.
- Несколько человек рассматривают PlutoPrint как замену wkhtmltopdf и fpdf, автор открыт к спонсорству.
Modern CI is too complex and misdirected (2021) 💬 Длинная дискуссия
Современные CI-платформы стали мощнее, но и сложнее. GitHub Actions, GitLab и др. предлагают YAML-конфиги с шаблонами, условиями, секретами, кешем, артефактами, экосистемой actions — в итоге CI превращается в полноценную систему сборки.
Базовые примитивы (задачи, зависимости, шаги) не отличаются от Makefile-ов, а добавление распределённого запуска и кеша делает CI почти идентичным современным билд-системам вроде Bazel.
Сложность растёт:
- YAML становится языком программирования.
- Пользователи копируют чужие конфиги, не понимая, что происходит.
- Платформы закрываются на собственных экосистемах, создавая vendor lock-in.
Итог: вместо простого «удалённого запуска тестов» мы получили громоздкую систему, где границы между CI и build-системой стёрлись.
Комментарии (159)
- Участники сходятся во мнении, что современные CI-системы слишком сложны и слишком «далеко» от разработчика, превращаясь в гибрид билд-системы и платформы.
- Многие предлагают упрощение: локально-переносимые скрипты (Bash, Justfile, build.bash), контейнеры или минималистичные движки вроде builds.sr.ht, Drone OSS, Buildbot, Linci.
- Критика YAML-конфигураций и SaaS-зависимости: GitHub Actions «застрял», GitLab CI мощнее, но всё равно требует «платформы».
- Идея «CI должен быть просто расширением билд-системы» (Bazel, Nix, Dagger) звучит, но требует единого «Steve Jobs билд-систем», а не новых технологий.
- Итог: пока нет серебряной пули; кто хочет простоты — пишет ./build.sh и запускает где угодно, кто хочет мощности — мирится с уровнем сложности текущих CI.
I run a full Linux desktop in Docker just because I can
Запускаю полноценный Linux-десктоп в Docker — просто потому что могу
Автор: Ali Haider
Docker считается исключительно для CLI-сервисов, но я решил разместить в контейнере полноценный графический Linux. Зачем? Из чистого любопытства и желания проверить границы технологии.
Почему не VirtualBox или dual-boot?
Хотелось получить Linux, который живёт рядом с Windows без перезагрузок и разделов. Казалось, что за пару дней подниму GNOME/KDE в контейнере, но эксперимент затянулся на четыре дня и превзошёл все ожидания.
Что получилось
На Windows 10 через Docker удалось запустить полноценный рабочий стол. Проект стал жёстким crash-курсом по X11, PulseAudio, GPU-пасsthrough и сетевым трюкам, но в итоге всё работает: окна Linux-приложений появляются поверх Windows, звук идёт, файлы доступны.
Комментарии (96)
- Участники делятся опытом запуска полноценных Linux-десктопов в Docker/LXC: Arch + noVNC, Selkies + KDE, linuxserver/webtop, SkiffOS.
- Обсуждают производительность: 70 % от нативной при web-VNC, лучше через Sunshine или xrdp с аппаратным ускорением.
- Появляются идеи: эфемерные браузеры через Tailscale+Mullvad, Twitch/Discord-Plays-Pokemon, тесты из разных стран.
- Кто-то предпочитает LXC/LXD или systemd-nspawn, чтобы не мучиться с systemd внутри OCI-контейнеров.
- Вспоминают исторические проекты: Jess Frazelle, Samsung DeX, WSL2 + MobaXterm, MATLAB-контейнер.
Show HN: Whispering – Open-source, local-first dictation you can trust 🔥 Горячее
Whispering — микросервис в репозитории epicenter-so/epicenter, каталог apps/whispering.
Предназначен для быстрого распознавания речи через OpenAI Whisper: принимает аудио-файл, возвращает текст.
Ключевые файлы
main.py— FastAPI-endpoint/transcribe(POST, multipart/form-data).requirements.txt—fastapi,uvicorn,openai-whisper.Dockerfile— лёгкий образ наpython:3.11-slim, порт 8000.
Запуск
docker build -t whispering .
docker run -p 8000:8000 whispering
или
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8000
Использование
curl -F "file=@audio.mp3" http://localhost:8000/transcribe
Ответ: {"text": "распознанный текст"}.
Комментарии (135)
- Пользователи делятся «костыльными», но рабочими схемами диктовки на Linux и обсуждают, как локально запускать Whisper/Parakeet без облаков.
- Epicenter продвигает идею «local-first»: plaintext + SQLite, прозрачные данные, открытый код, совместимые инструменты.
- Постоянно сравнивают альтернативы (VoiceInk, Superwhisper, Wispr Flow, Willow, whishper, Vibe) и жалуются на подписки, задержки, качество и отсутствие разметки динамиков.
- Разработчик Epicenter уже добавляет whisper.cpp и планирует Parakeet; просит помощи в PR для ускорения.
Vibe coding tips and tricks
Основы
- Определите цель: чётко сформулируйте задачу перед генерацией кода.
- Начинайте с README: описание проекта помогает ИИ и команде.
- Используйте шаблоны: готовые структуры (FastAPI, React) экономят время.
Промпты
- Контекст: указывайте язык, фреймворк, стиль (PEP8, camelCase).
- Мелкие задачи: дробите фичи на куски по 50–100 строк.
- Примеры: прикладывайте JSON-ответы или SQL-запросы.
- Итерации: улучшайте код по одному аспекту за раз.
Рабочий процесс
- Сессии: 30-минутные циклы «запрос-ревью-запуск».
- Git-коммиты после каждого шага для отката.
- Линтеры/тесты сразу:
pytest,eslint,mypy. - Code Review: проверяйте всё, даже «очевидное».
Инструменты
- Copilot Chat в IDE для быстрых правок.
- Cursor / Windsurf для многофайлового рефакторинга.
- Playwright для e2e-спек, сгенерированных из текста.
- Docker для воспроизводимого окружения.
Качество
- Типы: добавляйте аннотации (
TypedDict, Pydantic). - Док-строки: пишите для всех публичных функций.
- Тесты: покрывайте критические пути ≥80 %.
- Логи: структурированные (
structlog) для отладки.
Безопасность
- Секреты: проверяйте
.envиgit history. - OWASP Top 10: сканируйте зависимости (
pip-audit,npm audit). - RBAC: реализуйте роли и разрешения сразу.
Производительность
- Профилирование:
cProfile,py-spyдля горячих точек. - Кеш: Redis для частых запросов.
- CDN для статики фронтенда.
Деплой
- CI/CD: GitHub Actions → Docker → ECS/Fargate.
- Feature flags для постепенного релиза.
- Мониторинг: CloudWatch + Grafana.
Советы
- Не доверяйте 100 %: всегда читайте сгенерированный код.
- Учитесь у ИИ: спрашивайте «почему так» для роста навыков.
Комментарии (77)
- Подавляющее большинство участников считает «vibe-coding» либо вредным, либо вообще не тем, что описано в документе.
- Настоящий vibe-coding — это «не смотреть код, а принимать результат, если визуально работает»; любые советы «тщательно читайте код» противоречат самому термину.
- Многие предпочитают писать чёткие спецификации и использовать LLM как «парного программиста», но подчёркивают, что это уже не «vibe», а обычная работа с AI.
- Частый риск — накопление непонятного, неотрефакторенного кода и «отравление» контекста при изменении требований.
- Итоговый совет большинства: «Don’t go full vibe» — даже при активном использовании LLM нужно понимать и контролировать результат.
ArchiveTeam has finished archiving all goo.gl short links 🔥 Горячее
Как запустить ArchiveTeam Warrior
Это виртуальная машина для архивации сайтов. Работает на Windows, macOS, Linux через VirtualBox или VMware, не влияет на систему, использует лишь трафик и немного диска.
Быстрый старт (VirtualBox)
- Скачайте образ (357 МБ).
- VirtualBox → Файл → Импортировать → выбрать файл.
- Запустите ВМ; она обновится и предложит открыть браузер.
После запуска
- Откройте http://localhost:8001/
- Укажите имя для таблицы лидеров.
- Выберите проект во вкладке «All projects» или оставьте «ArchiveTeam’s Choice» для автоматического выбора приоритетной задачи.
Goo-gl tracker
Загрузка…
Комментарии (90)
- ArchiveTeam (не Archive.org) спас 3,75 млрд коротких ссылок goo.gl и весь их контент (91 ТиБ) до отключения Google 25 августа.
- Данные уже поступают в Wayback Machine; сами файлы WARC пока закрыты «access-restricted».
- Участники просто запускали Docker-контейнер, перебирая пространство URL, чтобы не попасть под бан.
- Поднимались идеи блокчейн/P2P-краулера и сравнение с CommonCrawl, но основная цель — предотвратить link rot.
- Reddit и Twitter тоже архивировались (Pushshift, ArcticShift, AcademicTorrents), пока API не закрыли.
Wan – Open-source alternative to VEO 3
Wan2.2 — открытая генеративная модель для создания видео.
Репозиторий: Wan-Video/Wan2.2
- Масштабируемость — работает от локального GPU до кластеров.
- Качество — высокое разрешение, плавность, точность текста.
- Гибкость — обучение, дообучение, инференс через PyTorch.
- Форматы — MP4, GIF, WebM; выбор fps и разрешения.
- API & CLI — простой запуск:
wan2.2 generate --prompt "...". - Docker — готовый образ
wanvideo/wan2.2:latest. - Лицензия Apache 2.0, коммерческое использование разрешено.
Комментарии (31)
- Wan2GP позволяет запускать модели Wan 2.1/2.2 на видеокартах всего 6 ГБ VRAM (Nvidia) и объединяет десятки вариантов моделей с LoRA-ускорением и активным Discord-сообществом.
- Пользователи хвалят качество Wan 2.2: 27B «MoE»-архитектура (два 14B эксперта для разных уровней детализации), 5B-модель выдаёт 720p24 на RTX 4090/24 ГБ или двух 12 ГБ GPU.
- Генерация 4-секундного видео Image-to-Video занимает 3–4 мин, апскейл до 4K — ещё 2–3 мин; изображения рендерятся за 20–40 с.
- Участники спрашивают о бенчмарках видео-моделей, UI-обёртке «Obi» и высокопроизводительных инференс-фреймворках вроде vLLM для видео.
- Некоторые критикуют название «Wan», спорят о корректности термина MoE и отмечают, что Replicate-версия дешевле и проще в использовании.
Vaultwarden commit introduces SSO using OpenID Connect
Кратко о PR #3899
Добавлена поддержка SSO через OpenID Connect (OIDC) в Vaultwarden.
-
Что нового
- Авторизация через внешний OIDC-провайдер (Keycloak, Azure AD, Google и др.).
- Автоматическое создание/обновление пользователей при первом входе.
- Настройка через переменные окружения:
SSO_ENABLED,SSO_AUTHORITY,SSO_CLIENT_ID,SSO_CLIENT_SECRET. - Поддержка PKCE и
offline_accessдля refresh-токенов.
-
Как использовать
- Указать параметры OIDC в
.env. - Включить SSO в админ-панели.
- Пользователи входят кнопкой «Login with SSO».
- Указать параметры OIDC в
-
Ограничения
- Только веб-клиент; мобильные/CLI пока без SSO.
- Не работает с двухфакторной аутентификацией Vaultwarden (используйте MFA у провайдера).
-
Проверено
- Keycloak, Auth0, Azure AD, Google Workspace.
PR готов к слиянию; дальнейшие улучшения (SAML, группы) в roadmap.
Комментарии (91)
- Внедрённый SSO в Vaultwarden в первую очередь нужен корпоративным и командным средам, где упрощает автоматическое добавление/удаление пользователей и управление доступом к коллекциям паролей.
- Для личного или семейного использования польза минимальна: мастер-пароль всё равно требуется, а SSO не заменяет шифрование.
- Многие админы некоммерческих и малых организаций рады возможности подключить единый OIDC-провайдер вместо ручного приглашения и отслеживания активных волонтёров/сотрудников.
- Часть пользователей обеспокоена безопасностью: просят аудитов, контроля образов Docker и зависимостей.
- SSO не отменяет мастер-пароль: он по-прежнему нужен для расшифровки хранилища, а SSO лишь аутентифицирует пользователя.
Enlisting in the Fight Against Link Rot
Google закрывает goo.gl
В 2009-м сервис обещал «стабильность, безопасность, скорость». В июле 2024-го Google объявил, что через год все короткие ссылки исчезнут. Учёные предупреждали: короткие URL без открытых баз — это тихий геноцид памяти интернета.
Кто спасёт ссылки?
Archive Team — те же люди, что спасли Geocities, Yahoo! Answers и Yahoo! Groups. Они собирают карту всех ~3 млрд goo.gl-ссылок: заходят, фиксируют редирект, повторяют.
Как присоединиться
- Установи Warrior (контейнер или GUI).
- Не используй VPN/прокси, которые ломают сайты.
- Запусти — программа сама перебирает адреса.
Осталось меньше двух недель. 3000+ волонтёров уже в деле.
Комментарии (98)
- Пользователи сходятся во мнении, что закрытие goo.gl — логичный шаг из-за рисков фишинга и уязвимости домена.
- Архивисты Internet Archive (ArchiveTeam) уже почти полностью сохранили базу коротких ссылок, используя добровольных «воинов» и Docker-контейнеры.
- Многие считают, что Google мог бы просто передать очищенную базу Archive.org, но не делает этого из-за юридических и приватных ограничений.
- Обсуждаются альтернативы: оставить только официальные ссылки Google, выдавать страницу-предупреждение или перенести домен под управление третьей стороны.
- Участники подчеркивают, что URL-сокращатели изначально создавались ради экономии символов в Twitter и удобства QR-кодов, но превратились в источник link rot и трекинга.
Ollama and gguf
Проблема: модель gpt-oss-20b.gguf не запускается в Ollama.
Симптом: при попытке ollama run процесс зависает на 0 % и через минуту падает без явной ошибки.
Окружение:
- Ubuntu 22.04, 64 ГБ ОЗУ, RTX 4090
- Ollama 0.3.6 (AppImage и Docker)
- Файл
gpt-oss-20b.q4_0.ggufвзят из официального репозиторияTheBloke, 11 ГБ
Лог:
ggml_cuda_init: found 1 CUDA device
llama_model_load: error loading model: missing tensor 'token_embd.weight'
llama_load_model_from_file: failed to load model
Причина: в GGUF-файле отсутствует обязательный тензор token_embd.weight.
Решение:
- Перекачать модель (
curl -L -o gpt-oss-20b.q4_0.gguf …) и проверить хэш. - Если проблема сохраняется — использовать другой квант (
q4_K_Mилиq5_0). - Либо конвертировать оригинальные веса самостоятельно через
llama.cpp/convert.py.
Комментарии (70)
- Ollama отказалась от llama.cpp в пользу собственной обвязки над ggml, что ломает совместимость с GGUF-моделями и вынуждает «переизобретать велосипед».
- Пользователи жалуются на проприетарные квантизации, отсутствие поддержки шардированных GGUF > 48 ГБ и игнорирование upstream.
- Альтернативы: запуск llama-server напрямую или готовые контейнеры Ramalama / Docker Model Runner.
- Сторонники Ollama отмечают удобство установки и готовые модели, но критики считают это «эншитификацией» и подготовкой к монетизации.
Sandstorm- self-hostable web productivity suite
Sandstorm — открытая платформа для простого и безопасного развёртывания веб-приложений.
Достаточно выбрать нужный сервис в магазине и нажать «Установить» — всё работает как на смартфоне.
Что умеет
- Документы — совместное редактирование через Etherpad
- Файлы — облачное хранилище Davros
- Задачи — Kanban-доски Wekan
- Чат — защищённый Rocket.Chat
Особенности
- Удобство — единый доступ ко всем приложениям и данным, единая система прав.
- Безопасность — каждый документ или чат изолирован в «зерне» (контейнере), 95 % уязвимостей блокируются автоматически.
- Контроль — запускайте в облаке или на своём сервере, переносите данные без ограничений. Исходный код открыт, приложения можно модифицировать.
Для кого
- Личное использование — приватный сервер с нужными сервисами.
- Бизнес — данные компании в одном месте, команды выбирают удобные инструменты без ожидания IT.
- Разработчики — публикуйте приложения в виде пакетов Sandstorm и не думайте об инфраструктуре.
Комментарии (31)
- Sandstorm запустили в 2014 г., но в 2017 г. стартап закрылся из-за нехватки денег; сейчас живёт как небольшое open-source сообщество.
- Пользователи хвалят «нулевое» обслуживание, но жалуются на устаревшие пакеты и отсутствие развития.
- Многие перешли на Docker Swarm, Cloudron, Yunohost, Proxmox+TurnKey, Umbrel и другие «self-hosted OS» с однокнопочными установками.
- Критика: экосистема приложений дрейфует, безопасность вызывает споры, а активных разработчиков почти не осталось.
- Сторонники всё ещё считают модель Sandstorm сильной и ждут возможного перезапуска/переписывания на Go.
The Framework Desktop is a beast 🔥 Горячее 💬 Длинная дискуссия
Framework Desktop — компактный 4,5-литровый ПК, который почти не шумит даже под полной нагрузкой. Внутри — мобильный AMD Ryzen AI Max 395+ (16 ядер Zen5, 5,1 ГГц), и он оказывается быстрее старого Ryzen 9 7950X в большом корпусе.
Корпус разукрашивается 21 сменной плиткой, можно печатать свои. Внешне — свежий минимализм вместо алюминия и RGB.
По производительности:
- Docker-тест HEY: почти вдвое быстрее Beelink SER8 и на 40 % опережает M4 Max.
- Geekbench 6 multi-core: на уровне M4 Max, заметно выше M4 Pro и Core i9-14900K.
- Одноядерка уступает Apple ≈20 %, но для многопоточных задач это лидер.
Цена выше, чем у Beelink, но пока это единственный безвентиляторный 395+ на рынке.
Комментарии (353)
- Framework Desktop с Ryzen AI Max+ 395 даёт 64–128 ГБ единой памяти, позволяя запускать крупные LLM без дискретной видеокарты и дешевле, чем Mac Studio, но дороже Mini.
- Производительность ниже CUDA-карт Nvidia и M4 Max, зато выше, чем у iGPU Intel и старых решений.
- Многие сомневаются в цене и форм-факторе: за те же деньги можно взять Minisforum, Beelink, HP Z2 Mini или собрать полноценный десктоп.
- Пока CUDA-стека нет, AMD-совместимость с популярными AI-фреймворками ограничена.
- Ремонтопригодность и модульность Framework оценили, но в десктоп-сегменте это не уникально.
I want everything local – Building my offline AI workspace 🔥 Горячее 💬 Длинная дискуссия
- Локальный стек: Ollama (LLM), assistant-ui (веб-интерфейс), Apple
container(изолированные ВМ), Playwright (браузер), coderunner (MCP-сервер с Jupyter). - Цель: чат, запуск кода и доступ в интернет без облаков и утечек данных.
- Проблемы:
– Модели Ollama пока не поддерживают вызовы инструментов.
– Создание нативного Mac-приложения провалилось:a0.devзаточен под iOS, Electron + NextJS оказались геморроем.
– Applecontainerчасто падает сTrap; помогаетpkill+ перезапуск. - Решения:
– Веб-версияassistant-uiчерезai-sdkс выпадающим списком моделей (локальных и облачных).
– Jupyter в изолированной ВМ, доступен по MCP:http://coderunner.local:8222/mcp.
– Конфиг для Claude Desktop:"coderunner": { "httpUrl": "http://coderunner.local:8222/mcp" }.
Комментарии (274)
- Участники восхищаются локальной, «песочной» архитектурой для приватного AI-воркспейса и инструментом
coderunner, но отмечают, что узкие места — это не только софт, но и «железо»: 80B-модели требуют ≥80 ГБ быстрой RAM, что доступно разве что на RTX 4090 или Strix Halo. - Критичным становится слой знаний: RAG над личными файлами требует вектор-БД, а значит — много диска и оперативки; Docker-обёртка или
docker compose up -dпросится как минимальный способ разворачивания. - Пока локальные модели — скорее «увлекательное хобби» (медленно, глючно, нужен тюнинг), чем рабочий инструмент; облачные API (Cerebras, Groq) дают 1000 ток/с, но подрывают приватность.
- Сообщество просит готовый «всё-в-одном» стек: веб-поиск, голосовой режим, image-gen, лёгкий switch «локально ↔ облако» без потери данных.
- Несколько участников делятся своими решениями: Kasm + Ollama, Open WebUI, MLX-электрон-приложение, Synology-NAS-контейнеры, браузерный LLM без установки.
Benchmark Framework Desktop Mainboard and 4-node cluster
-
Цель: создать единый фреймворк для тестов производительности Ollama на двух конфигурациях:
- настольная материнка (1×CPU, 1×GPU, 128 ГБ ОЗУ);
- кластер из 4 узлов (по 64 ГБ ОЗУ, 1×GPU, 10 GbE).
-
Методика
- Одинаковые образы Docker/Podman на обеих платформах.
- Набор моделей: llama3.1:8b, codellama:13b, mistral:7b, qwen2.5:32b.
- Метрики: t/s, TTFT, TPS, Watts, $/1k токенов.
- Повторять 3×, усреднять, выводить ±σ.
-
Автоматизация
- Ansible-playbook разворачивает Ollama, node-exporter, prometheus, grafana.
- Скрипт
run-suite.shпоследовательно запускает каждую модель с 512, 2 048, 4 096 токенов ввода/вывода. - Результаты пишутся в CSV и публикуются в PR как
results-<platform>-<date>.md.
-
Сравнение
- Построить графики «токен/с vs. Watts» и «$/1k токенов vs. модель».
- Выделить break-even точку, где кластер начинает выигрывать по стоимости при одновременной обработке ≥3 моделей.
Комментарии (57)
- AMD Framework Desktop (AI Max+ 395) показывает 2,5–3× прирост к RTX 4000 SFF Ada 20 ГБ, но уступает 9950X из-за низкого TDP.
- Для локального запуска LLM рекомендуют RTX 3090 (24 ГБ) как лучшее ценовое решение, либо Apple/AMD при необходимости >20 ГБ памяти.
- ROCm и Linux-стек работают стабильно, но потенциал iGPU/NPU ещё не раскрыт; тесты велись в llama.cpp.
- Для масштабирования предлагают distributed-llama, Exo и llama.cpp-RPC, а также Oculink/eGPU-конфигурации.
- Продукт выглядит нишевым: ML-инференс дома, но для «обычных» задач лучше Threadripper или сервер.