Introduction to ShopBite
ShopBite is an open source online ordering system for restaurants, pizzerias and delivery services. It combines Shopware 6 as the backend, the ShopBite plugin for opening hours, holidays and extras, and a fast storefront built with Nuxt.
The quickest way to get to know ShopBite: run it on your own machine. All you need is Docker.
Up and running in five minutes
Install Docker
Install Docker Desktop (macOS, Windows) or Docker Engine with Compose (Linux). Plan for about 4 GB of free RAM.
Clone and start
git clone https://github.com/shopbite-de/shopbite.git
cd shopbite
docker compose up -d
The first start downloads the images and installs Shopware, which takes a few minutes. Follow the progress with docker compose logs -f setup. As soon as it prints storefront config written, the shop is ready.
Open the shop
| What | URL | Login |
|---|---|---|
| Storefront | localhost:3000 | |
| Shopware Administration | localhost:8000/admin | admin / shopbite |
| Backoffice | localhost:3010 | chef or theke / shopbite |
| Mails (Mailpit) | localhost:8025 |
You get a complete restaurant shop: 71 dishes in 9 menu sections, pizza sizes, extras, side dishes, vegetarian and vegan badges, opening hours and a working checkout.
Things to try
- Try the contact form: messages sent from localhost:3000/kontakt show up in Mailpit as well.
- Change the menu: edit a price in the Administration under Catalogues > Products. The storefront shows the new price after a minute or two.
- Set opening hours: under ShopBite > Business Hours (the demo shop is open around the clock). Add today under Holidays and the storefront shows the shop as closed.
- Work like the restaurant staff: the backoffice on localhost:3010 is the simple admin for a restaurant.
chef(Management) edits dishes, prices, sections, extras and opening hours,theke(Personal) sees today's orders, pauses online ordering and sets the delivery time. It installs as an app on phones and tablets, and Mein Zugang sets up login with fingerprint or Face ID. - Start without demo data:
SEED_DEMO_MENU=0 docker compose up -don a fresh install creates only the sales channel, without the menu. - Start over:
docker compose down -vdeletes all data, the next start is a fresh install.
The Administration of the quickstart runs in German. Switch the language for your user under your profile in the top left corner.
Make it your shop
The storefront/ folder in the repository is your storefront. Start page texts, imprint, privacy policy, terms, colours and logo live there as plain files:
| What | Where |
|---|---|
| Start page texts and sections | storefront/content/index.yml |
| Imprint, privacy policy, terms, payment and delivery | storefront/content/*.md |
| Brand colours | storefront/app/assets/css/main.css |
| Logo | storefront/public/light/Logo.png, storefront/public/dark/Logo.png |
| Name, address, phone | storefront/nuxt.config.ts |
With Node.js and pnpm every change shows up in the browser right away:
cd storefront
pnpm install
pnpm dev
The storefront then runs on localhost:3001 and uses the Shopware of the quickstart; the setup creates the credentials for you. docker compose up -d --build storefront then puts your version on localhost:3000.
What is ShopBite?
ShopBite consists of several open source components, already wired together in the quickstart:
| Component | Purpose |
|---|---|
| Shopware 6 | Backend for products, orders, customers and payments |
| ShopBite plugin | Opening hours, holidays, extras, delivery times and checkout rules |
| ShopBite storefront | Fast, mobile ordering interface built with Nuxt 4 |
| Order Printer | Prints new orders on a receipt printer in the kitchen |
ShopBite is made for restaurants, pizzerias, takeaways, delivery services and every food business that wants to take orders online without paying commission to a platform.
From trial to a real shop
The quickstart is meant for trying ShopBite. It uses fixed passwords and runs without HTTPS. For a real shop:
- Install Shopware, for example with the production setup from shopbite-de/shopware (Docker, TLS, S3 storage).
- Set up the ShopBite plugin and maintain your business hours.
- Move the
storefront/folder into its own repository and deploy it. It extends the ShopBite storefront as a Nuxt layer, see first steps with the storefront. - Optionally connect a receipt printer.
The architecture overview shows how the parts fit together.