Skip to content

Repository files navigation

Tragwerk

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.

What makes Tragwerk different

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.ini into 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.

How it works

  1. Connect a server over SSH - Tragwerk installs Docker and prepares the host.
  2. Define your project in XML and the web UI.
  3. 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.

Install it on your own server

curl -fsSL https://raw.githubusercontent.com/benjaminhirsch/tragwerk/main/install.sh | sudo bash

Works 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.

Documentation

Full guides, configuration reference and tutorials live at docs.tragwerk.app.

To run Tragwerk itself on your own server, follow Self-Hosting Tragwerk.

License

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.

Dual licensing / Commercial use

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.

About

Deploy without friction. From commit to production in minutes on a server of your choice!

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

Used by

Contributors

Languages