• Не могу разобраться с kubectl --insecure-skip-tls-verify, выдает что No resources found in default namespace?

    @MadridianFox
    Web-программист, многостаночник
    Сообщение "No resources found in default namespace" означает, что вы успешно запросили у кубера список ресурсов, и он ответил, что неймспейсе default никаких ресурсов нет. Это нормальная ситуация.
    Ответ написан
    Комментировать
  • Как правильно составить небольшой bash скрипт по созданию пользователей?

    @MadridianFox
    Web-программист, многостаночник
    Хотелось бы побольше подробностей, потому что не совсем ясно как будет использоваться скрипт и, соответственно, что именно он должен делать.
    Предположу, что при вызове скрипта должен создаваться один новый пользоваетль с шаблонным именем.
    Т.е. нужно как-то из системы получить список таких пользователей, найти последнего, взять из него цифру и увеличить на один.
    Если обязательно нужен именно монотонно возрастающий номер, то примерно вот так:
    lastUserSuffix=$(cat /etc/passwd | awk 'BEGIN {FS=":"}; {print $1}' | grep systemd | sort -n | sed 's/systemd-//' | tail -1)

    Я тут ищу пользователей с именем systemd-***, думаю вам не составит труда изменить пример для своих целей.
    Ответ написан
    1 комментарий
  • Как добавить приватный ключ в SSH Agent навсегда?

    @MadridianFox
    Web-программист, многостаночник
    Пропишите добавление ключа в агент в автозагрузку.
    Ответ написан
    2 комментария
  • Как открыть другой сайт не меняя текущий адрес при проксирование в nginx?

    @MadridianFox
    Web-программист, многостаночник
    Вообще poxy_pass делает ровно то, что вам нужно.
    Посмотрите что именно отвечает сервер, когда вы делаете запрос. Может быть такое, что ваш nginx правильно проксирует, но сервер гугла видит, что запросе что-то не так, и возвращает редирект, конечно же на свой домен, а не на ваш. В таком случае браузер сделает ещё один запрос и поменяет домен в адресной строке.

    Если это так, попробуйе добавить заголовок с хостом гугла при обращении к гуглу:
    proxy_pass https://google.com/;
    proxy_set_header Host google.com;
    Ответ написан
  • Как не завершать сессию командной строки при использовании shell_exec()?

    @MadridianFox
    Web-программист, многостаночник
    Никак.
    Каждый вызов shell_exec порождает новый процесс командного интерпретатора (bash или cmd), который наследует переменные окружения от текущего php процесса.
    Текущая дирректория это состояние командного интерпретатора, которое теряется между вызовами shell_exec.

    В зависимости от решаемой задачи, вам необходимо либо запускать отдельно процесс cmd и передавать в него команды, либо запоминать текущее состояние и добавлять в каждый вызов shell_exec установку этого состояния, наприме банально вставлять перед каждой командой cd вот так:
    $cwd = "/path/to/dir";
    shell_exec("cd {$cwd}; ls");
    shell_exec("cd {$cwd}; chmod +x banana.sh");
    Ответ написан
    1 комментарий
  • Не могу запушить. Выдает ошибку. Как решить эту проблему?

    @MadridianFox
    Web-программист, многостаночник
    Создавая репозиторий в гитхабе вы нажали/оставили галочку "создать readme.md".
    Это привело к тому, что в гитхабе в репозитории повился первый коммит.
    При этом локально вы тоже коммитили.
    Теперь у вас локально и в гитхабе мастер начинается с разных коммитов. Не уверен что простой git pull тут поможет.
    Вам нужно удалить репозиторий в гитхабе и создать его заново, без всяких там файлов. Тогда вы сможете запушить туда локальные коммиты.
    Ответ написан
  • Как выполнить http-запрос между двумя сайтами в laradock?

    @MadridianFox
    Web-программист, многостаночник
    Конкретно про ларадок не скажу, но объясню как оно вообще работает.

    Когда контейнеры запускаются в одной сети, они доступны друг другу по доменам, которые равны названию контейнера. При запуске через docker-compose немного не так. Контейнеры видят друг друга по именам сервисов.
    Т.е. если у вас вот такой docker-compose.yml
    services:
       front:
          image: ....
       back:
           image: ....

    то фронт сможет обратиться к бэку по домену back, примерно вот так:
    file_get_contents("http://back:8080/path/to/file.txt");

    Ещё, если вы хотите чтобы сервисы обращались друг к другу по публичным доменам, а не по внутренним, можете задать в docker-compose.yml у контейнеров hostname.
    но в docker-compose.yml у контейнера можно задать его hostname,
    вот так:
    services:
       front:
          hostname: site1.ru
          image: ....
       back:
           hostname: site2.ru
           image: ....
    Ответ написан
    Комментировать
  • Как решить проблему nginx при сборке docker-compose?

    @MadridianFox
    Web-программист, многостаночник
    Попробуйте использовать директиву upstream. Она более лояльна к отсутствию целевого хоста на момент страта nginx.
    Ответ написан
    Комментировать
  • Как установить pip на bash консоли если отсутствует sudo?

    @MadridianFox
    Web-программист, многостаночник
    В большинстве случаев под словом "хостинг" понимается т.н. shared hosting, когда вы арендуете не машину, а папку в машине, которая настроена на работу определённых веб-приложений.
    При этом возможности пользователя часто ограничиваются, чтобы один пользователь не мешал другим. Хостинг предоставляет минимум прав, который необходим чтобы выгрузить свой код и поправить какие-то настройки.

    Соответственно, у вас может и не быть возможности установить pip вообще.
    Точный перечень возможностей вы можете уточнить у своего хостера.

    Чтобы гарантировано иметь возможность делать на сервере всё что захочется, вам необходимо арендовать не shared hosting, а целую виртуальную машину. Вот там вы можете и любые программы ставить, и настройки sudo править.
    Ответ написан
    1 комментарий
  • Как настроить в phpStorm 2020.3 автозагрузку скомпилированных файлов?

    @MadridianFox
    Web-программист, многостаночник
    Вы наверное имеете в виду автоматическую загрузку файлов на сервер?
    В настройках Deployment есть галочка Skip external changes. Проверьте её состояние, быть может шторм у вас не седит за файлами, которые не были явно изменены в редакторе.
    Ответ написан
    4 комментария
  • Могу ли я читать данные в Nginx?

    @MadridianFox
    Web-программист, многостаночник
    Можно, для этого есть конструкция map
    которая даже умеет подтягивать варианты из отдельного файла

    Однако это довольно статичный вариант, подходящий для случаев, когда вам достаточно один раз настроить и забыть.
    Если нужна интерактивность, то можно попытаться добавить её через модуль njs - он позволяет написать код на js, который устанавливает значение переменной.
    Однако этот довольно нетипичный вариант и с 99% случаев его использование это костыли и велосипеды.

    В случае, когда вам нужно проксирование на ддинамически формируемый список сервисов, посмотрите в сторону разного рода настраиваемых прокси и service discovery, например HAProxy или Consul.
    Ответ написан
    4 комментария
  • Можно ли использовать WebpackDevServer на продакшене?

    @MadridianFox
    Web-программист, многостаночник
    Товарищ, я же вам уже рассказывал про варианты раздачи вашего SPA.
    WDS или serve это вариант только для разработки, если вам лень на локалке настраивать полноценный сервер.

    В продуктивной среде вам нужно будет запустить полноценный web-сервер, такой как Nginx, и настроить кго так, чтобы он раздавал файлы из папки с результатом сборки вашего фронта, а также проксировал запросы на ваш бэк.
    Несмотря на то что express и сам может раздавать файлы из определённой папки, использовать перед ним Nginx это настолько же естественно, насколько естественно есть суп ложкой, а не вилкой.
    Nginx более производителен, позволяет настроить https, сжатие, кэширование и т.д.

    Если вам совсем уже не хочется разбираться с Nginx, настройти express вашего бэка чтобы раздавал файлы из конкретной папки:
    app.use(express.static('path/to/build'));
    Ответ написан
    2 комментария
  • Как я могу связать BackEnd с FrontEnd?

    @MadridianFox
    Web-программист, многостаночник
    Вам необходимо сделать так, чтобы какой-нибудь web-сервер раздавал файлы фронта.
    Это может быть:
    1) отладочный сервер прям во фронте: часто добавляют пакет, который позволяет выполнить команду вроде `yarn serve --port=3000`
    2) express вашего бэка: там можно в пару строчек активировать раздачу статики изх указанной папки
    3) отдельный web-сервер, например nignx: в продуктивной среде скорее всего именно он и будет заниматься раздачей статики

    Кроме того, в зависимости от выбранного способа, вам надо будет понимать куда вы делаете запросы и как они идут до бэк.
    Если вы запускаете отладночный сервер на порту 8080, а бэк на порту 3000, то ajax запросы вам надо делать на localhost:3000
    Если вы используете nginx, то лучше настроить в нём проксирование, так чтобы все запросы на localhost:8080 на самом деле шли на localhost:3000.

    Для локальной разработки рекомендую настроить бэк чтобы он раздавал статику
    https://expressjs.com/ru/starter/static-files.html
    Ответ написан
    9 комментариев
  • Как сделать выбор языка в Laravel?

    @MadridianFox
    Web-программист, многостаночник
    Я бы не пытался поддерживать пути с языком и без.
    Думаю достаточно / редиректитить на /ru, как это делает тот же habr.com например, а все остальные ссылки всегда делать с языком.
    Т.е. /ru/posts/1 это нормально, а /posts/1 это уже ошибка.

    Далее, я бы все, вообще все роуты обернул бы в группу
    Route::prefix('{lang}')->group(function () {
      //...
    });


    После этого я бы написал middleware, который берёт из запроса код языка, и выставляет локаль.

    А ещё, т.к. язык это параметр в path, то для нусущетсвующего языка надо отдавать код 404, а не 400.
    Ответ написан
    Комментировать
  • Как клонировать репозиторий в папку сайта?

    @MadridianFox
    Web-программист, многостаночник
    Если можете удалить всё из корня - удалите, а потом выполните там
    git clone <адрес репозитория> ./
    Репозиторий клонируется не в подпапку, а прям в текущую.

    Если не можете удалить всё из корня, то ничего страшного. Выполните
    git clone <адрес репозитория> ./tmp
    А потом просто перенесите всё из ./tmp в корень сайта и считайте корень сайта корнем репозитория.
    Только не забудьте добавить лишние файлы (которые были в корне сайта до этого) в гитигнор.
    Ответ написан
    Комментировать
  • Как решить проблему запроса на сервер?

    @MadridianFox
    Web-программист, многостаночник
    CORS - это защита встроенная в браузер.
    Именно браузер блокирует запросы на другой домен, если не настроены заголовки CORS.
    Соотвественно, чтобы браузер пропускал запросы, вам необходимо настроить CORS на сервере.
    Ответ написан
    Комментировать
  • Linux какую файловую систему выбрать?

    @MadridianFox
    Web-программист, многостаночник
    Недавно был пост на хабре по этому поводу:
    https://habr.com/ru/company/kingston_technology/bl...

    Кратко - выбирайте ext4 и не парьтесь, всё уже продумали за вас.
    Ответ написан
    Комментировать
  • Как автоматически запускать проект при падение?

    @MadridianFox
    Web-программист, многостаночник
    Выглядит так, будто вы уже неправильно запускаете ваш проект.
    reboot now это вы хотите прям на уровне операционной системы перезагрузиться? Зачем так радикально?
    Зачем заходить в скрин? Выскажу догадку - yarn start завершается когда вы выходите с сервера, и вы решили запускать его в скрине?

    Ну такое.
    Смотрите. Можно сделать надёжнее
    1) устанавливаете pm2 - менеджер процессов для долгоживущих nodejs приложений
    2) пишете простой как две копейки ecosystem файл
    3) запускаете своё творение не в скрине, и выходите с сервера не опасайсь что оно упадёт

    Далее можно организовать перезапуск приложения. Не сервера.
    Самый простой способ - повесить на этом же сервере на крон скрипт, который будет делать curl -s -o /dev/null -w "%{http_code}". Если ответ этой команды не "200" то выполнять команду pm2 restart myApp

    Кстати, если перебои в работе приложения происходят из-за того что прям процесс падает, то даже никакой крон не понадобится - pm2 сам следит за тем что приложение остановилось, и запускает его снова.
    Ответ написан
    Комментировать
  • User UNIX + user pg + db pg = все разные?

    @MadridianFox
    Web-программист, многостаночник
    И пользователя и БД можно указать при подключении.
    psql -U admin first
    Ответ написан
    Комментировать
  • Github, Как отправить файлы на удаленный репо, если сменил название локальной папки проекта?

    @MadridianFox
    Web-программист, многостаночник
    Название папки в которой лежит репозиторий никак не лияет на git.
    Также оно никак не влияет на отправку изменений в удалённый репозиторий.
    Ну и на гитхабе (на сайте) это никак не фиксируется и не настраивается.

    Уверен, вы можете откруть консоль, перейти в нужную папку и выполнить git push.

    Проблема скорее всего в графической оболочке для гита, через которую вы хотите запушить измеения.
    Вот она запомнила что по определённому пути есть репозиторий. Но теперь по старому пути репозитория нет.
    Вам необходимо изменить путь до репозитория в его настройках в клиенте к гитхабу.
    Ну или удалить и заново настроить это элемент, если такой возможности нет.
    Ответ написан
    8 комментариев