Hoardr is a self hosted open source (basic) alternative to pocket
- node.js
- express
- passport
- gulp
- socket.io
- convict
- browserify
- hbsfy
- envify
- handlebars
- stylus
- nib
- bootstrap
- fontawesome
- jquery
- node-read
brew/apt-get install nodejsbrew/apt-get install redisbrew/apt-get install mongodbnpm install -g mochanpm install -g gulpnpm install
http://localhost:3000/auth/facebook/callbackhttp://localhost:3000/auth/google/callback
- Create an application on mandrill
PORT- Port exposed by this component.- example:
3000 SERVICE_NAME- The name of your fantastic service/platform!- example:
Express Passport Application DEBUG- Debug output (* for all) (optional)- example:
* NODE_ENV- Environment ('development', 'staging', 'production')- example:
development DOMAIN- The domain the service is running on- example:
http://localhost:3000 SECURE_DOMAIN- HTTPS endpoint of the domain (only for production)- example:
https://yourdomain.com CLIENT_API_PATH- Path to the client REST api (relative)- example:
/api MONGO_URL- MongoDB url (including authentication)- example:
mongodb://user:pass@localhost:27017/mydatabase REDIS_URL- Redis url (including authentication)- example:
redis://user:pass@localhost:6379 REDIS_DB- Redis database number (0-15)- example:
1- defaults to0 REDIS_SESSION_PREFIX- Prefix for redis session entries (optional)- example:
sess: APPSECRET- Application session secret- example:
sOmeCrAzYhAsH894372 SESSION_KEY- Application session secret (optional)- example:
express.sid(defaults toconnect.sid) FACEBOOK_CLIENT_ID- Facebook application client id- example:
abcdefghijklmnopqrstuvxyz1234567890 FACEBOOK_CLIENT_SECRET- Facebook application client secret- example:
abcdefghijklmnopqrstuvxyz1234567890 FACEBOOK_CALLBACK_URL- Facebook application callback url- example:
http://yourdomain.com/auth/facebook/callback GOOGLE_CLIENT_ID- Google application client id- example:
abcdefghijklmnopqrstuvxyz1234567890 GOOGLE_CLIENT_SECRET- Google application client secret- example:
abcdefghijklmnopqrstuvxyz1234567890 GOOGLE_CALLBACK_URL- Google application callback url- example:
http://yourdomain.com/auth/google/callback MANDRILL_API_KEY- Mandrill API key- example:
abcdefghijklmnopqrstuvxyz1234567890 MANDRILL_SENDER- Mandrill email sender address- example:
John Doe <john@doe.com> EMAIL_VERIFICATION_ROUTE- Email verification route- example:
http://yourdomain.com/auth/local/verify
npm test
- set environment variables
gulp- alternatively create a shellscript for the above (for development)
- navigate your browser to
http://localhost:PORT
#!/bin/sh
export PORT=3000 \
# override port if argument is present
if [ $1 ]; then
export PORT=$1
fi
export SERVICE_NAME="Hoardr Web Service" \
export DEBUG="*,-engine:polling" \
export NODE_ENV="development" \
export DOMAIN="http://localhost:3000" \
export SECURE_DOMAIN="https://localhost:3000" \
export CLIENT_API_PATH="/api" \
export MONGO_URL="mongodb://localhost/hoardr" \
export REDIS_URL="redis://localhost:6379" \
export REDIS_DB=0 \
export REDIS_SESSION_PREFIX="sess:" \
export APPSECRET="somecrazyhash" \
export SESSION_KEY="express.sid" \
export FACEBOOK_CLIENT_ID="000000000000000" \
export FACEBOOK_CLIENT_SECRET="000000000000000000000000000000000000000000000" \
export FACEBOOK_CALLBACK_URL="http://localhost:3000/auth/facebook/callback" \
export GOOGLE_CLIENT_ID="000000000000000000000000000000.apps.googleusercontent.com" \
export GOOGLE_CLIENT_SECRET="000000000000000000000000000000" \
export GOOGLE_CALLBACK_URL="http://localhost:3000/auth/google/callback" \
export MANDRILL_API_KEY="000000000000000000000000000000" \
export MANDRILL_SENDER=" <noreply@expresspassportapp.com>" \
export EMAIL_VERIFICATION_ROUTE="http://localhost:3000/auth/local/verify" \
gulp test && gulp- UI design needs work
- tagging of articles
- better content aggregation (fork node-read and adjust for specific needs)
- lots more..
