iburakov / my-itmo-ru-to-ical

Сервис, который ходит на my.itmo.ru за расписанием и экспортирует его как iCalendar с публичной ссылкой.
MIT License
49 stars 6 forks source link

Ссылка активна, но страница по ней не отвечает #7

Closed ICHetverin closed 1 month ago

ICHetverin commented 2 months ago

Все сделал по инструкции Cсылка активна, но переходя по ней попадаешь на страницу, которая не отвечает. Пробовал вставлять эту ссылку в iCloud календарь - пишет, что страница долго не отвечает Пробовал для надежности сменить пароль в ису. Ничего из этого не сработало - помогите пожалуйста. Студент 1 курса ИС, возможно инфа еще в системе не подгрузилась для меня, как студента, хотя расписание уже есть. Не могу понять в чем проблема.

iburakov commented 2 months ago

Не могу сказать, в чём именно у тебя проблема, дебажить всё равно придётся самому, но могу покидать вариантов и советов)

В целом - пробуй тестировать разные компоненты системы по отдельности. Так сможешь изолировать то, с чем проблема.

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

Убедиться, что с самим приложением всё в порядке, сможешь, сделав запрос к сервису с того же хоста, где контейнер.

Пример успешного запроса-ответа (правда, календарь у меня уже пустой):

iburakov@digitalocean:~$ curl -v http://localhost:35601/calendar/<...>
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 35601 (#0)
> GET /calendar/<...> HTTP/1.1
> Host: localhost:35601
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: text/calendar
< Content-Length: 67
<
BEGIN:VCALENDAR
VERSION:2.0
PRODID:my-itmo-ru-to-ical
* Connection #0 to host localhost left intact
END:VCALENDAR

Убедись, что код ответа 200. Если не 200, то смотри подробности в логах сервиса с docker logs.

Если сервис исправен, то проблема с сетью. Чекни в docker ps, что контейнер забинден на 0.0.0.0, чтобы он слушал подключения на всех сетевых интерфейсах, а не только на loopback aka localhost.

Ты разворачиваешь это всё на VPSке с фиксированным "белым" IP-адресом, верно? Если нет, то стоит, это самый очевидный способ захостить такой круглосуточный сервис, до которого всегда можно достучаться извне.

Попробуй захостить на машине другой сервис и достучаться до него извне. Можешь использовать python3 -m http.server --bind 0.0.0.0 8080, чтобы ничего не ставить.

И осторожнее с публикацией таких ссылок, а то кто угодно сможет смотреть твоё личное расписание в универе или даже забрутить твой пароль от ИСУ по словарям, если он слабый :)

iburakov commented 1 month ago

Пока закрою ишью из-за неактивности.

Если ещё нужна помощь, то можешь смело переоткрывать и писать больше подробностей.

Если же нашёл решение, то будет круто, если поделишься им тут с другими по возможности)