Ив Монтан, "Солнцем полна голова". Моменты жизни. /16
Докеры – силачи, таскающие грузы. Эти люди должны повиноваться толстым курильщикам сигар. Вот разгружаются тюки шерсти, принадлежащей такому курильщику. Это нужно сделать немедленно, я теряю миллионы – вы слышите: миллионы! – если они не разгрузят судно вовремя. Им за это платят, на то они и докеры, на то им и даны мускулы…
Суждено ли мне стать докером и вечно бегать с грузом за плечами или я когда-нибудь превращусь в важного курильщика сигар – я никогда не забуду муравьиный труд докеров, их изумительное единство, их силу, про которую они знают сами и которую можно употребить не только на разгрузку шерсти и угля, цемента и леса, но которая может вырвать сигару из зубов фабриканта и, разбушевавшись, вызвать яростную бурю…
…Мешки остаются у нас на плечах, но это наши мешки, наша общая собственность, и наша работа обретает свой истинный смысл – наша работа, наши усилия не идут в бумажник толстяка, наш труд остаётся с нами, он кружится и танцует на пристанях, не сковывает нас цепями, а связывает друг с другом словно цветочными гирляндами…
Добавим HTTPS (SSL) в Home Assistant - установим Let's Encrypt и Duck DNS в Docker, настроим веб-сервер Nginx
Привет Пикабу!
В этом посте расскажу как добавить HTTPS (SSL) в Home Assistant.
А для этого установим Let's Encrypt и Duck DNS в Docker, настроим веб-сервер Nginx.
Здесь была "подготовительная часть" - "Установка Docker, Docker Compose и Portainer"
Вы это легко можете сделать с помощью аддонов, если у вас версия Home Assistant Supervised или Home Assistant OS:
Мы же рассмотрим универсальную инструкцию (не зависящую от версии Home Assistant) с установкой Let's Encrypt Duck DNS и Nginx в в Docker, которая одинаково подходит для обоих вариантов, рассмотренных мной ранее: - Home Assistant Supervised и Home Assistant Core.
Рассматриваемый вариант вполне подходит для Ubuntu 20.04 / Debian 10 / Kali Linux ... (Сервер, Десктоп, VPS Oracle ...)
Первым делом создадим домен на duckdns.org - привяжем IP адрес реальной или виртуальной машины, где расположен наш Home Assistant к имени DNS вида вашдомен.duckdns.org
DNS (Domain Name System) - система доменных имен, смысл которой в том, что каждому цифровому IP-адресу присваивается понятное буквенное имя (домен). Когда вы вводите в браузере доменное имя, сервера DNS преобразуют его в IP-адрес. Например, вашдомен.duckdns.org будет соответствовать IP-адресу вашего сервера.
Далее будем использовать docker-compose для создания и запуска своих образов и контейнеров, а именно Let's Encrypt и Duck DNS. Вот содержание docker-compose.yml для этого:
version: '3.3'
services:
duckdns:
image: ghcr.io/linuxserver/duckdns
container_name: duckdns
environment:
- PUID=1000 #optional
- PGID=1000 #optional
- TZ=Europe/Samara
- SUBDOMAINS=вашдомен.duckdns.org
- TOKEN=89eJKhnby678nknt6NGHfghffe823
- LOG_FILE=false #optional
volumes:
- ./config:/config #optional
restart: unless-stopped
letsencrypt:ВАЖНО СОБЛЮДАТЬ ТАБУЛЯЦИЮ (ОТСТУПЫ)!!! При копировании текста в ваш docker-compose.yml с Пикабу отступов не будет - поставьте по 2 и 4 пробела в файле вручную (как на фото ниже).
image: linuxserver/swag
container_name: letsencrypt
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Samara
- URL=вашдомен.duckdns.org
- VALIDATION=http
- EMAIL=mail@mail.ru #optional
- EXTRA_DOMAINS=вашдомен.duckdns.org
volumes:
- ./config:/config
ports:
- 443:443
- 80:80 #optional
restart: unless-stopped
TOKEN, DOMAIN (duckdns) .... - выделенные жирным, укажите естественно свои!
Итак, создаём файл docker-compose.yml в удобном для вас месте и удобным для вас способом. Я покажу пример для Ubuntu 20.04 на VPS Oracle, где у меня стоит тестовая Home Аssistant Supervised (конечно же это полная аналогия и для других вариантов).
Создам его по пути /home/ubuntu
# echo "version: '3.3'
services:" >/home/ubuntu/docker-compose.yml
Вы можете командой echo сразу отправить весь текст (содержание файла выше), либо открыть файл после создания командой nano, вставить содержимое:
# sudo nano /home/ubuntu/docker-compose.yml
Сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.
Либо, всё то же самое можно сделать через WinSCP
Для создания и редактирования таких файлов рекомендую использовать Notepad++ вместо "блокнота":
После создания и сохранения файла, переходим в терминале в папку, где у нас лежит docker-compose.yml командой # cd (в Ubuntu 20.04 на VPS Oracle мы по умолчанию находимся в ней) и запускаем контейнеры:
# docker-compose up -d
Если будет ошибка: "docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))", то возможно вы просто забыли добавить "своего пользователя" в группу докеров на этом этапе.
# sudo usermod -aG docker $USER
# newgrp docker
Если вы ставили Ubuntu 20.04 на бесплатный VPS сервер от Oracle, то необходимо открыть порт 80 и 443 в Oracle. Как это сделать написано в конце этого поста.
Для "домашней" Ubuntu или Debian на сервере или десктопе тоже нужно открыть порты 80 и 443 для Let's Encrypt, пробросив их на вашу машину в роутере (см. инструкцию к нему)
Проверяем в Portainer, что контейнеры Let's Encrypt и Duck DNS успешно запустились:
Осталось настроить Nginx.
Сейчас ваш Home Assistant всё ещё открывается по адресу HTTP://вашдомен.duckdns.org:8123 нам же нужен HTTPS (HTTPS://вашдомен.duckdns.org) :-)))
Открываем (для редактирования, удобным вам способом) файл с настройками Nginx - default.
(В папке, где у вас был файл docker-compose.yml - появилась папка config)
В моём примере файл default расположен по пути /home/ubuntu/config/nginx/site-confs
# sudo nano /home/ubuntu/config/nginx/site-confs/default
ALT+T - очищаем всё его содержимое файла default, и вставляем следующее:
server {Сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.
listen 443 ssl;
listen [::]:443 ssl;
server_name вашдомен.duckdns.org;
include /config/nginx/ssl.conf;
client_max_body_size 0;
location / {
proxy_pass http://10.0.0.42:8123;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /api/websocket {
proxy_pass http://10.0.0.42:8123/api/websocket;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
СОБЛЮДАЕМ ТАБУЛЯЦИЮ (ОТСТУПЫ)! При копировании в ваш файл default с Пикабу их не будет - поставьте пробелы в файле вручную (как на фото ниже).
вашдомен.duckdns.org и http://10.0.0.2:8123 .... - выделенные жирным, укажите естественно свои!
В строке proxy_pass - указываете локальный адрес вашей машины или в случае с VPS Oracle - "Private IP Address":
Заходим в Portainer и перезапускаем контейнер letsencrypt:
Теперь заходим по адресу HTTPS://yourdomain.duckdns.org и входим в Home Assistant со своими учётными данными:
В С Ё!!! Цель достигнута ;-)
Теперь вы имеете не только удалённый доступ к своему Home Assistant через "шифрованные транспортные механизмы SSL", но и можете настроить, например управление колонками с Алисой из Home Assistant... и/или добавить ваши умные устройства из Home Assistant в умный дом Яндекса и управлять ими с любого устройства с Алисой, в том числе с колонок....
Всем пока и "Бобра"! ;-)
Установка (Удаление) Docker, Docker Compose и Portainer на Ubuntu 20.04 / Debian 10 / Kali Linux ... (Сервер, Десктоп, VPS Oracle ...)
Привет Пикабу!
Это подготовительная часть к следующему посту, в котором мы сделаем HTTPS доступ к Home Assistant Supervised или Home Assistant Core, который так же пригодится нам в дальнейшем для управления колонками с Алисой из Home Assistant... и/или позволит добавить ваши умные устройства из Home Assistant в умный дом Яндекса и управлять ими с любого устройства с Алисой, в том числе с колонок.
Вместо предисловия или disclaimer )))
Продолжаю наполнять свой аккаунт на Пикабу полезной информацией по тематике Умный дом. Обращаю Ваше внимание, что это будут не всегда полноценные и пошаговые инструкции и туториалы, а скорее выдержки типа "шпаргалок", на случай посмотреть, если что-то забыл. Ну как бы я буду писать здесь "шпаргалки" и "запоминалки" для себя и на будущее, а Вы можете ими пользоваться или нет, как в старые добрые институтские времена.... ))) Поэтому любой мой пост не претендует на правильность высказанного в нём моего мнения и истину моих умозаключений в конечной инстанции, я просто делюсь своим скромным опытом. Всё что Вы будете делать и повторять по моим постам, Вы делаете на свой страх и риск ;-)
Всё будем делать в командной строке.
Для этого, например, подключаемся через PuTTy по SSH к своей реальной или виртуальной машине.
Подготовим систему.
1) Для получения списка новых пактов, выполните:
# sudo apt-get update
2) Для выполнения обновления пакетов, выполните:
# sudo apt-get upgrade -y
3) Удаляем возможно оставшиеся зависимости пакетов:
# sudo apt autoremove -y
4) Устанавливаем необходимые нам пакеты и зависимости:
# sudo apt-get install -y python3-pip python-dev libffi-dev libssl-dev gcc libc-dev make curl openssl-dev rust cargo make
Docker - программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации (Контейнеры - это стандартизированная единица программного обеспечения, которая позволяет разработчикам изолировать свое приложение от его среды)
В Ubuntu 20.04 Docker (docker-ce) можно установить простым скриптом, введя в терминал всего одну команду, как мы это уже делали в этом посте:
# curl -fsSL get.docker.com | sudo sh
В Ubuntu/ Debian / Kali Linux в официальных репозиториях есть версия Docker - docker.io
Для её установки нужно будет ввести следующие команды:
# sudo apt install -y docker.io
# sudo systemctl enable docker --now
Если вы хотите добавить себя в группу Docker, чтобы использовать Docker без sudo:
# sudo usermod -aG docker $USER
Не имеет особого значения, какую версию Docker (docker-ce или docker.io) вы установите. Подробнее об этом у меня есть в середине этого поста.
Определить, какой установленный у вас пакет Docker:
# dpkg -l | grep -i docker
Команды для полного удаления Docker.
# sudo apt-get purge -y docker-engine docker docker.io docker-ce
# sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce
Приведенные выше команды не будут удалять образы, контейнеры, тома или созданные пользователем файлы конфигурации на вашем хосте. Если вы хотите удалить все изображения, контейнеры и тома, выполните следующие команды:
# sudo rm -rf /var/lib/docker /etc/docker
# sudo rm /etc/apparmor.d/docker
# sudo groupdel docker
# sudo rm -rf /var/run/docker.sock
Вы полностью удалили Docker из системы.
Docker Compose - инструмент для создания и запуска многоконтейнерных Docker приложений. В Compose, вы используете специальный файл для конфигурирования ваших сервисов приложения. Затем, используется простая команда, для создания и запуска всех сервисов из конфигурационного файла.
Установим (скачаем) docker-compose и сделаем его исполняемым:
Чтобы установить другую версию Compose, замените 1.28.2 версией Compose, которую вы хотите использовать.
# sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/d... -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# sudo chmod +x /usr/local/bin/docker-compose
И проверим версию:
# docker-compose --version
Чтобы удалить Docker Compose (если вы установили с помощью curl):
# sudo rm /usr/local/bin/docker-compose
Portainer - это универсальный инструмент управления контейнерами Docker и позволяет разворачивать контейнеры и управлять ими без написания кода.
Развертывание сервера Portainer(Portainer CE):
# sudo docker volume create portainer_data
# sudo docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
Эта команда настраивает автоматический запуск Portainer после перезагрузки, а также постоянное хранилище, чтобы ваши настройки не потерялись при удалении и повторном разворачивании контейнера. Чтобы убедится, что Portainer запущен выполните такую команду:
# sudo docker ps
Подробнее про Portainer - здесь.
Если вы ставили Ubuntu 20.04 на бесплатный VPS сервер от Oracle, то необходимо открыть порт 9000. Для этого открываем ссылку в письме, которая пришла после регистрации в Oracle, вводим логин и пароль и попадаем в свою учетку, где следуем по пути: Сети - Виртуальные облачные сети - vcn- (ВАШ) - Сведения о списках безопасности. Альтернативный способ попасть туда из главного окна: "Настроить сеть с помощью мастера", "Запуск мастера VNC" нужно нажать "отмена", кликаем на свой "VNC-номер", далее в "ресурсах" нажимаем на "Списки безопасности" и кликаем на "Default Security List for vcn-номер" где добавляем правила для входящего трафика:
На всякий случай можно ещё настроить (открыть порт) для файрволла IPTABLES (мне не потребовалось):
# sudo iptables --policy INPUT ACCEPT
# sudo iptables -F
# sudo iptables -A INPUT -p tcp --dport 9000 -m state --state NEW -j ACCEPT
# sudo netfilter-persistent save
# sudo ufw disable
Portainer будет доступен по адресу ipaddress:9000 (ip-address вашей виртуальной машины) в браузере, где должна открыться такая страничка. Вводим свои данные (регистрируемся).
Вот пример контейнеров Home Аssistant Supervised установленной ранее на Ubuntu 20.04 на бесплатном VPS сервере от Oracle по инструкции с этого поста.
Здесь их легко можно перезапустить, остановить или даже "Remove" / "Kill".... )))
На этом, по теме поста, у меня В С Ё ;-)
Всем "Бобра" ;-)
В тему событий во Владивостокском торговом порту ВМТП
Думаю уже многие знают про сабж.
Но все же Все совпадения случайны.)))
Я не автор.
Эта тема конечно гуглится, но если кратко то.. Порт входит в группу Fesco которая по основным и открытым данным в свое время попросила порт взять очень большой миллионный займ в долларах. Порт взял. А теперь когда гендиректор порта, который много лет поднимал порт и сделал из него конфетку с отличными зп и социалкой, но вот попросил вернуть должок, что совет директоров группы решил просто его снять и назначить своего человечка. Работники при поддержке профсоюза устроили бунт. Вот по итогу прилетел президент группы Аркадий Коростелев и новый Директор Роман К.. усмирить и поставить всех на место.))) в итоге получили касками. Ну это официальная версия которая не опровергается и поддерживается местными СМИ. Но уверен там есть еще причины. Большие деньги на кону.
Каскозакидательство
Пятый день бастуют работники владивостокского морского торгового порта. Напомним, 1-го октября докеры вышли на акцию протеста из-за внезапного увольнения генерального директора Заирбека Юсупова, которое предприняла компания FESCO, учредитель ВМТП.
Накануне Аркадий Коростелёв, президент транспортной группы FESCO, направил в прокуратуру жалобу на коллектив порта с требованием разобраться, какое портовикам дело до смены директора и не является ли поведение профсоюзных лидеров порта уголовным преступлением. Сегодня Коростелёва закидали касками при попытке появиться в порту.
Во Владивостоке докеры наказали нового барина...
(как это выглядело вблизи)
События в торговом порту Владивостока показали, что оружием пролетариата является не только булыжник, но и рабочая каска. Докеры ВМТП забросали касками президента группы FESCO Аркадия Коростелева, явившегося «взять власть» в порту.
Хорошо разбираетесь в звездах и юморе?
Тогда этот вызов для вас! Мы зашифровали звездных капитанов команд нового юмористического шоу, ваша задача — угадать, кто возглавил каждую из них.
Переходите по ссылке и проверьте свою юмористическую интуицию!