Сообщения

Python docker как настроить SSL

Обычно для крупных проектов я использую nginx, либо полноценные CDN сервисы вроде CloudFlare которые дают https из коробки. Но в моём случае мне требовалось развернуть на дешевом впс сервере всю инфраструктуру, и чтобы был https. Мне нехотелось разбиратся в тонкостях настройки nginx и копатся в каких-то конфигах. В итоге я нашел решение - Caddy . Все что нужно для настройки - DNS A запись, и внешний айпи. Чтобы добавить Caddy к себе в docker-compose, я создал отдельный файл docker-compose.prod.yml: version : '3' services :   caddy :     image : caddy     ports :       - 80:80       - 443:443     volumes :       - ./Caddyfile:/etc/caddy/Caddyfile       - caddy_data:/data       - caddy_config:/config volumes :   caddy_data :   caddy_config : Также создал Caddyfile в корне проекта: bbak.mkhitaryan.pw {   reverse_proxy web:8000 } Все что нужно для настройки - поменяйте домен в директиве с bbak.mkhitaryan.pw на собственный. И всё! Когда сделаете  docker-compose up -f docker-compose.

Namecheap redirect does not work with https

Изображение
I have tried using Namecheap's redirect functionality from my main domain mkhitaryan.pw to my cv. But I quickly run into an issue that Namecheap only allows HTTP requests! When it receives an HTTPS request, it just hangs the connection until timeout: Namecheap redirect only works on port 80! As you can see, the 443 port just hangs the connection, but the 80 port redirect works well! The solution that I found is to use Netlify  instead of Namecheap's redirect. Netlify works very well with HTTPS and allows you to make redirection happen on an HTML page. Netlify also gives you 100GB of free traffic! Good luck spending it with a blank HTML redirect page, that is a few kilobytes large. There are many guides over the WEB on how to connect your Namecheap domain to Netlify. I only provide the HTML page that I used for redirection: <!DOCTYPE html> < html > < head > < meta http-equiv = "refresh" content = "0; url='https://cv.mkhitaryan.p

Installing lightweight proxy server on raspberry pi

Introduction As I live in Armenia, I have a lot of friends across the CIS region who live under internet oppression regimes. For an example the Russians cannot access Instagram, Twitter without a vpn, and many other resources. That makes it very important to them to use proxy/vpn to bypass the DPI, which government regimes use for censorship. Here in Armenia we have clean internet with no censorship, so if I setup a proxy for my friends they can use it to access the free on censorship internet. In most of the guides I found on the internet they are using privoxy, which is insecure  because it has no authentication system built-in, and if left as it is, your proxy IP address will be used by port scanners for various bad stuff like spamming. Such behavior risks your ip address getting marked as spam, or getting used by hackers to make you a suspect of cybercrime. That is why I found a better solution for creating a proxy server called 3proxy . It is pretty lightweight, and has almost no

Shadowsocks готовим домашний vpn на расберипай 2022

Изображение
У нас в Армении очень чистый интернет. Насколько я знаю, понятия блокировка сайтов у нас в стране не существует, в отличии от большанства других стран СНГ. Поэтому я решил создать себе VPN сервер и дать его своим друзьям, чтобы они могли свободно пользоватся интернетом. Есть много разных сервисов для поднятия vpn сервиса, openvpn, wireguard итд, но мне кажется что они в большинстве своём имеют слишком широкий функционал чтобы запускать на встроеных устройствах. Если цель это просто обход блокировок, и шифрация промежуточного трафика то по моему shadowsocks самый лучший вариант. Самый простой способ поставить шадоусокс на малину это использовать apt-get. Но в нём последний билд shadowsocks был в 2018 году. Поэтому лучше установить самому с гитхаба  https://github.com/shadowsocks/shadowsocks-rust/ . Кроме того, shadowsocks с тех пор переписывали с питона на си, а теперь и вовсе поддерживается только версия на rust. Чтобы скачать нужно просто скачать tar архив с релизов билдов и распакова

Errors when installing aiortc from git on Windows

Изображение
When I was trying to install aiortc on windows I got stuck with multiple errors. When you just do pip install . you will not get a working version: c1083: cannot open include file: 'opus/opus.h': no such file or directory 'vcpkg' is not recognized as an internal or external command To fix those errors you need to install the native libraries by the script provided by  aiortc-codecs . Also you will need build tools etc. If you have no build tools installed you can install them . Run the visual studio installer and opt those packages: You also need to install  vcpkg . Download from git: git clone https://github.com/Microsoft/vcpkg.git , run the install script: .\vcpkg\bootstrap-vcpkg.bat and add it to path by using "Edit environment variables" Double tab on Path and add vcpkg folder to the list, it should have vcpkg.exe file in it: Reboot your pc, or reopen the cmd so it has Path updated. Now we need to use the dependency installer script from  https://github

Почему часто используют шестнадцатеричное представление для бинарных данных

Я раньше непонимал почему его вообще используют и зачем оно нужно. На самом деле это самый удобный способ представления бинарных данных человеку. Поскольку бинарная куча неразборчива для человека. Для него все эти единицы и нули сливаются в одну непонятную кучу. Поэтому использование hex для визуальной инспекции бинарной последовательности более удобно. Как мы все знаем 1 байт это 8 бит. 1 бит это 2 возможных значения (1 и 0). Получается 8 позиций по 2 размещения. То есть в 1 байте есть 2^8 (256) возможных состояния. Hex имеет 16 состояний 0-9 и A-F. 0--9 стостояний получается 10, и A-F (ABCDEF (6 стостяний)). И так удобно получилось что если вы расставите 2 hex символа то получится 16*16=256 комбинаций.

Пропускаем звук с микрофона android в Ubuntu

Изображение
Покопавшись в интернете я нашел много разных туториалов которые показывают методы пропуска звука через mumble сервер и клиент мамбла на телефоне, пропориетарнаый софт WO Mic , и много других. Все эти варианты требуют установки слишком много дополнительных пакетов, либо пропориетарны и написаны непонятно кем. Вдруг в WO Mic есть ратник, как то это все небезопасно. В репозитории варианта с mumble сервер я нашел  https://github.com/MatthiasCoppens/pulseaudio-virtualmic . Этот вариант не требует установки никаких дополнительных или пропориетарных пакетов на ПК. Он может пропускать звук из внешнего источника (например http сервера стримещего mp3). Используя этот скрипт + приложения LANmic  у меня получилось стримить микрофон с телефона на ПК. В настройках звука убунты мне просто потребовалось выбрать как вход этот unix сокет. В остальных вариантах звук всегда доходил с задержкой, но используя этот скрипт задержка минимальна и даже не чувствуется. Хотя если открыть стрим например LANmic нап