Задать вопрос
  • Как сделать максимально автономный сервер?

    ValdikSS
    @ValdikSS
    1. Никаких «вечных серверов». Даже как-то неловко разъяснять такое. «Вечный сервер» — маркетинговый ход, фактически мошенничество, который закончится, как только компания изменит условия/реорганизуется/закроется. Следует читать как «ну, проработает года три, а далее — неизвестно».

    2. Непонятно, какого рода у вас информация, и что именно вы понимаете под словом «захостить», также непонятен критерий автономности. Разместить информацию в публичный доступ? Должна ли она индексироваться? Нужен ли для неё контроль доступа? По какому протоколу она должна быть доступна? Она будет нужна только вам через 10 лет, или кому-то еще? Это лицензированный контент, который могут удалить по DMCA (фильмы, сериалы, музыка)? Это персональные данные (сливы баз данных)? Информация популярна и/или востребована на данный момент? Есть вероятность, что она будет сравнительно востребована через 10 лет? Информация каталогизирована? Информация тематическая (например, архив, посвященный конкретной теме, области науки и т.п.)? Важно ли удобство и скорость доступа к информации?
    Технологий много, но они все разные, с разными назначениями. Ответы на перечисленные вопросы необходимы, чтобы отбросить неподходящие и подробно рассмотреть подходящие.

    3. Если информация публична и востребована, и будет востребована через 10 лет, то следует использовать DC++, BitTorrent + веб-хранилища с прямыми ссылками на файл, добавив ссылки в .torrent-файл, в виде webseed.
    Bittorrent существует с 2006 года, популярен, клиенты есть под все ОС, совместимость и надёжность отличные.
    DC++ всё еще имеет популярность. Основное преимущество перед Bittorrent: возможность поиска файла по его имени или названию директории, возможность лёгкого обновления и дополнения информации (нет привязки к «каталогу» в виде .torrent-файла)

    Если информация конфиденциальна или требует контроля доступа, и у вас и кого-либо другого не будет возможности как-либо поддерживать её в течение 10 лет (я не знаю вашу ситуацию, поэтому предположим, что вам грозит 10-летний тюремный срок), то, возможно, есть смысл оплатить облачное хранилище от крупных компаний (Google, Yandex, Microsoft, Apple) на 10 лет вперед. Это не даёт никаких гарантий, но считаю такой вариант более надёжным, нежели хостинг общего плана (и особенно VPS).

    Если информации немного, она не защищена авторскими правами, каталогизирована и полезна, можно банально разместить её на давно существующих бесплатных хостингах, вроде Ucoz, Google Sites, Neocities, загрузить на Bitbucket, Github, Sourceforge (последний поддерживает хранение больших файлов, которые можно скачать по прямой ссылке, вполне подойдёт в качестве webseed для торрента, к слову).

    Если не боитесь попробовать развивающиеся, но еще не устоявшиеся технологии, присмотритесь к IPFS. Он работает по принципу Bittorrent, но позволяет получать доступ к информации через HTTP, а также поддерживается крупными игроками в лице Cloudflare, у которой есть шлюз из интернета в IPFS: https://cloudflare-ipfs.com/
    Я держу несколько статичных сайтов с собственными доменами в IPFS, на домашнем компьютере, за шлюзом Cloudflare. Преимущества: все плюсы BitTorrent, возможность доступа как к сайту (в т.ч. на своём домене), индексация поисковиками, есть сервисы по долгосрочному платному хранению файлов (eternum.io, pinata.cloud), возможность лёгкого обновления информации. Недостатки: работает всё ещё достаточно медленно и нестабильно, только статичные сайты.

    4. Судя по вашему комментарию выше, у вас всего 100 ГБ медиафайлов. Это вообще ерунда. Если они публичны и представляют ценность хотя бы для узкого круга людей, можете захостить их у меня, через проект Schare: https://valdikss.org.ru/schare/
    Мой критерий автономности — максимальная независимость от сторонней инфраструктуры, поэтому файлы хостятся на домашнем сервере, а раздаются в сетях децентрализованного файлообмена.
    Ответ написан
    Комментировать
  • Как сделать максимально автономный сервер?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Я не специалист, но если это должно хоститься долго, об этом должна заботиться сама информация в таком материале: давать понимание читателям своей ценности и просить рехостинга/"зеркалирования" ими для выживания контента.

    Если информация ценна для людей - она сможет долго выживать таким способом.

    Главное - написать внутри: как лучше её рехостить так, чтобы другие могли её найти и прочитать, и почему это важно.

    По факту, это "вирусный" репост.

    Что важно сейчас: webarchive, github'ы и тематические wiki-сайты. Вот туда первым делом залить.

    Можно также и на бесплатных популярных cms-хостингах тоже сделать сайты, чтобы можно было скачать всё одним файлом и кэш страниц в поисковиках остался.
    Ответ написан
    3 комментария
  • Как реализовать "защиту" авторизации по номеру телефона?

    Vamp
    @Vamp
    1. Проверьте синтаксическую корректность номера телефона. Все мобильные номера в РФ начинаются на +79 и имеют длину ровно 11 цифр. Проверку можно даже добавить в веб форму на уровне js. Это нельзя назвать защитой от хулиганов, но она отсеет реальные ошибки и опечатки, облегчив жизнь обычным пользователям.

    2. Пробейте номер по базе россвязи (файл DEF-9xx). Так вы определите номера, на которые 100% не будет доставки. В отличии от проверки синтаксиса, не выдавайте пользователю ответ о некорректном номере. На все номера отвечайте "Одноразовый код отправлен, введите его сюда", но на невалидные номера не отправляйте сообщение.

    3. Добавьте ограничение на количество отправляемых форм в минуту с одного IP и количество отправляемых сообщений на один и тот же номер (независимо от IP).

    4. Оцените сколько может быть отправок форм в день и поставьте общий лимит на все отправки смс за день. Это единственный реальный способ контролировать атаку на сливание бюджета. Да, реальные пользователи пострадают при достижении лимита, но вы не должны доводить до него - настройте мониторинг количества отправляемых смс и алертинг при достижении порога в 90% от лимита, чтобы у вас было время среагировать на атаку и отбить её до полного исчерпания лимита. Либо если это всплеск реальных пользователей (например, неожиданно удачная реакция на рекламу), то у вас будет время скорректировать лимит. Можно рассчитывать лимит как 2 * среднее количество отправок смс за последние Х дней, чтобы не приходилось править его вручную по мере естественного роста посещаемости. Формулу и процент для алертинга, разумеется, подберёте под свои требования. Но можете взять и мои за основу.

    Отдельно хочу рассказать про так называемые прямые мобильные номера. Они выглядят как городские (например, +7495), но в реальности являются мобильными и могут принимать смски. Проверка в пункте 1 не пропускает такие номера и нет никакого способа проверить без отправки смс является ли отдельно взятый городской номер прямым мобильным. Прямых номеров мало по сравнению с настоящими мобильными или настоящими городскими. К тому же у каждого прямого номера есть мобильный аналог, начинающийся на +79, которым пользователь может воспользоваться для регистрации. Поэтому предлагаю просто забить на прямые номера, а в случае жалоб на невозможность регистрации с прямым номером, рассказывать про существование мобильного аналога, который может быть прописан где-то в договоре с оператором на оказание услуг связи или узнать в техподдержке оператора и с которым можно спокойно зарегистрироваться.

    Обязательное требование email'а не усилит схему защиты, так как не проблема наштамповать реальных адресов со скриптом, автоматически прокликивающим подтверждающие ссылки во входящих письмах.

    Альтернативным вариантом является аренда входящего номера. В этом случае не вы отправляете сообщения пользователям, а они вам. Обычно за входящий номер берут фиксированную плату в месяц независимо от количества смс, так что не придётся в принципе волноваться за бюджет. Но тогда у вас будут в пролёте пользователи с отключенной услугой отправки смс. А таких немало, могу сказать. Благодаря интернет-мессенджерам.
    Ответ написан
    2 комментария
  • Как обезопасить сайт от фрилансеров?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Стейджинг и контроль версий не очень подходят т.к. область работ почти по всему ядру CMS и модулей + новые увесистые наработки.

    1. Подходят / не подходят, а если у вас всё это делается без стейджинга и контроля версий, я вам советую продать сайт пока возможность есть со всеми потрохами и поискать себя в другой области. Система контроля версий - это единственное, что потом позволит вам хотя бы задним числом понять кто не чист на руку и отомстить плохими отзывами в профиле.
    2. Не ищите дешевых фрилансеров без репутации и профиля, которым имело бы смысл дорожить.
    3. Держите репозиторий в гитхабе и старайтесь, чтобы разработчик от своего основного эккаунта кодил. Акк должен быть с активностью, историей, иначе что это за разработчик такой? Вообще верно в той поговорке сказано: "не гонялся бы ты, поп, за дешевизной".
    4. Дешевых нонейм-фрилансеров без истории опасно пускать в ядро. Отдавайте их код на ревью ребятам посерьёзнее, с репутацией. Ревью тоже работа, но обойдётся дешевле, чем закодить все эти фичи. За то опытный человек своим глазом глянет. С него потом и спросить можно как это он проглядел вредоносный коммит.
    5. Выносите всё что можно в опенсорс, но контрибьютьте корневой проект сами или через проверенных людей. Тут вам и бесплатные руки (если фичи полезные), илишние глаза для проверки на вшивость.
    6. Не хватает денег на крутых серьёзных разрабов с репутацией, делегируйте им хотя бы составление детального ТЗ и, как я выше уже написал, ревью.
    7. Помните, что порой лучшее - враг хорошего. Умейте выстраивать MVP. По Паретто 80% прибыли вам принесёт 20% фич. Сделайте их хорошо, а остальное, может быть, отпадёт за ненадобностью по факту.
    8. Как говорится "вам пора, и вам пора, с вентиляторным заводом заключать договора". Правильно коллега подметил в соседнем ответе. Вы ж не подпольную крипто-биржу, наверно, там кодите. Можно договора заключать с разрабами в белую. Лишний повод ему не гадить засветив реквизиты и подписавшись.
    Ответ написан
    1 комментарий
  • Для контейнеризации на rhel7 что лучше юзать: docker штатный (1..13) или podman? Какие плюсы и минусы?

    paran0id
    @paran0id
    Умный, но ленивый
    Кроме докера из штатных репов, есть ещё свеженький docker-ce из официальных репов докера.
    Ответ написан
    Комментировать
  • Как заблокировать доступ из других стран?

    @loonny
    Используйте плагин IP2Location Country Blocker или iQ Block Country
    Ответ написан
    Комментировать
  • Почему RAM диск оказался не быстрее SSD?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    На самом деле, скорость современного SSD может не уступать RAM, тут больше зависит от интерфейса и реализации рам драйва. Например полная поддержка спецификаций превращает RAM в довольно медленное устройство, а отключив его, можно значительно увеличить скорость.

    Я довольно долго пользоваться рамдиском, перебрал разный софт, долго сидел на softperfect ram disk.
    Но когда перешел на m.2 NVME ssd, понял что рамдиск не нужен.
    Ответ написан
    4 комментария
  • Как ограничить трафик на pod, пока контейнера в ней полностью не запустились?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Ну это же просто.
    Вместо этого бреда
    readinessProbe:
              initialDelaySeconds: 15
              exec:
                command:
                  - find
                  - /var/www/public/live777.html


    выполняйте в качестве рединесс пробы HTTP или даже сокет реквест на ваш сервис. Пока он не поднимется, трафик не будет идти на это контейнер.

    readinessProbe:
          tcpSocket:
            port: 80
          initialDelaySeconds: 15
          periodSeconds: 30
    Ответ написан
    2 комментария
  • Как редактировать файл .htaccess через PHP?

    SagePtr
    @SagePtr
    Еда - это святое
    Проблема ещё в том, что апач прожорливый, и если пытаетесь защититься при помощи .htaccess от множества запросов - то скорее всего, эти запросы уже положат апач. А ещё, если адресов в чёрном списке будет много - то это сильно замедлит легитимные запросы, потому что при каждом запросе должен будет читаться и парситься .htaccess, который будет очень сильно расти.
    Потому блокировать нужно явно ещё раньше, к примеру, средствами брандмауэра (если не рассматривать внешние способы защиты, при которой эта задача ложится на хостера или промежуточное звено вроде cloudflare, а до сервера доходят уже отфильтрованные запросы).
    При большом объёме - чёрный список должен быть не линейным, т.к. время O(n) нас явно не устраивает, проверки наличия адреса будут занимать много времени, поможет к примеру ipset, хранящий отмеченные адреса в виде хэш-таблицы.
    Ответ написан
    Комментировать
  • Почему ноутбук не включался, а затем через две недели простоя вкючился?

    @microf
    Оффтоп. Извините, не сдержусь. Раз 2 недели, значит карантин выдержал.
    У меня было такое из-за провода
    Ответ написан
    Комментировать
  • Как проверить доступность файла по ссылке через centos, без скачивания?

    paran0id
    @paran0id Куратор тега Linux
    Умный, но ленивый
    curl -X HEAD
    Ответ написан
    Комментировать
  • Как оптимизировать базу данных MySQL (innoDB)?

    @dimuska139
    Backend developer
    1. Включить логирование медленных запросов MySQL, после чего оптимизировать, добавить индексы.
    2. Обратить внимание на то, что индексы могут приводить и к падению производительности, так что неиспользуемые лучше удалять.
    3. Убедиться, что не просто индексы проставлены, а проставлены правильно.
    4. Включить логирование atop на несколько дней, чтобы была возможность понаблюдать, что происходить в системе, когда "начинает виснуть всё". Может быть, вообще не в MySQL дело?
    5. В Laravel запросы делаются к базе с помощью Active Record - бывает так, что вместо JOIN в базу летит гора запросов циклом - это не оптимально.
    6. Как уже выше писали, нужно использовать кеширование - это ощутимо снизит нагрузку.
    Ответ написан
    Комментировать
  • Как перенести DNS c Windows на Linux?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Плохая мысль. Если у вас AD integrated DNS - будут серъезные проблемы с динамическим обновлением записей.

    Можете поэкспериментировать с экспортом-импортом записей, либо создать связку primary secondary зон и по идее primary DNS сервер должен слить все данные на slave\secondary linux
    Ответ написан
    1 комментарий
  • Как спасти разработчика от выгорания? И стоит ли спасать?

    @dmshar
    Очень интересный кейс. И не простой.
    Но, во-первых, что-то у вас не так в организации проекта, если любой может лЁгко снести свой код за два дня до дедлайна. А где копии, а где контроль удаления?
    Есть над чем поработать даже без относительно к ситуации, которую мы рассматриваем.

    Во-вторых, проблема "выгорания" - это проблема психологии. Мне такие проблемы при удаленной работе попадались один раз. И честно говоря, даже при офисной работе с ними справиться не легко - но тут как-бы человек на виду, всегда можно поговорить на диванчике, за чашкой кофе. А на удаленке контакт значительно слабее, поэтому надо сказать , что и шансы на успех будут на порядок ниже.
    Вы должны вообще-то говоря понять, что как только вы - как работодатель и как исполнитель - приняли решение об удаленной работе - все личные проблемы исполнителя остаются вне поля вашего внимания. Вы должны его об этом поставить в известность сразу-же. Это его плата, которую он несет в обмен на удобства его работы дома. Он должен понимать, что это не он, это вы согласились на то, что-бы он не тратил время-деньги на дорогу, на присутсвие в офисе, на завязывание галстука и шнурков на ботинках, на жесткий контроль часов и т.д. "Выгорел" - это не COVID-19 подхватил, не ногу сломал, упав с дивана и не кошка любимая заболела, срочно надо к ветеринару. "Выгорел? - ну пойди соберись и работай дальше. Не можешь - поезжай на Бали, расслабся, как вернешся - подавай резюме на свободную к тому моменту вакансию, тогда и будем решать". Тем более, что участник проекта из новых, а с новыми - всегда легче прощаться, чем с теми, с кем ты сделал десяток проектов. И после десятого совместного проекта я бы "выгорел" - еще потерпел-бы, дав человеку передышку. А если это начинается на втором-третьем месяце первого проекта?

    Еще одно. "Выгорел" - это один кейс. "Сотрудник снес свой код, сорвав дедлайн" - это совершенно другой. Вообще-то говоря он нанес вам (вашей фирме) урон, материальный. Вы с ним об этом говорили? Вы ему объясняли, что срыв дедлайна - это удар не по абстрактной фирме или абстрактному заказчику - это в первую очередь удар по коллегам, работающим вместе с ним на проекте. Возможно - лишении их премии. Вы спросили его, как он собирается компенсировать этот урон? Что он вам ответил?

    Пока писал - понял, что на самом деле тут таки таки два разных решения.

    Первое, если бы просто "выгорел". Тут есть правило менеджмента "управляемость такая-же важная характеристика сотрудника, как его квалификация". И не важно, что "для своего уровня неплохой". Неплохой, но слабоуправляемый. Найдете другого, но впредь при приеме на работу смотрите не только на квалификацию, но и на его социально-психологические особенности. Поэтому алгоритм - "беседа - выяснение причин - и если не помогло - то прощание".

    Второе - "удалил код". После такого - решение однозначно. Прощание без финансовой компенсации, без сожаления и без "простите меня пожалуйста".

    Ну вот как-то так.
    Удачи вам в решении проблемы.
    Ответ написан
    1 комментарий
  • Как отредактировать огромный SQL-файл?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Почему не сделать 2 дампа

    1. структура
    2. данные

    Есть еще более продвинутый способ использовать утилиты снхронизации данных. Они обрабатывают более сложные случаи.
    Ответ написан
    Комментировать
  • Расскажите о РЕАЛИЯХ удаленной работы?

    Robur
    @Robur
    Знаю больше чем это необходимо
    есть ли шанс найти работу, при которой условия труда будут позволять хотя бы немного иметь свободного времени и возможности планировать жизнь?

    Да

    Каковы реалии?

    Работа есть, работа разная, есть говно есть крутотень, все как везде. От факта "удаленки" мало что меняется уже в современном мире (на дворе уже даже не 2000-е)

    Какие условия ставят работодатели?

    По моему опыту - работодатели готовые к удаленке заметно адекватнее "офисных", и условия обычно лучше и разумнее. Хотя сейчас возможно с массовым переходом на удаленку станет по другому, но этого никто не знает

    Насколько сильный контроль за удаленщиками, насколько работодатель отличается от офисного работодателя? Желания попадать в рабство, где будут препарировать за каждую строчку кода тоже нет. Работал в подобных коллективах, хватало максимум на год.


    от работодателя зависит. Но есть момент - тут человека не видно, зато видно работу, вот её главное делать. В офисе зачастую наоборот - главное не опаздывать, сидеть на стуле каждый раз как на тебя смотрит начальник.
    Не хотите в рабство, не идите к рабовладельцам, идите в нормальную компанию. Но опять же, все зависит от компании.
    Ответ написан
    Комментировать
  • Возможно ли в Docker контейнер пробросить локальный IP?

    Запускайте контейнеры с ключом --network host

    Эта опция установит host-режим для сети контейнера.

    Но это отключит мэппинг портов, опции -p 8080:80 будут игнорироваться. Если контейнер слушает на 80-м порту, это будет именно 80-й порт хоста. Соотв. не получится запустить одновременно несколько одинаковых сервисов в таком режиме.
    Ответ написан
    Комментировать
  • Какой командой запустить скрипт ruby на linux независимо от расположения?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Смотрите переменную path все что в ней то запускается
    Ответ написан
    Комментировать
  • Какой есть бесплатный Linux шлюз с функцией просмотра URL запросов клиентов?

    ky0
    @ky0 Куратор тега Системное администрирование
    Миллиардер, филантроп, патологический лгун
    Любой прокси + отправка его логов в ELK. В кибане сможете строить какие захотите отчёты - хоть по айпишникам, хоть по урлам с доменами.
    Ответ написан
    Комментировать