Tugport is in early development.

Tugport deploys your apps and watches your server from one small binary.

Push to GitHub or Forgejo and Tugport builds the commit, rolls it out without downtime and serves it over HTTPS. The same binary keeps the logs of every service, charts the CPU, memory, disk and GPU of your machine, and gives your AI agents API keys that can do exactly what you allow.

Tugport does a few things, and it does them properly.

There is no app store and no wall of options. You get what you need to run your own software on your own server, and each piece is built to keep working when something next to it breaks.

Projects keep your services together.

Group apps and databases into projects, give each service its own domains with automatic HTTPS, and keep its environment, volumes and resource limits in one place. Services in the same project reach each other by name on a private network.

Every push can ship itself.

Connect a repository on GitHub or Forgejo, pick a branch, and each push is built from your Dockerfile or with Nixpacks. The new version has to pass its health check before it gets any traffic, and a bad release goes back with one click.

Logs stay where you can read them.

Follow any service live, search across all of its replicas, and scroll back through history that survives restarts and redeploys, right next to the build log of every deploy.

Your server is always on a chart.

CPU, memory, disk, network and GPU usage are charted for the whole machine and for each service, from the last minute back to the last month, and Tugport tells you on Telegram when something runs hot or falls over.

Agents get their own keys and limits.

Create an agent user and its API key in one step, choose which projects it can see and whether it may deploy, change settings or read secrets, and read back everything it did in the audit log. The same rules apply to the API, the CLI and the MCP endpoint.

Databases come with backups.

Run Postgres, MySQL, MongoDB or Redis next to your apps, back them up on a schedule to any S3-compatible storage, and restore a backup in place when you need it.

It is one binary, not a stack of services.

A typical self-hosted panel arrives as a web app with a reverse proxy, a database, a cache, a metrics server and a log shipper beside it, and every one of them needs its own updates and can fail on its own. Tugport keeps the proxy, the certificates, the deploy queue, the metrics and the logs inside one Rust binary, stores its state in a single SQLite file and lets Docker run your containers.

That also means a failed build stays a failed build. It never restarts the panel, and it never takes other deploys down with it.

a typical panel

  • panel web app
  • reverse proxy
  • database
  • cache and queue
  • metrics server
  • log shipper
  • docker

tugport

  • tugport
  • docker

Tugport is being built in the open.

Star the repository to follow along, or open an issue if there is something you need it to do on your server.