Your personal content curation service.
Nunux Keeper allow you to collect, organize, and display articles or medias you found on the Internet.
Please refer to the new version of this project
- Connect with your Google account (OAuth2) or with Mozilla Persona
- Save, classify and index documents.
- A document can be an html page, notes, images and more!
- Documents attached medias are also saved.
- Search a document with powerful full text queries.
- Access from your mobile or your computer. It's fully responsive.
- Easily save web content while surfing thanks to the awesome bookmarklet.
- Share a document on a public page.
- Build your own client application thanks to the RESTFul JSON API.
- Link your account with Twitter and keep your tweets.
- Import your bookmarks from Pocket
- Store medias on the local disk or on S3
The backend is using Node.js. All documents are stored in a MongoDB and are indexed with ElasticSearch using the MongoDB river. Redis is optional, but can be used to provide a message queuing system to download medias in background.
The frontend is using AngularJS and for the visual is using LESS with Twitter Bootstrap 3.
This installation procedure is from scratch. You can find below an easiest installation procedure thanks to Docker!
- Git
- Node.js ~v0.10.0
- MongoDB ~v2.4
- Elasticsearch v0.90.10
- Redis ~v2.8.0 (optional)
- Imagemagick
sudo aptitude install git nodejs mongodb-server redis-server imagemagick
sudo aptitude install openjdk-7-jre wget
ES_HOME /opt/Elasticsearcharch
(cd /tmp && wget https://download.elasticsearch.org/elasticsearch/elasticsearchsticsearch/elasticsearch-0.90.10.tar.gz -O pkg.tar.gz && tar zxf pkg.tar.gz && mv elasticsearch-* $ES_HOME)
$ES_HOME/bin/plugin -install elasticsearch/elasticsearch-mapper-attachments/1.9.0
$ES_HOME/bin/plugin -install com.github.richardwilly98.elasticsearch/elasticsearch-river-mongodb/1.7.3
Connect to mongodb and enabled replicaset:
$ mongo
> cfg = { "_id" : "rs0", "version" : 1, "members" : [ { "_id" : 0, "host" : "localhost:27017" } ] }
> rs.initiate(cfg)
sudo npm install -g grunt-cli
mkdir -p /opt/node/keeper && cd $_
git clone [email protected]:ncarlier/nunux-keeper.git
cd keeper
npm install
See etc/default/dev.env for configuration details.
npm start
Open your browser, go to http://localhost:3000 and enjoy!
Or a cool docker hosting service.
# Start Redis
docker run --name redis -d ncarlier/redis
# MongoDB and ElasticSearch
docker run --name mongodb -d ncarlier/mongodb
# Don't forget to initiate the new replica set: rs.initiate()
# And ElasticSearch (linked with MongoDb replica)
docker run --name elasticsearch --link mongodb:mongodb -d ncarlier/elasticsearch
# Get and run Keeper
docker run \
--name="keeper-server" \
--link mongodb:db \
--link elasticsearch:elasticsearch \
--link redis:redis \
--env-file="./etc/env.conf" \
-d \
ncarlier/keeper
# (Optional) Run Keeper downloader deamon
# Only if you set APP_DOWNLOADER="async-redis"
docker run \
--name="keeper-resource-downloader" \
--link mongodb:db \
--link elasticsearch:elasticsearch \
--link redis:redis \
--env-file="./etc/env.conf" \
-d \
ncarlier/keeper resource-downloader
# Enjoy!
See etc/default/dev.env for configuration details.
NUNUX Keeper
Copyright (c) 2014 Nicolas CARLIER (https://github.com/ncarlier)
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.