Go Deploy
Vinza Store Go Deploy
Go Deploy
Premium Runtime
gogolangsystemdginfiberecho
Get this app
Free with Starter, Profesional & Enterprise · See plans
$29.00
One-time — permanent license, 1 server.
Rp 435.000 charged
$2.99/mo
Cancel anytime.
Rp 45.000/mo charged

Go Deploy compiles a Go application from a website's directory and runs the resulting binary as a systemd service behind the panel's reverse proxy. It can detect a likely entry point, list the module's packages, show build status, run go build, and preview the exact systemd unit before anything is written. Deploying allocates a free local port, writes the unit file, and rewires the site's vhost to proxy to it — nginx, Apache2, and OpenLitespeed are all handled — after which you can start, stop, restart, reload, remove, and tail the service logs from the panel. A separate web-rules section lets you set static and media aliases and toggle directory indexing on the proxied vhost.

Builds run as the website's own Linux user, while unit files and vhost changes are written as root through the agent; because actions name the website they concern, the build is routed to the node that actually holds the code rather than to the panel. A website_deleting hook stops, disables, and removes the app's systemd unit when its website is deleted, so no orphaned service is left running. The plugin does not install the Go toolchain — its install script only looks for go in the usual locations and warns if it is missing, so you need to install Go yourself before the first build. Health reporting is basic: it flags any deployed app whose unit is not currently active.

Min Panel Version
1.0.0
Platform
Ubuntu 20.04+ / 22.04+ / 24.04+
License
Paid license required
Hooks
website_deleting
Permissions
websites.manage
VinzaPanel handles installation automatically via the Vinza Store. Make sure the panel agent has internet access to download dependencies.
1.1.11 — New icon in the shared flat style. 1.1.10 — Limits tab: MemoryHigh joins MemoryMax and CPUQuota; GOMEMLIMIT is set to 90% of MemoryMax and GOGC can be set. A drop-in that overrides these settings is shown as a warning. 1.1.9 — Confirmation prompts use the panel's own dialog (with a title and a clear action button) instead of the browser's confirm() box. 1.1.8 — Security: the app log in ~/logs is opened by the app itself (as the account), not by systemd as root; the log file is prepared only inside the real log folder and read as the account. Existing units are converted on update. 1.1.7 — Deploys restart the app's background workers marked “Restart after a deploy” in Supervisor (supervisor 1.0.6+) once the deploy succeeds. 1.1.6 — Requests send the panel’s own CSRF token: the cookie was matched by a pattern that also took any cookie whose name ends in “csrftoken” (another app on the same host), and the request was refused with 403. 1.1.5 — Environment variables: a per-app editor (Configuration → Environment) saved to an owner-only env file the service loads with EnvironmentFile=; names are validated, values are hidden after saving and the app can be restarted on save. Deploy from Git (new Git tab): link a repository + branch (private repositories use the site account's deploy key, shared with Git Manager); "Deploy now" fetches the branch, resets the app folder to it, runs go mod download and go build, then restarts the app — every step runs as the site's account, with its output in a deploy log. Push to deploy: a per-app webhook URL and HMAC secret for GitHub, GitLab or Bitbucket; unsigned requests and pushes to other branches are ignored. Releases: the last deploys are listed and the last 5 successful ones can be rolled back to; go keeps the last 5 built binaries, so a rollback re-activates one without rebuilding. Resource limits: MemoryMax and CPUQuota for the app's service (Configuration → Limits), validated and kept across re-deploys. 1.1.4 — Status, Stop and website deletion read the app's service on the node that runs it, and uninstalling removes each app on its node. Domains with a hyphen are recognised. 1.1.3 — "Reload" no longer stops the app: SIGHUP ends a Go binary and systemd treated that as a clean exit, leaving a 502. Reload now restarts the service. The module name from go.mod is shown again (the agent refused the read). 1.1.2 — Deployed apps get an "Edit settings" action that opens the deploy form prefilled with the settings the app is running with (port, binary); app path, user and service name are shown read-only. Re-deploying with port 0 now keeps the app's current port instead of moving it to a new one; tick "Pick a new free port instead" to get a new one.

Use VinzaPanel's REST API to download and install this app programmatically.

Download app files
HTTP
POST /plugins/api/download/go-deploy/
Content-Type: application/json

{
  "panel_version": "1.0.0"
}
Example response
JSON
{
  "success": true,
  "plugin_id": "go-deploy",
  "version": "1.1.11",
  "download_url": "..."
}