Self-installation guide

Restaurant and kitchen printers

This guide sets up your restaurant, bar and room service so staff can take orders, the kitchen sees them on a screen, and each kitchen order ticket (KOT) prints on a thermal printer by itself. Do the steps in the order below: each one uses the one before it.

Where to find it: Food, Events & Services → F&B Restaurant. The Kitchen screen and the Kitchen printers card are behind the Kitchen screen button at the top of that page. Who can use it: owners and managers set everything up. Staff with the kitchen, bar or service skill use the Kitchen screen. The restaurant needs the Restaurant & POS module on your plan; without it the page says "Menus, orders and KOT printing are part of the F&B module."

How to take orders, bill them and post them to a room is in Restaurant and F&B. This page is only the setup.

The setup order

Loading diagram...
  1. Stations are where tickets are made and printed: the kitchen, the bar.
  2. Outlets are where orders are taken: the restaurant, the bar, room service. Each outlet sends its tickets to a default station.
  3. Menu categories and items are what guests order.
  4. Tables let staff raise an order against a table instead of a room.
  5. The Kitchen screen shows each station's tickets on a tablet at the pass.
  6. The print bridge is a small program on a kitchen PC that prints every ticket.

Every new hotel already has one station, Kitchen Station (tickets prefixed KOT), and one outlet, Main Restaurant, that sends its tickets there. If that is all you have, rename them and go to Build the menu.

1. Add your stations

Open Outlets & Stations

Open F&B Restaurant and click the Outlets & Stations tab.

Add a station

Under Production Stations, click Add Station.

Fill in the station

FieldWhat to enter
Station Name (required)What your staff call it, for example "Main Kitchen" or "Lobby Bar".
Code (required)A short code with letters, numbers, hyphens and underscores, for example main_kitchen. It cannot be changed later.
Kind (required)Kitchen, Bar or Other. A Bar station issues BOT (bar order ticket) numbers; the others issue KOT numbers. Creating your first bar station switches BOT ticketing on.
Ticket PrefixWhat is printed at the top of the ticket. Leave it blank for KOT (or BOT for a bar). Up to 8 characters.
Sort OrderWhere it appears in lists. Lower comes first.

Save

Click Create Station. Each station numbers its own tickets, starting again every service day.

The Outlets & Stations tab with two production stations and three revenue centres

The Add Production Station dialog

2. Add your outlets

On the same tab, under Revenue Centres, click Add Outlet.

FieldWhat to enter
Outlet Name (required)For example "Garden Restaurant", "Sunset Bar", "In-Room Dining".
Code (required)As for stations, for example garden_restaurant.
Kind (required)Restaurant, Bar, Room Service, Banquet, Poolside or Other.
Default StationWhere this outlet's tickets print. Choose the kitchen for the restaurant and room service, and the bar station for the bar.
Opens At / Closes AtThe outlet's hours.
Sort OrderWhere it appears in lists.

Click Create Outlet. To change an outlet or station later, click the pencil next to it, change it and click Save Outlet or Save Station.

[!NOTE] A ticket prints at its outlet's Default Station. If an outlet has none, it prints at the kitchen. So an order taken in the restaurant prints in the kitchen, even for a drink. If drinks must print at the bar, take them against your bar outlet.

Only owners and managers can change outlets and stations. Others see "Read-only: You do not have permission to manage outlets or stations."

Spa, laundry, minibar and shop counters are not set up here. They are Service Outlets in the sidebar, covered in Restaurant and F&B.

3. Build the menu

Add categories first

On the Menu Management tab, click Add Category. Enter a Category Name such as "Breakfast", "Mains" or "Beverages", and click Create Category. Add all your categories before your items: an item cannot be added without one.

Then add items

Open the item form

Click Add Menu Item.

Fill in the item

FieldWhat to enter
Category (required)Pick one of your categories.
Item Name (required)The dish as staff and guests see it. Use English or romanised names: the kitchen printer cannot print Devanagari (see troubleshooting).
Price (required)The price in your hotel's currency, for example 450.
Description (Optional)Ingredients, portion or serving style.
OutletShown only when you have more than one outlet. Keep All outlets, or pick the one outlet that sells it.

Save

Click Create Item. It can be ordered straight away.

The Add Menu Item dialog with the category, name, price and outlet fields

