• Haproxy не передаёт header X-SSL-Client-Verify, почему?

    @akdes Автор вопроса
    Нашёл ошибку:
    в конфиге haproxy не хватало
    mode http
    Ответ написан
    Комментировать
  • Gitlab CI постройка двух приложений с общими стэйджами и зависимостями не тормозящие друг друга?

    @akdes Автор вопроса
    Ответ: использовать needs заместо dependencies.

    https://habr.com/ru/company/flant/blog/491888/

    Обновление гитлаба, первая фича описанная на хабре решает мою проблему - как никогда, вовремя! :D
    Ответ написан
    Комментировать
  • Объясните на пальцах, как приготовить CI с помощью GitLab, GitLab runner, docker, php?

    @akdes
    Во первых, посоветую Вам взять тот-же alpine или любой другой docker image,

    1. запустить у себя на компьютере
    docker run -it *IMAGE* sh
    или
    docker run -it *IMAGE* bash
    и установить всё необходимое для постройки. php, curl, composer.. в зависимости от проекта.

    2. далее, на основе Ваших действий составить dockerfile
    FROM image

    RUN apk update && apk add php7-fpm curl...

    3. С помощью COPY/ADD скопировать проект в контейнер (для симуляции процесса). И выполнить необходимое в контейнере для постройки проекта.

    4. Необходимые команды скопировать в gitlab-ci.yaml

    Учтите, если Вы хотите упаковывать Ваш проект в докер, к примеру для запуска в k8s, Вам необходимо использовать dind (docker in docker) либо gitlab runner должен работать напрямую, не в докер. Ибо в противном случае Вы не сможете запустить docker build ... в процессе CI/CD

    Если команды выполняются внутри runner контейнера, как мне выкачать проект из гита и положить его на хосте?


    При запуске runner'a, он сам "выкачивает" Ваш проект, это видно здесь:
    Reinitialized existing Git repository in /builds/gitlab/_xxx_/_xxx_/.git/
    From _xxx_
       2c41219..48aa22e  master     -> origin/master
    Checking out 48aa22eb as master...
    Ответ написан
  • Каким способом охлаждать ёмкость 500 мл воды до 6 градусов?

    @akdes Автор вопроса
    такс, в общем, спасибо огромное всем за ответы.
    Вот информация, на случай кому то будет интересно:
    на данный момент, есть один элемент пельтье 12706, дешёвый кулер для CPU (но не самый плохой), блок для охлаждения воды (алюминий), пару трубок и мини насос.
    Если налить воды только в блок и охлаждать его, получаю -4 градуса.

    Т.к. нормальной платформы и корпуса на данный момент нет, собирается это очень "просто", при этом обе трубки
    от блока пулучаются по 50см.
    И в такой ситуации, охлаждается примерно 100 мл до 9 градусов. Результат не самый плохой, с учётом отстутвия пенопласта, длины трубок и насоса, который греется.
    Предстоит попробовать/сделать: пластиковая ванночка, с алюминивым проводником на дне, к которому с наружи будет прикручиватся пельтье, без насоса, блока и трубок - думаю получу необходимый эффект.

    Что касается ёмкости, будет барьер и резервуар (не охлаждаемый), который позволит иметь не более 100мл(может даже меньше сделаю) в системе для охлаждения.
    Ответ написан
    Комментировать
  • Как разместить на своем сервере несколько сайтов?

    @akdes
    nginx-proxy называется. Есть ещё реализация с letsencrypt - тогда и SSL автоматом подтянится.

    Прокси будет слушать 80 порт и подключать в зависимости от запрашиваемого хоста нужную связку docker
    Ответ написан
    Комментировать
  • В чем ошибка обновления записи в БД?

    @akdes
    author_id = :author_id WHERE WHERE id = :id"

    дважды WHERE

    айди сессии пихать в инпут крайней не безопасно, да и необходимости в этом в принципе нет. Ибо тогда сессия не нужна, если Вы идентификатор хотите держать у клиента... Похоже на попытку работы Stateless используя states (session) :D
    Ответ написан
    Комментировать
  • Как зафиксировать элемент по отношению к определенной точке фона?

    @akdes
    Решения без скрипта, на чистом CSS к сожалению не придумал, а со скриптом нашёл
    Ответ написан
    Комментировать
  • Правильна ли логика скрипта AJAX? или можно укоротить?

    @akdes
    вижу баг:
    if(xhr.getResponseHeader('X-Eproc-Message')[0].message = 'error.pko-nomenclature-tru-exists') {

    вы наверное хотите сравнить а не присвоить?!
    if(xhr.getResponseHeader('X-Eproc-Message')[0].message === 'error.pko-nomenclature-tru-exists') {


    Что касается вопроса, укоротить можно всегда, только нужно ли это? Причина вопроса не понятна, да и описание задачи, было бы не плохо.
    Ответ написан
  • Как мне создать чтобы по запросу город.сайт.ру открывался сайт.ру?

    @akdes
    Опция а) как написал Руслан, тебе нужен wildcard сертификат, который будет годен для "сайт.ру" и "*.сайт.ру"
    Опция б) настраиваешь город.сайт.ру физически на тот же путь, как и сайт.ру, но в настройках вебсервера подключаешь разные сертификаты на каждый домен
    Пример:
    SSLEngine on
    SSLStrictSNIVHostCheck on
    SSLProtocol -ALL +SSLv3 +TLSv1
    SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:-MEDIUM
    
    <VirtualHost *:80>
        DocumentRoot "/var/websiteexample/public/www"
        ServerName www.site.ru
        ServerAlias site.ru
        <Directory "/var/websiteexample/public/www">
            allow from all
            Options +Indexes
        </Directory>
    </VirtualHost>
    
    <VirtualHost *:443>
        DocumentRoot "/var/websiteexample/public/www"
        ServerName www.site.ru
        ServerAlias site.ru
        #You might also need: SSLCertificateChainFile 
        SSLCertificateFile /root/www.site.ru.crt
        SSLCertificateKeyFile /root/www.site.ru.key
        <Directory "/var/websiteexample/public/www">
            allow from all
            Options +Indexes
        </Directory>
    </VirtualHost>
    
    <VirtualHost *:443>
        DocumentRoot "/var/websiteexample/public/www"
        ServerName moscow.site.ru
        SSLCertificateFile /root/moscow.site.ru.pem
        SSLCertificateKeyFile /root/moscow.site.ru.key
        <Directory "/var/websiteexample/public/www">
            allow from all
            Options +Indexes
        </Directory>
    </VirtualHost>
    Ответ написан
    Комментировать
  • Как перенаправить запросы на паку?

    @akdes
    Если я правильно понял, то прописываем в .htaccess:
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /public_html/mobile/?path=$1 [NC,L,QSA]


    но т.к. запросы идут на "/public_html/m/" - где-то, это должно быть прописано...!
    Ответ написан
    Комментировать
  • Как заставить работать php-apache с xdebug в docker в компановке с netbeans?

    @akdes Автор вопроса
    такс, сам отвечаю на свой вопрос, с небольшой поправкой - пересел на nginx и php7.2-fpm..
    Но я думаю на php-apache проблема решилась бы тоже.

    Основная ошибка это
    xdebug.remote_connect_back=1
    Адресс который xdebug получает, к сожалению не тот, который нам нужен. Правильный адрес берём из настроек Docker
    Docker->settings->Network->Subnet Address
    В моём случае это "xx.yy.zz.0" -> вставляем в конфиг и меняем 0 на 1:
    xdebug.remote_host=xx.yy.zz.1
    и вуаля...
    Ответ написан
    Комментировать
  • Как сделать загрузку файла без сохранения его в node.js?

    @akdes Автор вопроса
    Ключевые моменты, которые исключают загрузку на S3 напрямую с фронтенда:
    Сервис будет базовый и использоватся в нескольких проектах. При переезде с S3 или изменении логики прийдётся менять все проекты по отдельности.

    Решение на данный момент:
    На фронтенде файл будет резаться на куски по 5 МБ и загружатся асинхронно через multipartUpload, на бэкенд.
    Т.е. при начале загрузки будет передаваться идентификатор загрузки и при посл. кусках он будет оставаться.
    По окончанию будет вызов на бэкенд, который будет собирать куски в один с помощью S3.
    Тем самым можно горизонтально увеличивать ресурсы, без боязни проблем с загрузкой.
    Ответ написан
    Комментировать
  • Как повысить timeout на отдельные routes в nginx?

    @akdes Автор вопроса
    Нашёл более или менее логичный ответ, описывающий проблему и решение к ней.
    Ответ написан
    Комментировать
  • Как оптимизировать скорость свезей бд в laravel?

    @akdes Автор вопроса
    Такс, решение найдено, точнее проблема.

    Менее важно в данной проблеме, но факт: join работает быстрее чем жадная загрузка и т.д., не намного но быстрее.
    Проблема в другом, если берётся объект из модели, затем мутируется и отдаётся через
    return $object; //или 
    return response()->json($object);

    то именно return длится в моём случае на локалке 20, дополнительных, секунд, т.е. видать т.к. изначальный, знакомый объект "испорчен" доп. данными, при переводе данных в json происходит магия, стоимость n-Секунд.

    Решение:
    перевод объекта сразу в массив и затем манипуляция.
    $myArray = $customer->get()->toArray(); 
    $myArray = $this->doStuff($myArray);
    return $myArray;

    Может быть решение очевидно, я таких граблей не ожидал.
    Ответ написан
    Комментировать
  • Laravel в Docker без шаринга файлов с хоста - 404 на css/js, почему?

    @akdes Автор вопроса
    Поставил костыль - копирую папку public дополнительно в web-container. Работает, но вопрос не решён.
    Ответ написан
  • При большом количестве запросов, Guzzle получает пустой ответ -> 504, почему?

    @akdes Автор вопроса
    Проблема была в том, что один из сервисов кидал Исключение, а Guzzle дальше ждал ответа.
    Ответ написан
    Комментировать
  • Node-getmac тащит mac-Address только из eth0, что делать?

    @akdes Автор вопроса
    ок, думал они все одинакого работают, но нет.
    require('getmac')
    работает через ip link - должно сработать
    Ответ написан
    Комментировать
  • Laravel не возращает id после создания объекта, почему?

    @akdes Автор вопроса
    Нашёл ошибку - по ошибочному дизайну, ID была String и в модели прописывал. Сейчас всё поменял, но вот одно забыл:
    public $incrementing = false;
    убрав эту строку получаю айди
    Ответ написан
    Комментировать
  • Централизированное управление удалёнными компьютерами, как и чем?

    @akdes Автор вопроса
    Спасибо АртемЪ за планировщик (о нём не думал вообще)
    написал powershell скрипт который скачивает архив, распаковывает его в необходимую директорию, тем самым заменяя файлы, эдакий апдэйт, а также, если в архиве есть определённый скрипт, он его запускает.
    А по удалённому управлению, наверное всё таки буду брать лицензию тимвивера.
    Ответ написан
  • Как осуществить перенаправление в.htaccess?

    @akdes
    не вижу смысла в преобразовании. 3363 у вас становится 363, tovar_1 и type вообще пропадает...
    для преобразование необходимо хотябы одно значение, которое остаётся до и после. Или Вас интерисует преобразование только это ссылки, других ID быть не может?
    вот... Прогнал, обновил
    RewriteEngine on
    RewriteRule ^toindex.php?product=363$ index.php?id=3363&tovar_1=8495&type=3  [NC]

    В данном случае, при открытии "toindex.php?product=363", на самом деле будет вызвана index.php?id=3363&tovar_1=8495&type=3
    Только смысл?
    Ответ написан
    Комментировать