fortnotes-server v0.0.1
FortNotes Server
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 fortnotesIn Linux this can be done as a root:
sudo npm install -g fortnotesThen to start a server with default options:
fortnotesUsage
General way of usage:
fortnotes [options]Full list of available options can be provided by the fortnotes application:
fortnotes --helpTo run FortNotes Server with the specific configuration:
fortnotes --config ~/.config/fortnotes/config.jsonWhere 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 serverInstall global dependencies:
sudo npm install -g apidoc eslint node-devThen install local dependencies:
npm installNow you can start it like this:
node-dev ./bin/cli.js --config ./tests/configs/sqlite.json --debugTo see sub-system log details:
DEBUG=* node ./bin/cli.js --config ./tests/configs/sqlite.jsonTo make this setup global with npm:
sudo npm linkOr manually:
sudo ln -sr . /usr/lib/node_modules/fortnotes
sudo ln -s /usr/lib/node_modules/fortnotes/bin/cli.js /usr/bin/fortnotesFull 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 ~/.config/fortnotes/config.json --testTests are also run on Travis CI for node versions 0.10.x, 0.12.x and iojs.
License
fortnotes is released under the GPL-3.0 License.
11 years ago