The Menu Management tab with category chips and the dishes as cards

The menu tab lists every item, with All Items and one chip per category, and a Search menu items... box. Mark Unavailable takes a dish off sale for now, for example when the kitchen runs out. With a photo, a dish also shows to in-house guests in the Stayantra Go app.

[!TIP] A long menu takes time to type. If you would rather not, Restaurant setup from Setup help enters it for you (150 items per outlet included).

4. Add your tables

On the Tables tab, type the table's name in Table label... (for example "T1" or "Garden 4"), the number of Seats (1 to 50, optional), and click Add (or press Enter). Repeat for each table.

The Tables tab with twelve tables, their status and one reservation

Tables are a list, not a floor plan. The chips All tables, Available, Occupied and Needs cleaning filter them, and Mark clean frees a table after guests leave.

5. Put the Kitchen screen on a tablet

The Kitchen screen shows each station's tickets as they are fired, oldest first. The cook taps Ready when a ticket is cooked.

Open it

On F&B Restaurant, click Kitchen screen. On the kitchen tablet, sign in as the cook and open app.stayantra.com/dashboard/fnb/kds, then add it to the home screen or bookmark it. Kitchen and bar staff do not have F&B Restaurant in their sidebar, so the bookmark is how they get back to it.

Choose the station

Tap the station's name at the top. The tablet remembers it.

The Kitchen screen with its station buttons, the ticket board and the Kitchen printers card below

What the screen shows:

  • Live (or Refreshing every 15 s), then either KOTs print automatically or No printer bridge for this station.
  • One card per ticket with a timer. The card turns amber at 10 minutes and red at 20.
  • Not printed — check the printer. when a ticket has not printed in time.
  • Ready moves a ticket to Ready — waiting for service. Recall brings it back.
  • The printer button reprints a ticket. With a print bridge it goes to the printer ("… sent to the printer."); without one it opens the browser's print window.
  • Nothing to cook right now. when the station is clear.

Staff with the kitchen, bar or service skill can use the Kitchen screen. Everyone else sees "You don't have access to this".

6. Install the kitchen print bridge

The print bridge is a small program that runs on a PC in or near the kitchen. Every few seconds it collects the station's new tickets from Stayantra and prints them on your thermal printer. Nothing else on the PC changes.

What you need

  • A Windows 10 or 11 PC (or any Linux computer) that stays on during service, on the same network as the printer if it is a network printer.
  • Node.js 18 or newer on that PC. You install it in step B.
  • An ESC/POS thermal receipt printer, 58 mm or 80 mm. Epson TM-T82 and TM-T20, Xprinter, Rongta and Sewoo all work.
  • The printer's address:
    • Network printer: its IP address, for example 192.168.1.50. Switch the printer on while holding FEED to print a self-test page that shows it. The print port is 9100.
    • USB printer on Windows: its share path, for example \\localhost\KOT. You set it up in step D.
    • USB printer on Linux: /dev/usb/lp0.

A. Add the bridge in Stayantra

Only owners and managers see the Kitchen printers card.

Open Kitchen printers

Open F&B Restaurant → Kitchen screen and scroll to Kitchen printers.

Name the bridge

Type a name for the PC, for example "Kitchen PC", and click Add printer bridge.

Copy the device token

A green box says "Copy this device token into the print bridge now — it is shown only once." Click Copy and paste the token (it starts with sypb_) into a Notepad file for a moment. Then click I have copied it. If you lose it, click Remove on the bridge and add a new one.

Choose stations and the printer

On the new bridge's row:

  • A new bridge prints for every station. Untick the stations this printer should not print for. Changes save straight away.
  • Under Printer, choose Network (IP:port) or USB / local port.
  • Type the address: 192.168.1.50:9100 for a network printer, or \\localhost\KOT for a shared USB printer on Windows. It saves when you click away.

Set the alert time

Under Alert when a KOT has not printed within, keep 60 seconds or choose 30 seconds to 10 minutes for each station. If a ticket has not printed by then, the kitchen, the managers and the owner are alerted.

The Kitchen printers card showing a new bridge's device token, shown only once

[!WARNING] Keep the token private. Anyone holding it can read this station's tickets. If it leaks, click Remove on the bridge: the token stops working at once.

