No description
Find a file
2026-03-27 09:41:30 -04:00
auth Initial commit — asset browser web app 2026-03-27 09:18:39 -04:00
public Remove unused defaultCustomerId/Name config; add README 2026-03-27 09:41:30 -04:00
scripts Initial commit — asset browser web app 2026-03-27 09:18:39 -04:00
.env.example Initial commit — asset browser web app 2026-03-27 09:18:39 -04:00
.gitignore Initial commit — asset browser web app 2026-03-27 09:18:39 -04:00
ecosystem.config.js Initial commit — asset browser web app 2026-03-27 09:18:39 -04:00
package-lock.json Initial commit — asset browser web app 2026-03-27 09:18:39 -04:00
package.json Initial commit — asset browser web app 2026-03-27 09:18:39 -04:00
README.md Remove unused defaultCustomerId/Name config; add README 2026-03-27 09:41:30 -04:00
server.js Initial commit — asset browser web app 2026-03-27 09:18:39 -04:00
syncroStats.js Initial commit — asset browser web app 2026-03-27 09:18:39 -04:00

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