node package manager
Orgs are free. Discover, share, and reuse code in your team. Create a free org »

fortnotes

FortNotes Server

Build Status NPM version Dependencies Status Gitter

FortNotes is a highly secure online private information manager based on the AES encryption in the browser. This repo is for a new fully redesigned and reworked version. The current stable version can be found on the Bitbucket.

Getting Started

Node.js and NPM should be installed beforehand. Please follow the official instruction.

FortNotes Server is available as an npm package and should be installed globally:

npm install -g fortnotes

In Linux this can be done as a root:

sudo npm install -g fortnotes

Then to start a server with default options:

fortnotes

Usage

General way of usage:

fortnotes [options]

Full list of available options can be provided by the fortnotes application:

fortnotes --help

To run FortNotes Server with the specific configuration:

fortnotes --config ~/.fortnotes/config.json

Where the content of config.json:

{
    "port": 8080,
    "dataLimit": 50,
    "sessionTokenSize": 128,
    "sessionConfirmAttempts": 5,
    "smtpTransport": {
        "service": "gmail",
        "auth": {
            "user": "gmail.user@gmail.com",
            "pass": "userpass"
        }
    },
    "database": "sqlite://./data.sqlite"
}

DBMS Support

  • MySQL & MariaDB
  • PostgreSQL
  • Amazon Redshift (not tested)
  • SQLite

There are some config file examples for mysql, postgres, sqlite in memory and other options.

Config file options

Name Description
debug enable verbose debug mode
test run tests and exit
port HTTP port serving REST API requests
dataSize maximum encrypted data size (notes, tags)
hashSize notes/tags sha512 hash size
dataLimit default amount of returned records in lists of notes, sessions etc.
dataLimitMax maximum amount of returned records in lists
sessionTokenSize generated token size in bytes
sessionConfirmCodeSize generated token confirmation code size in bytes
sessionConfirmAttempts allowed amount of attempts to activate sessions
smtpTransport nodemailer SMTP transport configuration (use direct if not set)
mailOptions nodemailer e-mail message fields
restify server creation options passed to restify package
database database connection options passed to node-orm2 package

Default config options are listed in the config.js.

Development

Get the latest version of source files:

git clone git@github.com:fortnotes/server.git
cd server

Install global dependencies:

sudo npm install -g gulp node-dev

Then install local dependencies:

npm install

Now you can start it like this:

node-dev ./bin/cli.js --config ./tests/configs/sqlite.json --debug

To see sub-system log details:

DEBUG=* node ./bin/cli.js --config ./tests/configs/sqlite.json

Full REST API documentation is built from source files and available online.

Testing

It's possible to run all tests locally with given config:

fortnotes --config ~/.fortnotes/config.json --test

Tests are also run on Travis CI for node versions 0.10.x, 0.12.x and iojs.

License

FortNotes Server is released under the GPL-3.0 License.