Linux-серверы под контролем и бэкенд в одном файле

Выпуск № 80 ·

Проекты на C

  1. cockpit

    Веб-интерфейс для управления серверами. Инструмент с открытым кодом позволяет легко управлять Linux-серверами через браузер: настраивать файрвол, пользоваться веб-терминалом, управлять контейнерами и просматривать системные журналы.

    cockpit

Проекты на C#

  1. Malware-Patch

    Утилита блокировки запросов администраторских прав от навязчивых программ в Windows. Лёгкий инструмент не требует фонового процесса и не позволяет выбранным программам запрашивать права администратора.

    Malware-Patch

Проекты на C++

  1. Magisk

    Инструмент для получения root-прав на Android. Позволяет быстро и без лишних сложностей получить права суперпользователя; поддерживает устройства с Android 5.0 и новее.

    Magisk
  2. osquery

    Инструмент для запросов к устройству как к базе данных. Он представляет операционную систему в виде базы, к которой можно обращаться с помощью SQL, чтобы проверять состояние системы: например, узнавать о запущенных процессах, сетевых подключениях, файлах и пользователях. Злоумышленники часто удаляют вредоносную программу после запуска, но osquery поможет найти процессы, у которых не осталось исходного файла.

    osquery> SELECT name, path, pid FROM processes WHERE on_disk = 0;
    name = Drop_Agent
    path = /Users/jim/bin/dropage
    pid = 561
    osquery

Проекты на CSS

  1. css-only-chat

    Сетевой чат только на CSS. Чат работает во фронтенде без JavaScript — для этого достаточно CSS. Секрет в фоновых изображениях, загружаемых псевдоклассами, и постоянно подгружающейся главной странице.

    .some-button:active {
      background-image: url('some_image.jpg')
    }
    css-only-chat

Проекты на Go

  1. cadvisor

    Инструмент Google с открытым кодом для мониторинга контейнеров. Он в реальном времени собирает данные о ресурсах, которые потребляют контейнеры: загрузке CPU, объёме памяти, сетевом трафике и других показателях. Веб-интерфейс помогает анализировать работу контейнеров и следить за ней. Поддерживаются почти все типы контейнеров, включая Docker.

    sudo docker run \
      --volume=/:/rootfs:ro \
      --volume=/var/run:/var/run:ro \
      --volume=/sys:/sys:ro \
      --volume=/var/lib/docker/:/var/lib/docker:ro \
      --volume=/dev/disk/:/dev/disk:ro \
      --publish=8080:8080 \
      --detach=true \
      --name=cadvisor \
      --privileged \
      --device=/dev/kmsg \
      gcr.io/cadvisor/cadvisor:$VERSION
    cadvisor
  2. dsq

    Консольная утилита для SQL-запросов к файлам данных. Позволяет запрашивать данные прямо из файлов, не загружая их в базу: выполнять нечёткий поиск, подсчёт и сортировку. Поддерживает JSON, CSV, Excel, Parquet, YAML и другие форматы. В сочетании с другими консольными утилитами, например jq, открывает ещё больше возможностей.

    $ dsq testdata/userdata.parquet 'select count(*) from {}' | jq
    [
      {
        "count(*)": 1000
      }
    ]
  3. json-to-go

    Конвертер JSON в типы Go. Этот онлайн-инструмент на JavaScript сразу преобразует введённый JSON в соответствующие объявления типов.

    json-to-go
  4. pocketbase

    Бэкенд с открытым кодом в одном файле. Упаковывает SQLite, API, авторизацию и административную панель — всё серверное — в готовый к запуску исполняемый файл. Даже без опыта бэкенд-разработки можно быстро создавать API-сервисы через пользовательский интерфейс.

    pocketbase
  5. supervisord

    Переписанная на Go реализация supervisord. Исходный supervisord — популярный среди разработчиков инструмент управления процессами, часто используемый в проектах на Python. Вне Python-среды с ним не так удобно, поэтому автор переписал его на Go: после компиляции программу легко запускать в разных окружениях.

    $ cat supervisor.conf
    [program:test]
    command = /your/program args
    $ supervisord -c supervisor.conf
    supervisord