B. Install Node.js on the kitchen PC (Windows)

  1. On the kitchen PC, open nodejs.org and download the LTS version for Windows (the .msi installer).
  2. Run the installer and keep every default option. Click Next until Install, then Finish.
  3. Check it worked: press the Windows key, type cmd, open Command Prompt, type node -v and press Enter. You should see a version number such as v22.x.x. Anything from v18 up works.

C. Download and unzip the bridge

  1. On the kitchen PC, download the print bridge: stayantra-print-bridge.zip.
  2. Right-click the downloaded file, choose Extract All…, and type C:\ as the destination. Click Extract.
  3. You now have a folder C:\stayantra-print-bridge with six files: README.md, package.json, print-bridge.mjs, escpos.mjs, printer.mjs and config.example.json.

D. Share a USB printer (USB printers only)

Skip this for a network printer.

  1. Install the printer's Windows driver from the maker's website, and print a Windows test page to check it works.
  2. Open Settings → Bluetooth & devices → Printers & scanners, click the printer, then Printer properties.
  3. On the Sharing tab, tick Share this printer and type the share name KOT. Click OK.
  4. The printer's address is now \\localhost\KOT. Type it in the bridge's address field in Stayantra (step A), or in config.json below.

A serial printer can use its port instead, for example COM3.

E. Create config.json

  1. Open the folder C:\stayantra-print-bridge. Right-click config.example.json and choose Open with → Notepad.
  2. You see:
    {
      "STAYANTRA_URL": "https://app.stayantra.com",
      "STAYANTRA_PRINT_TOKEN": "sypb_paste-the-token-from-the-kitchen-printers-screen"
    }
  3. Replace sypb_paste-the-token-from-the-kitchen-printers-screen with your token. Keep the quotation marks.
  4. Click File → Save As…. Set Save as type to All files (*.*), File name to config.json, and Encoding to UTF-8. Click Save.

The folder must now contain config.json (not config.json.txt). If Windows hides file extensions, turn them on in File Explorer under View → Show → File name extensions.

config.json can also hold these optional settings. You rarely need them, because the printer type and address set in Stayantra are used by default:

SettingWhat it does
PRINTER_KINDnetwork or usb. Overrides the setting in Stayantra.
PRINTER_ADDRESSFor example 192.168.1.50:9100 or \\\\localhost\\KOT (in JSON, each backslash is written twice). Overrides the address in Stayantra.
PRINTER_COLUMNSCharacters per line: 42 for 80 mm paper (the default), 32 for 58 mm paper.
POLL_SECONDSHow often it checks for tickets. Default 3.

For a 58 mm printer, the file looks like this:

{
  "STAYANTRA_URL": "https://app.stayantra.com",
  "STAYANTRA_PRINT_TOKEN": "sypb_your-token-here",
  "PRINTER_COLUMNS": 32
}

F. Run it and test

  1. Open Command Prompt and type:
    cd C:\stayantra-print-bridge
    node print-bridge.mjs
  2. It prints [print-bridge 1.0.0] polling https://app.stayantra.com every 3s. Leave the window open.
  3. In Stayantra, the bridge's row on Kitchen printers turns Online · printer ready within a minute.
  4. Fire a test order (see Restaurant and F&B). The ticket prints within a few seconds, and the window says [print-bridge] printed 1 ticket(s).

The Kitchen printers card with the bridge set to a network printer at 192.168.1.50:9100

The bridge's row shows one of:

StatusMeaning
Online · printer readyThe bridge checked in during the last 2 minutes and the printer answered.
Online · printer not answeringThe bridge is running but cannot reach the printer. Check it is on, has paper, and the address is right.
OfflineThe bridge has not checked in for 2 minutes. The PC is off, asleep, offline, or the program was closed.

It also shows last seen and, when the bridge reports a problem, Bridge says: ….

G. Start it automatically with Windows

Closing the Command Prompt window stops the bridge. Make Windows start it by itself, so it survives restarts and power cuts. Use either NSSM or Task Scheduler.

