Последние новости
Случается что работая в консоли необходимо что-то запаковать / распаковать, а лишний раз вспоминать команды tar сильно лень, в силу этих причин появился небольшой скриптик который сильно облегчает работу.
pack
ключ | пример | описание |
---|---|---|
-f | pack -f /bla/bla | Упаковать файл либо каталог. Создается архив и его контрольная сумма. |
-u | pack -u bla.tar.gz | Распаковать архив tar.gz |
-i | ./pack -i | Установить скрипт, скрипт установится в /usr/local/bin/pack если папки нет, она создаться. |
-e | pack -e /bla/bla | Упаковать и зашифровать файл либо каталог. Создается зашифрованный архив и его контрольная сумма. |
-d | pack -d bla.tar.gz.enc bla.tar.gz | Распаковать и дешифровать зашифрованный архив. |
-n | pack -n | Проверить и установить последнею версию pack https://brigar.ru/upload/pack |
Теперь когда задача открывается для редактирования пользователем, она блокируется и становится не доступной для редактирования остальным.
Как только пользователь заканчивает свою работу с задачей и закрывает вкладку браузера, задача разблокируется для пользователей кто имеет доступ к проекту и задаче, и становится доступной для редактирования.
Таким образом групповая работа с одной задачей становится безопасной соблюдая консистентность данных.
Теперь (Дата начала) и (Срок завершения) могут влиять на (Напоминание о задаче)
К примеру мы ставим напоминание (Напоминание о задаче) на раз в час, и (Дата начала) и (Срок завершения) мы можем регулировать диапазон выполнения, например указав дату и время начала и конца, тем самым задача будет выполнятся раз в час с указанного даты и времени, до указанного даты и времени.
Устанавливая (Дата начала) и (Срок завершения) тем самым отображает задачу в roadmap
Как и планировалось в crm.brigar.ru интегрирован механизм агрегации новостей, на данный момент идет обкатка и интеграция но уже можно добавлять ресурсы и агрегировать.
Почему сервис агрегации не стал отдельным и публичным сервисом, все очень просто, недостаток ресурсов и времени,
В версии 0.0.148 добавлена новая фича, теперь разделы сайта можно прятать от посторонних путем ограничения по логину и паролю.
В перспективе сделать еще и ограничение по ip или AS, тем самым можно ограничить доступ сразу целому ISP что иногда просто необходимо.
Установка qbittorrent в качестве качалки на удаленке с доступом через web-морду
su
pkg update
pkg install -y qbittorrent-nox
sysrc qbittorrent_enable=YES
Сгенерируем сертификаты (вместо blabla можете подставить свой домен)
openssl req -new -rand /dev/random -x509 -nodes \
-days 365 -newkey rsa:4096 \
-keyout /var/db/qbittorrent/conf/qBittorrent/config/WebUIPrivateKey.pem \
-out /var/db/qbittorrent/conf/qBittorrent/config/WebUICertificate.crt \
-subj "/C=RU/ST=Moscow/O=blabla/CN=blabla/OU=blabla/emailAddress=info@blabla"
Важное
Предполагается что у вас ip wan то рекомендуется явно указать ip необходимые ваши ip и port (где 10.10.5.46
ip/wan и tcp/порт 8080
для доступа к web-морде )
В том числе где tcp/порт 5283
который должен быть доступен извне, можно указать иной
ee /var/db/qbittorrent/conf/qBittorrent/config/qBittorrent.conf
[AutoRun]
enabled=false
program=
[Core]
AutoDeleteAddedTorrentFile=IfAdded
[LegalNotice]
Accepted=true
[Preferences]
Queueing\QueueingEnabled=false
WebUI\HTTPS\CertificatePath=/var/db/qbittorrent/conf/qBittorrent/config/WebUICertificate.crt
WebUI\HTTPS\KeyPath=/var/db/qbittorrent/conf/qBittorrent/config/WebUIPrivateKey.pem
WebUI\HTTPS\Enabled=true
WebUI\Port=8080
WebUI\Address=10.10.5.46
General\Locale=ru_RU
WebUI\BanDuration=3600
WebUI\CSRFProtection=true
WebUI\ClickjackingProtection=true
WebUI\SecureCookie=true
Connection\PortRangeMin=5283
Connection\InterfaceAddress=10.10.5.46
WebUI\CSRFProtection=true
WebUI\ClickjackingProtection=true
chown -R qbittorrent:qbittorrent /var/db/qbittorrent
service qbittorrent start
Доступ к web-морде
по умолчанию
login: admin
pwd: adminadmin
Безусловно рекомендуется ограничить доступ к web-морде путем firewall
Скачать последнюю версию go.get
Теперь можно указать опционально какие uri исключить из логирования.
Зачем это сделано, к примеру нам не интересна статистика по /static/admin/themes/ мы хотим видеть более чистые запросы клиента а не то как он дергает статику.
Как это работает
Работает по принципу жадности, чем длиннее uri тем менее он жаден, например мы хотим исключить только одну тему оформления ofto-v-0.0.1 и ее картинки то указываем /static/themes/ofto-v-0.0.1/img ежели мы хотим исключить стили, указываем /static/themes/ofto-v-0.0.1/css
Если мы хотим исключить тему целиком, указываем /static/thеemes/ofto-v-0.0.1 если мы хотим исключить логирование вообще ко всем темам, указываем /static/themes
Каждый uri указывается с новой строки.
То вот не было, а теперь стало :)
Генерация rss происходит на лету из последних 10 новостей
Для интеграции в шаблоны rss ссылок, в шаблонах необходимо указывать
<head>
<!-- rss -->
<link rel="alternate" type="application/rss+xml" href="https://site_name/rss" />
<!-- /rss -->
</head>
<body>
<a rel="alternate" type="application/rss+xml" href="https://site_name/rss">bla bla rss</a>
</body>
Оба варианта не обязательны, но предпочтительны, можно указывать как по отдельности так и вместе.