This document outlines configuration options which aren't exposed via N1's preferences interface, but may be useful.
N1 needs to fetch mail from a running instance of the Nylas Sync Engine. The Sync Engine is what abstracts away IMAP, POP, and SMTP to serve your email on any provider through a modern, RESTful API.
By default the N1 source points to our hosted version of the sync-engine; however, the Sync Engine is open source and you can run it yourself.
-
Install the Nylas Sync Engine in a Vagrant virtual machine by following the installation and setup instructions.
-
Once you've installed the sync engine, add accounts by running the inbox-auth script. For Gmail accounts, the syntax is simple:
bin/inbox-auth [email protected]
-
Start the sync engine by running
bin/inbox-start
and the API viabin/inbox-api
. -
After you've linked accounts to the Sync Engine, open or create a file at
~/.nylas/config.cson
. This is the config file that N1 reads at launch.Replace
env: "production"
withenv: "local"
at the top level of the config. This tells N1 to look atlocalhost:5555
for the sync engine. If you've deployed the sync engine elsewhere, add the following block beneathenv: "local"
:syncEngine: APIRoot: "http://mysite.com:5555"
NOTE: If you are using a custom network layout and your sync engine is not on
localhost:5555
, useenv: custom
instead along with your alternate IP for the API Root, for example192.168.1.00:5555
env: "custom" syncEngine: APIRoot: "http://192.168.1.100:5555"
Copy the JSON array of accounts returned from the Sync Engine's
/accounts
endpoint (ex.http://localhost:5555/accounts
) into the config file at the path*.nylas.accounts
.N1 will look for access tokens for these accounts under
*.nylas.accountTokens
, but the open source version of the sync engine does not provide access tokens. When you make requests to the open source API, you provide an account ID in the HTTP Basic Auth username field instead of an account token.For each account you've created, add an entry to
*.nylas.accountTokens
with the account ID as both the key and value.The final
config.cson
file should look something like this:"*": env: "local" nylas: accounts: [ { server_id: "{ACCOUNT_ID_1}" object: "account" account_id: "{ACCOUNT_ID_1}" name: "{YOUR NAME}" provider: "{PROVIDER_NAME}" email_address: "{YOUR_EMAIL_ADDRESS}" organization_unit: "{folder or label}" id: "{ACCOUNT_ID_1}" } { server_id: "{ACCOUNT_ID_2}" object: "account" account_id: "{ACCOUNT_ID_2}" name: "{YOUR_NAME}" provider: "{PROVIDER_NAME}" email_address: "{YOUR_EMAIL_ADDRESS}" organization_unit: "{folder or label}" id: "{ACCOUNT_ID_2}" } ] accountTokens: "{ACCOUNT_ID_1}": "{ACCOUNT_ID_1}" "{ACCOUNT_ID_2}": "{ACCOUNT_ID_2}"
Note: {ACCOUNT_ID_1}
refers to the database ID of the Account
object
you create when setting up the Sync Engine. The JSON above should match
fairly closely with the Sync Engine Account
object.
core.workspace.interfaceZoom
: If you'd like the N1 interface to be smaller or larger, this option allows you to scale the UI globally. (Default: 1)