NSSM runs the bridge as a Windows service and restarts it if it stops.

  1. Download NSSM from nssm.cc/download and unzip it. Copy nssm.exe from its win64 folder into C:\stayantra-print-bridge.
  2. Close any Command Prompt window running the bridge.
  3. Press the Windows key, type cmd, right-click Command Prompt and choose Run as administrator.
  4. Run these three commands, one at a time:
    cd C:\stayantra-print-bridge
    nssm install StayantraPrintBridge "C:\Program Files\nodejs\node.exe" "C:\stayantra-print-bridge\print-bridge.mjs"
    nssm set StayantraPrintBridge AppDirectory C:\stayantra-print-bridge
    nssm start StayantraPrintBridge
  5. Check Stayantra shows Online · printer ready.

To stop it later: nssm stop StayantraPrintBridge. To remove it: nssm remove StayantraPrintBridge confirm.

  1. Press the Windows key, type Task Scheduler and open it.
  2. Click Create Task… (not "Create Basic Task").
  3. General tab: name it Stayantra print bridge. Choose Run whether user is logged on or not.
  4. Triggers tab: New…, Begin the task: At startup, OK.
  5. Actions tab: New…, Start a program.
    • Program/script: C:\Program Files\nodejs\node.exe
    • Add arguments: print-bridge.mjs
    • Start in: C:\stayantra-print-bridge
  6. Settings tab: tick If the task fails, restart every 1 minute, and untick Stop the task if it runs longer than.
  7. Click OK and enter the Windows password when asked. Restart the PC and check Stayantra shows Online.

Also set the PC never to sleep: Settings → System → Power (or Power & battery), set When plugged in, put my device to sleep after to Never.

Linux instead of Windows

Install Node.js 18 or newer, unzip the bridge to /opt/stayantra-print-bridge, create config.json there, and add a systemd service. Create /etc/systemd/system/stayantra-print-bridge.service:

[Unit]
Description=Stayantra KOT print bridge
After=network-online.target

[Service]
WorkingDirectory=/opt/stayantra-print-bridge
ExecStart=/usr/bin/node /opt/stayantra-print-bridge/print-bridge.mjs
Restart=always
RestartSec=5
User=lp

[Install]
WantedBy=multi-user.target

Then run sudo systemctl enable --now stayantra-print-bridge. The service user needs write access to the USB printer (/dev/usb/lp0), which the lp group has. See its output with journalctl -u stayantra-print-bridge -f.

How the bridge behaves

  • Each ticket prints once. If the connection drops between printing and reporting back, the ticket is not printed twice.
  • Printer off or out of paper: the ticket is retried, up to 5 times. After the station's alert time, the kitchen, managers and owner are alerted and the ticket shows Not printed on the Kitchen screen.
  • Bridge offline: its tickets are handed out again after 45 seconds, so a second bridge for the same station can take over. The card shows Offline after 2 minutes.
  • Reprints from the Kitchen screen print with ** REPRINT ** at the top.

Troubleshooting

The bridge says, or you seeWhat to do
The device token was refused. Issue a new one on the Kitchen printers screen.The bridge was removed in Stayantra, or the token was pasted wrongly. Add a new bridge, copy its token into config.json, and start the bridge again.
Set STAYANTRA_PRINT_TOKEN to the device token from the Kitchen printers screenconfig.json has no token, or it does not start with sypb_. Check the file, and that it is named config.json, not config.json.txt.
config.json … is not valid JSONA quotation mark or comma is missing. Compare the file with the example above.
No answer from 192.168.1.50:9100The printer is off, on another network, or its IP changed. Print its self-test page and compare the IP. Ask whoever runs your network to give the printer a fixed IP.
No printer address is setType the address on the Kitchen printers card, or set PRINTER_ADDRESS in config.json.
EACCES /dev/usb/lp0 (Linux)Add the service user to the lp group.
'node' is not recognized as an internal or external commandNode.js is not installed, or Command Prompt was open during the install. Install it (step B), then open a new Command Prompt.
Dish names print as ?The printer cannot print Devanagari. Give each dish an English or romanised name.
Lines wrap or are cut offSet PRINTER_COLUMNS to 32 for 58 mm paper, or 42 for 80 mm.
Offline after a restartThe bridge is not set to start with Windows. Do step G.
Tickets print at the wrong station's printerCheck which stations are ticked on each bridge, and each outlet's Default Station.

Still stuck? Open a support ticket with the bridge's name, what the Kitchen printers card says, the printer model and address, and the last lines of the bridge window.

On this page