boban pushed to feat/portal-design at boban/CluPilotCloud
-
5aef5e693c fix(billing): verification vouches for a value, not for a row
boban pushed to feat/portal-design at boban/CluPilotCloud
-
42ceafb57f fix(billing): a self-declared VAT ID must not zero the tax
boban pushed to feat/portal-design at boban/CluPilotCloud
-
76510a59a3 fix(billing): VAT follows the customer, not a global setting
boban pushed to feat/portal-design at boban/CluPilotCloud
-
ac3f429958 fix(billing): round the recurring figure the same way as the total
boban pushed to feat/portal-design at boban/CluPilotCloud
-
9fab251fb3 fix(billing): make the one-plan-change rule hold under two clicks
-
a87a4f512d feat(billing): one plan change at a time, and every price says what it is
- Compare 2 commits »
boban pushed to feat/portal-design at boban/CluPilotCloud
-
55b1a1468f fix(admin): the admin password is shown once, and means it
-
d40113be8e fix(admin): never reset a stranger's VM, never leave the console spinning
-
aae0457e19 feat(admin): administrator access to a customer's Nextcloud
- Compare 3 commits »
boban pushed to feat/portal-design at boban/CluPilotCloud
-
d26200c74b feat(billing): a cart you can actually read and change
boban pushed to feat/portal-design at boban/CluPilotCloud
-
a6d7594e5c test: do not reach for Redis from the provisioning queue
boban pushed to feat/portal-design at boban/CluPilotCloud
-
819872bb79 fix(ci): install dependencies by cloning, not through GitHub's API
boban pushed to feat/portal-design at boban/CluPilotCloud
-
7af3e2957b test: do not depend on a built asset manifest
boban pushed to feat/portal-design at boban/CluPilotCloud
-
2c0884357c fix(pages): the update and placeholder pages must not need a build
boban pushed to feat/portal-design at boban/CluPilotCloud
-
b55a127a00 fix(ci): drop the cache steps this runner cannot serve
boban pushed to feat/portal-design at boban/CluPilotCloud
-
7cd3ff33bd fix(ci): survive GitHub's anonymous rate limit
boban pushed to feat/portal-design at boban/CluPilotCloud
-
6367f4a9fd fix(ci): pin actions to versions the runner can execute
boban pushed to feat/portal-design at boban/CluPilotCloud
-
53d305340f fix(vpn): a late revocation must not disconnect whoever holds the key now
-
4f9ca27732 fix(vpn): a replaced key must not stall the reconciliation
-
556a560506 feat(vpn): explain a missing download, and offer a way out
-
e5aea84539 docs(ci): wire the runner up to the point where only the token is missing
-
419a1a8552 fix(ci): keep the workflow and runner compatible with Gitea 1.20
- Compare 5 commits »
boban pushed to feat/portal-design at boban/CluPilotCloud
-
8117630a65 feat(ops): update page, automatic 419 recovery, CI workflow
boban pushed to feat/portal-design at boban/CluPilotCloud
-
ac86efd9c3 feat(deploy): unattended install from a single answers file
boban pushed to feat/portal-design at boban/CluPilotCloud
-
062d337dd0 fix(portal): move notices into the header, so the page stops scrolling twice
boban pushed to feat/portal-design at boban/CluPilotCloud
-
3fad319053 fix(hosts): re-read the host before deciding there is no DNS record
-
7b57ab21cb fix(hosts): retry a failed DNS registration before advancing without a name
-
952e8e5d2f fix(hosts): number DNS names by the normalised label, not the raw code
-
e96f4c1c1a fix(datacenters): a code becomes a DNS label, so validate it as one
-
69043f9ffc fix(dns): deleting a record that is already gone is success
- Compare 8 commits »
boban pushed to feat/portal-design at boban/CluPilotCloud
-
7941935f57 fix(traffic): a sample without counters is not zero traffic
-
2415dde288 fix(deploy,traffic): clear caches before restarts, hide the token, widen the lock
-
0135f114d3 fix(traffic): keep retrying the throttle release after a Proxmox blip
-
25c4c5df5a fix(deploy): restart the worker after the hub key, diff against what was deployed
-
2b70c9226a fix(traffic): release the throttle at month end; close the Livewire bypass
- Compare 12 commits »