From 0d940e53e2248a999a86a95d9fc47a6d0ddf4242 Mon Sep 17 00:00:00 2001 From: Willow C Reed Date: Thu, 23 Jul 2026 17:47:46 -0600 Subject: [PATCH 01/12] update account and billing docs --- src/lib/remote/colocation-reserve.remote.ts | 4 ++- src/routes/docs/+page.svelte | 7 ++--- .../docs/account-billing/+layout.svelte | 5 +++- .../account-billing/how-we-bill/+page.svx | 28 +++++++++++++++++++ .../docs/account-billing/support/+page.svx | 2 ++ 5 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 src/routes/docs/account-billing/how-we-bill/+page.svx diff --git a/src/lib/remote/colocation-reserve.remote.ts b/src/lib/remote/colocation-reserve.remote.ts index d5b2f71..2096357 100644 --- a/src/lib/remote/colocation-reserve.remote.ts +++ b/src/lib/remote/colocation-reserve.remote.ts @@ -33,7 +33,9 @@ async function sendDiscordNotification(webhookUrl: string, webhookBody: unknown) }); if (!response.ok) { - throw new Error(`Response status: ${response.status}, Response content: ${await response.text()}`); + throw new Error( + `Response status: ${response.status}, Response content: ${await response.text()}` + ); } } diff --git a/src/routes/docs/+page.svelte b/src/routes/docs/+page.svelte index 837f5ff..52a230c 100644 --- a/src/routes/docs/+page.svelte +++ b/src/routes/docs/+page.svelte @@ -115,10 +115,9 @@ category: 'Account & Billing', description: 'Managing your plan, invoices, and cancellation.', articles: [ - { label: 'Upgrading your plan', soon: true }, - { label: 'Reading your invoice', soon: true }, - { label: 'Cancelling a plan', soon: true }, - { label: 'Contacting support', soon: false, href: '/docs/account-billing/support' } + { label: 'Contacting Support', soon: false, href: '/docs/account-billing/support' }, + { label: 'How We Bill', soon: false, href: '/docs/account-billing/how-we-bill' }, + { label: 'Upgrading your plan', soon: true } ] } ]; diff --git a/src/routes/docs/account-billing/+layout.svelte b/src/routes/docs/account-billing/+layout.svelte index 8130fdb..59d8a1d 100644 --- a/src/routes/docs/account-billing/+layout.svelte +++ b/src/routes/docs/account-billing/+layout.svelte @@ -8,7 +8,10 @@ const { children } = $props(); - const nav = [{ label: 'Contacting Support', href: '/docs/account-billing/support' }] as const; + const nav = [ + { label: 'Contacting Support', href: '/docs/account-billing/support' }, + { label: 'How We Bill', href: '/docs/account/billing/how-we-bill' } + ] as const;
diff --git a/src/routes/docs/account-billing/how-we-bill/+page.svx b/src/routes/docs/account-billing/how-we-bill/+page.svx new file mode 100644 index 0000000..a82b120 --- /dev/null +++ b/src/routes/docs/account-billing/how-we-bill/+page.svx @@ -0,0 +1,28 @@ + + + + +# How We Bill + +For billing, we use a hybrid hourly/monthly system. Think of it like fare capping for transit systems. Each VPS tier has an hourly and monthly rate. For each VPS, you are charged for the hourly rate until you reach the monthly rate. At that point, you will be capped at the monthly rate. + +--- +## Why we use this system + +Provisioning a VPS has a cost associated with it. We use a hybrid system to account for that cost while maintaining a low rate for people who set up one VPS and stick with it. If someone is going to spin up a new VPS for a short period of time, especially once we have an API available, our costs are higher, so we wanted a model that charges fairly for both short- and long-term VPS usage. + +--- +## Hourly and Monthly Rates for Each Tier + +|Tier |vCPU |Memory |Hourly Rate |Monthly Rate +|--- |--- |--- |--- |--- +|BASE-2G |2 |2G |$0.01/hr |$5.00/mo +|BASE-4G |2 |4G |$0.03/hr |$12.00/mo +|BASE-6G |3 |6G |$0.04/hr |$18.00/mo +|BASE-8G |4 |8G |$0.05/hr |$24.00/mo +|BASE-10G |5 |10G |$0.06/hr |$30.00/mo +|BASE-12G |6 |12G |$0.07/hr |$36.00/mo +|BASE-14G |7 |14G |$0.08/hr |$42.00/mo +|BASE-16G |8 |16G |$0.10/hr |$48.00/mo diff --git a/src/routes/docs/account-billing/support/+page.svx b/src/routes/docs/account-billing/support/+page.svx index b5bb14b..9862853 100644 --- a/src/routes/docs/account-billing/support/+page.svx +++ b/src/routes/docs/account-billing/support/+page.svx @@ -9,3 +9,5 @@ Thanks for using Fyra Stack! Currently, you can contact support by emailing [support@fyrastack.com](mailto:support@fyrastack.com). + +Please note that we are a small team, so we may not be able to respond to all requests immediately. From 740470042414e5b550ed6a9e9410112fe407ea27 Mon Sep 17 00:00:00 2001 From: Willow C Reed Date: Thu, 23 Jul 2026 17:58:08 -0600 Subject: [PATCH 02/12] simplify +layout.svelte for each docs category --- src/lib/components/DocsCategoryNav.svelte | 98 +++++++++++++++++++ .../docs/account-billing/+layout.svelte | 45 +-------- src/routes/docs/colocation/+layout.svelte | 48 +-------- src/routes/docs/vps/+layout.svelte | 46 +-------- 4 files changed, 107 insertions(+), 130 deletions(-) create mode 100644 src/lib/components/DocsCategoryNav.svelte diff --git a/src/lib/components/DocsCategoryNav.svelte b/src/lib/components/DocsCategoryNav.svelte new file mode 100644 index 0000000..fedce43 --- /dev/null +++ b/src/lib/components/DocsCategoryNav.svelte @@ -0,0 +1,98 @@ + + + + +
+ +
diff --git a/src/routes/docs/account-billing/+layout.svelte b/src/routes/docs/account-billing/+layout.svelte index 59d8a1d..d43d966 100644 --- a/src/routes/docs/account-billing/+layout.svelte +++ b/src/routes/docs/account-billing/+layout.svelte @@ -1,17 +1,11 @@
@@ -23,43 +17,10 @@
- - +
- - -
{@render children()}
diff --git a/src/routes/docs/colocation/+layout.svelte b/src/routes/docs/colocation/+layout.svelte index c22e6af..f2d07ab 100644 --- a/src/routes/docs/colocation/+layout.svelte +++ b/src/routes/docs/colocation/+layout.svelte @@ -1,20 +1,11 @@
@@ -26,43 +17,10 @@
- - +
- - -
{@render children()}
diff --git a/src/routes/docs/vps/+layout.svelte b/src/routes/docs/vps/+layout.svelte index b7e66cf..52fd491 100644 --- a/src/routes/docs/vps/+layout.svelte +++ b/src/routes/docs/vps/+layout.svelte @@ -1,20 +1,11 @@
@@ -26,41 +17,10 @@
- - +
- - -
{@render children()}
From 592baebb5854d870cb84e4c18d72f72777da5bff Mon Sep 17 00:00:00 2001 From: Willow C Reed Date: Thu, 23 Jul 2026 18:39:18 -0600 Subject: [PATCH 03/12] add about page and work on getting started page --- src/routes/docs/+page.svelte | 2 +- src/routes/docs/vps/+layout.svelte | 2 +- src/routes/docs/vps/about/+page.svx | 89 +++++++++++++++++++ src/routes/docs/vps/getting-started/+page.svx | 21 +++++ src/routes/docs/vps/ssh/+page.svx | 2 +- 5 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 src/routes/docs/vps/about/+page.svx create mode 100644 src/routes/docs/vps/getting-started/+page.svx diff --git a/src/routes/docs/+page.svelte b/src/routes/docs/+page.svelte index 52a230c..2622b2f 100644 --- a/src/routes/docs/+page.svelte +++ b/src/routes/docs/+page.svelte @@ -89,10 +89,10 @@ category: 'VPS', description: 'First login, initial hardening, and setting up your environment.', articles: [ + { label: 'About Stack VPS', soon: false, href: '/docs/vps/about' }, { label: 'Connecting via SSH', soon: false, href: '/docs/vps/ssh' }, { label: 'Adding a Non-Root User', soon: false, href: '/docs/vps/user-setup' }, { label: 'Initial Server Hardening', soon: false, href: '/docs/vps/hardening' }, - { label: 'VPS Networking', soon: false, href: '/docs/vps/networking' }, { label: 'Choosing a Linux Distribution', soon: false, href: '/docs/vps/choosing-a-distro' } ] }, diff --git a/src/routes/docs/vps/+layout.svelte b/src/routes/docs/vps/+layout.svelte index 52fd491..965dc56 100644 --- a/src/routes/docs/vps/+layout.svelte +++ b/src/routes/docs/vps/+layout.svelte @@ -5,7 +5,7 @@ const { children } = $props(); - const order = ['ssh', 'user-setup', 'hardening', 'networking', 'choosing-a-distro']; + const order = ['about', 'getting-started', 'ssh', 'user-setup', 'hardening', 'choosing-a-distro'];
diff --git a/src/routes/docs/vps/about/+page.svx b/src/routes/docs/vps/about/+page.svx new file mode 100644 index 0000000..1d61526 --- /dev/null +++ b/src/routes/docs/vps/about/+page.svx @@ -0,0 +1,89 @@ + + + + +# About Stack VPS + +Here, you can learn more about what powers our stack and networking. + +--- +## Hardware + +### Servers + +For our compute nodes, we have 8x Dell PowerEdge R640 servers. Each server has 2x Intel Xeon Platinum 8260 CPUs. Each CPU has 24 cores running at 2.4 GHz with a boost clock of 3.9 GHz. In addition, each node has 128 GB of RAM. + +Alongside our compute nodes, we have 3x Dell PowerEdge R740 servers. Each server has 2x 120GB Intel SATA SSDs and 2x 1.92TB WaterPanther SAS3 SSDs. We combine all of our servers in a Ceph storage cluster, which you can read more about in the software section. + +### Networking + +We have 4 switches, 2 of which are SFP and the other 2 of which are Ethernet. Each switch also has QSFP+ ports for high-speed networking. Each Proxmox node has 2 SFP+ connections and 2 Ethernet connections in addition to their IPMI ethernet connections. Our storage nodes have QSFP+ connections for high-speed networking. + +--- +## Software + +Our software stack currently uses Proxmox for our hypervisor, VyOS for routing, Kea for DHCP, and Grafana for internal monitoring. + +### Hypervisor + +We use Proxmox as a solid baseline hypervisor with good high-availability support. We use its high availability to automatically provision VMs to balance resource use across our nodes. We also automatically rebalance load across our nodes using Proxmox's built-in Cluster Resource Scheduling feature. If a node needs to shut down, Proxmox will automatically migrate any running VMs to another node before shutting down. This helps us update our nodes without any downtime. + +For storage, we use Ceph to provide a scalable and fault-tolerant storage solution. Each storage node acts as a monitor, manager, and metadata server. We also use our first compute node as an additional monitor. + +### Networking + +Our routers run VyOS because of its reliability and configurability. We originally tried using OPNsense, but had issues with IPv6 subnet delegation. VyOS provides a more stable and flexible solution for our routing needs. + +--- +## VPS Networking + +By default, your VPS will be set up using `cloud-init` with the correct networking configuration. If you need to make changes to your networking configuration, you can do so by editing the appropriate configuration files for your distribution. + +### Notes + +Fyra Stack does not currently provide a firewall layer for your VPS, though it is planned in the future. You are responsible for configuring firewall rules on your server. See the [VPS hardening guide](https://fyrastack.com/docs/vps/hardening) for more information on setting up a firewall. + +By default, we block SMTP traffic to your VPS (port 25). If you would like to allow SMTP traffic, contact us at [support@fyralabs.com](mailto:support@fyralabs.com?subject=Allow%20SMTP%20traffic). +Generally, we prefer to have some history of a user's behavior before allowing SMTP traffic, as SMTP is known to cause abuse complaints. For that reason, we may deny a request to unblock SMTP traffic if we don't have enough history on a user. + +Spoofing MAC addresses is considered network abuse under our [acceptable use policy](https://fyrastack.com/terms-of-service). Our system also won't allow you to access the internet if you try to spoof your MAC address. All traffic to and from your assigned public IP must come from your assigned MAC address. In addition, if you try to use a source IP address that isn't assigned to you, your traffic will be blocked. + +### How our VPS Network Works + +When you set up your VPS, we use [cloud-init](https://cloud-init.io/) to configure your networking. This includes assigning your static IP address, MAC address, routes, DNS, interface name, and disabling DHCP. If you're curious about an example cloud-init configuration, here's one with information redacted: + +```yaml +version: 2 +ethernets: + public0: + match: + macaddress: $MAC_ADDRESS + set-name: eth0 + dhcp4: false + dhcp6: false + addresses: + - $PUBLIC_IP_V4/32 + - $PUBLIC_IP_V6/128 + - $PUBLIC_IPV6_DELEGATION/64 + routes: + - to: $PUBLIC_GATEWAY_V4/32 + scope: link + - to: 0.0.0.0/0 + via: $PUBLIC_GATEWAY_V4 + on-link: true + - to: ::/0 + via: $PUBLIC_GATEWAY_V6 + on-link: true + nameservers: + addresses: + - 1.1.1.1 + - 1.0.0.1 + - 2606:4700:4700::1111 + - 2606:4700:4700::1001 +``` diff --git a/src/routes/docs/vps/getting-started/+page.svx b/src/routes/docs/vps/getting-started/+page.svx new file mode 100644 index 0000000..75788cd --- /dev/null +++ b/src/routes/docs/vps/getting-started/+page.svx @@ -0,0 +1,21 @@ + + + + +# Getting Started with VPS + +Thanks for using Fyra Stack! VPS creation and management is handled through [Dashboard](https://dash.fyrastack.com). This page will walk you through the initial setup of your VPS. + +--- +## 1. Create and Account + +To get started, create an account on Dashboard at [https://dash.fyrastack.com](https://dash.fyrastack.com/register). Enter your name, email, and a password. You'll then receive a confirmation email. You must confirm your email before you can log in. + +--- +## 2. Create a Project diff --git a/src/routes/docs/vps/ssh/+page.svx b/src/routes/docs/vps/ssh/+page.svx index b5c5d37..650b757 100644 --- a/src/routes/docs/vps/ssh/+page.svx +++ b/src/routes/docs/vps/ssh/+page.svx @@ -10,7 +10,7 @@ # Connecting via SSH -Thanks for setting up a VPS with Fyra Stack! To connect to your server for the first time, you'll need an SSH client and the public IP address of your VPS. If you added an SSH key before creating the VPS, you can log in with that key. If you did not add a key during setup, log in as `root` with the default root password provided to you, then add your SSH key before continuing. +To connect to your server for the first time, you'll need an SSH client and the public IP address of your VPS. If you added an SSH key before creating the VPS, you can log in with that key. If you did not add a key during setup, log in as `root` with the default root password provided to you, then add your SSH key before continuing. --- From 6ad65cdb4727f27f0b3ec3f2bf388b75019d551f Mon Sep 17 00:00:00 2001 From: Willow C Reed Date: Thu, 23 Jul 2026 19:02:52 -0600 Subject: [PATCH 04/12] more work on getting started --- src/routes/docs/vps/getting-started/+page.svx | 33 +++++++++++++++++++ src/routes/docs/vps/ssh/+page.svx | 30 +++-------------- 2 files changed, 37 insertions(+), 26 deletions(-) diff --git a/src/routes/docs/vps/getting-started/+page.svx b/src/routes/docs/vps/getting-started/+page.svx index 75788cd..6c5046f 100644 --- a/src/routes/docs/vps/getting-started/+page.svx +++ b/src/routes/docs/vps/getting-started/+page.svx @@ -19,3 +19,36 @@ To get started, create an account on Dashboard at [https://dash.fyrastack.com](h --- ## 2. Create a Project + +Once you're logged in, hit the button to create a new project. Give it a name and click "Create". + +--- +## 3. Add Billing Information + +To add billing information, click on the "Billing" tab in the sidebar. Click "Set up billing," Enter your credit card details, and click "Save". For more information on how we bill, see [How We Bill](/docs/account-billing/how-we-bill). + +--- +## (Optional) Add an SSH Key + +Open your terminal and run the following command to generate a new SSH key pair: + +```bash +ssh-keygen -t ed25519 +``` + +To get the public key, run the following command: + +```bash +cat ~/.ssh/id_ed25519.pub +``` + +If you saved the key in a different location, look there and use `cat` on the file ending in `.pub`. + +Copy the line beginning with `ssh-ed25519` and ending with `username@hostname`. This is your public key, which you'll need to add to your VPS. + +On the Dashboard, click on your profile icon and go to Keys. From there, paste in your public key, give it a name, and click add key. + +--- +## 4. Create a VPS + +Go to the servers tab on the side in project view. Click the plus icon to create a new VPS. diff --git a/src/routes/docs/vps/ssh/+page.svx b/src/routes/docs/vps/ssh/+page.svx index 650b757..fcd1414 100644 --- a/src/routes/docs/vps/ssh/+page.svx +++ b/src/routes/docs/vps/ssh/+page.svx @@ -28,31 +28,15 @@ If you did not add a key before creating the VPS, connect without `-i` and enter ssh root@your_vps_ip ``` ---- - -## Generating an SSH key - -Open your terminal and run the following command to generate a new SSH key pair: - -```bash -ssh-keygen -t ed25519 -``` +## Adding your Public Key to your VPS -To get the public key, run the following command: +If your VPS already exists and does not have your key installed, log in with the default root password provided to you and add the key using `ssh-copy-id`: ```bash -cat ~/.ssh/id_ed25519.pub +ssh-copy-id root@your_vps_ip ``` -If you saved the key in a different location, look there and use `cat` on the file ending in `.pub`. - -Copy the line beginning with `ssh-ed25519` and ending with `username@hostname`. This is your public key, which you'll need to add to your VPS. - -### Adding your Public Key to your VPS - -On the Fyra Stack Dashboard, click on your profile icon and go to Keys. From there, paste in your public key, give it a name, and click add key. Do this *before* creating your VPS when possible, as it is added during the initialization stage. - -If your VPS already exists and does not have your key installed, log in with the default root password provided to you and add the key manually: +Alternatively, you can also add the key manually: ```bash mkdir -p ~/.ssh @@ -68,12 +52,6 @@ After saving, update the permissions on the authorized_keys file: chmod 600 ~/.ssh/authorized_keys ``` -Alternatively, you can also use the `ssh-copy-id` command to add your key to the VPS: - -```bash -ssh-copy-id root@your_vps_ip -``` - After updating the permissions, keep the root session open while you test key-based login from a new terminal. ```bash From d829dfc9b0388c9f454fc638761deb8bd9707037 Mon Sep 17 00:00:00 2001 From: Willow C Reed Date: Thu, 23 Jul 2026 20:09:49 -0600 Subject: [PATCH 05/12] finish up getting started --- src/routes/docs/vps/getting-started/+page.svx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/routes/docs/vps/getting-started/+page.svx b/src/routes/docs/vps/getting-started/+page.svx index 6c5046f..4d537e7 100644 --- a/src/routes/docs/vps/getting-started/+page.svx +++ b/src/routes/docs/vps/getting-started/+page.svx @@ -51,4 +51,9 @@ On the Dashboard, click on your profile icon and go to Keys. From there, paste i --- ## 4. Create a VPS -Go to the servers tab on the side in project view. Click the plus icon to create a new VPS. +Go to the servers tab on the side in project view. Click the plus icon to create a new VPS. Name your VPS, select your distribution (for more information, see [Choosing a Linux Distribution](/docs/vps/choosing-a-distro)), select your VPS tier, and add your SSH key. If you're not using an SSH key, **you MUST save your root password here**. Your generated root password **will not** be shown again, and if you lose it, you will not be able to access your VPS. + +--- +## Connecting to your VPS + +See our dedicated [Connecting via SSH](/docs/vps/ssh) doc. From 8c023ce39692f3b5a5491111c34c06fbc643e256 Mon Sep 17 00:00:00 2001 From: Willow C Reed Date: Thu, 23 Jul 2026 20:29:57 -0600 Subject: [PATCH 06/12] update about page --- src/routes/docs/vps/about/+page.svx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/routes/docs/vps/about/+page.svx b/src/routes/docs/vps/about/+page.svx index 1d61526..b711a9c 100644 --- a/src/routes/docs/vps/about/+page.svx +++ b/src/routes/docs/vps/about/+page.svx @@ -19,7 +19,7 @@ Here, you can learn more about what powers our stack and networking. For our compute nodes, we have 8x Dell PowerEdge R640 servers. Each server has 2x Intel Xeon Platinum 8260 CPUs. Each CPU has 24 cores running at 2.4 GHz with a boost clock of 3.9 GHz. In addition, each node has 128 GB of RAM. -Alongside our compute nodes, we have 3x Dell PowerEdge R740 servers. Each server has 2x 120GB Intel SATA SSDs and 2x 1.92TB WaterPanther SAS3 SSDs. We combine all of our servers in a Ceph storage cluster, which you can read more about in the software section. +Alongside our compute nodes, we have 3x Dell PowerEdge R740 servers. We combine all of our storage servers in a Ceph cluster, which you can read more about in the software section. ### Networking @@ -36,6 +36,8 @@ We use Proxmox as a solid baseline hypervisor with good high-availability suppor For storage, we use Ceph to provide a scalable and fault-tolerant storage solution. Each storage node acts as a monitor, manager, and metadata server. We also use our first compute node as an additional monitor. +Note that Proxmox is a temporary solution while we work on our own solution, [Odorobo](https://github.com/FyraStack/odorobo). Odorobo is a hypervisor based on Cloud-Hypervisor, which will allow for quick start times and better resource utilization. + ### Networking Our routers run VyOS because of its reliability and configurability. We originally tried using OPNsense, but had issues with IPv6 subnet delegation. VyOS provides a more stable and flexible solution for our routing needs. From fc9befd20e52aeca9fead53a933d9d2280dec39f Mon Sep 17 00:00:00 2001 From: Willow C Reed Date: Thu, 23 Jul 2026 20:32:22 -0600 Subject: [PATCH 07/12] update about page again --- src/routes/docs/vps/about/+page.svx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/docs/vps/about/+page.svx b/src/routes/docs/vps/about/+page.svx index b711a9c..b85745f 100644 --- a/src/routes/docs/vps/about/+page.svx +++ b/src/routes/docs/vps/about/+page.svx @@ -17,7 +17,7 @@ Here, you can learn more about what powers our stack and networking. ### Servers -For our compute nodes, we have 8x Dell PowerEdge R640 servers. Each server has 2x Intel Xeon Platinum 8260 CPUs. Each CPU has 24 cores running at 2.4 GHz with a boost clock of 3.9 GHz. In addition, each node has 128 GB of RAM. +For our compute nodes, we have 8x Dell PowerEdge R640 servers. Each server has 2x Intel Xeon Platinum 8260 CPUs. Each CPU has 24 cores running at 2.4 GHz with a boost clock of 3.9 GHz. Alongside our compute nodes, we have 3x Dell PowerEdge R740 servers. We combine all of our storage servers in a Ceph cluster, which you can read more about in the software section. From c48da514d5c81770106eca5ac7b1871bd3b8dc28 Mon Sep 17 00:00:00 2001 From: Cypress Reed Date: Fri, 24 Jul 2026 14:36:22 -0600 Subject: [PATCH 08/12] Update +page.svx Co-authored-by: Owen Zimmerman <123591347+Owen-sz@users.noreply.github.com> --- src/routes/docs/account-billing/support/+page.svx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/docs/account-billing/support/+page.svx b/src/routes/docs/account-billing/support/+page.svx index 9862853..507b2d7 100644 --- a/src/routes/docs/account-billing/support/+page.svx +++ b/src/routes/docs/account-billing/support/+page.svx @@ -10,4 +10,4 @@ Thanks for using Fyra Stack! Currently, you can contact support by emailing [support@fyrastack.com](mailto:support@fyrastack.com). -Please note that we are a small team, so we may not be able to respond to all requests immediately. +Please note that we are a small team, so we may not be able to respond to all requests immediately, but we will get back as soon as we can. From 51e990df65a42cc8c4757b4ecf9537524284b2ba Mon Sep 17 00:00:00 2001 From: Cypress Reed Date: Fri, 24 Jul 2026 17:55:31 -0600 Subject: [PATCH 09/12] fix mobile nav regression --- src/lib/components/DocsCategoryNav.svelte | 2 +- src/routes/docs/account-billing/+layout.svelte | 4 ++-- src/routes/docs/colocation/+layout.svelte | 4 ++-- src/routes/docs/vps/+layout.svelte | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lib/components/DocsCategoryNav.svelte b/src/lib/components/DocsCategoryNav.svelte index fedce43..9b51a7e 100644 --- a/src/lib/components/DocsCategoryNav.svelte +++ b/src/lib/components/DocsCategoryNav.svelte @@ -93,6 +93,6 @@
-
+
diff --git a/src/routes/docs/account-billing/+layout.svelte b/src/routes/docs/account-billing/+layout.svelte index d43d966..0ae2159 100644 --- a/src/routes/docs/account-billing/+layout.svelte +++ b/src/routes/docs/account-billing/+layout.svelte @@ -16,11 +16,11 @@
-
+
-
+
{@render children()}
diff --git a/src/routes/docs/colocation/+layout.svelte b/src/routes/docs/colocation/+layout.svelte index f2d07ab..4726469 100644 --- a/src/routes/docs/colocation/+layout.svelte +++ b/src/routes/docs/colocation/+layout.svelte @@ -16,11 +16,11 @@
-
+
-
+
{@render children()}
diff --git a/src/routes/docs/vps/+layout.svelte b/src/routes/docs/vps/+layout.svelte index 965dc56..a1345bc 100644 --- a/src/routes/docs/vps/+layout.svelte +++ b/src/routes/docs/vps/+layout.svelte @@ -16,11 +16,11 @@
-
+
-
+
{@render children()}
From a8218bc3c5f9d6036386ed7749326a445bde3636 Mon Sep 17 00:00:00 2001 From: Cypress Reed Date: Wed, 29 Jul 2026 18:26:11 -0600 Subject: [PATCH 10/12] fix a couple of issues --- src/routes/docs/+page.svelte | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/routes/docs/+page.svelte b/src/routes/docs/+page.svelte index 2622b2f..fbb51d7 100644 --- a/src/routes/docs/+page.svelte +++ b/src/routes/docs/+page.svelte @@ -11,12 +11,15 @@ | '/docs/colocation/remote-hands' | '/docs/colocation/power-budgets' | '/docs/colocation/networking' + | '/docs/vps/getting-started' + | '/docs/vps/about' | '/docs/vps/ssh' | '/docs/vps/user-setup' | '/docs/vps/hardening' | '/docs/vps/networking' | '/docs/vps/choosing-a-distro' - | '/docs/account-billing/support'; + | '/docs/account-billing/support' + | '/docs/account-billing/how-we-bill'; type Step = { n: string; @@ -90,6 +93,7 @@ description: 'First login, initial hardening, and setting up your environment.', articles: [ { label: 'About Stack VPS', soon: false, href: '/docs/vps/about' }, + { label: 'Getting Started', soon: false, href: '/docs/vps/getting-started' }, { label: 'Connecting via SSH', soon: false, href: '/docs/vps/ssh' }, { label: 'Adding a Non-Root User', soon: false, href: '/docs/vps/user-setup' }, { label: 'Initial Server Hardening', soon: false, href: '/docs/vps/hardening' }, From 7cc8d90b0915eb6719355974080acf8a29312654 Mon Sep 17 00:00:00 2001 From: Cypress Reed Date: Wed, 29 Jul 2026 18:36:06 -0600 Subject: [PATCH 11/12] mark how we bill as soon --- src/routes/docs/+page.svelte | 2 +- .../docs/account-billing/+layout.svelte | 2 +- .../account-billing/how-we-bill/+page.svx | 28 ------------------- 3 files changed, 2 insertions(+), 30 deletions(-) delete mode 100644 src/routes/docs/account-billing/how-we-bill/+page.svx diff --git a/src/routes/docs/+page.svelte b/src/routes/docs/+page.svelte index fbb51d7..94bb13b 100644 --- a/src/routes/docs/+page.svelte +++ b/src/routes/docs/+page.svelte @@ -120,7 +120,7 @@ description: 'Managing your plan, invoices, and cancellation.', articles: [ { label: 'Contacting Support', soon: false, href: '/docs/account-billing/support' }, - { label: 'How We Bill', soon: false, href: '/docs/account-billing/how-we-bill' }, + { label: 'How We Bill', soon: true}, { label: 'Upgrading your plan', soon: true } ] } diff --git a/src/routes/docs/account-billing/+layout.svelte b/src/routes/docs/account-billing/+layout.svelte index 0ae2159..37131b1 100644 --- a/src/routes/docs/account-billing/+layout.svelte +++ b/src/routes/docs/account-billing/+layout.svelte @@ -5,7 +5,7 @@ const { children } = $props(); - const order = ['support', 'how-we-bill']; + const order = ['support'];
diff --git a/src/routes/docs/account-billing/how-we-bill/+page.svx b/src/routes/docs/account-billing/how-we-bill/+page.svx deleted file mode 100644 index a82b120..0000000 --- a/src/routes/docs/account-billing/how-we-bill/+page.svx +++ /dev/null @@ -1,28 +0,0 @@ - - - - -# How We Bill - -For billing, we use a hybrid hourly/monthly system. Think of it like fare capping for transit systems. Each VPS tier has an hourly and monthly rate. For each VPS, you are charged for the hourly rate until you reach the monthly rate. At that point, you will be capped at the monthly rate. - ---- -## Why we use this system - -Provisioning a VPS has a cost associated with it. We use a hybrid system to account for that cost while maintaining a low rate for people who set up one VPS and stick with it. If someone is going to spin up a new VPS for a short period of time, especially once we have an API available, our costs are higher, so we wanted a model that charges fairly for both short- and long-term VPS usage. - ---- -## Hourly and Monthly Rates for Each Tier - -|Tier |vCPU |Memory |Hourly Rate |Monthly Rate -|--- |--- |--- |--- |--- -|BASE-2G |2 |2G |$0.01/hr |$5.00/mo -|BASE-4G |2 |4G |$0.03/hr |$12.00/mo -|BASE-6G |3 |6G |$0.04/hr |$18.00/mo -|BASE-8G |4 |8G |$0.05/hr |$24.00/mo -|BASE-10G |5 |10G |$0.06/hr |$30.00/mo -|BASE-12G |6 |12G |$0.07/hr |$36.00/mo -|BASE-14G |7 |14G |$0.08/hr |$42.00/mo -|BASE-16G |8 |16G |$0.10/hr |$48.00/mo From b99d5e88b730b597b360cfa8c094486f64ab0885 Mon Sep 17 00:00:00 2001 From: Cypress Reed Date: Wed, 29 Jul 2026 18:47:40 -0600 Subject: [PATCH 12/12] fix formatting --- src/routes/docs/+page.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/docs/+page.svelte b/src/routes/docs/+page.svelte index 94bb13b..3589726 100644 --- a/src/routes/docs/+page.svelte +++ b/src/routes/docs/+page.svelte @@ -120,7 +120,7 @@ description: 'Managing your plan, invoices, and cancellation.', articles: [ { label: 'Contacting Support', soon: false, href: '/docs/account-billing/support' }, - { label: 'How We Bill', soon: true}, + { label: 'How We Bill', soon: true }, { label: 'Upgrading your plan', soon: true } ] }