Longreader is a Telegram mini app designed to help users save and read long articles conveniently.
You can use this app as publicly deployed by @brzvsk here: https://t.me/ReadWatchLaterBot
โค๏ธ We will appreciate any donations and support to keep the app running for everyone. Please, donate with Telegram Tribute Bot (VISA, Mastercard, MIR, and Wallet payments accepted).
- frontend/: Next.js application for the web interface
- backend/: FastAPI backend service
- telegram-bot/: Kotlin-based Telegram bot service
- nginx.conf: Nginx configuration for reverse proxy
- docker-compose.yml: Docker composition for all services
- Frontend: Next.js
- Backend: FastAPI (Python)
- Telegram Bot: Kotlin, Telegram Bot API
- Database: MongoDB
- Proxy: Nginx
- Container: Docker
- Docker and Docker Compose
- Node.js 18+ (for local development)
- Python 3.8+ (for local development)
- JDK 8+ (for telegram bot development)
- Maven (for telegram bot development)
-
Clone the repository:
git clone https://github.com/brzvsk/longreader.git cd longreader -
Set up environment variables:
- Copy
.env.exampleto.envin bothfrontend/andbackend/directories - Update the environment variables as needed
- Copy
-
Start the application:
docker-compose up -d
This will start all services:
- Frontend on port 3000
- Backend on port 8000
- MongoDB on port 27017
- Nginx on ports 80 and 443
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
yarn install
-
Start the development server:
yarn dev
-
Navigate to the backend directory:
cd backend -
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Start the development server:
uvicorn app.main:app --reload
-
Navigate to the telegram-bot directory:
cd telegram-bot -
Set up environment variables:
- Create a
.envfile with the following variables:BOT_TOKEN=your_telegram_bot_token BOT_USERNAME=your_bot_username MONGODB_URI=mongodb://localhost:27017/database_name
- Create a
-
Build the project:
mvn clean install
-
Run the bot:
mvn exec:java
Project was started by @brzvsk, @goldenluk, and @dreamwa1ker as an experiment. After that it was decided by the party to open source it.
This project is released under the GNU General Public License v3.0. See the LICENSE file for details.