Это читалка новостных лент (rss и atom). Я использую ее, чтобы узнать что нового запостили на Хабре, VC, rutracker, и т.д. Моей целью было создать простой интерфейс, который позволил бы быстро с клавиатуры просмотреть подписки, удалить прочитанное, а интересное отложить в избранное.
Навигация клавишами «↑» и «↓», удалить — «del», добавить в избранное — «f», забанить категорию — «b». Когда записи кончаются, загружаются следующие 10.
Серверная часть сделана на Crystal. Я выбрал этот язык, потому что хотелось использовать мой любимый Ruby-подобный синтаксис и не хотелось держать интерпретатор с окружением ради такой мелочи. В итоге получилась пара бинарников без внешних зависимостей.
Первый запускается по крону, скачивает ленты, парсит данные и складывает их в базу данных sqlite.
Второй реализует web-сервер, который отдает статику и данные через REST API.
Клиентская часть — это приложение на Vue.js всего с парой компонентов.
Как полагается, есть темная тема оформления.
Все вместе собирается в образ Docker на основе Alpine Linux размером всего 19Мб. У меня он работает на локальной машине.
docker pull kereal/feedread
docker run -idt --name feedread -p 3008:80 kereal/feedread
open http://localhost:3008
git clone https://github.com/kereal/feedread
cd feedread
make
git clone https://github.com/kereal/feedread
cd feedread
make docker
Я увлекаюсь программированием для web, люблю всякие Linux-серверы и открыт для общения и предложений в этой сфере. По всем вопросам пишите на [email protected]