user@mysrv:~# sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
user@mysrv:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
user@mysrv:~# sudo apt update
user@mysrv:~# sudo apt install -y docker-ce
user@mysrv:~# usermod -aG docker ${USER}
user@mysrv:~# mkdir -p ~/.docker/cli-plugins/
user@mysrv:~# curl -SL https://github.com/docker/compose/releases/download/v5.0.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
user@mysrv:~# chmod +x ~/.docker/cli-plugins/docker-compose
user@mysrv:~# docker compose version
пятница, 20 февраля 2026 г.
Install docker and docker compose
суббота, 14 февраля 2026 г.
Docker compose certbot
This is a docker compose file to create a certbot container and issue a new cert using letsencrypt
services:
certbot:
image: certbot/certbot
container_name: certbot
volumes:
- ./certbot/conf:/etc/letsencrypt
- ./certbot/logs:/var/log/letsencrypt
ports:
- "80:80"
command: certonly --standalone -d yourdomain.com --email your@email.com --agree-tos --no-eff-email
воскресенье, 21 апреля 2024 г.
Docker Nextcloud изменить BaseURL
Казалось бы, что может проще как изменить базовый URL?
А что такое базовый url? Классический базовый URL раньше выглядел так http://mydomen.ru/nextcloud
При этом nextcloud установлен по пути /var/www/html/nextcloud, а DocumentRoot в настройках веб-сервера /var/www/html
Потом появился параметр RewriteBase, который позволял убрать из url nextcloud, тем самым сократив его и сделав красивым.
среда, 13 марта 2024 г.
PoSh Script Проверка web сервиса и перезапуск docker desktop
Сервис развернут контейнере (Docker desktop). Пожаловались, что иногда он вываливается и единственное решение - полный перезапуск wsl и "docker desktop". Пользователь в будуюшем будет переносить докеры в linux среду, а на текущий момент нужен костыль. Сразу оговорюсь, попытка создать службу docker провалилась, поэтому здесь решение совсем грязное. Но в самом скрипте есть пара интересных, для меня, моментов, поэтому кладу его здесь.
Скрипт проверяет ответ от web-сервиса (внешний адрес и порт), если его нету, то ждет N время, иначе выходит. По истечении N времени идет повторная проверка, если ответа нет, то идет проверка локальная, иначе выход. Если локальная проверка не прошла, то перезапускаем нужные службы и программы, иначе выходим.
Запускать я решил батником в task scheduller, чтобы не править каждый раз задачу. При этом задача должна выполнятся от имени администратора и БЕЗ привязки к пользователю, иначе Desktop manager не запустит контейнеры.
Два триггера
Для автозапуска Docker desktop при загрузке ПК настраиваем автовход пользователя (control userpasswords2) и автозапуск Docker desktop при входе в настройках программы. На данный момент это единственное рабочее решение из найденных :-(
Команда запуска в планировщике (окно скрипта скрыто)
%windir%\system32\cmd.exe
/c start /min C:\usr\WSLCheckStart.bat ^& exit
Будьте осторожны с таким методом скрытия окна. Этот метод открывает скрипт за пределами планировщика. Планировщик не может контролировать выполнение задачи, а значит возможно наложение нескольких задач. Для таких случаев рекомендуется проводить проверку в самом скрипте.
Батник:
@echo off
cd %~dp0
set "pathscript=%~dp0\WSLCheck.ps1"
set "pathlog=%~dp0\log"
mkdir %~dp0\log
IF EXIST %pathscript% (
powershell.exe -NoProfile -ExecutionPolicy Bypass -File %pathscript% -Address "dev.site.com" -Port "443" -LocalPort "8080" -TimeOut 20 -TimeOutHTTP 10 -LogFile %pathlog%
) ELSE (
echo "ERROR! %pathscript% not exist"
echo "ERROR! %pathscript% not exist" >> WSLLogStart.log
)
Сам скрипт Powershell