Проекты на Java

  1. Aegis

    Бесплатное, безопасное Android-приложение для двухфакторной аутентификации (2FA) с открытым кодом. Для подтверждения личности используют два разных фактора: например, пароль и одноразовый код. Такой код можно получать по SMS или генерировать в приложении с помощью алгоритма TOTP. Aegis поддерживает HOTP и TOTP: сначала нужно связать аккаунт с телефоном, после чего приложение будет регулярно обновлять случайный код, который вводят при запросе второго фактора.

    Aegis
  2. jenkins

    Открытый инструмент непрерывной интеграции на Java. Jenkins автоматизирует рабочие процессы разработки и предлагает простой процесс установки, удобный интерфейс и возможность расширения. Благодаря поддержке распределённой работы его используют для оптимизации разработки и автоматизации самых разных задач.

    1. 下载 jar 包
    2. 运行:java -jar jenkins.war --httpPort=8080
    3. 打开浏览器访问:http://localhost:8080
    4. 根据提示完成安装
    jenkins
  3. wvp-GB28181-pro

    Сетевая видеоплатформа, готовая к работе сразу после установки. Реализована по стандарту GB28181, подключает камеры, платформы и NVR. Поддерживает просмотр видео, управление поворотом, наклоном и масштабированием камеры, поиск и воспроизведение записей, а также автоматическое отключение потока, когда его никто не смотрит.

    wvp-GB28181-pro

Проекты на JavaScript

  1. cypress

    Инструмент нового поколения для тестирования фронтенда на JavaScript. Cypress автоматизирует сквозные тесты в браузере: приложение проверяют с позиции пользователя, воспроизводя реальные сценарии. Это уже один из основных инструментов такого рода; он быстро работает, прост в освоении и позволяет наблюдать за тестами в графическом интерфейсе, а также сохранять результаты в виде снимков экрана и видео.

    cypress
  2. Dashboard

    Полностью настраиваемая стартовая страница браузера. Страница на Vite, Vue 3 и TypeScript предлагает несколько лаконичных тем и позволяет добавлять компоненты на свой вкус. В режиме редактирования их можно перетаскивать, менять размер и положение; пользоваться страницей можно как расширением или через веб-сайт.

    Dashboard
  3. Rocket.Chat

    Гибкая open-source-платформа для корпоративного общения. Её можно разместить на своём сервере как альтернативу Slack. Есть каналы, команды и другие форматы групповых обсуждений; в сообщениях можно отправлять изображения, файлы, видео и аудио. Клиенты доступны для Windows, Linux, macOS, Android и iOS.

    Rocket.Chat
  4. slidev

    Инструмент для создания и показа презентаций, разработанный для программистов. Веб-приложение позволяет собирать слайды из обычного текста с помощью Markdown, экспортировать их в PDF или PNG либо показывать как одностраничную презентацию. Готовые темы помогают получить аккуратный результат даже тем, кому сложно делать презентации.

    slidev
  5. the-super-tiny-compiler

    Возможно, один из самых маленьких компиляторов. Мини-компилятор написан примерно на 1000 строках JavaScript, причём больше половины занимают комментарии: непосредственно кода около 200 строк. При этом он реализует основные функции компилятора и подходит для знакомства с принципами его работы.

    the-super-tiny-compiler

Проекты на PHP

  1. YOURLS

    Бесплатный сервис коротких ссылок. Написанный на PHP и полностью открытый по исходному коду, он позволяет развернуть сервис на своём сервере и предлагает статистику, данные о географии переходов и визуализацию.

    YOURLS

Проекты на Python

  1. calibre

    Мощный инструмент для управления электронными книгами. Он объединяет скачивание, создание, конвертацию и систематизацию книг. Например, можно преобразовать TXT в MOBI, добавить сведения об авторе и обложку, а затем отправить готовую книгу прямо на Kindle.

    calibre
  2. changedetection.io

    Сервис для отслеживания изменений на сайтах и отправки уведомлений. Веб-приложение на Flask и Selenium сообщает об изменениях на выбранных страницах: можно следить за снижением цен, вакансиями, выходом новых версий и свежими публикациями. Поддерживает установку через Docker.

    changedetection.io
  3. Macast

    Лёгкий приёмник трансляций. Позволяет компьютеру принимать с телефона видео, изображения и музыку. Поддерживает популярные мобильные приложения для видео и музыки, а также другие программы, совместимые с DLNA. Ненавязчиво работает в системном трее или строке меню. Доступен для Windows, macOS и Linux.

    Macast
  4. reloadium

    Инструмент для горячей перезагрузки Python-кода и отладки. Позволяет смотреть на работу изменённой версии программы без её перезапуска и измерять время выполнения каждой строки. Ускоряет отладку; автор рекомендует использовать его в PyCharm и VS Code.

    reloadium
  5. rocketry

    Удобная библиотека планирования задач для Python. Позволяет задавать расписание с помощью декораторов Python. Библиотека проста, элегантна и эффективна; поддерживает запуск по расписанию, параллельное выполнение (асинхронно, в потоках и процессах) и запуск по условиям.

    from rocketry import Rocketry
    from rocketry.conds import daily
    
    app = Rocketry()
    
    @app.task(daily)
    def do_daily():
        ...
    
    @app.task(daily & file_exists("data.csv"))
    def do_things():
        ...
    
    if __name__ == '__main__':
        app.run()

