mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-11-14 13:44:41 +08:00
98 lines
3.7 KiB
Markdown
98 lines
3.7 KiB
Markdown
|
# Configuration
|
||
|
|
||
|
This document outlines configuration options which aren't exposed via N1's
|
||
|
preferences interface, but may be useful.
|
||
|
|
||
|
## Running Against Open Source Sync Engine
|
||
|
|
||
|
N1 needs to fetch mail from a running instance of the [Nylas Sync
|
||
|
Engine](https://github.com/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.
|
||
|
|
||
|
1. Install the Nylas Sync Engine in a Vagrant virtual machine by following the
|
||
|
[installation and setup](https://github.com/nylas/sync-engine#installation-and-setup)
|
||
|
instructions.
|
||
|
|
||
|
2. 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 you@gmail.com`
|
||
|
|
||
|
3. Start the sync engine by running `bin/inbox-start` and the API via `bin/inbox-api`.
|
||
|
|
||
|
4. 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"` with `env: "local"` at the top level of the config.
|
||
|
This tells N1 to look at `localhost:5555` for the sync engine. If you've deployed
|
||
|
the sync engine elsewhere, add the following block beneath `env: "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`, use `env: custom` instead along with your alternate IP for the
|
||
|
API Root, for example `192.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.
|
||
|
|
||
|
|
||
|
## Other Config Options
|
||
|
|
||
|
- `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)
|