Changelog
Every version, newest first. Each release carries the whole record as CHANGELOG.md, with what was wrong, how it was found, and why the fix is the shape it is.
1.179
- 1.179.0 a Fleet page, and where to run the relay
1.178
- 1.178.0 what was noticed at 1.176.0, answered
1.177
- 1.177.0 seen through another panel, two-factor across the fleet, and staying signed in
1.176
- 1.176.0 the old pages go
1.175
- 1.175.0 the shares' address at home, Home's skeleton, the true peak, phone tabs, and three flaky tests
1.174
- 1.174.3 panel-api(8) says it is confined
- 1.174.2 the key's public half taken from the key when a tree has none
- 1.174.1 the signing key's public half kept out of the tarballs; a missing release named
- 1.174.0 new versions found by the panels themselves, signed; and make publish
1.173
- 1.173.1 the site's screenshots, with the traffic and a phone a tenth bigger
- 1.173.0 the traffic on every Home, and a tenth bigger on a phone
1.172
- 1.172.1 the home-screen icon on an iPhone, again
- 1.172.0 colour and icons like the app, the household's card, and the downloads on R2
1.171
- 1.171.0 a website and the manual, help on every page, the household looking, and the modules' state
1.170
- 1.170.0 Accounts and Modules in the new look, the home-screen icon, and the tests' clock
1.169
- 1.169.0 the Self-hosted page in the new look, and Linux on how to open the shares
1.168
- 1.168.0 the NAS page in the new look, the sign-in form that emptied itself, and the panel's own DNS recognised
1.167
- 1.167.0 Home and the menu follow the machine: a NAS's tiles, Self-hosted's, and their menu entries
1.166
- 1.166.0 panel-relay for several households: groups, a token per domain, the commands
1.165
- 1.165.0 a failing disk said, and Status in the new look
1.164
- 1.164.0 the VPN page in the new look
1.163
- 1.163.0 the Wi-Fi page in the new look
1.162
- 1.162.0 the Firewall page in the new look
1.161
- 1.161.0 Household in the new look, and Everyone paused
1.160
- 1.160.0 Maintenance, calmer
1.159
- 1.159.0 the DHCP page
1.158
- 1.158.0 the DNS page
1.157
- 1.157.0 Block
1.156
- 1.156.0 what is happening on the network
1.155
- 1.155.0 Home, calmer
1.154
- 1.154.0 the menu of four
1.153
- 1.153.1 a code can be pasted
- 1.153.0 guarding what the relay lets in
1.152
- 1.152.2 signing in, in two steps
- 1.152.1 signing in with a second factor
- 1.152.0 a second factor from the page; a proxied record refused
1.151
- 1.151.2 the relay's first VPS: a record left, and a restart loop
- 1.151.1 from outside, a second factor
- 1.151.0 panel-relay: other sites, and from outside
1.150
- 1.150.0 the panel's own name, with Let's Encrypt's certificate
1.149
- 1.149.2 fleets across sites: the first answers
- 1.149.1 the line measured in pieces Cloudflare accepts
- 1.149.0 sharing the line fairly
1.148
- 1.148.1 a USB stick is not a hard disk
- 1.148.0 the Machine card first, with what is in the box
1.147
- 1.147.0 each module daemon in an account of its own
1.146
- 1.146.0 a restore restores the modules
1.145
- 1.145.10 the Alpine leftovers removed
- 1.145.9 no CSS for classes nothing sets
- 1.145.8 every panel.conf key documented
- 1.145.7 the tests leave the machine running them as it was
- 1.145.6 notifications shelved
- 1.145.5 the way of working, written down
- 1.145.4 without a signal, the speed
- 1.145.3 a signal the radio does not give is not "strong (0 dBm)"
- 1.145.2 Home's Health card, compact when all is well
- 1.145.1 echoes that can be sent: root's group may ping
- 1.145.0 the Wi-Fi: an access point, its page, and its join code
1.144
- 1.144.1 what needs attention, opened; DNS asked where it answers
- 1.144.0 a closer look: the line, DNS, the cables, the machine
1.143
- 1.143.0 Apps is called Self-hosted
1.142
- 1.142.0 a restart followed on the page
1.141
- 1.141.1 a Pi's other kernel taken for a newer one
- 1.141.0 the daily internet time
1.140
- 1.140.0 pause schedules
1.139
- 1.139.0 installing from the browser
1.138
- 1.138.1 the flaky broker tests, found and fixed
- 1.138.0 a home domain
1.137
- 1.137.1 the brand pack's icons, the app's
- 1.137.0 an app's name servers, and Plex's link
1.136
- 1.136.0 who is paused, at a glance
1.135
- 1.135.3 pausing, drawn as the app draws it
- 1.135.2 the tunnel's keys kept off the page
- 1.135.1 the app's icon on the home screen
- 1.135.0 pausing people from the household page
1.134
- 1.134.0 the tunnel up after a restart
1.130
- 1.130.4 a phone on Activity, by its name
- 1.130.3 what an independent review of 1.130.0-1.130.2 found
- 1.130.2 every change waiting, in one answer
- 1.130.1 the certificate, shown for the app's pin
- 1.130.0 phones, paired by signing in
1.129
- 1.129.1 the restart, forgotten once done
1.127
- 1.127.2 the DNS page could not read encrypted DNS's status
- 1.127.1 installing encrypted DNS says what it is doing
- 1.127.0 encrypted DNS: DNS over HTTPS, falling back to plain
1.126
- 1.126.0 blocklists that change when told, dnsmasq's own retries, Jellyfin on the graphics chip
1.125
- 1.125.2 the household page said "media isn't answering" when it was
- 1.125.1 the router's update stopped at the household role
- 1.125.0 the household page, its role, and people
1.124
- 1.124.0 the Network page's Devices card (design A)
1.123
- 1.123.0 the DNS cache: HTTPS lookups, a minimum lifetime, its size named
1.122
- 1.122.1 the R5S on its eMMC: what its first install taught
- 1.122.0 a card for the NanoPi R5S, and the install onto its eMMC
1.121
- 1.121.1 TREK certified on both kinds of machine
- 1.121.0 the device's name, what is using it, TREK, the profiles page, and the Protectli's reports
1.120
- 1.120.1 the busiest devices are devices; the operator's answers of 2 October
- 1.120.0 accounts for shares on the Accounts page, one update for every panel, Activity lines that open
1.119
- 1.119.1 the busiest devices, asked of the kernel over netlink
- 1.119.0 NAS mirrors, the monthly check, accounts for shares only
1.118
- 1.118.0 after an update, the logs, the firewall's defaults, and drawers
1.117
- 1.117.2 dates as "30 Sep 2026"
- 1.117.1 Sign out and the tab bar on a phone
- 1.117.0 the pages' look, second pass
1.116
- 1.116.3 the Traffic card on every device
- 1.116.2 wsdd2, which Debian 13 has
- 1.116.1 an upgraded Pi's modules, and Samba an update added
- 1.116.0 NAS shares, and pages you can tell apart
1.115
- 1.115.0 NAS, first part: disks, and the apps' data onto them
1.114
- 1.114.2 the account drawer says its own refusals
- 1.114.1 a panel too old to manage is said so
- 1.114.0 managing another panel through this one
1.113
- 1.113.0 sharing accounts between paired panels
1.112
- 1.112.0 Containers folded into Apps
1.111
- 1.111.1 the images carry dbus
- 1.111.0 the pairing code: click to copy, typed into shape
1.110
- 1.110.1 pairing: the code stays, and a refusal says why
- 1.110.0 a card for the Raspberry Pi
1.109
- 1.109.3 the keep band waits for the new version
- 1.109.2 Jellyfin and Syncthing offered on arm64
- 1.109.1 an install that outlasted its call
- 1.109.0 Apps, from a catalogue
1.108
- 1.108.1 Home's Activity card shorter; the Modules page on a phone
- 1.108.0 the Media module
1.107
- 1.107.0 the Containers module
1.106
- 1.106.0 the broker's /etc narrowed
1.105
- 1.105.1 the logo's colours
- 1.105.0 the brand
1.104
- 1.104.0 hardening the broker, part 2: an installer, and the broker confined
1.103
- 1.103.0 hardening the broker, part 1: the master says who is calling
1.102
- 1.102.1 Edit on the status line; what paired panels see
- 1.102.0 step 4c: other panels on Home
1.101
- 1.101.0 step 4b: panels find each other and pair
1.100
- 1.100.0 step 4a-2: Home hears what happens, and the Activity card
1.99
- 1.99.0 step 4a: Home from cards, live
1.98
- 1.98.0 step 3, 2b-2: first boot is not a router, and the profiles page
1.97
- 1.97.2 Home no longer shows a router's cards for a second on a device that is not one
- 1.97.1 Home cards and the mobile app decided; a VM to try Router on
- 1.97.0 step 3, 2b-1: switching Router on for a device that is not a router
1.96
- 1.96.1 three things from the operator's screenshots of Router off
- 1.96.0 step 3, 2a: Router is a module, the Firewall optional, and the base firewall
1.95
- 1.95.0 step 3 begins: what is open to the network
1.94
- 1.94.2 a bundle installs on the Pi's apt
- 1.94.1 the review's refusals, confirmed
- 1.94.0 step 2: installing and removing a module's packages
1.93
- 1.93.2 three things from the operator's screenshots of 1.93.1
- 1.93.1 the menu, as decided with the operator
- 1.93.0 SSH for administrators
1.92
- 1.92.8 the tunnel cannot be taken away from a session it carries
- 1.92.7 disabling and enabling the VPN, seen on the Pi
- 1.92.6 a change awaiting confirmation survives a broker restart
- 1.92.5 what the Pi's log of the 1.92.4 upgrade showed
- 1.92.4 what the Pi showed of 1.92.3: the master locked out of the database folder, and a kernel with no Landlock
- 1.92.3 the sandbox confines every thread, and says which daemons it does not
- 1.92.2 the published passwords do not survive an install
- 1.92.1 the broker installs only what it rendered
- 1.92.0 modules can be enabled and disabled; the VPN is the first
1.91
- 1.91.16 the design: one OS, many appliances
- 1.91.15 https://panel, a neutral "local", and "null" on the VPN page
- 1.91.14 the time axis did not line up with the chart
- 1.91.13 the traffic chart, UniFi-style; upload is purple
- 1.91.12 deleting the VPN tunnel
- 1.91.11 NAT depended on the uplink coming up first
- 1.91.10 the Home page's Clients card
- 1.91.9 three things the first screenshot of 1.91.8 showed
- 1.91.8 what a device on the LAN probably is
- 1.91.7 the live ISO hung at a black screen
- 1.91.6 a self-assigned address was taken for a lease
- 1.91.5 detection lost the uplink to a lock
- 1.91.4 dnsmasq died at boot before the LAN was up
- 1.91.3 the panel takes over dnsmasq's configuration
- 1.91.2 the handover and README rewritten; history moved here
- 1.91.1 the live image's first-boot script stopped halfway
- 1.91.0 rebuilt from 1.83.0, checked against the 1.90.1 binaries
1.83
- 1.83.0 the WAN chart stops being a mirror
1.82
- 1.82.1 wg-quick needs resolvconf, and said so badly
- 1.82.0 the panel fixes its own files
1.81
- 1.81.3 the page loads, the login does not
- 1.81.2 the panel locked itself out of its own configuration
- 1.81.1 a router whose LAN port is a DHCP client
- 1.81.0 the install writes the disk
1.80
- 1.80.2 port 80 was never opened, and the panel was booted here to prove it
- 1.80.1 dhclient has no -timeout, and a stopped server exits 0
- 1.80.0 stop making Debian into Alpine
1.79
- 1.79.1 a patience bug that looked like a detection bug
- 1.79.2 the same udhcpc mistake, in shell this time
- 1.79.1 the uplink was never given an address
- 1.79.0 a default login, and the URL that was wrong all along
1.78
- 1.78.2 three faults in two photographs of a working machine
- 1.78.1 an image was built AND BOOTED here, which changes what is known
- 1.78.0 which disk, decided and tested; the destroying, not yet
1.77
- 1.77.1 it configures itself and tells you where it is
- 1.77.0 the panel can write its own configuration
1.76
- 1.76.4 a port that is switched off is not a port with no cable
- 1.76.3 Debian ships the applet without the name
- 1.76.2 firmware-linux does not include the NIC firmware
- 1.76.1 it booted on the GK41, and nobody could log in
- 1.76.0 non-free firmware goes in, which reverses 1.75.0
1.75
- 1.75.4 the ISO had no partition table, and Etcher said so
- 1.75.3 an image build has no init to detect
- 1.75.2 an error that carries its own remedy, and an unsigned rootfs refused
- 1.75.1 the usage message caused the error it was describing
- 1.75.0 a bootable image recipe, which has never been run
1.74
- 1.74.2 Debian 13 is the target, and 12 was hiding two bugs
- 1.74.1 the installer had been written for Debian and had never met one
- 1.74.0 the panel runs under systemd
1.73
- 1.73.4 the two markers a power cut could erase
- 1.73.3 two architectures, and a release that says which it is for
- 1.73.2 the init system is detected, not assumed
- 1.73.1 panelctl ifaces detect, and an Alpine root to test it in
- 1.73.0 working out which port is the uplink, before anything is configured
1.72
- 1.72.10 the throughput chart says which half is which, and how big
- 1.72.9 the card that waited in silence, and the component built for it
- 1.72.8 the console and the page disagreed, and the console was wrong
- 1.72.7 two things only a screenshot of the staged release could show
- 1.72.6 the upload drawer promised something it then walked away from
- 1.72.5 Delete threw on a name removed nine releases earlier
- 1.72.4 "Restart now" was still sending nothing, and the check said it worked
- 1.72.3 status offered to undo an undo
- 1.72.2 the ten-minute window did not exist
- 1.72.1 the audit trail recorded refusals as successes
- 1.72.0 panelctl can see, keep and undo a restore
1.71
- 1.71.3 [object Object] where the reason belonged
- 1.71.2 the three buttons at the end of a restore were all dead
- 1.71.1 two things a screenshot showed
- 1.71.0 the restore that made every later request a 500
1.70
- 1.70.0 the second-boot rule for a restore
1.69
- 1.69.0 restore crosses the tier boundary, and keeps one snapshot
1.68
- 1.68.0 previewing a restore, end to end
1.67
- 1.67.0 restore applies, on the upgrade model
1.66
- 1.66.1 a button that said the opposite of what it did
- 1.66.0 the restore preview, which changes nothing
1.65
- 1.65.1 two things a screenshot showed and no check could
- 1.65.0 Maintenance is a page again, and the backup card is a form
1.64
- 1.64.1 the passphrase floor, lowered on purpose
- 1.64.0 the backup download, which is finally something to press
1.63
- 1.63.0 core.backup.create, sealing inside the root tier
1.62
- 1.62.1 the backup collector, and where the tiers put it
- 1.62.0 "More time" on an unconfirmed change
1.61
- 1.61.0 the backup archive format, and nothing that calls it yet
1.60
- 1.60.1 "restart the panel afterwards", and no way to
- 1.60.0 the machine could always roll back and could not say so
1.59
- 1.59.1 the arrows were tall and thin, not small
- 1.59.0 drag-and-drop removed
1.58
- 1.58.2 the grip only where a finger is doing the pointing
- 1.58.1 the drag was a reorder with no gesture around it
- 1.58.0 rules can be dragged, and "loaded" stopped meaning two things
1.57
- 1.57.1 a tbody inside a tbody, and sixty things that never hid
- 1.57.0 the rules table is grouped by chain
1.56
- 1.56.6 "not installed" was a claim the page could not make
- 1.56.5 the same field list, forgotten a third time
- 1.56.4 five layers of a check that tested nothing
- 1.56.3 the same fix, applied at one call site out of four
- 1.56.2 a stylesheet addressing a class nobody set
- 1.56.1 a move that looked like nothing and then undid itself
- 1.56.0 order was the whole meaning and could not be set
1.55
- 1.55.9 half a repair, announced as a whole one
- 1.55.8 a good cache drawn as a warning
- 1.55.7 the selector matched nothing, twice
- 1.55.6 a tunnel is not the network page's to edit
- 1.55.5 tables scroll inside their card
- 1.55.4 the 30-day view was 56,000 years off
- 1.55.3 the pointer says when
- 1.55.2 the chart was asserting something untrue
- 1.55.1 a 24-hour span drawn as 86 seconds
- 1.55.0 split tunnelling puts itself back
1.54
- 1.54.4 replies were dropped above the firewall
- 1.54.3 upgrading was never allowed to read what it staged
- 1.54.2 "one past wg-quick's" was no better than wg-quick's
- 1.54.1 the panel sets Table = off itself
- 1.54.0 the panel was fighting wg-quick for the routing
1.53
- 1.53.3 a default route into a tunnel that carries no default
- 1.53.2 the output chain marked WireGuard's own packets
- 1.53.1 a selected device could reach the internet and nothing else
- 1.53.0 the appliance itself, and the loop it would cause
1.52
- 1.52.2 the Change button I had just removed
- 1.52.1 choosing devices by name
- 1.52.0 split tunnelling
1.51
- 1.51.2 the phone and the desktop are one menu
- 1.51.1 the tunnel masquerade was checked away
- 1.51.0 the traffic chart picks its interface
1.50
- 1.50.0 sharing masquerades out of the tunnel too
1.49
- 1.49.3 the tab bar is not the rail
- 1.49.2 the menu, in three groups
- 1.49.1 the drawer pass, finished
- 1.49.0 the audit trail can be searched
1.48
- 1.48.0 which disk, and the two VPN fields
1.47
- 1.47.2 "meta is not defined", and why nothing saw it
- 1.47.1 Accounts, stopping the patching
- 1.47.0 DNS and DHCP are one page
1.46
- 1.46.2 the Accounts page, properly this time
- 1.46.1 panelctl traffic
- 1.46.0 seconds, and the Accounts drawer
1.45
- 1.45.1 the Logs page, and a phone that can reach 30d
- 1.45.0 ui-smoke presses the buttons
1.44
- 1.44.3 Window: 0 means the default window
- 1.44.2 a rename asked to be confirmed, and the span drew nothing
- 1.44.1 the selector could not be clicked
- 1.44.0 60s / 24h / 30d on the chart
1.43
- 1.43.0 thirty days of traffic, and the VPN total moves
1.42
- 1.42.0 the release is in the band, and the scale recovers
1.41
- 1.41.1 a window sixty milliseconds wide
- 1.41.0 the chart is mirrored
1.40
- 1.40.0 the chart reads back, and the dot finally sits right
1.39
- 1.39.2 the DHCP tables, and the VPN page left alone
- 1.39.1 a crooked dot, and the seeding showing up a scale
- 1.39.0 the chart opens already drawn
1.38
- 1.38.0 the status card earns its space now
1.37
- 1.37.3 "null" on the upgrade card, for the third time
- 1.37.2 the ring can sweep now
- 1.37.1 the two tables somebody actually watches
- 1.37.0 the dashboard is pushed, not polled
1.36
- 1.36.3 the Clients card went blank, and why nothing caught it
- 1.36.2 the dashboard was asleep
- 1.36.1 hierarchy, from the design skill I had not read
- 1.36.0 the dashboard stopped rebuilding itself
1.35
- 1.35.1 the wave was the animation inventing data
- 1.35.0 less animation, not more
1.34
- 1.34.1 the upload says how far it has got
- 1.34.0 rolling numbers, and a LAN the page could not see
1.33
- 1.33.2 a kernel that cannot answer, reported as an answer
- 1.33.1 the forward fix only helped new machines
- 1.33.0 the forward chain was empty, and nft was appending
1.32
- 1.32.2 a missing feature reported as a fault
- 1.32.1 the forwarding fix missed a fresh machine
- 1.32.0 a router that could not route
1.31
- 1.31.2 pages that report a fault can now fix it
- 1.31.1 the System page, and the tape goes quiet
- 1.31.1 the appliance layout took the machine off the network
- 1.31.1 the appliance layout took the machine off the network
- 1.31.0 About is about the machine
1.30
- 1.30.2 interface rates, and less prose on the pages
- 1.30.1 the panel restarts itself
- 1.30.0 the dashboard cards open their pages
1.29
- 1.29.2 two true things and no instruction
- 1.29.1 a shorter chart, and what a restart really costs
- 1.29.0 the cheap upgrade is unreachable in practice
1.28
- 1.28.5 an upgrade that broke the install
- 1.28.4 an upgrade that offered itself for ever
- 1.28.3 a directory it owned and could not reach
- 1.28.2 a directory the broker made and the api could not use
- 1.28.1 a page with a title and nothing else
- 1.28.0 the upgrade page
1.27
- 1.27.0 the upgrade path, end to end but for the page
1.26
- 1.26.1 restarting only what changed
- 1.26.0 upgrading the panel from inside it (the mechanism)
1.25
- 1.25.1 a bug I invented, and one real improvement
- 1.25.0 telling the root modules apart
1.24
- 1.24.6 a model the page could not render
- 1.24.5 state left behind, silently
- 1.24.4 two ideas of which group
- 1.24.3 the same bug, in the other script
- 1.24.2 a directory nobody could enter
- 1.24.1 a root that is never written
- 1.24.0 a release that installs itself
1.23
- 1.23.3 the model that was never sent
- 1.23.2 a click that did nothing
- 1.23.1 "null", and the rest of the pages
- 1.23.0 the Network page can change things
1.22
- 1.22.1 the interface verbs
- 1.22.0 the interfaces file, modelled
1.21
- 1.21.1 every daemon, one at a time
- 1.21.0 the sandbox is real
1.20
- 1.20.3 what the log actually weighs
- 1.20.2 2.4MB of names that blocked nothing
- 1.20.1 a setting with no switch
- 1.20.0 rotation, blocked, and the VPN card
1.19
- 1.19.1 why it was still jerky
- 1.19.0 the trace moves
1.18
- 1.18.5 an hour on a working tunnel
- 1.18.4 two ways of misreading a tunnel
- 1.18.3 the band that could not be answered
- 1.18.2 import, properly
- 1.18.1 a tunnel runs two ways
- 1.18.0 the VPN page
1.17
- 1.17.2 where a private key ends up
- 1.17.1 the tunnel verbs
- 1.17.0 WireGuard, the two parsers
1.16
- 1.16.1 a directory nobody owned
- 1.16.0 the blocklists page
1.15
- 1.15.3 the lists were written and never read
- 1.15.2 blocklists wired up
- 1.15.1 blocklists, fetching and storage
- 1.15.0 blocklists, the parsing half
1.14
- 1.14.0 local names, reservations, and one thing dnsmasq cannot do
1.13
- 1.13.1 a model that could never fill in
- 1.13.0 DHCP as its own page
1.12
- 1.12.1 the firewall did not survive a reboot
- 1.12.0 the last hand-written config file
1.11
- 1.11.3 the rule was never about what the blocks are
- 1.11.2 a descendant selector, and a split built wrong
- 1.11.1 cards that do not line up
- 1.11.0 the dashboard, against the mockup
1.10
- 1.10.1 the handover had stopped being read
- 1.10.0 the DNS module, reachable
1.9
- 1.9.1 the resolver's configuration, modelled
- 1.9.0 reading dnsmasq's own figures
1.8
- 1.8.2 the rest of what 500ms broke
- 1.8.1 what 500ms broke
- 1.8.0 half a second, and something actually tested
1.7
- 1.7.3 a resolver switched off by a stale comment
- 1.7.2 two pollers, two answers
- 1.7.1 a chart drawing the absence of data
- 1.7.0 three numbers the panel already knew
1.6
- 1.6.2 the forward that took the panel
- 1.6.1 the same misreading twice
- 1.6.0 what the kernel already knows about connections
1.5
- 1.5.0 port forwards, and the rule nobody should have to know about
1.4
- 1.4.2 the word people search for
- 1.4.1 the page the user asked for, twice
- 1.4.0 sharing the connection is not a rule
1.3
- 1.3.2 "any" is not an address
- 1.3.1 a failure arranged to be invisible
- 1.3.0 the rule editor
1.2
- 1.2.3 two versions that were never the version
- 1.2.2 the firewall blocked the appliance's own DHCP
- 1.2.1 the model can describe the mockup
- 1.2.0 what the rules can say
1.1
- 1.1.2 two files, one check
- 1.1.1 one card, and the string I did not look at
- 1.1.0 the rules, listed
1.0
- 1.0.5 there is no unmanaged state
- 1.0.4 a button that should not have been there, and a fault that was not
- 1.0.3 the list that drifted from the directory
- 1.0.2 a trail of nothing happening
- 1.0.1 the tab that named the wrong module
- 1.0.0 the firewall, reachable
0.99
- 0.99.4 the firewall verbs
- 0.99.3 the chart waited for a name it could have asked for
- 0.99.2 the row that was created empty
- 0.99.1 the page was not slow, it was blank
- 0.99.0 the test that starts it
0.98
- 0.98.1 a deploy is the binaries and the frontend together
- 0.98.0 the OpenBSD tree removed
0.97
- 0.97.1 three notes from the page on a real machine
- 0.97.0 the Network page, and what it deliberately cannot do
0.96
- 0.96.1 one server was shut down and there were two
- 0.96.0 per-device traffic, and the mechanism found by trying it
0.95
- 0.95.0 a Linux sys module, and two figures that would have been wrong
0.94
- 0.94.1 the socket the module took away from the master
- 0.94.0 the mockup's palette, and the check that earned its keep
0.93
- 0.93.2 the database was root's, and the panel is not root
- 0.93.1 the deploy script shipped three of five binaries
- 0.93.0 the panel itself, running on Alpine
0.92
- 0.92.0 the dashboard, rebuilt from a supplied mockup
0.91
- 0.91.0 last-seen persistence
0.90
- 0.90.1 the join, confirmed on the machine
- 0.90.0 dnsmasq, and names on the clients page
0.89
- 0.89.3 the never-run tests, run
- 0.89.2 the last open reading, confirmed
- 0.89.1 clients confirmed on the machine, and two limits written down
- 0.89.0 clients, keyed on the hardware address
0.88
- 0.88.2 a spare port that said the cable was out
- 0.88.1 a service that could not survive a reboot, and a crash with no log
- 0.88.0 a LAN for the dev VM, because the feature after this cannot be seen without one
0.87
- 0.87.0 the first real Alpine run, and the dependency it found
0.86
- 0.86.0 a real dev-and-deploy path, checked as far as this environment allows
0.85
- 0.85.0 panel's word is final, and one real mechanism removed to match
0.84
- 0.84.0 the CGO/musl question, checked rather than assumed
0.83
- 0.83.1 a correction, and the install docs that were missing
- 0.83.0 the first daemon that actually runs
0.82
- 0.82.0 the Alpine platform foundation, actually built and tested