Self-host PHP applications on your own Server.
Tragwerk turns any server with SSH access into a fully managed PHP hosting platform. You describe your project in a single XML file and through the web UI; Tragwerk generates the entire Docker setup, provisions the server, and deploys - no hand-written Dockerfiles, no compose wrangling, no vendor lock-in.
Tragwerk is not a general-purpose self-hosted PaaS, and it is not trying to replace one. It is a specialised alternative: it deploys PHP and nothing else, and it spends that restriction on depth.
- PHP only, and that is the point. Because the runtime is never in question,
Tragwerk resolves your PHP extensions itself, bakes your
php.iniinto the image, and runs FrankenPHP - classic mode by default, a drop-in PHP-FPM replacement, with optional worker mode for persistent, high-throughput serving. - XML config, not YAML or JSON sprawl. One schema-validated project file in your repository describes your app, services, cron jobs and environment. The full Docker / Docker Compose stack is generated from it - you do not write, and do not own, the Dockerfile.
- Your servers never see your source code. Images are built on the Tragwerk instance and pushed to a registry; the target server only pulls the finished image and swaps the container.
- Bring your own server. Any provider that offers a server with SSH works. If Docker runs on it, Tragwerk runs on it. Your infrastructure stays yours.
- Many apps, one server. A built-in Traefik reverse proxy routes multiple applications on the same server, each isolated in its own containers.
- Batteries included. Per-team access control, per-app cron jobs, workers, live server metrics, deploy history and encrypted-at-rest SSH credentials come out of the box.
That specialisation cuts both ways, and the trade-offs are worth reading before you commit: How Tragwerk Compares puts it side by side with a general-purpose platform, including the cases where Tragwerk is the wrong choice.
- Connect a server over SSH - Tragwerk installs Docker and prepares the host.
- Define your project in XML and the web UI.
- Push to deploy - Tragwerk clones the repo, builds the image, and starts the containers behind Traefik.
The target server only ever runs finished Docker images; no source code or build tooling lives on your server.
curl -fsSL https://raw.githubusercontent.com/benjaminhirsch/tragwerk/main/install.sh | sudo bashWorks on any Linux distribution Docker supports. The script installs Docker Engine, generates the configuration, starts the stack and creates your first user. Point a DNS record at the server first — it checks.
Details, options and the manual route: Install Script.
Full guides, configuration reference and tutorials live at docs.tragwerk.app.
To run Tragwerk itself on your own server, follow Self-Hosting Tragwerk.
Tragwerk is free and open source software, licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
See the LICENSE file for the full text.
If you wish to use this software in a commercial context or integrate it into a proprietary product without being bound by the copyleft obligations of the AGPL-3.0 (such as disclosing your source code), commercial licenses are available.
Please contact us at mail@tragwerk.app for pricing and terms.