A lightweight IOT application server with a hard shell written for node.js
Go to file
AJ ONeal 4b80b25672 merge 2017-01-03 00:04:56 -07:00
bin Houston, this is big bird. We are multicore! 2015-11-04 09:22:00 +00:00
boot note additional keys 2016-03-29 16:00:19 -04:00
etc include special and auto cert dirs 2016-03-28 21:12:35 -04:00
lib pull config.js back in (preparing for a future with sqlite3) 2016-03-29 15:55:05 -04:00
snippets add undo instructions 2015-02-23 19:30:34 +00:00
tests apppath => pagespath 2015-11-21 20:47:28 +00:00
.gitignore remove unused files 2015-11-28 05:44:52 +00:00
LICENSE open source, again 2015-11-28 06:14:03 +00:00
README.md auto-update banner 2016-12-30 02:41:34 -07:00
install.sh include special and auto cert dirs 2016-03-28 21:12:35 -04:00
package.json update deps 2016-03-28 19:36:48 -04:00
walnut.js load services 2015-11-18 11:44:22 +00:00

README.md

About Daplie: We're taking back the Internet!

Down with Google, Apple, and Facebook!

We're re-decentralizing the web and making it read-write again - one home cloud system at a time.

Tired of serving the Empire? Come join the Rebel Alliance:

jobs@daplie.com | Invest in Daplie on Wefunder | Pre-order Cloud, The World's First Home Server for Everyone

walnut

Small, light, and secure iot application framework.

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