FortNotes is a highly secure online private information manager based on the AES encryption in the browser.
Node.js (at least v14) and NPM should be installed beforehand.
Please follow the official instruction.
...
- SQLite
- PostgreSQL
- MySQL & MariaDB
- Microsoft SQL Server
| Name | Default | Description |
|---|---|---|
| FORTNOTES_LOG_LEVEL | false |
verbosity level based on the pino library (levels: fatal, error, warn, info, debug, trace, silent) |
| FORTNOTES_HTTP_HOST | 0.0.0.0 |
interface to accept incoming connections |
| FORTNOTES_HTTP_PORT | 4000 |
the port to accept incoming connections (if set to 0 a first available random port will be taken) |
| FORTNOTES_HTTP_BODY_LIMIT | 8 MiB | defines the maximum payload (in bytes) the server is allowed to accept |
| FORTNOTES_HTTP_TRUST_PROXY | false |
if enabled the server will have knowledge that it's sitting behind a proxy and that the X-Forwarded-* header fields may be trusted, which otherwise may be easily spoofed |
| FORTNOTES_GRAPHQL_PATH | /graphql |
the path for GraphQL server to listen on (main entry point) |
| FORTNOTES_GRAPHQL_CORS | false |
cross-origin resource sharing activation |
| FORTNOTES_GRAPHQL_HEALTH_CHECK | true |
additional path /.well-known/apollo/server-health to determine if a server is available and ready to start serving traffic |
| FORTNOTES_JWT_SECRET_SIZE | 64 |
size (in bytes) used for random jwt secret generation |
| FORTNOTES_JWT_SECRET | random string | if not provided will be randomly generated |
| FORTNOTES_JWT_ACCESS_TOKEN_EXPIRE_TIME | 10 minutes | access token lifetime (in seconds) |
| FORTNOTES_JWT_REFRESH_TOKEN_EXPIRE_TIME | 30 days | refresh token lifetime (in seconds) |
| FORTNOTES_JWT_REFRESH_TOKEN_SIZE | 96 |
refresh token size to randomly generate (in bytes) |
| FORTNOTES_DB_DIALECT | sqlite |
the dialect of the database you are connecting to (supported: mysql, sqlite, postgres, mssql) |
| FORTNOTES_DB_STORAGE | ./db.sqlite |
db file name (only used by sqlite, can be :memory:) |
| FORTNOTES_DB_DATABASE | the name of the database | |
| FORTNOTES_DB_USERNAME | the username which is used to authenticate against the database | |
| FORTNOTES_DB_PASSWORD | the password which is used to authenticate against the database | |
| FORTNOTES_DB_HOST | localhost |
the host of the relational database |
| FORTNOTES_DB_PORT | dialect specific | the port of the relational database |
| FORTNOTES_DB_POOL_MIN | 0 |
minimum number of connection in pool |
| FORTNOTES_DB_POOL_MAX | 5 |
maximum number of connection in pool |
| FORTNOTES_DB_POOL_IDLE | 10000 |
the maximum time (in milliseconds) that a connection can be idle before being released |
Get the latest version of source files:
git clone git@github.com:fortnotes/api.git
cd apiThen install local dependencies:
npm installNow you can start it like this:
DEBUG=* npm run devFull API documentation is available in local playground.
It's possible to run all tests locally:
npm test| Name | Description |
|---|---|
| FORTNOTES_API_ENDPOINT | GraphQL API endpoint to test |
Tests are also run on GitHub Actions for node versions 14.x and 16.x.
fortnotes is released under the AGPL-3.0 License.