• Как настроить домашний сервер на Linux?

    @metajiji
    1. Научитесь работать по ssh, это не сложно правда, правда.
    2. Torrent - transmission
    3. Папка куда качает torrent расшариватеся по samba.
    4. Папка куда качает torrent является источником видосов для Plex (dlna)
    5. В samba настраиваете корзину, очень удобно, особенно когда случайно удалил не то :)
    6. Авторизацию в transmission через basic-auth в nginx.
    7. Мониторинг netdata
    8. Дистрибутив Fedora server с cockpit, вот он вам понравится уверяю :)
    9. Бонус tftpboot для реанимашек компов по желанию :)
    10. ...

    Профит от всего огромный, вы как специалист растете и получаете нужный функционал.
    Ответ написан
    Комментировать
  • Какой лучше выбрать php-(микро)фреймворк для SPA?

    @metajiji
    Взгляните ещё на pipes https://github.com/jamierumbelow/pipes
    Ответ написан
    Комментировать
  • Что не хватает Микротику для стабильности l2tp?

    @metajiji
    По моим наблюдениям виноват ipsec, после выхода ряда обновлений, кстати были и клиентах. По времени примерно когда из OSX вырезали PPTP.
    А на линуксах обновили протоколы шифрования и перестал работать 3des.
    Вот с тех пор я заметил ощутимые проблемы.
    Сейчас есть "рабочий" кротик с версией 6.40.5 на telera платформе, если обновлю, "сломается" ipsec, а за ним и l2tp. Это не призыв к прошивке на старые версии, не вздумайте повторять в продакшене! Такие старые прошивки имеют кучу CVE! Зато ipsec работает :)))
    Ответ написан
  • Как расшифровать строку \u0418\u043c\u044f?

    @metajiji
    https://2cyr.com/decode/
    Много лет пользуюсь такой штукой, просто кидаешь туда абракадабру и жмешь авто, дальше магия и оно угадывает, если нет, то там есть все варианты перекодировок о.О можно выбрать вручную(1 раз пользовался даже)
    Ну и + в том, что сервис показывает каким образом кадабра была закодирована.
    Ответ написан
    Комментировать
  • Laravel 5.8 требует php7.2?

    @metajiji
    Сейчас доступны такие вещи как Docker, systemd-nspawn, lxc, scl и наконец рукосборный Пых и ещё куча вариантов в нашем современном культурном обществе :)
    Ответ написан
  • Что если несколько пользователей одновременно обратятся к скрипту?

    @metajiji
    1) и 2) разные пользователи запустят скрипт, более ничего не произойдет. Проблемы могут быть, если этот скрипт пишет данные в файл. В таком случае данные в файле будут от последнего, кто запустил скрипт, а в случае записи в конец файла получим кашу :)
    3) и 4) работа с базой по сети, там есть очередь коннектора и блокировок, причем это уже проблемы сервера, а не скрипта, можете не беспокоиться. Беспокоиться нужно если база в файле, например sqlite, msaccess, вот там блокировки нужно самостоятельно обрабатывать.
    Ответ написан
  • Куда исчезает место на Linux (54Гб за день)?

    @metajiji
    Ещё могут дог контейнеров неплохо кушать место. По умолчанию их не ограничивают и не ротируют.
    Ответ написан
    Комментировать
  • Что делать если не отправляется письмо, хоть нету ошибок php?

    @metajiji
    Функция mail() вызывает sendmail, который должен быть настроен. Обычно это почтовый сервер, у которого есть локальная очередь и возможно настройки передачи сообщений другому серверу(релей с авторизацией).
    И это довольно разумно, если удаленный почтовый сервер не доступен, то письмо будет жить в локальной очереди и ждать когда сервер сможет принять письмо. А отличие от phpmail и подобных вариант с локальной очередью на локальным релее выглядит довольно просто во всех отношениях. В противном случае вы либо будете терять письма, если smtp сервер не доступен, либо писать кодик про очереди, а тут уже привет kafka, gearman, rabbitmq, redis, nemcached и другие костыли :) тем временем простой mail() + postfix поднимается за пару команд.
    Ответ написан
  • Как убрать след от наклейки?

    @metajiji
    Обычным прозрачным скотчем. Прилепляешь, отлепляешь и так до желаемого результата. 10-15 минут и все как новое будет!
    Скотч липкий, клей тоже липкий и они друг к другу липнут, в итоге все отлепляется от проблемной поверхности :)
    Ответ написан
  • Как восстановить диск?

    @metajiji
    Для безопасности данных сделать полную побайтную копию диска.
    Примерно так:
    dd if=/dev/вашдиск of=файл или диск status=progress conv=notrunc

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

    @metajiji
    Django + celery отличный выбор для быстрой разработки подобных вещей. Для обработки изображений можно на C или Go написать тулзы, которые будут запускаться celery и в целом будет неплохой результат.
    Ответ написан
    Комментировать
  • Можно ли сделать python код нечитаемым?

    @metajiji
    Питон компилируется, как и рнр :) упакуйте все в бинарь.
    Ответ написан
    Комментировать
  • Почему для Linux нет простых VPN приложений?

    @metajiji
    В Fedora из коробки есть все типы vpn в networkManager и циски и L2tp+ipsec и openvpn и "что-то ещё непонятное":)))) шучу.
    Довольно много из коробки доступно, сам пользуюсь, правда в KDE, но и в гноме думаю так же.
    Ответ написан
    Комментировать
  • Что будет если закончится срок поддержки Ubuntu?

    @metajiji
    Гружусь в live, монтирую диск у меня все стоит в /, создаю любую папку в корне обычно _, потом mv * _. Затем ставлю без форматирования новую версию, когда загружусь, просто переношу/копирую интересующие меня файлы конфиги в новую ос из _. Если что-то пошло не так, то можно очень легко переключиться на старую ос.
    Ответ написан
    Комментировать
  • Как вы делаете бэкапы в убунту?

    @metajiji
    DejaDup в убунте из коробки, консольный интерфейс тоже есть. Ещё можете посмотреть на bacula. Ну и rsync, lvm, brrfs со снапшотами, дело вкуса
    Ответ написан
    Комментировать
  • Как перезагружать устройства через LAN?

    @metajiji
    Умная розетка, ip pdu, ups с ethernet портиком.
    Ардуино с реле и ethernet модулем.
    Ответ написан
    Комментировать
  • Подключение к базе данных MySql, как правильно и современно?

    @metajiji
    Если коротко, то mysqli это современный способ, который использует pdo:) а следовательно pdo это предпочтительный, т.к. можно менять драйвер безболезненно. Ну и многие вещи там уже автоматизированы.
    Ответ написан
  • Как настроить docker чтобы он писал логи в папку по имени контейнера?

    @metajiji
    Вам скорее их нужно научиться читать по имени контейнера, довольно просто:
    docker logs имя-контейнера  # просто посмотреть логи
    docker logs -f имя-контейнера  # в рейлтайм режиме


    Так же можно настроить логирование в приложениях, где полет фантазии не ограничен, только не забудьте о ротации, логи могут скушать весь диск.
    Ответ написан
    Комментировать
  • Docker - как запустить Apache от имени пользователя?

    @metajiji
    Вот если совсем в лоб, то:
    docker run --help
    docker run --user XXX


    В принципе вы это сделали в Dockerfile, но подумайте головой... Вы взяли образ httpd, внутри огромный debian https://github.com/docker-library/httpd/blob/75e85...
    Лучше для такой задачи взять alpine FROM httpd:alpine-2.4
    Дальше httpd скорее всего запускается от рута, причем не просто так! Ему просто необходимо это сделать, потому, что существует такая вещь как не привилегированные порты https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D...

    У вас 100500% в конфиге httpd указан порт 80, что меньше 1024, следовательно httpd не в силах запуститься!
    httpd запускается от рута, биндится на 80/443 порт, после чего делает suid на uid/gid, указанного в кофниге https://httpd.apache.org/docs/2.4/mod/mod_unixd.ht...

    Теперь зная это, становится понятно, почему в docker logs (имя_контейнера) мы видим ошибки.

    Что делать? Ну например запускать апач от пользователя www-data, как и собирались, но на портах выше, чем 1024, а если хочется, чтобы он отвечал на 80 порту на хосте, то не вопрос, порт-маппинг сделает для вас это, потому, что на хосте dockerd запустит docker-proxy процесс, который будет работать от рута и будет слушать 80 порт, проксируя траффик в контейнер на указанный вами порт, например 8080.
    Получаем, что внутри контейнера апач живет на 8080, снаружи на 80.

    version: '3.7'
    
    services:
    
      db:
        image: mariadb
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: example
    
      adminer:
        image: adminer
        restart: always
        ports:
          - 8080:8080
    
      web:
        image: httpd:alpine-2.4  # поверьте, вам не нужен nano внутри контейнера! просто подключите все необходимые конфиги с хоста как volume, это правда удобно.
        depends_on:
          - db
        restart: always
        ports:
          - 80:8080  #HOST:CONTAINER
        volumes:
          - //c/Docker/sf4/project:/usr/local/apache2/htdocs
    #      - скопируйте необходимые конфиги себе примерно так: "docker cp /etc/httpd/httpd.conf ." и подключите как volume
          - "./httpd/httpd.conf:/etc/httpd/httpd.conf"  # пример подключения конфига, где ./httpd/httpd.conf файл рядом с вашим docker-compose.yml
    Ответ написан
    6 комментариев
  • Существуют ли системы для инвентаризации и описания структуры сети?

    @metajiji
    GLPI + FusionInventory plugin бесплатная, на перле и пыхе... :(
    Хранит инвентори, информацию о расходниках, поставщиках, информация о комплектующих, есть никакая система тикетов, лучше для этого используйте что-то другое.

    Кодик хранить рекомендую в gitlab, который позволит вам автоматически через gitlab-ci собирать конфиги с железок и версионировать это добро автоматически, там все довольно легко делается. Вики там же можно в md(MarkDown) писать. kanban доски, поможет организовать работу, в принципе даже за тикет-систему сгодится.
    Ответ написан
    Комментировать