Skip to content

Releases: AKASGaming/tailscale-pia-controller

v1.0.23 - Fix duplicate Android notifications

Choose a tag to compare

@AKASGaming AKASGaming released this 19 Jul 19:33

Summary

Fixes the duplicate notification that could appear the first time the app went to the background.

Android (v1.0.17)

  • Uses a single notification slot for background monitoring
  • When the controller changes VPN state, that same notification is updated in place with the status message
  • Removes the empty second notification that previously appeared alongside the real alert

Install

Download pia-control-v1.0.17-debug.apk below.

v1.0.22 - App icon and notification cleanup

Choose a tag to compare

@AKASGaming AKASGaming released this 19 Jul 19:27

Summary

  • New app icon across the WebUI (favicon + header) and Android launcher
  • Android notifications simplified — only controller change alerts are shown to the user

Controller (v1.0.22)

  • Custom shield icon in the dashboard header and browser tab
  • Favicon and Apple touch icon for bookmarks/home screen

Android (v1.0.16)

  • New launcher icon on all densities
  • Removed the persistent "Watching for controller changes" notification
  • Status alerts still fire when VPN is enabled, disabled, or region changes from the WebUI
  • Android still uses a silent system foreground notification (required for background monitoring) that should not appear in the status bar

Install

Download pia-control-v1.0.16-debug.apk below.

Deploy the controller update:

git pull
docker compose up -d --build vpn-controller

v1.0.21 - Idle server status and background notifications

Choose a tag to compare

@AKASGaming AKASGaming released this 19 Jul 19:14

Summary

  • WebUI server status shows Idle when no devices have VPN enabled, and Active when at least one device is routing through PIA
  • Android posts status-bar notifications when the controller changes VPN settings while the app is in the background

Controller (v1.0.20)

  • Dashboard header status reflects connected VPN sessions (Idle / Active)
  • Live polling updates the status without a page refresh

Android (v1.0.15)

  • Background monitor service polls the controller when the app is not open
  • Notifications for remote VPN disable, enable, and region changes
  • Exit node is still cleared automatically when VPN is disabled from the WebUI
  • Requests notification permission on Android 13+

Install

Download pia-control-v1.0.15-debug.apk below.

Deploy the controller update:

git pull
docker compose up -d --build vpn-controller

v1.0.20 - Android syncs remote WebUI changes

Choose a tag to compare

@AKASGaming AKASGaming released this 19 Jul 19:04

Summary

The Android app now polls the controller every 3 seconds so WebUI changes (disable VPN, change region, etc.) apply immediately — even when the app is in the background.

Android (v1.0.14)

  • Background status polling while registered
  • Clears Tailscale exit node when VPN is disabled from the WebUI
  • Toast when the controller changes VPN state remotely
  • Fixed exit-node polling to update UI when VPN is turned off

Install

Download pia-control-v1.0.14-debug.apk below.

v1.0.19 - In-app WebUI messages and Android polish

Choose a tag to compare

@AKASGaming AKASGaming released this 19 Jul 18:57

Summary

Admin actions in the WebUI no longer redirect with /?msg=\ in the URL. Android fixes for status bar overlap, spinner theme, and VPN status updates.

Controller (v1.0.19)

  • Admin forms submit via fetch and show an in-app flash banner
  • Clean URL stays at /\ — no query-string messages
  • Legacy ?msg=\ links are shown once then stripped from the address bar

Android (v1.0.13)

  • Content no longer draws under the status bar (edge-to-edge insets)
  • Region dropdown matches the dark theme
  • Status hero card updates immediately when VPN is toggled off

Deploy controller

git pull
docker compose up -d --build vpn-controller
```n
## Install Android
Download **pia-control-v1.0.13-debug.apk** below.

v1.0.18 - UI redesign and pairing improvements

Choose a tag to compare

@AKASGaming AKASGaming released this 19 Jul 18:47

Summary

Production-ready UI refresh for both the controller WebUI and Android app, plus pairing/settings fixes.

Controller (v1.0.18)

  • Redesigned dark WebUI with stat cards and status badges
  • Cached static CSS/JS for faster loads
  • Smarter polling (5s, abort in-flight requests, in-place DOM updates)
  • Single admin secret field for dashboard actions
  • PATCH /devices/me to update device name from the app

Android (v1.0.12)

  • Material 3 dark theme matching the WebUI
  • Status hero card with live VPN/stack state
  • Collapsible controller setup section (always editable)
  • Reset all app data to test pairing from scratch
  • QR scan loads URL/code without auto-registering — set device name first
  • Device name persisted locally and syncable to controller
  • Re-register flow with confirmation

Deploy controller

git pull
docker compose up -d --build vpn-controller
```n
## Install Android
Download **pia-control-v1.0.12-debug.apk** below. To re-test pairing: tap **Reset all app data**, scan QR, set your device name, then **Register device**.

v1.0.16 - Idle shutdown controls

Choose a tag to compare

@AKASGaming AKASGaming released this 19 Jul 18:34

Summary

Controller release with idle shutdown visibility, accurate in-use counts, and manual early stop.

v1.0.14

  • Periodic idle stack cleanup every 60 seconds
  • WebUI idle shutdown countdown per region
  • Overview stat for configured idle timeout

v1.0.15

  • Fix inflated in-use counts caused by stale ref_count
  • Count active VPN sessions per region instead of a drifting counter
  • Reconcile ref counts on controller startup
  • Skip duplicate acquire when re-enabling the same region

v1.0.16

  • Stop now button on idle regional stacks in the WebUI
  • New endpoint: POST /admin/regions/{region_id}/stop
  • Refuses to stop stacks that still have active devices

Deploy

git pull
docker compose up -d --build vpn-controller

v1.0.13 - Fix region spinner feedback loop

Choose a tag to compare

@AKASGaming AKASGaming released this 19 Jul 18:19

Summary

Fixes a bug where refreshing status or switching regions caused an infinite loop of API calls and exit node toggles.

Root cause

Recreating the region spinner adapter on every refresh re-fired onItemSelected, calling switchRegion repeatedly for the same region.

Fixes

  • Track active region and ignore duplicate spinner selections
  • Only rebuild spinner adapter when region list changes
  • Remove duplicate refresh on app launch
  • Skip redundant exit node broadcasts

Install

Download pia-control-v1.0.10-debug.apk below.

v1.0.12 - Android export logs

Choose a tag to compare

@AKASGaming AKASGaming released this 19 Jul 18:14

Summary

  • New Export logs button in the Android app
  • Saves a diagnostic log to Downloads and opens the share sheet
  • Logs API calls, VPN/region changes, exit node actions, errors, and UI messages

Install

Download pia-control-v1.0.9-debug.apk below.

Reproduce the issue first, then tap Export logs and share the file.

v1.0.11 - Exit node fixes, Tailscale checks, shutdown cleanup

Choose a tag to compare

@AKASGaming AKASGaming released this 19 Jul 18:08

Summary

Android (v1.0.8 APK)

  • Require Tailscale to be connected before enabling VPN or switching regions
  • Poll and apply exit node when regional stacks finish starting
  • Switch regions from the spinner while VPN is on
  • Clear exit node when controller is unreachable, VPN disabled, or stack fails
  • Refresh status when returning to the app

Controller

  • Start regional stacks in the background (faster API responses)
  • On shutdown: disable VPN for all devices and stop all regional stacks
  • Devices clear their exit node on next refresh after controller restart

Install

Download pia-control-v1.0.8-debug.apk below.

Deploy

docker compose up -d --build vpn-controller