Hugo + Github Actions

Решил немного “прокачать” свой блог, заодно начать писать что-то полезное :) Чтобы начать писать что-то полезное, нужно сначала автоматизировать какую-нибудь рутинную работу, которая вызывает прокарстинацию.

Для меня этой рутинной работой оказался процесс выкладывания новых статей.

Дано: движок hugo, github, маленький сервер где-то в германии.

Цель: Статья после написания и коммита в github репозиторий, должна автоматически публиковаться в блоге.

Решение: а вот решение оказалось очень простым :) Об этом как раз и расскажу.

Postgresql Streaming Replication (настройка)

PostgreSQL Streaming Replication (потоковая репликация) Данное “руководство” будет использоваться для PostgreSQL версии 9.6 сервера под управлением Ubuntu Bionic Beaver Потоковая репликация (Master -> Replica) В нашем случае имеется два сервера: - master 192.168.1.1 - replica 192.168.1.2 Настраиваем Master В файл /etc/postgresql/9.6/main/postgresql.conf вносим следующие изменения # Указывает IP-адрес или имя компьютера, на котором сервер postgres принимает клиентские подключения по TCP/IP. # Значением может быть список адресов, разделённых запятыми, либо символ *, обозначающий все доступные интерфейсы.

Настраиваем и мониторим свой VPN

Как мы выбирали VPN-протокол и сервер настраивали Зачем всё это и для чего? У нас было: 10 самых простых конфигураций серверов на DigitalOcean, мобильные устройства на базе iOS, сервер для сбора статистики, никакого опыта в настройке VPN-серверов, а так же неукротимое желание сделать быстрый, надёжный и простой в использовании VPN-сервис, которым будет приятно пользоваться. Не то, чтобы всё это было категорически необходимо, но если уж начали, то к делу надо подходить серьёзно.

Active Records Queries Tricks (перевод)

Оригинал статьи: https://medium.com/@apneadiving/active-records-queries-tricks-2546181a98dd

Запрос с условием в связанных таблицах

У вас есть таблица Users связанная с таблицей Profile. Если вам нужно получить пользователей с активным профилем, то в конечном итоге остаётся сделать следующее: