---
title: Setting Up an App Server | Shopware Community Hub
description: >-
  This learning unit introduces the different contexts and hosting options for
  App Servers. You will learn how to plan an App Server based on business needs
  and…
canonical_url: 'https://hub.shopware.com/learn/unit/app-server-setup'
---

# Setting Up an App Server

<LearningObjectives>

- **Understand common use cases** for App Servers (ERP integration, APIs, custom logic).
- **Compare hosting options**: Dedicated servers, IaaS, PaaS, and Serverless.
- **Learn** about the **available Shopware SDKs**: PHP SDK, Symfony App Bundle, and JavaScript SDK.
- **Understand** how to set up a **local development environment for App Server development**.

</LearningObjectives>

# Setting Up an App Server

Before we start building an App Server, let's step back and understand **where it fits into the App System**. Having this bigger picture in mind will make it easier to plan your implementation and decide which path is best suited for your project.

## The App System Model

When approaching App Server development, you can imagine many "doors" or "paths" you could follow. Each path represents a type of use case where an App Server can be valuable. According to the [official Shopware App Development page](https://www.shopware.com/en/app-development/), common scenarios include:

1. **ERP integration**: You can connect external ERP systems to manage resources such as stock, products and categories.
2. **Third-party APIs and SaaS Integration**: You can connect services like CRM systems and payment gateways.
3. **Data exchange and reporting**: You can synchronize data between Shopware and external systems such as BI tools or reporting tools.
4. **Custom business logic**: You can build your own custom business logic that goes beyond Shopware's standard features.

Each "door" leads to a different kind of solution, but all of them build on the same foundation: an App Server that communicates with Shopware.

## Code-Along

This section is about **planning your implementation**. Therefore, we don't need to write any code.

## Hosting Solutions for App Servers

You are free to choose any tech stack for your App Server **as long as it can serve HTTP requests**.

There are four common hosting models for app servers:

- **Dedicated Server**: A physical machine. You have full control, but you are also fully responsible for hardware, Operating System and uptime.
- **IaaS**: Rented Virtual Machines in the cloud. You manage the Operating System, runtime and patches. The provider handles the hardware and availability.
- **PaaS**: Deploy application code directly. The platform manages runtime, scaling and most operational tasks for you.
- **Serverless**: Event-driven execution of your code without permanent servers. Highly scalable and billed on-demand. No infrastructure or runtime management required by the developer.

<Callout title="Balancing Cost with Scalability" type="info">

Estimate your **peak load** and how fast it can change. If you know both, picking a model becomes much easier:

- For unpredictable spikes: **Serverless** or **PaaS**.
- For steady traffic or custom networking (e.g., VPN): **IaaS** or **Dedicated Server**.
- For minimal operations for prototypes: **PaaS**.

Note: Serverless can be cost-effective for irregular workloads but may become expensive for constant high traffic.

</Callout>

## Local Development Setup

In this course we will build our App Server on our local machine for demonstration purposes. This way, every developer can follow the journey without requiring a hosting provider.

## Available SDKs

Shopware provides several SDKs to simplify App Server development and handle the communication between your App Server and Shopware. Here is an overview:

### PHP SDK

The **[PHP SDK](https://github.com/shopware/app-php-sdk)** is the core SDK for Apps written in PHP. It handles request signing and verification, provides an authenticated HTTP client for the Shopware API and supports the App lifecycle events (install, update, delete).

Use this SDK if you want to:

- Build your App logic directly in PHP.
- Keep dependencies minimal and avoid large frameworks.
- Have full control over your own application structure.

### Symfony-Based App Bundle

The **[Symfony App Bundle](https://github.com/shopware/app-bundle-symfony)** is a Symfony-based integration. It includes the PHP SDK and adds Symfony-specific features like ready-to-use routing and controllers, pre-built lifecycle event handling and Doctrine support for database handling.

Use this SDK if you want to:

- Develop your App with Symfony.
- Save time by using pre-built lifecycle event handlers and routes.
- Use Doctrine for database handling.

If you don't need Symfony and prefer a minimal setup, you can use the plain **PHP SDK** instead.

### JavaScript SDK

The **[JavaScript SDK](https://github.com/shopware/app-sdk-js)** is a JavaScript-based SDK for Apps written in JavaScript/Node.js. It simplifies the HTTP communication with the Shopware API, includes request signing helpers and can be integrated into any JavaScript-based backend stack.

Use this SDK if you want to:

- Write your App in Node.js or another JavaScript runtime.
- Build lightweight microservices.
- Integrate quickly with existing JavaScript-based infrastructures.

<Callout title="Which SDK Should I Choose?" type="info">

For this course, we use the **Symfony App Bundle** because it provides the most complete developer experience with pre-built features for routing, database handling, and lifecycle events.

</Callout>

## Summary

In this learning unit, you learned the foundational knowledge for App Server development:

- **Common use cases** for App Servers: ERP integration, third-party APIs, data exchange, and custom business logic
- **Hosting options**: Dedicated servers, IaaS, PaaS, and Serverless—and when to use each
- **Available SDKs**: PHP SDK, Symfony App Bundle, and JavaScript SDK—and which one to choose for your project
- **Local development setup**: How to build and test your App Server locally before deployment

With this foundation, you are ready to move from planning to implementation. In the next learning unit, you will start building your App Server and **handle Webhooks**.
