Метка: Docker

Кросс-компиляция проекта в Docker используя Buildx на примере сборки shadowsocks-rust и библиотеки Libgpiod

Кросс-компиляция позволяет получать исполняемый код для платформы, отличной от той, на которой запускается этот процесс. В данном случае рассмотрим кросс-компиляцию в Linux клиента shadowsocks-rust в исполнение службы Windows, соответственно для платформы Windows. Процесс сборки выполним в Docker контейнере. Инструмент Buildx позволяет задавать формат получения результата сборки контейнера, это либо контейнер, либо какие-то файлы полученные путем сборки контейнера. В текущем варианте это будут исполняемые бинарные файлы для конечных аппаратных платформ и операционных систем. Сборку библиотеки Libgpiod выполним с использованием QEMU для аппаратных платформ, таких как x86, ARM и RISC-V.

Читать далее »

Создание виртуального VPN-маршрутизатора c SoftEther VPN и Shadowsocks-туннелированием [обновлено 12.01.2024]

В предыдущей публикации было рассмотрено подключение клиента к корпоративной сети VPN. Для корпоративного офиса рациональнее развертывать VPN-маршрутизатор. VPN-маршрутизатор позволяет прозрачно подключать сотрудников к корпоративной сети. Маршрутизатор может быть реализован в виде программного решения как виртуальная машина VMware так и нативно на одноплатном компьютере. В публикации рассматривается развертывание SoftEther VPN сервера в качестве VPN-маршрутизатора для локальной сети офиса. Для упрощения развертывания не рассматривается вариант разделения адресного пространства серверов и узлов сети Интернет, т.е. весь исходящий сетевой трафик из корпоративного офиса, в том числе и в сеть Интернет, маршрутизируется через VPN-сервер.

Читать далее »

Создание корпоративной сети VPN на базе решений SoftEther VPN/WireGuard с Shadowsocks-туннелированием [обновлено 15.02.2024]

Корпоративный VPN обеспечивает защиту сетевого трафика, как от конкурентов, так и от организаций использующие системы DPI. Сетевой трафик в сети Интернет проходит через различные системы DPI которые распознают пакеты идущие от WireGuard/SoftEther VPN. Фильтры DPI либо полностью блокируют VPN трафик, либо существенно ограничивают скорость. Многие компании предпочитают решать подобную задачу не организационным, а техническим путем. Поэтому сетевой трафик приходиться дополнительно «оборачивать» в туннель, например, используя Shadowsocks. В руководстве подробно рассматривается пошаговое развертывание SoftEther VPN/WireGuard сервера и Shadowsocks туннеля на корпоративном VPS сервере на базе Docker-контейнеров. Платформы клиентов: Windows, Ubuntu, Android.

Читать далее »

Создание WireGuard VPN маршрутизатора для домашней локальной сети [обновлено 12.01.2024]

WireGuard VPN стремительно набирает популярность среди VPN решений. Обеспеченна поддержка многих аппаратных архитектур, в том числе и ARM. По сравнению с другими VPN серверами, WireGuard легко и просто настраивается. В посте рассматривается разворачивание WireGuard VPN сервера в качестве VPN-маршрутизатора для домашней локальной сети с целью доступа к сетевой инфраструктуре размещенной в облаке. Для упрощения, вариант разделения адресного пространства серверов и узлов сети Интернет не будет рассматриваться, т.е. весь исходящий сетевой трафик с домашних устройств, в том числе и в сеть Интернет, будет маршрутизироваться через VPN-сервер.

Читать далее »

Программирование на Python и установка Docker для Sipeed Lichee RV RISC-V

В первой части познакомились с процессором Allwinner D1 на RISC-V архитектуре, рассмотрели возможности, поработали с одноплатным компьютером Sipeed Lichee RV. Старый образ операционной системы содержал многие недоработки, которые не позволяли полностью оценить работу одноплатника. В продолжение рассмотрения Lichee RV, возьмем новый образ Ubuntu, построенный на последнем ядре Linux 5.19, окончательный выпуск которого ожидается в конце июля 2022 года. Поработаем с GPIO из Python`а и установим Docker. Теперь полноценно протестируем новый образ, проверим на что способна плата и начнем уже программировать на Python.

Читать далее »

Простая разработка IoT приложений на C# для Raspberry Pi и других одноплатников, на Linux

Многие привыкли легко и просто программировать микроконтроллеры на платформе Arduino или nanoFramework (используется C#). Но как обстоит с разработкой IoT приложений на C# .NET для одноплатных компьютеров под Linux? В ответ услышите что нужно все устанавливать из командной строки, да и еще хорошо разбираться в Linux, там не так просто как с Arduino. Для настройки удаленной отладки необходимо выполнить множество различных действий, вручную настроить конфигурацию запуска, генерировать ключи доступа для пользователя, от имени которого будет запускать отладка, и т. д. Но теперь, благодаря расширению .NET FastIoT для Visual Studio Code, это не требуется делать. Черновую работу по установке необходимых пакетов и конфигурированию проекта для удаленной отладки сделает за вас расширение. Теперь вы можете полностью сфокусироваться на своем коде, не отвлекаясь на лишние задачи.

Читать далее »

Метеостанция на Banana Pi M64 (Linux, C#, Docker, RabbitMQ, AvaloniaUI)

Статей о создании метеостанции на базе Arduino не счесть. Можно сказать, если статья про метеостанцию, то это про микроконтроллеры Arduino, ESP32 или STM32. Но только не в этот раз. Будем запускать метеостанцию на Banana Pi BPI-M64 под Linux, без использования Arduino-подобных оберток в виде WiringPi, на C# .NET5. Пример метеостанции является демонстрацией встраиваемого решения работы с GPIO, датчиками и вывода пользовательского интерфейса напрямую на LCD. В решении используется: Linux (Armbian) — основная ОС, .NET и C# — платформа для создания прикладного ПО, AvaloniaUI — графической интерфейс с интерактивными графиками и анимацией, Docker — инструмент для развертывания, управления, доставки приложений, RabbitMQ — брокер сообщений для передачи сообщений между контейнерами. Благодаря использованию универсального подхода и технологии Docker, приложение можно запустить не только на Banana Pi BPI-M64, но и на других Banana/Orange/Rock/Nano Pi одноплатных компьютерах, включая Raspberry Pi.

Читать далее »