Проекты на Rust

  1. difftastic

    Консольная утилита для сравнения файлов. Сопоставляет исходный код с учётом его синтаксической структуры и поддерживает более 30 языков программирования.

    difftastic
  2. sniffnet

    Простое, надёжное и стильное приложение для мониторинга сетевого трафика. Оно позволяет сразу оценить сетевую активность устройства.

    sniffnet
  3. websocat

    Консольный клиент WebSockets. Одной командой можно подключиться к серверу WebSockets или запустить такой сервер. Работает в Windows, macOS и Linux.

    A$ websocat -s 1234
    Listening on ws://127.0.0.1:1234/
    ABC
    123
    
    B$ websocat ws://127.0.0.1:1234/
    ABC
    123

Проекты на Swift

  1. CotEditor

    Лёгкий редактор простого текста для macOS. Бесплатное приложение с аккуратным интерфейсом быстро запускается и удобно в работе.

    CotEditor

Искусственный интеллект

  1. AiLearning-Theory-Applying

    Практическое введение в теорию и применение ИИ. Курс охватывает необходимую для изучения ИИ математику, небольшие проекты по машинному обучению, основы глубокого обучения, практическую работу с фреймворком обработки естественного языка BERT и множество наборов данных.

  2. vmaf

    Алгоритм Netflix с открытым кодом для оценки качества видео. Он объединяет модель человеческого зрения и машинное обучение, чтобы оценивать качество изображения и улучшать впечатления зрителей.

    vmaf

Прочее

  1. fonteditor

    Онлайн-редактор шрифтов. Позволяет редактировать, конвертировать и предварительно просматривать файлы шрифтов в разных форматах.

    fonteditor
  2. free-for-dev

    Список бесплатных сервисов для разработчиков. Бесплатных решений становится всё больше, но найти их непросто; проект собирает сервисы и продукты из категорий SaaS, PaaS, IaaS и других.

  3. GameShell

    Игра для изучения команд Shell. Текстовая игра помогает новичкам освоить основные команды оболочки.

    GameShell
  4. hackingtool

    Набор инструментов для хакинга. В коллекции собраны средства для подбора паролей, SQL-инъекций, фишинга, XSS, DDoS-атак и других задач.

    hackingtool
  5. platformio-core

    Профессиональная среда для разработки встраиваемых систем. В этой области часто мешают привязка к IDE производителя оборудования и сложная настройка. PlatformIO IDE помогает от них избавиться: поддерживает более 40 платформ, включая Arduino, Raspberry Pi и ESP32, а также свыше 20 фреймворков. В ней есть отладчик, автодополнение кода, модульные тесты и работа с последовательным портом; плагины доступны для VS Code, Vim и других редакторов. Разработчик сам выбирает удобные инструменты.

    platformio-core
  6. sms_forwarding

    Недорогой ретранслятор SMS. По этому проекту можно всего за 50 юаней собрать устройство для пересылки SMS и получать коды подтверждения без телефона.

    sms_forwarding

Открытые книги

  1. Book3_Elements-of-Mathematics

    «Элементы математики» (Shuxue Yaosu): от арифметики к машинному обучению. Научно-популярная книга с цветными иллюстрациями объясняет материал с помощью схем, математики и программирования.

    Book3_Elements-of-Mathematics
  2. parsing-techniques

    «Техники синтаксического анализа» (Parsing Techniques). Классическая книга о фронтендах компиляторов.

  3. py4e

    «Python для всех» (Python for Everybody). Книга подойдёт даже тем, кто раньше не программировал: достаточно интересоваться этой темой, чтобы освоить Python и открыть для себя мир программирования.

    py4e