--- title: App Store description: Browse and deploy pre-configured application templates in one click. --- The **App Store** tab lets you browse a curated catalogue of Docker Compose templates and deploy any of them as a new stack with environment-specific configuration, no YAML required. App Store showing a grid of application templates with category filters ## Browsing templates Templates are loaded from a remote registry (configurable in **Settings > App Store**). The default registry is LinuxServer.io. A live count of available apps is shown next to the category pills. **Search:** Type in the search bar to filter templates by name, description, or category in real-time. **Categories:** Click any category pill to narrow the list: `All` · `Automation` · `Books` · `Development` · `Documentation` · `Downloaders` · `Media` · `Monitoring` · `Networking` · `Other` · `Productivity` · `Security` · `Utilities` Each template card shows: - Application logo (or a placeholder icon if unavailable) - Name and short description - Up to three category badges (click a badge to filter by that category) ## Deploying a template Click any template card to open the **deployment sheet** on the right side of the screen. Deployment sheet for heimdall showing stack name, ports, volumes, and environment variables The sheet header displays the app logo, title, and a truncated description with a **Read more** / **Read less** toggle. Below the description you may see: - **Architecture badges** (e.g. `amd64`, `arm64`) when the template declares supported platforms - **GitHub stars** count - **Source** link to the GitHub repository - **Docs** link to the official documentation When deploying to a remote node, a badge at the top of the sheet shows the target node name. ### Stack name Pre-filled with the template name in lowercase. You can change it; the same [naming rules](/features/stack-management#creating-a-stack) apply (lowercase, hyphens, no spaces). ### Ports For each exposed port, the sheet shows an editable **host port** field (left side) and the fixed **container port** (right side). Edit the host port to avoid conflicts with other services on the same machine. ### Volumes For each container mount point, enter the **host path** where that data should be stored. Suggested defaults (e.g. `./config`, `./data`) are pre-filled. Relative paths like `./config` are resolved relative to the stack directory inside your `COMPOSE_DIR`. Absolute paths map directly to the host filesystem. ### Environment variables Each template declares the variables it needs. Sencho pre-fills sensible defaults where available (e.g. `PUID=1000`, `PGID=1000`, `TZ` from your browser locale). Edit any value before deploying. ### Custom variables Below the template variables, an **Add Custom Variable** section lets you define arbitrary key-value pairs not declared by the template. Type a key and value, then click **+** to add it. ### What happens on Deploy 1. Sencho creates a new stack directory in `COMPOSE_DIR` 2. Writes the generated `compose.yaml` and `.env` file 3. Runs `docker compose up -d` 4. On success: switches you to the Editor view for that stack 5. On failure: rolls back by running `docker compose down` and deleting the stack directory A toast notification confirms success or shows the error message. Large images may take a few minutes to pull. Deploying a template requires the `stack:create` permission. Users without this permission will see the Deploy button disabled. ## Custom template registry By default Sencho uses the LinuxServer.io template registry. To use your own: 1. Open **Settings > App Store** 2. Enter your registry URL (must serve a JSON array of template objects in Portainer v2 format) 3. Click **Save & Refresh** Sencho saves the new URL and automatically refreshes the template cache from the new source. To revert to the default registry, click **Reset to Default**.