Page that allows you to read news without ads. Simply provide website URL and click "Extract" to scrap the selected page and receive a pure list of article titles and their direct urls.
You can also save your extract to DB.
This app is built as a Docker application so it can be easily run and deployed on different environments. It is managed with docker-compose and it consists of 2 containers (services):
- app - developed in Flask, Python framework for web application
- mongo - Mongo database used by Flask app
For development and debug purposes you can run Flask application locally (outside Docker).
- Create Python virtual env and install the requirements
- example for Linux
python3 -m venv venv source venv/bin/activate pip install -r backend/requirements.txt
- Run Docker service for mongo DB and DB client
sudo docker-compose up mongo sudo docker-compose up mongo-express
- Create DB user
- login to Mongo DB using initial creds
sudo docker exec -it [container] mongo admin --username root --password secret
- create database and user dedicated to the application
db.getSiblingDB('simple-app-db').createUser({user:'user', pwd:'pass', roles:[{role:'readWrite',db:'simple-app-db'}]})
- Define environment variables
FLASK_ENV=env MONGO_URI=mongodb://user:pass@localhost:27017/simple-app-db
- Run application
python manage.py runserver
Database and user are created automatically while mongo DB initialization, using mongo-init.js.
- Simply run Docker services
sudo docker-compose up mongo sudo docker-compose up mongo-express sudo-docker-compose up app
-
Update mongo-init.js
db.auth('admin-user', 'admin-pass') db = db.getSiblingDB('simple-app') db.createUser( { user: "user", pwd: "pass", roles: [ { role: "readWrite", db: "simple-app" } ] } );
-
Update docker-compose.yml
services: app: environment: MONGO_URI: valid-mongo-uri FLASK_ENV: prod mongo: environment: MONGO_INITDB_ROOT_USERNAME: admin-user MONGO_INITDB_ROOT_PASSWORD: admin-pass MONGO_INITDB_DATABASE: admin
-
Run application
sudo docker-compose up mongo sudo-docker-compose up app