Deploy Anywhere App Converter is an advanced Single Page Application (SPA) built with React, TypeScript, and Tailwind CSS. The project streamlines the deployment of containerized applications by transforming third-party repositories (CasaOS, BigBear, ZimoOS) or custom docker-compose.yaml files into automated installation scripts for various platforms, with a primary focus on Proxmox VE (LXC).
- Multi-Source Library: Browse and search apps from CasaOS, BigBear, and ZimoOS repositories.
- Smart Matching Engine: Automatically detects if a Native LXC Script exists for a selected Docker app by querying the official Proxmox VE Community Scripts repository.
- YAML-to-LXC Engine: Intelligent Docker Compose parser that automatically extracts ports, volumes, environment variables, and commands for Docker fallback deployments.
- Proxmox Automation: Generates "host-side" Bash scripts that:
- Native Mode: Downloads and runs the official upstream install script (e.g., for Plex, Home Assistant).
- Docker Mode: Creates an LXC, installs Docker, and deploys the Compose stack if no native script is found.
- Configuration Wizard: A guided 4-step process using collapsible accordion sections to manage:
- Resources: CPU, RAM, Disk, Storage Pool.
- Network: Static IP/CIDR, Gateway, Bridge.
- Environment: Real-time editing of environment variables and volume paths.
- Repository Manager: Slide-in panel to add, remove, or sync new repositories via JSON URLs.
- Responsive Design: Mobile-optimized layout with a toggleable sidebar and sticky navigation buttons.
The application fetches app definitions from the following verified sources:
| Provider | Repository URL | Type |
|---|---|---|
| CasaOS | https://api.github.com/repos/IceWhaleTech/CasaOS-AppStore/contents/Apps |
Official Store |
| ZimoOS | https://api.zimoos.com/v1/appstore/apps |
Hardware Specific |
| BigBear | https://github.com/bigbeartechworld/big-bear-casaos |
Community |
| Big Bear Runtipi | https://github.com/bigbeartechworld/big-bear-runtipi |
Community |
| BigBear Umbrel | https://github.com/bigbeartechworld/big-bear-umbrel |
Community |
| BigBearCosmos | https://github.com/bigbeartechworld/big-bear-cosmos |
Community |
| BigBearDockge | https://github.com/bigbeartechworld/big-bear-dockge |
Community |
| BigBearPortainer | https://github.com/bigbeartechworld/big-bear-portainer |
Community |
The project leverages a modern stack focused on execution speed and portability:
- Frontend: React 18 with TypeScript.
- Styling: Tailwind CSS for a responsive, accordion-based UI.
- YAML Parsing:
js-yamlfor programmatic manipulation of compose files. - Dynamic Catalog: A dedicated service (
community.ts) fetches the live tree from GitHub to ensure script availability is always up-to-date. - Script Generation:
scriptGenerator.tstransforms UI configurations into Bash scripts, wrapping either the official community installer or a custom Docker deployment logic.
Unlike a simple converter, the tool generates a script that:
- Validates resources on the Proxmox host.
- Allocates the next available VM ID.
- Creates the LXC container with specific templates (e.g., Debian 12).
- Recipe Selection: Checks if an official community script exists for the app; if so, executes it. If not, it installs Docker and deploys the generated Compose stack.
- Injects Docker dependencies and automatically creates persistent directories on the LXC based on the detected volume mapping (in Docker Mode).
The design includes specific optimizations for developers operating from mobile devices:
- Interactive Sidebar: The app grid is accessible via a "Browse Apps" button that handles the sidebar transition.
- Sticky Navigation: Back and Next buttons are anchored to the bottom of the viewport for seamless wizard completion.
- Clone the repository:
git clone https://github.com/VisualBoy/Deploy-Anywhere-App-Converter.git
- Install dependencies:
npm install
- Start the application:
npm run dev
Distributed under the MIT License. See LICENSE for more information.
Developer Note: The script generator uses \e escape sequences compatible with echo -e to avoid JavaScript parsing errors (SyntaxError: Invalid octal escape sequence) when outputting terminal colors.