Skip to content

Releases: DrSaeedHub/Tunnel-Panel

v0.1.30

Choose a tag to compare

@github-actions github-actions released this 02 Oct 01:06

The whole panel in Persian

  • Everything the panel says is now in the interface's language. The menus and labels were already translated, but most of what the panel told the operator came from the server in English: error messages, form errors, warnings, the checks run after every apply, rule and tunnel health, why a tunnel went down, diagnostics and their suggested fixes, reconcile findings, the steps of a preview, settings and tuning help, update and backup messages. All of it — about 1,300 sentences — is now said in Persian when the interface is in Persian, and in English when it is in English.
  • Switching language takes effect at once. What the panel has already shown is fetched again in the new language. What it records on its own — a tunnel's reason for going down, the error of an apply that ran in the background — is written in the panel's language (Settings → Appearance).
  • Every setting has a real name. Settings used to be labelled with a name made from their internal key; each now has a proper label, in both languages.
  • Persian sentences lay out correctly. An address, a port or an interface name inside a Persian sentence no longer pulls the words and numbers around it to the wrong end of the line, and English that is meant to stay English — generated files, commands — keeps its own direction.
  • Protocol terminology (GRE, MTU, TTL, ICMP, TCP, interface names, sysctl keys) stays in Latin script in Persian, as it always has: it is what you type into ip and read in kernel messages.

Fixed

  • Reconcile differences and the MTU breakdown showed blank values.
  • Errors on the address pool form, and errors for tunnel settings that are not on the form, were never shown.
  • Failed lines of a backup import did not say why they failed.
  • A failed ping showed the raw server response, and an error with no explanation showed "Request failed with status N" instead of saying what happened.
  • Audit history, monitor events, import actions and diagnostic runs showed internal identifiers instead of names.

Messages already stored before this update — an older tunnel event, a rule's last error — stay in the language they were written in.


Install or update

sudo bash -c 'bash <(curl -Ls https://raw.githubusercontent.com/DrSaeedHub/Tunnel-Panel/main/scripts/install.sh)'

An installed panel updates from Settings → Update, or with tnp update.

Assets: static binaries for amd64 and arm64, plus offline installation bundles for Ubuntu 22.04 and 24.04 (amd64) — see README_OFFLINE.md inside each bundle.

v0.1.29

Choose a tag to compare

@github-actions github-actions released this 01 Oct 23:28

Warnings that match what the panel will do

  • The rule form no longer warns that forwarding is off when the apply is about to turn it on. On a fresh server the form said the rules would be "installed and doing nothing", while the plan underneath it turned IP forwarding on before installing anything — so the rule worked, and the warning taught that warnings can be ignored. The form now warns about forwarding only when it will still be off after the apply.
  • "Apply anyway" appears only where it does something. It lifts two refusals: a port another program is listening on, and a loopback destination. It used to be drawn under every warning, as if each had to be overridden, and was missing in exactly those two cases. Ticking it now also re-runs the preview, so the form shows what will really be applied.
  • Warnings are written in the interface language. In Persian they were English sentences dropped into a right-to-left line, and a count at the start of a sentence ended up at the end of it.
  • A rule says when the server stops it from carrying traffic. A rule read as healthy while the kernel was not forwarding — beside a banner saying it forwarded nothing — and while a forced loopback destination had no route_localnet. Both now show the rule as impaired, with the reason.

Fixed

  • Two rules relaying to the same destination no longer act on each other's traffic. One rule's masquerade rewrote the client address of a rule set to keep it, and each rule's traffic counter counted both rules' bytes — so a traffic limit could cut off a rule for traffic it never carried. Each rule now acts only on its own connections. The updated panel reinstalls existing rules this way when it starts; nothing needs to be done.
  • With Turn on IP forwarding automatically switched off, creating a rule failed and rolled back, although the setting promises the rule is installed and waits for forwarding. It is now installed, and the panel says it carries nothing until forwarding is on. The plan also no longer lists a forwarding step the setting stops it from taking.
  • The ruleset preview named the backend "fake" instead of the one the rules are written to.
  • The connection-tracking warning told the operator to raise the table size while the panel was about to raise it itself; it now says so.

Install or update

