asset_browser/README.md

90 lines
2.3 KiB
Markdown

# Asset Browser
A self-hosted web application for browsing and managing assets pulled from Syncro MSP. Provides role-based access for technicians and clients, barcode label generation, and a label queue for batch printing.
Built by Carmichael Computing.
---
## Requirements
- Node.js 22 or higher
- PM2 (`npm install -g pm2`)
- A Syncro MSP account with API access
- A reverse proxy (nginx recommended) for production
---
## Installation
**1. Clone the repository and install dependencies**
```
git clone https://git.farmtowntech.com/setonc/asset_browser.git
cd asset_browser
npm install
```
**2. Configure environment**
```
cp .env.example .env
```
Edit `.env` and fill in the following:
- `SESSION_SECRET` — a long random string, generate one with:
```
node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"
```
- `SYNCRO_BASE_URL` — your Syncro API base URL, e.g. `https://yoursubdomain.syncromsp.com/api/v1`
- `SYNCRO_API_KEY` — your Syncro API key
**3. Configure the client**
Edit `public/config.js` and update the `syncro` block with your Syncro subdomain and base URL.
**4. Update the PM2 config**
Edit `ecosystem.config.js` and set `cwd` to the absolute path of the installation directory, and update `name` if desired.
**5. Create the first admin user**
```
npm run create-user
```
Follow the prompts. Choose the `superduperadmin` role for full access.
**6. Start the server**
```
pm2 start ecosystem.config.js
pm2 save
```
The server listens on port 3000 by default. Point your reverse proxy at it.
---
## User Management
The `create-user` script handles all user management from the command line:
```
npm run create-user # create a new user (interactive)
npm run create-user list # list all users
npm run create-user deactivate <id> # deactivate a user
npm run create-user reset <id> # reset a user's password
```
---
## Roles
| Role | Access |
|------------------|---------------------------------------------|
| superduperadmin | Full access including server management |
| admin | User management and all standard features |
| tech | Asset browsing, label printing |
| client | Read-only access scoped to their company |