I'm Leselys, your very elegant RSS reader. Try me right now (password: demo)!
No bullshit apps for Android, iPhone, etc. Just a responsive design and for every device.
Leselys is Heroku ready.
Two requirements: Mongodb and Python.
In order to install leselys you'll need some dependencies: :
apt-get install build-essential python-dev python-pip
apt-get install libxslt1-dev libxml2-dev python-libxml2 python-libxslt1
And install your MongoDB.
pip install leselys
leselys init leselys.ini
leselys adduser leselys.ini
leselys serve leselys.ini
# In another terminal
leselys worker leselys.ini
Open your browser at http://localhost:5000
.
Advanced setup with MongoDB for storage and Redis for session on Heroku. You will also need the Heroku Scheduler add-on to refresh your feeds.
All Heroku dependencies like Pymongo
, gunicorn
and redis
are in requirements.txt
file, so everything will be installed automagically.
git clone git@github.com:socketubs/leselys.git
cd leselys
heroku create
heroku addons:add mongohq:sandbox
heroku addons:add redistogo:nano
heroku addons:add scheduler:standard
heroku addons:open scheduler
# Add "sh heroku.sh && leselys refresh heroku.ini" job every 10 minutes
# And "sh heroku.sh && leselys retention heroku.ini" job every day
git push heroku master
Don't forget to create a Leselys account with heroku run "bash heroku.sh && leselys adduser heroku.ini"
.
Import your Google Reader OPML file right now!
This is how to update your Leselys (on Heroku): :
git pull
git push heroku master
heroku restart
If you use personnal VPS, just git pull
and restart your Leselys process.
Storage and session backends are Python modules, you can easily write your own. Take a look at the MongoDB storage backend.
Leselys automagically fetch new stories with it's refresher worker, and automagically (again), purge our stories database with it's retention task.
Python 3 support:
- docopt: True
- feedparser: True
- lxml: True
- pymongo: True
- celery: True
- celery-with-mongodb: True
- requests: True
- py-bcrypt: False (look at bcrypt)
- itsdangerous: False
- flask: False
- leselys: False