From 68862069228b61eaf6ea8941627b967e21a8f99a Mon Sep 17 00:00:00 2001 From: carly Date: Thu, 28 May 2026 11:40:39 -0600 Subject: [PATCH] Updated enterprise documentation --- .hugo_build.lock | 0 assets/jsconfig.json | 11 --- .../cores/changing-a-core-domain.md | 41 ++++++++++ .../docs/enterprise/cores/deleting-a-core.md | 35 +++++++-- .../enterprise/cores/provisioning-a-core.md | 76 +++++++++++++++---- .../docs/enterprise/cores/what-are-cores.md | 8 +- .../domains/federated-vs-custom-domains.md | 2 +- .../domains/why-3-domains-are-required.md | 4 +- .../getting-started/account-cancellation.md | 6 +- .../enterprise/getting-started/overview.md | 10 +-- .../enterprise/reference/tier-comparison.md | 8 +- content/docs/enterprise/team/user-roles.md | 4 +- 12 files changed, 157 insertions(+), 48 deletions(-) delete mode 100644 .hugo_build.lock delete mode 100644 assets/jsconfig.json create mode 100644 content/docs/enterprise/cores/changing-a-core-domain.md diff --git a/.hugo_build.lock b/.hugo_build.lock deleted file mode 100644 index e69de29..0000000 diff --git a/assets/jsconfig.json b/assets/jsconfig.json deleted file mode 100644 index 6fd5870..0000000 --- a/assets/jsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": ".", - "paths": { - "*": [ - "../../../.cache/hugo_cache/modules/filecache/modules/pkg/mod/github.com/gohugoio/hugo-mod-jslibs-dist/popperjs/v2@v2.21100.20000/package/dist/cjs/*", - "../../../.cache/hugo_cache/modules/filecache/modules/pkg/mod/github.com/twbs/bootstrap@v5.3.3+incompatible/js/*" - ] - } - } -} \ No newline at end of file diff --git a/content/docs/enterprise/cores/changing-a-core-domain.md b/content/docs/enterprise/cores/changing-a-core-domain.md new file mode 100644 index 0000000..60f92fa --- /dev/null +++ b/content/docs/enterprise/cores/changing-a-core-domain.md @@ -0,0 +1,41 @@ +--- +weight: 169 +title: "Changing a Core's Domain" +description: "How to change the domain assigned to a Core after provisioning." +icon: "article" +date: "2025-05-28T00:00:00-00:00" +lastmod: "2025-05-28T00:00:00-00:00" +draft: false +toc: true +--- + +When a Core is provisioned, it is assigned a domain based on the subdomain you specified in `core-create` and one of the three domains attached to your account — for example, `mycore.yourdomain.com`. + +If you need to change the domain assigned to a Core after provisioning, you can do so using the Provisioner API. + +## Before You Begin + +Glue records for the new domain must be configured correctly before running this command. The domain change will not work if DNS is not set up in advance. + +## Changing the Domain + +```bash +curl -k -X POST https://178.156.242.210:4445/core-changedomain \ + -u "username:password" \ + -H "Content-Type: application/json" \ + -d '{ + "account_id": "your-account-id", + "ip": "", + "domain": "", + "organization": "" +}' +``` + +| Field | Required | Description | +|-------|----------|-------------| +| `account_id` | Yes | Your Federated Enterprise account ID. | +| `ip` | Yes | The IP address of the Core you are updating. | +| `domain` | Yes | The new domain to assign to this Core. Glue records must already be configured. | +| `organization` | Yes | Your company name. This is used to identify the organization this Core belongs to. | + +A successful request returns an empty JSON object (`{}`). diff --git a/content/docs/enterprise/cores/deleting-a-core.md b/content/docs/enterprise/cores/deleting-a-core.md index f0cf2ee..c97f020 100644 --- a/content/docs/enterprise/cores/deleting-a-core.md +++ b/content/docs/enterprise/cores/deleting-a-core.md @@ -1,5 +1,5 @@ --- -weight: 169 +weight: 170 title: "Deleting a Core" description: "How to permanently remove a Core from your account." icon: "article" @@ -11,14 +11,37 @@ toc: true Deleting a Core permanently removes it from your account. Only **Owners** and **Admins** can delete Cores. -## How to Delete a Core +There are two ways to delete a Core. + +> **Warning:** Deleting a Core is **permanent and irreversible**. The Core will be removed from your account and CoreServer will stop functioning on that VM. Your underlying VM and its data remain yours, but you will need to re-provision if you want to restore it. + +## Option 1: Dashboard 1. Go to **Cores** in the dashboard. -2. Locate the Core you want to remove. -3. Click the delete action for that Core. -4. Confirm the deletion. The Core is immediately decommissioned. +2. Locate the Core by its IP address. +3. Click **Delete** on that Core. +4. Confirm the deletion. The Core is immediately removed from your account. -> **Warning:** Deleting a Core is **permanent and irreversible**. Any data or configuration on the Core will be lost. Make sure to back up anything important before proceeding. +## Option 2: API + +You can also delete a Core programmatically using the Provisioner API. + +```bash +curl -k -X POST https://178.156.242.210:4445/core-delete \ + -u "username:password" \ + -H "Content-Type: application/json" \ + -d '{ + "account_id": "your-account-id", + "ip": "" +}' +``` + +| Field | Required | Description | +|-------|----------|-------------| +| `account_id` | Yes | Your Federated Enterprise account ID. | +| `ip` | Yes | The IP address of the Core to delete. | + +A successful request returns an empty JSON object (`{}`). ## Billing After Deletion diff --git a/content/docs/enterprise/cores/provisioning-a-core.md b/content/docs/enterprise/cores/provisioning-a-core.md index 7736508..4982bef 100644 --- a/content/docs/enterprise/cores/provisioning-a-core.md +++ b/content/docs/enterprise/cores/provisioning-a-core.md @@ -1,23 +1,77 @@ --- weight: 168 title: "Provisioning a Core" -description: "How to provision a new Core from the dashboard." +description: "How to download CoreServer, install it on your VM, and connect it to the platform." icon: "article" date: "2025-05-27T00:00:00-00:00" -lastmod: "2025-05-27T00:00:00-00:00" +lastmod: "2025-05-28T00:00:00-00:00" draft: false toc: true --- -Provisioning a Core starts a new compute instance under your account. Owners and Admins can provision Cores from the Cores section of the dashboard. +On Federated Enterprise, a **Core** is a bundle of open source business software running on **CoreServer** — our custom operating system — installed on a virtual machine you provide. You bring the compute; we supply the OS and software, and connect it to the platform. -## How to Provision a Core +## Before You Begin -1. Navigate to **Cores** in the main navigation. -2. Click **Provision a Core**. -3. Optionally, select any add-ons you'd like enabled on this Core (Monitoring, Backup, etc.). -4. Confirm. The Core is created immediately and moves into **Provisioning** status while the Provisioner sets it up. -5. Once provisioning completes, the Core will show as **Active** with its assigned IP address visible in the dashboard. +- You need an active Enterprise account. +- You need a virtual machine provisioned at your cloud provider. CoreServer supports x86 64-bit VMs. +- You need SSH access to your VM during setup. + +## Step 1: Download the CoreServer Image + +Download the image format that matches your cloud provider's import requirements: + +| Format | Download | Use With | +|--------|----------|----------| +| Compressed raw (`.img.xz`) | [coreserver-enterprise-x86-26-05-12.img.xz](https://nginx.core-x86builder.federatedcomputer.cloud/coreserver-enterprise-x86-26-05-12.img.xz) | DigitalOcean | +| QCOW2 (`.qcow2`) | [coreserver-enterprise-x86-26-05-12.qcow2](https://nginx.core-x86builder.federatedcomputer.cloud/coreserver-enterprise-x86-26-05-12.qcow2) | KVM, QEMU, Proxmox | +| Raw image (`.img`) | [coreserver-enterprise-x86-26-05-12.img](https://nginx.core-x86builder.federatedcomputer.cloud/coreserver-enterprise-x86-26-05-12.img) | AWS EC2, general use | +| Compressed tar (`.tar.gz`) | [coreserver-enterprise-x86-26-05-12.tar.gz](https://nginx.core-x86builder.federatedcomputer.cloud/coreserver-enterprise-x86-26-05-12.tar.gz) | Google Cloud | +| VMDK (`.vmdk`) | [coreserver-enterprise-x86-26-05-12.vmdk](https://nginx.core-x86builder.federatedcomputer.cloud/coreserver-enterprise-x86-26-05-12.vmdk) | VMware (ESXi, vSphere), AWS EC2 | + +Import the image into your cloud provider and create a VM from it. Refer to your provider's documentation for the import process. + +## Step 2: Add Your SSH Public Key + +Your account's SSH public key authorizes the Provisioner to connect to and configure your CoreServer VM. + +1. In the dashboard, navigate to **Cores**. +2. Copy your account's **SSH public key**. +3. Add the key to the `authorized_keys` file on your VM (typically `~/.ssh/authorized_keys` for the root user). + +## Step 3: Run core-create + +Once the SSH key is in place, run the following command to provision your Core. Your `account_id` is pre-filled in the template provided to you at signup. + +```bash +curl -k -X POST https://178.156.242.210:4445/core-create \ + -H "Content-Type: application/json" \ + -d '{ + "account_id": "your-account-id", + "ip": "", + "subdomain": "", + "apps": "", + "backups": "yes | no", + "monitoring": "yes | no", + "email": "" +}' +``` + +| Field | Required | Description | +|-------|----------|-------------| +| `account_id` | Yes | Your Federated Enterprise account ID. | +| `ip` | Yes | The IP address of your CoreServer VM. | +| `subdomain` | Yes | A name of your choosing for this Core (e.g. `team`, `prod`, `nyc1`). | +| `apps` | Yes | Comma-separated list of apps to install (e.g. `"nextcloud,gitea,vaultwarden"`). Available apps: `jitsi`, `element`, `nextcloud`, `baserow`, `freescout`, `espocrm`, `castopod`, `wordpress`, `kimai`, `plane`, `headscale`, `vaultwarden`, `calcom`, `listmonk`, `plausible`, `discourse`, `gitea`, `bookstack`. | +| `backups` | Yes | Enable automated backups (`yes` or `no`). | +| `monitoring` | Yes | Enable monitoring (`yes` or `no`). | +| `email` | No | Who to send the welcome email to. If omitted, the email goes to the account holder. | + +## What Happens Next + +The Provisioner configures your CoreServer VM and notifies the platform when complete. The Core will automatically appear in the **Cores** section of your dashboard as **Active** — no manual refresh needed. + +If you specified a recipient email, they'll receive a welcome email confirming the Core is live. ## Billing for New Cores @@ -26,7 +80,3 @@ Cores are charged on a monthly basis as part of your regular billing cycle. When Any Core add-ons selected at provisioning are also prorated in the same way. > **Note:** Your account balance is used first when any charge is incurred. Only the amount exceeding your balance is charged to your card. See [Account Balance](../billing/account-balance.md) for details. - -## SSH Access - -Your account SSH key pair (generated at checkout) is the credential used by the Provisioner when setting up your Core. You can find your SSH public key in **Account Settings**. Enterprise and Consultant tier accounts can also use the Provisioner API directly to automate Core management. diff --git a/content/docs/enterprise/cores/what-are-cores.md b/content/docs/enterprise/cores/what-are-cores.md index d0a390a..3c46585 100644 --- a/content/docs/enterprise/cores/what-are-cores.md +++ b/content/docs/enterprise/cores/what-are-cores.md @@ -1,7 +1,7 @@ --- weight: 167 title: "What Are Cores" -description: "An introduction to Cores — dedicated compute units tied to your account." +description: "An introduction to Cores" icon: "article" date: "2025-05-27T00:00:00-00:00" lastmod: "2025-05-27T00:00:00-00:00" @@ -9,9 +9,9 @@ draft: false toc: true --- -A **Core** is a dedicated compute unit provisioned to your account. Think of it as a private server that Federated manages on your behalf — you don't deal with hardware or hosting directly, but the Core is exclusively yours. +A **Core** is a bundle of open source business software — pre-configured to work together — running on **CoreServer**, Federated's custom operating system. CoreServer is installed on a virtual machine you own and provision at your cloud provider. Federated manages the software layer; you own the underlying infrastructure. -Each Core has its own IP address and is provisioned into your account's environment. Cores are billed on a per-unit, per-month basis on top of your membership fee. The exact per-Core price depends on your plan tier. +Each Core is registered to your account with its VM's IP address. Cores are billed on a per-unit, per-month basis on top of your membership fee. The exact per-Core price depends on your plan tier. ## Core States @@ -21,7 +21,7 @@ A Core moves through several states during its lifecycle: - **Provisioning** — The Provisioner is actively setting up the Core. This typically takes a few minutes. - **Active** — The Core is live and operational, accessible at its assigned IP address. - **Failed** — Provisioning encountered an error. Contact support if a Core is stuck in this state. -- **Decommissioned** — The Core has been deleted and is no longer running. +- **Decommissioned** — The Core has been removed from your account. Your underlying VM remains yours, but CoreServer will no longer function on it. ## Core Add-ons diff --git a/content/docs/enterprise/domains/federated-vs-custom-domains.md b/content/docs/enterprise/domains/federated-vs-custom-domains.md index c818e4c..b2134f4 100644 --- a/content/docs/enterprise/domains/federated-vs-custom-domains.md +++ b/content/docs/enterprise/domains/federated-vs-custom-domains.md @@ -35,4 +35,4 @@ Custom domains carry a registration fee (paid at checkout or when added post-sig | Annual renewal | Free | Varies by TLD | | Your own brand | No | Yes | | Available immediately | Yes | After registration | -| Managed by Federated | Yes | No | +| Managed by Federated | Yes | Yes | diff --git a/content/docs/enterprise/domains/why-3-domains-are-required.md b/content/docs/enterprise/domains/why-3-domains-are-required.md index 3e2d60b..ff38921 100644 --- a/content/docs/enterprise/domains/why-3-domains-are-required.md +++ b/content/docs/enterprise/domains/why-3-domains-are-required.md @@ -11,8 +11,6 @@ toc: true Federated Enterprise requires a minimum of **three domains** when you sign up, and this is a technical requirement of the platform — not an arbitrary constraint. -The underlying Federated Core platform uses multiple domains in tandem to support the various services that run on your Cores. These services include unified messaging, unified storage, authentication, and other components of the Core environment. Each domain serves a distinct functional purpose in the platform's routing and service delivery architecture. - -Having three separate domains ensures that services can be isolated, routed independently, and remain resilient if one domain encounters an issue. It also allows the platform to properly configure email delivery, SSL certificates, and service endpoints across your environment. +Each domain on your account needs its own SSL certificate to serve traffic securely. The platform provisions these certificates automatically, and three domains ensures there is enough capacity to cover all the certificates your environment needs to function correctly. > **Note:** If you're unsure which domains to register, choosing the free Federated Domains option at checkout gets you a compliant, fully functional three-domain setup with no additional cost or configuration required. diff --git a/content/docs/enterprise/getting-started/account-cancellation.md b/content/docs/enterprise/getting-started/account-cancellation.md index 638d02e..3b884ee 100644 --- a/content/docs/enterprise/getting-started/account-cancellation.md +++ b/content/docs/enterprise/getting-started/account-cancellation.md @@ -16,13 +16,13 @@ You can cancel your Federated Enterprise subscription at any time from the Billi - Your subscription is marked as canceling. You will not be billed again. - You retain full access to your account, Cores, and domains until the end of your current billing period. - You'll receive a confirmation email with the date your access ends. -- On the cancellation date, your account is marked inactive, your Cores are decommissioned, and access to the platform is revoked. +- On the cancellation date, your account is marked inactive and access to the platform is revoked. Your VMs and cloud infrastructure remain yours — however, CoreServer requires an active account to function, so the software running on your Cores will stop working. -> **Important:** Cancellation is **not reversible through self-service**. If you cancel and later want to use Federated Enterprise again, you will need to create a new account at enterprise.federated.computer. Your previous account's data, Cores, and configuration will not be restored. +> **Important:** Cancellation is **not reversible through self-service**. If you cancel and later want to use Federated Enterprise again, please [contact us](https://freescout.federated.computer/help/3593186542). ## Undoing a Cancellation -If you change your mind before your access period ends, you can reverse the cancellation from the Billing page by clicking **Keep my subscription**. Once your access period has expired, the option is no longer available. +If you change your mind before your access period ends, you can reverse the cancellation from the Billing page by clicking **Keep My Subscription**. Once your access period has expired, the option is no longer available. ## Account Balance on Cancellation diff --git a/content/docs/enterprise/getting-started/overview.md b/content/docs/enterprise/getting-started/overview.md index f90c9a9..829e26c 100644 --- a/content/docs/enterprise/getting-started/overview.md +++ b/content/docs/enterprise/getting-started/overview.md @@ -9,15 +9,15 @@ draft: false toc: true --- -Federated Enterprise is a managed compute platform that gives your organization private, self-hosted infrastructure without the complexity of running it yourself. At its core, the platform lets you provision and manage **Cores** — dedicated compute units tied to your account — backed by a set of **domains** that route traffic to your environment. +Federated Enterprise is a software platform that runs on virtual machines you provision at your cloud provider of choice. You bring the compute infrastructure; Federated supplies **CoreServer** — a custom operating system — and **Cores** — bundles of open source business software that run on top of it. -Unlike shared cloud platforms, Federated Enterprise gives each account its own isolated compute resources. Your Cores belong to your account, run under your domains, and can be equipped with optional add-on services like monitoring and backups. +A **Core** is a bundle of open source apps (such as Nextcloud, Gitea, and Vaultwarden) built to work together out of the box, running on **CoreServer** on your own VM. Cores are tied to your account and backed by a set of **domains** that route traffic to your environment. Each Core can also be equipped with optional add-on services like monitoring and backups. ## What You Get -- One or more provisioned Cores (compute instances) under your account -- At least three domains — either Federated-managed domains or custom domains you register through the platform -- An SSH key pair automatically generated at checkout, allowing your team to connect to and manage Cores via the Provisioner API +- CoreServer and your chosen Core software bundle installed on your own VMs, managed through the Federated platform +- At least three domains — either free Federated-managed domains, or custom domains you purchase and register through the platform +- An SSH key pair automatically generated at checkout, used by the Provisioner to configure your Cores - A billing structure based on your chosen plan tier, with transparent per-Core pricing - A team workspace where you can invite colleagues at different permission levels diff --git a/content/docs/enterprise/reference/tier-comparison.md b/content/docs/enterprise/reference/tier-comparison.md index d12ef7b..98a8c29 100644 --- a/content/docs/enterprise/reference/tier-comparison.md +++ b/content/docs/enterprise/reference/tier-comparison.md @@ -54,4 +54,10 @@ To illustrate the difference between tiers, here are example monthly costs for a - **Consultant:** $200 membership + (10 × $15) = **$350/mo** - **Pay-As-You-Go:** $0 membership + (10 × $55) = **$550/mo** -At higher Core counts, Enterprise becomes more economical due to its lower per-Core rate. At very low Core counts (1–3 Cores), Pay-As-You-Go or Consultant may be more cost-effective than paying the Enterprise membership fee. +The most cost-effective tier depends on how many Cores you run: + +- **1–4 Cores:** Pay-As-You-Go is cheapest — no membership fee offsets the higher per-Core rate at low volume. +- **5–39 Cores:** Consultant is cheapest — the $200 membership fee is recovered through lower per-Core pricing compared to Pay-As-You-Go. +- **40+ Cores:** Enterprise is cheapest — the crossover point where the $10/Core rate makes the $400 membership fee worthwhile. + +These breakpoints assume no add-ons. Add-on pricing also varies by tier, so accounts with heavy add-on usage may find the breakeven shifts in favor of a higher tier sooner. diff --git a/content/docs/enterprise/team/user-roles.md b/content/docs/enterprise/team/user-roles.md index 8680a06..0fbf5b4 100644 --- a/content/docs/enterprise/team/user-roles.md +++ b/content/docs/enterprise/team/user-roles.md @@ -16,6 +16,7 @@ Federated Enterprise has three user roles. Each role has a defined set of permis | Permission | Owner | Admin | Member | |---|---|---|---| | View Cores & Domains | Yes | Yes | Yes | +| View billing | Yes | Yes | Yes | | Provision & delete Cores | Yes | Yes | No | | Manage Core add-ons | Yes | Yes | No | | Buy & manage domains | Yes | Yes | No | @@ -26,11 +27,12 @@ Federated Enterprise has three user roles. Each role has a defined set of permis | Remove users | Yes | Yes | No | | Cancel account | Yes | Yes | No | | Update account settings | Yes | Yes | No | +| Transfer ownership | Yes | No | No | | Edit own profile | Yes | Yes | Yes | ## Role Descriptions -**Owner** — There is exactly one Owner per account. The Owner is the user who signed up and completed checkout. The Owner role cannot be changed or transferred through the UI — contact support if you need to transfer account ownership. +**Owner** — There is exactly one Owner per account. The Owner is the user who signed up and completed checkout. Ownership can be transferred by changing another user's role to Owner from the Team page — this immediately makes them the Owner and changes the previous Owner to an Admin. **Admin** — Admins have the same permissions as the Owner for day-to-day operations: managing Cores, domains, billing, and users. Admins cannot change the Owner's role and cannot perform actions that affect the Owner user directly.