sudo bash -c 'bash <(curl -Ls https://raw.githubusercontent.com/DrSaeedHub/Tunnel-Panel/main/scripts/install.sh)'

An installed panel updates from Settings → Update, or with tnp update.

Assets: static binaries for amd64 and arm64, plus offline installation bundles for Ubuntu 22.04 and 24.04 (amd64) — see README_OFFLINE.md inside each bundle.

v0.1.28

Choose a tag to compare

@github-actions github-actions released this 22 Aug 01:29

Fixed: a tunnel with no far end reported itself Up at 100%

  • A tunnel is now up only if its probes come back, or the far end answers a TCP connection across it. Nothing else counts.
  • The interface's own byte counters used to count as proof that a tunnel was working when its probes went unanswered. They are not proof: a GRE interface counts every probe the panel sends out of it whether or not anything exists at the other end, so the counters always moved and the tunnel always read as up. A tunnel whose other side had never been built showed Up, 100%.
  • Where something along the path filters ICMP — the ordinary condition on a good many routes — the TCP knock still keeps a working tunnel out of Down. The far end accepting or refusing the connection is proof that the tunnel carried the packet there and carried the answer back.
  • Nothing about how a tunnel is probed changes, and no setting moves. Tunnels that were only ever "up" because of the counters will now say what they are.

Install or update

sudo bash -c 'bash <(curl -Ls https://raw.githubusercontent.com/DrSaeedHub/Tunnel-Panel/main/scripts/install.sh)'

An installed panel updates from Settings → Update, or with tnp update.

Assets: static binaries for amd64 and arm64, plus offline installation bundles for Ubuntu 22.04 and 24.04 (amd64) — see README_OFFLINE.md inside each bundle.

v0.1.27

Choose a tag to compare

@github-actions github-actions released this 22 Aug 01:12

Fixed: a pairing code from another server named a pool that did not exist

  • A pairing code now carries the address pool's range, size and name instead of its id. A pool id is a row in one server's database: a code from a server whose pool happened to be number 41 filled the receiving form in with "Address pool 41 does not exist" — a value the operator never chose and could not correct, even though the code already carried the addresses the far end had committed to.
  • The receiving server matches by range. A pool covering the same range is used; anything else leaves the tunnel on the addresses the code carried and says plainly what was found.
  • The form turns that into an offer — create the same pool here, or enable the one this server already has — and moves the tunnel onto it, instead of sending the operator to Settings and back.

Install or update

sudo bash -c 'bash <(curl -Ls https://raw.githubusercontent.com/DrSaeedHub/Tunnel-Panel/main/scripts/install.sh)'

An installed panel updates from Settings → Update, or with tnp update.

Assets: static binaries for amd64 and arm64, plus offline installation bundles for Ubuntu 22.04 and 24.04 (amd64) — see README_OFFLINE.md inside each bundle.

v0.1.26

Choose a tag to compare

@github-actions github-actions released this 22 Aug 00:50

Fixed: a tunnel could be created against a pool that allocates nothing

  • Automatic addressing now lands on the first enabled address pool. The tunnel form used to preselect whichever pool came first, and to trust a configured default that had since been disabled — so an operator saw a greyed-out pool shown as their selection, and a create that failed for exactly the pool the form had chosen for them.
  • A new tunnel is moved off a disabled default as soon as the pools have loaded, so the form never sits on a choice that cannot work.

Install or update

sudo bash -c 'bash <(curl -Ls https://raw.githubusercontent.com/DrSaeedHub/Tunnel-Panel/main/scripts/install.sh)'

An installed panel updates from Settings → Update, or with tnp update.

Assets: static binaries for amd64 and arm64, plus offline installation bundles for Ubuntu 22.04 and 24.04 (amd64) — see README_OFFLINE.md inside each bundle.

v0.1.25

Choose a tag to compare

@github-actions github-actions released this 21 Aug 02:39

Traffic limits in the forms, per direction, and a single field for sources

  • Traffic limits in the create and edit dialogs. Both forms have a "Traffic limits" section — the whole rule and each destination get a row; the tunnel form gets one for the tunnel. They work on create too: the limits are saved right after the rule or tunnel itself.
  • Direction. A limit can count both directions together, download only, or upload only. Usage is reported per direction whatever the limit counts.
  • One field for allowed sources. Shared lists and one-off addresses share a single field: type an address or CIDR and press space (or comma, or Enter) to make it a token. The Add button is gone; "+ Add a list" remains. Typos are refused with the offending text named.
  • The rule's on/off switch moved to the top, beside the name.

