A lightweight IOT application server with a hard shell written for node.js
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
AJ ONeal 9828a19f8c update installer 7 years ago
bin remove symlink 7 years ago
boot removed letsencrypt and other 7 years ago
dist update installer 7 years ago
etc include special and auto cert dirs 8 years ago
lib bail on install 7 years ago
snippets add undo instructions 9 years ago
tests apppath => pagespath 9 years ago
.gitignore remove unused files 9 years ago
.jshintrc add .jshintrc 7 years ago
LICENSE open source, again 9 years ago
README.md add some installer stuff 7 years ago
install.sh update installer 7 years ago
package.json little fixes (typos, missing config, etc) 8 years ago
setup-dev-deps.sh refactoring to use fs config 8 years ago
uninstall.sh update installer 7 years ago
walnut.js removed letsencrypt and other 7 years ago

README.md

walnut

Small, light, and secure iot application framework.

curl https://git.daplie.com/Daplie/daplie-snippets/raw/master/install.sh | bash

daplie-install-cloud

Features

  • IOT Application server written in Node.js
  • Small memory footprint
  • Secure
    • Uses JWT, not Cookies*
    • HTTPS-only
    • AES, RSA, and ECDSA encryption and signing
    • Safe against CSRF, XSS, and SQL injection
    • Safe against Compression attacks
  • Multi-Tentated Application Management
  • Built-in OAuth2 & OAuth3 support
    • Facebook Connect
    • Google Plus

*Cookies are used only for GETs and only where using a token would be less secure such as images which would otherwise require the token to be passed into the img src. They are also scoped such that CSRF attacks are not possible.

In Progress

  • Static Asset Serving via Caddy
  • HTTPS Certificates provisioned via Let's Encrypt
  • HTTPS Key Pinning
  • Heroku (pending completion of PostgreSQL support)
  • GunDB Support
  • OpenID support

Structure

Currently being tested with Ubuntu, Raspbian, and Debian on Digital Ocean, Raspberry Pi, and Heroku.

/srv/walnut/
├── setup.sh (in-progress)
├── core
│   ├── bin
│   ├── boot
│   ├── holepunch
│   └── lib
├── node_modules
├── packages
│   ├── apis
│   ├── pages
│   └── services
├── certs
|   └── live
│       └── example.com
│           ├── fullchain.pem
│           └── privkey.pem
└── var
  • core contains all walnut code
  • node_modules is a flat installation of all dependencies
  • certs is a directory for Let's Encrypt (or custom) certificates
  • var is a directory for database files and such
  • packages contains 3 types of packages

LICENSE

Apache-2.0

See LICENSE