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 nodejs
brew/apt-get install redis
brew/apt-get install mongodb
npm install -g mocha
npm install -g gulp
npm install
http://localhost:3000/auth/facebook/callback
http://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 <[email protected]>
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=" <[email protected]>" \
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..