Перейти к содержимому

← Все статьиСайты и SEO

· ~1 мин чтения ·

Заявки с сайта терялись молча: права на папку в Docker и как не допустить такого

На сайте компании, который я запускал для клиента, форма заявки работала безупречно: посетитель заполнял поля, видел сообщение об успехе. Но когда я проверял всю цепочку целиком, оказалось, что заявка не сохраняется нигде. Ни в файл, ни в уведомления. Для бизнеса это худший вид ошибки — всё выглядит исправным, а клиенты уходят без ответа.

Как нашлась причина

Я отправлял тестовую заявку, чтобы проверить почтовые уведомления. Письмо не ушло, и по пути я посмотрел, что с записью в файл. Оказалось, что папка data, подключённая к контейнеру, на сервере принадлежала пользователю root — она была создана при первой настройке. Приложение внутри контейнера работает от обычного пользователя с идентификатором 1000, и запись падала с ошибкой EACCES. Ошибка попадала только в журнал контейнера, а посетителю возвращался успешный ответ.

Почему это опасно

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

Что исправить

Сама правка проста: сменить владельца папки на тот идентификатор, под которым работает контейнер (chown -R 1000:1000 data). Но важнее три системных изменения. Первое: после любого деплоя с томом проверяйте запись реальной тестовой заявкой, а не по открывшейся странице. Второе: ошибка записи не должна скрываться — форма обязана вернуть сбой, а в уведомления должно уйти предупреждение. Третье: заявка не должна зависеть от одного места хранения, пусть она одновременно уходит в файл, на почту и в мессенджер.

Что почитать дальше

Надёжный приём заявок — это половина дела, вторая половина — удобная работа с ними. Если вы подумываете, куда лучше складывать обращения, посмотрите разбор интеграции вместо новой CRM, а при заказе нового сайта ответственность за такие мелочи входит в разработку.

Связанные услуги

Читайте также

Ещё по теме «Сайты и SEO»

← Все статьи блога · Кейсы