EasyMarquee — server edition
============================

Runs the whole of EasyMarquee on your own machine, on your own network, and you
use it from a normal web browser. Nothing is sent to us, and no account on our
side is involved: this install has its own database, its own sign-in and its own
30-day trial.

REQUIREMENTS
  Node.js 22.5 or newer  (https://nodejs.org)

START IT
  Windows        : double-click START-WINDOWS.bat
  macOS / Linux  : ./start-mac-linux.sh
  Or by hand     : npm install --omit=dev  &&  npm start

FIRST RUN
  1. Open http://localhost:3700 in a browser.
  2. Enter your email. Because email sending isn't configured, the sign-in link
     is printed in the terminal window - copy it into your browser.
     The first person to sign in owns this install.
  3. On each display device, open the address the app shows you, e.g.
        http://192.168.1.20:3700/player/
     Each display registers itself automatically.

USING IT FROM ANOTHER COMPUTER OR YOUR PHONE
  The dashboard is served to your whole network. On the machine running
  EasyMarquee, click "Another device", then open the address it gives you on
  the other device and enter the code shown. No email needed.

CONFIGURATION (all optional, set as environment variables)
  PORT                 default 3700
  HOST                 default 0.0.0.0 (all network interfaces)
  MARQUEE_DATA_DIR     where the database is kept   (default ./data)
  MARQUEE_MEDIA_DIR    where uploads are kept       (default ./media)
  SMTP_URL             e.g. smtp://user:pass@host:587 - set this and sign-in
                       links are emailed instead of printed to the terminal
  ADMIN_EMAIL          seeds the owner account on first start

BACKING UP
  Copy the data/ and media/ folders. Important: copy ALL of data/, including the
  marquee.db-wal file - the .db on its own can be missing recent changes.

LICENCE
  Free for 30 days, then a one-off licence per install. Your displays keep
  playing either way; only making changes needs a key.
  https://easymarquee.com/#pricing