Install or update

sudo bash -c 'bash <(curl -Ls https://raw.githubusercontent.com/DrSaeedHub/Tunnel-Panel/main/scripts/install.sh)'

An installed panel updates from Settings → Update, or with tnp update.

Assets: static binaries for amd64 and arm64, plus offline installation bundles for Ubuntu 22.04 and 24.04 (amd64) — see README_OFFLINE.md inside each bundle.

v0.1.24

Choose a tag to compare

@github-actions github-actions released this 21 Aug 02:16

Small fix

  • The rule form's bare "Enabled" switch is now labelled "Rule is active" and explains that off removes the rule from the installed ruleset without deleting it.

Install or update

sudo bash -c 'bash <(curl -Ls https://raw.githubusercontent.com/DrSaeedHub/Tunnel-Panel/main/scripts/install.sh)'

An installed panel updates from Settings → Update, or with tnp update.

Assets: static binaries for amd64 and arm64, plus offline installation bundles for Ubuntu 22.04 and 24.04 (amd64) — see README_OFFLINE.md inside each bundle.

v0.1.23

Choose a tag to compare

@github-actions github-actions released this 21 Aug 01:58

Traffic limits

  • Set an allowance on a tunnel, a rule, or one of a rule's destinations, counted per day, per week, per month or in total.
  • Two modes: Warn only marks it as over its limit and leaves traffic alone; Stop it brings the tunnel down, disables the rule, or takes the destination out of rotation. Whatever the panel stopped it starts again when the window rolls over, when you reset the usage, or when you remove the limit.
  • Limits live beside the usage they limit: a bar and figure on the tunnel page and in the rule's Destinations panel, with the editor behind a pencil. Lists show a badge only when a limit is actually reached.
  • Destinations gain a persistent lifetime traffic counter of their own.

Install or update

sudo bash -c 'bash <(curl -Ls https://raw.githubusercontent.com/DrSaeedHub/Tunnel-Panel/main/scripts/install.sh)'

An installed panel updates from Settings → Update, or with tnp update.

Assets: static binaries for amd64 and arm64, plus offline installation bundles for Ubuntu 22.04 and 24.04 (amd64) — see README_OFFLINE.md inside each bundle.

v0.1.22

Choose a tag to compare

@github-actions github-actions released this 20 Aug 14:40

Changing a GRE key on an existing tunnel

  • Save is no longer greyed out on changes that need the interface rebuilt (key, endpoints, type). Instead it opens a confirmation that explains the rebuild, lists the reasons, notes that traffic pauses for a few seconds on a running tunnel — and, for a key change, warns that the far end must be given the same key or the tunnel will come up looking healthy and carry nothing.

Install or update

sudo bash -c 'bash <(curl -Ls https://raw.githubusercontent.com/DrSaeedHub/Tunnel-Panel/main/scripts/install.sh)'

An installed panel updates from Settings → Update, or with tnp update.

Assets: static binaries for amd64 and arm64, plus offline installation bundles for Ubuntu 22.04 and 24.04 (amd64) — see README_OFFLINE.md inside each bundle.

v0.1.21

Choose a tag to compare

@github-actions github-actions released this 20 Aug 13:38

Fixed: a rule could gain a destination but never lose one

  • Removing the last extra destination and saving left the rule unchanged, still sending traffic to the backend you had just deleted. The destination list is now always saved.
  • A save from the form no longer re-enables a destination you had disabled on the rule page, or clears its monitoring thresholds.
  • A rule back down to one destination is no longer shown as load-balanced.

Install or update

sudo bash -c 'bash <(curl -Ls https://raw.githubusercontent.com/DrSaeedHub/Tunnel-Panel/main/scripts/install.sh)'

An installed panel updates from Settings → Update, or with tnp update.

Assets: static binaries for amd64 and arm64, plus offline installation bundles for Ubuntu 22.04 and 24.04 (amd64) — see README_OFFLINE.md inside each bundle.