Июн 13

Речь в этой статье пойдёт о варианте быстрой и удобной организации изолированного окружения для разработки. Не любой разработки и не любого окружения, но вполне типового — сетевые сервисы и необходимые им очевидные базы данных, очереди и т.п.

Требования к dev-окружению: полнота, изолированность и простота развёртывания на рабочем месте.

Сейчас вместо локальной разработки намного проще, быстрее и удобнее развернуть полноценное dev-окружение на Kubernetes на локальной машине разработчика.

Итак, что же скрывается под названием Me DevOps (github):

  • LXC/LXD контейнер основанный на Funtoo Linux;
  • k3s — облегчённый вариант Kubernetes, «заточенный» на использование с ограниченными вычислительными ресурсами.

Продолжение »

Автор: Johnny Тэги: , , , , , , , , ,


Мар 04

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

В качестве домашнего сервера может выступать не только обычный стандартный ПК (пусть даже и собранный в небольшом корпусе), но и специализированные решения от Synology (с огромными возможностями) или даже небольшой одноплатный компьютер типа RaspberryPi
Давайте посмотрим, что из «джентльменского» обязательного набора стоит развернуть на таком домашнем сервере.

  • Transmission — разумеется, торрент-сервер для скачивания фильмов.
  • Plex или Kodi — медиа-сервер для потокового вещания видео в локальную сеть.
  • Docker для запуска контейнеров с необходимым софтом. Куда же без него 🙂
  • NextCloud или ownCloud — для резервного копирования и хранения файлов.
  • Mailcow или Poste.io —  почтовый сервер.
  • Grafana — система для мониторинга.
  • Pi-hole или Adguard — блокировщик рекламы.
  • Home Assistant или OpenHAB — для работы умного дома.

Из нестандартных, но интересных вещей можно посоветовать:

  • Wayback или ArchiveBox — для сохранения веб-страниц, аналог Wayback Machine (лишь бы хватило места).
  • koboldcpp — хотите аналог ChatGPT на своем сервере? А пожалуйста! (Посмотрите ман по настройке)
  • Stable Diffusion — своя домашняя нейросеть, создающая изображения по описанию.

Автор: Johnny Тэги: , , , , , , , , ,


Июл 10

Проблема: При импорте SQL-базы возникает ошибка «Unknown collation: utf8mb4_0900_ai_ci».
Описание проблемы: Параметры сортировки текущего сервера отличаются от того, с которого был сделан бэкап базы. Вероятнее всего, версия MySQL (MariaDB) на вашем сервере ниже, чем на исходном.
Решение: Заменить в SQL-файле кодировку на другую. Открываете SQL-файл в текстовом редакторе, находите строчку
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
и заменяете на
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Если файл дампа базы большой (несколько ГБ) и его невозможно открыть для редактирования, можно заменить сортировку в файле db.sql прямо в консоли:
sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' db.sql

Автор: Johnny Тэги: , , , , ,


Июл 10


Для ускорения загрузки сайта можно использовать кэширование на сервере, включить gzip-сжатие, использовать постоянные HTTP-соединения (keep-alive) или даже использовать CDN, но этого мало — PageSpeed Insights от Google настойчиво предлагает включить для моего сервера кеширование в браузере.

Ну ОК, так и поступим.

Если у вас веб-сервер Nginx, просто пропишите в конфиге:

location ~* ^.+\.(jpg|jpeg|png|gif|ico|js|css|txt|pdf)$ {
root /var/www; # Путь к корню сайта
expires 3d; # кешируем на 3 дня
}

и радуйтесь ускорению. А вот если вы используете Apache, то идите под кат 😉

Продолжение »

Автор: Johnny Тэги: , ,


Янв 13

В новогодние каникулы айтишнику неинтересно просто пить, иногда нужно пошевелить мозгами, поэтому я решил перевести этот блог на защищённый протокол https.

В принципе, ничего особо сложного в получении SSL-сертификата от Let’s Encrypt и прикручивании его к веб-серверу нет, но вот с самим WordPress`ом пришлось немного повозиться, чтобы браузеры перестали выдавать предупреждение о незащищенном соединении (а всё потому, что часть изображений и внешних ресурсов, таких как скрипты от google или систем статистики, подключались по незащищенному протоколу http).

Все настройки можно делать через любой SQL-редактор (phpMyAdmin или Adminer).
Открываем его и выполняем следующие запросы:

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://saradmin.ru', 'https://saradmin.ru') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://saradmin.ru', 'https://saradmin.ru');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://saradmin.ru','https://saradmin.ru');

Разумеется, адрес saradmin.ru измените на свой и убедитесь, что префикс таблиц у вас «wp_«. Если нет, укажите свой.

После этого остаётся только изменить протокол с http:// на https:// для тех ресурсов, которые вы добавляли сами — счетчики, информеры, кнопки других сайтов и пр.

Автор: Johnny


Сен 06

Ребёнок понял, что можно не просить нас ввести пароль от учётки на компе с Ubuntu, а просто войти в гостевой режим. Да, в нём не сохраняются файлы в профиле, но доступ в Интернет открыт и можно без спроса играться в онлайн-игрушки. В связи с этим у нас возник вопрос: как отключить гостевой сеанс в Ubuntu?
Для Ubuntu 14 в конец файла конфигуации /etc/lightdm/lightdm.conf нужно было добавить строчку allow-guest=false и убрать таким образом гостевой заход. Но в Ubuntu 16.04 этого файла уже нет, поэтому в директории /etc/lightdm/lightdm.conf.d нам нужно создать отдельный конфигурационный файл, в который и добавить этот самый параметр в раздел [SeatDefaults]. Что мы и делаем в консоли:

sudo mkdir /etc/lightdm/lightdm.conf.d
sudo sh -c 'printf "[SeatDefaults]\nallow-guest=false\n" > /etc/lightdm/lightdm.conf.d/50-no-guest.conf'

Перезагружаем комп и радуемся отсутствию гостевого захода.

Если вдруг, по какой-то причине, нужно будет включить гостевой сеанс в Ubuntu, просто удаляем созданный конфиг:
sudo rm /etc/lightdm/lightdm.conf.d/50-no-guest.conf

Автор: Johnny Тэги: , , ,


При использовании материалов сайта на других ресурсах прошу оставлять прямую ссылку на оригинал статьи.