Files
aura-crm/README.md
T

60 lines
2.4 KiB
Markdown

# Aura CRM Platform
A self-hosted CRM for repair shops / service centers — order tracking (Kanban),
clients, cartridge refill batches, inventory, payroll, loyalty, cash register,
client notifications (Telegram/MAX/VK/SMS), PDF documents (invoice/act/receipt),
and more.
Two services, one platform:
- **`core/`** — authentication, staff, roles, module registry. No CRM logic
of its own; it exists so multiple business apps (`production/` is the first
one) can share one login and one staff/roles system.
- **`production/`** — the CRM itself (Go+Fiber backend, React+Vite frontend).
Has no login of its own — it verifies JWTs `core` issues.
## Install
Requires Docker and the `docker compose` v2 plugin.
```bash
git clone <this-repo-url> aura-crm
cd aura-crm
./install.sh
```
The script will:
1. Ask for your admin account (name/email/password) and business name.
2. Generate every secret involved (JWT signing key, database passwords,
MinIO keys, the module token `core` and `production` use to authenticate
to each other) — you never type or invent a secret by hand.
3. Start `core`, wait for it to come up, and let it bootstrap your admin
account automatically.
4. Register `production` as a module against `core`'s API, capturing the
token that lets the two services talk to each other.
5. Start `production` with everything already wired in.
Re-running `./install.sh` after a successful install is safe — it detects
existing `.env` files and skips straight to `docker compose up` for both
services (useful after a reboot, or to pick up a rebuild).
When it's done, the CRM is at `http://localhost:18092`, logged in as the
account you just created. See the script's own "Going public" note at the
end for what to change if you want a real domain in front of it.
## What's optional
Everything in `production/.env.example` beyond the required
Postgres/MinIO/JWT/core-registration block is an optional integration —
AI-assisted intake (Gemini), Telegram/MAX/VK/SMS client notifications, IMEI
lookup, self-hosted Telegram Bot API, wholesale supplier scraping, and
`deploy-agent`'s self-update button. Each one fails soft (disabled, not
crash) when its env vars are unset — turn on only what you need, whenever
you need it, from the app's own Settings page after install (most of these
are editable there without touching `.env` again).
## License
MIT — see `LICENSE` in each service directory.