Settings Module
Company & App Settings
The defaults every company needs — currency, fiscal year, number formats, which modules show up — plus install-wide options like login branding, self-registration, and licensing.
Start here
1Before you start
Every setting here lives in one of two scopes, and the tab you’re on tells you which one you’re editing:
- Global Settings — shared across the whole install, regardless of which company is active: app name, default currency/timezone/date & number formats, quick-create and notification toggles.
- Company Settings — specific to whichever company you currently have selected: dashboard period, reporting basis, base locale, and which modules are enabled.
Login Page, self-registration, and the “hide” options live under the Global scope by default but can also be overridden per company (see Brand the login page). License is Global too, and only visible to a Super Admin.
Set up your company
2Set your company basics
On Company Settings:
| Field | Notes |
|---|---|
| Dashboard Period | The default date range the Dashboard opens to for this company. |
| Reporting Basis | Accrual or Cash. Cash-basis hides Receivables/Payables from the sidebar — see what this doesn’t do for what it doesn’t affect. |
| Base Locale | Used for locale-aware formatting elsewhere in the app. |
Click Save Company Settings.
3Choose which modules are visible
Further down the same Company Settings tab is a checklist of every toggleable module — check the ones this company should see in its sidebar. Dashboard, Companies, Users & Roles, and Settings itself aren’t on this list; they’re always on.
This only controls sidebar visibility for this one company — it doesn’t delete any data already recorded in a module you turn off, and turning it back on later brings everything right back.
4Brand the login page
On the Login Page tab, switch between the Global (site-wide default) sub-tab and a per-company one. A visitor who types an email tied to a company with its own branding enabled sees that company’s version, resolved before they even enter a password; everyone else sees the global default.
Turn on Use this custom branding, then set a logo, an optional background image, background/accent colors, and a welcome heading and subtext. Off by default — the standard login screen stays untouched until you opt in.
Common tasks
Setting up real email delivery
By default, every email this app sends — feedback notifications, task reminders, invoice and purchase order emails — goes out through the server’s own bare mail function, which many hosts throttle, block, or dump straight into spam. Connecting a real SMTP account fixes that. This is a Global setting (one connection for the whole install, not per company), on the Email tab.
| Field | Notes |
|---|---|
| Use custom SMTP | Off by default. Nothing below matters until this is on — leave it off and the app keeps using the server’s own mail function exactly as before. |
| SMTP Host | The provider’s outgoing mail server address — see the table below for the common ones. |
| Port | Defaults to 587. Pair with the matching Encryption below. |
| Encryption | None, SSL, or TLS. TLS on port 587 is the modern default nearly every provider expects; SSL usually pairs with port 465 instead. |
| Username | Almost always your full email address. |
| Password | Stored encrypted — never shown again once saved, only whether one is on file. Leave blank on a later save to keep the current one unchanged. See the warning below before typing your real account password here. |
| From Email / From Name | What recipients see as the sender. Some providers (Gmail included) reject or silently rewrite a From address that doesn’t match the account you authenticated as. |
Gmail, Yahoo, and Outlook/Microsoft 365 have all dropped plain-password SMTP access — if 2-Step Verification is on for the account (and for Gmail specifically, it effectively has to be), you need a generated App Password here instead of your everyday login password. Each provider’s own account security settings is where you generate one.
Setting up Gmail specifically
-
Turn on 2-Step Verification
At myaccount.google.com/security, if it isn’t on already. App Passwords aren’t available without it.
-
Generate an App Password
At myaccount.google.com/apppasswords, create one (name it something like “FinAccounting” so you recognize it later). Google shows a 16-character code — copy it now, it won’t be shown again.
-
Fill in the Email tab
Host
smtp.gmail.com, Port587, Encryption TLS, Username your full@gmail.comaddress, Password the 16-character App Password (not your Google account password), From Email the same Gmail address you authenticated as. -
Save, then Send Test Email
Sends to your own address by default. A delivered test confirms the credentials are actually working before anything real depends on them.
Other providers
| Provider | Host | Port / Encryption | Username |
|---|---|---|---|
| Gmail / Google Workspace | smtp.gmail.com | 587 · TLS | Full Gmail address + App Password |
| Outlook / Microsoft 365 | smtp.office365.com | 587 · TLS | Full email address + account password, or an App Password if MFA is on |
| Yahoo Mail | smtp.mail.yahoo.com | 587 · TLS (or 465 · SSL) | Full Yahoo address + App Password |
| Your own domain / hosting provider | Whatever your host’s mail docs list — often mail.yourdomain.com | Whatever your host specifies | Usually your full mailbox address |
| A transactional service (SendGrid, Mailgun, Amazon SES, etc.) | Provider-specific, e.g. smtp.sendgrid.net | 587 · TLS (typical) | Often a fixed value like apikey, with the real API key as the password — check that provider’s SMTP docs |
Whichever you pick, finish with Send Test Email before relying on it — a wrong port or encryption pairing is the most common reason a save “succeeds” but mail still doesn’t go out.
Common tasks
Switching accounting mode or business type
Accounting Mode (Double-Entry vs. Simple) and Business Type (Store vs. Service) aren’t fields on this page — they’re set from the company’s own record in Companies. Changing either one there runs through this module’s settings logic automatically, which is worth knowing about:
- Switching to Simple hides Accounting and Accounts from the sidebar (and reconciles the Chart of Accounts itself); switching back to Double-Entry restores them.
- Switching to Service hides Products and Inventory; switching back to Store restores them.
Both changes are non-destructive — nothing already recorded is ever deleted, only the sidebar visibility changes.
Letting people sign themselves up
On the Login Page → Global sub-tab, turn on Allow people to create their own account and set an Access Code. Anyone using the “Create an account” link on the login page has to enter that code exactly. A self-registered account starts with no company — they’re prompted to create their own and become its admin. The code is stored and shown in plain text deliberately, since you need to be able to copy and hand it out.
Activating your license
On the License tab (Super Admin only), enter your License Key (and, if self-hosting the license server, its URL and item ID), then Save & Activate. Check Now re-verifies against the license server on demand; Deactivate releases this install’s activation. During a trial, the remaining days are shown here; once it lapses, a valid license is required for anyone to use the app.
Reference
Global vs. Company settings
The Overview & Saved Values tab lists every currently-saved setting, its scope (Global or Company), and its live value — useful for confirming what’s actually taking effect without hunting across tabs.
What this module doesn’t do
Switching a company to Cash basis removes Receivables/Payables from its sidebar, but it doesn’t touch REST access or convert any data already recorded under an accrual view.
Once “Hide the login page behind a custom URL” is on, the standard address stops working for anyone not already signed in — only the custom URL you set still works. Bookmark it; turning this back off without it requires direct server/database access.
Settings saves are logged as a single “settings updated” entry in System Logs listing which keys changed — not the specific before/after values for each one.