Skip to content

Commit

Permalink
[Docs] Move cloud docs to main docs (#2049)
Browse files Browse the repository at this point in the history
## Summary

First draft of cloud docs. Collects all the features currently under the
jetify cloud docs, and moves them into the devbox docs

## How was it tested?

Localhost + `npm run build` to check for broken links

---------

Signed-off-by: John Lago <750845+Lagoja@users.noreply.github.com>
Co-authored-by: Lucille Hua <lucille.hua@jetpack.io>
  • Loading branch information
Lagoja and LucilleH committed Jun 11, 2024
1 parent 5326d5b commit 815ff11
Show file tree
Hide file tree
Showing 78 changed files with 1,263 additions and 21 deletions.
17 changes: 17 additions & 0 deletions docs/app/docs/cli_reference/devbox_cache.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# devbox cache

A collection of commands to interact with the Jetify Cache or other Nix caches.

```bash
devbox cache [command]
```

## Subcommands
info Output information about the nix cache
upload upload specified or nix packages in current project to cache

## Options
| Option | Description |
| --- | --- |
| `-h, --help` | help for cache |
| `-q, --quiet` | suppresses logs |
28 changes: 28 additions & 0 deletions docs/app/docs/cli_reference/devbox_cache_configure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# devbox cache configure

Configure Nix to use the Devbox cache as a substituter.

If the current Nix installation is multi-user, this command grants the Nix
daemon access to Devbox caches by making the following changes:

- Adds the current user to Nix's list of trusted users in the system nix.conf.
- Adds the cache credentials to ~root/.aws/config.

Configuration requires sudo, but only needs to happen once. The changes persist
across Devbox accounts and organizations.

This command is a no-op for single-user Nix installs that aren't running the
Nix daemon.

```bash
devbox cache configure [flags]
```

## Options

<!-- Markdown table of options -->
| Option | Description |
| --- | --- |
| `--user string` | The OS user to configure Nix for. Defaults to the current user. |
| `-h, --help` | help for configure |
| `-q, --quiet` | suppresses logs |
14 changes: 14 additions & 0 deletions docs/app/docs/cli_reference/devbox_cache_info.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# devbox cache info

Output information about the nix cache

```bash
devbox cache info [flags]
```

## Options
<!-- Markdown table of options -->
| Option | Description |
| --- | --- |
| `-h, --help` | help for info |
| `-q, --quiet` | suppresses logs |
23 changes: 23 additions & 0 deletions docs/app/docs/cli_reference/devbox_cache_upload.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# devbox cache upload

Upload specified nix installable or nix packages in current project to cache.
If [installable] is provided, only that installable will be uploaded.
Otherwise, all packages in the project will be uploaded.
To upload to specific cache, use --to flag. Otherwise, a cache from
the cache provider will be used, if available.

```bash
devbox cache upload [installable] [flags]
```

## Aliases
upload, copy

## Options

| Option | Description |
| --- | --- |
| `-c, --config string` | path to directory containing a devbox.json config file |
| `-h, --help` | help for upload |
| `--to string` | URI of the cache to copy to |
| `-q, --quiet` | suppresses logs |
30 changes: 30 additions & 0 deletions docs/app/docs/cli_reference/devbox_secrets.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# devbox secrets

Manage environment variables and secrets

## Synopsis

Manage environment variables and secrets

Securely stores and retrieves environment variables on the cloud.
Environment variables are always encrypted, which makes it possible to
store values that contain passwords and other secrets.

```bash
devbox secrets [flags]
```

## Options

```bash
-h, --help help for devbox secrets
```

## SEE ALSO

* [devbox_secrets_download](./devbox_secrets_download.md) - Download environment variables into the specified file
* [devbox_secrets_init](./devbox_secrets_init.md) - initialize directory and devbox secrets project
* [devbox_secrets_list](./devbox_secrets_list.md) - List all stored environment variables
* [devbox_secrets_rm](./devbox_secrets_rm.md) - Delete one or more environment variables
* [devbox_secrets_set](./devbox_secrets_set.md) - Securely store one or more environment variables
* [devbox_secrets_upload](./devbox_secrets_upload.md) - Upload variables defined in a .env file
26 changes: 26 additions & 0 deletions docs/app/docs/cli_reference/devbox_secrets_download.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# devbox secrets download

Download environment variables into the specified file

## Synopsis

Download environment variables stored into the specified file (most commonly a .env file). The format of the file is one NAME=VALUE per line.

```bash
devbox secrets download <file1> [flags]
```

## Options

```bash
--environment string Environment name, such as dev or prod (default "dev")
-f, --format string File format: env or json (default "env")
-h, --help help for download
--org-id string Organization id to namespace secrets by
--project-id string Project id to namespace secrets by
```

## SEE ALSO

* [devbox_secrets](./devbox_secrets.md) - Manage environment variables and secrets

17 changes: 17 additions & 0 deletions docs/app/docs/cli_reference/devbox_secrets_init.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# devbox secrets init

Initialize devbox secrets in the project directory. This setup step creates/connects to an existing jetify cloud project

```bash
devbox secrets init [flags]
```

## Options

```bash
-h, --help help for init
```

## SEE ALSO

* [devbox_secrets](./devbox_secrets.md) - Manage environment variables and secrets
26 changes: 26 additions & 0 deletions docs/app/docs/cli_reference/devbox_secrets_list.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# devbox secrets list

List all stored environment variables

## Synopsis

List all stored environment variables. If no environment flag is provided, variables in all environments will be listed.

```bash
devbox secrets list [flags]
```

## Options

```bash
--environment string Environment name, such as dev or prod (default "dev")
-f, --format string Display the key values in key=value format (default "table")
-h, --help help for ls
--org-id string Organization id to namespace secrets by
--project-id string Project id to namespace secrets by
-s, --show Display the value of each environment variable (secrets included)
```

## SEE ALSO

* [devbox_secrets](./devbox_secrets.md) - Manage environment variables and secrets
24 changes: 24 additions & 0 deletions docs/app/docs/cli_reference/devbox_secrets_rm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# devbox secrets rm

Delete one or more environment variables

## Synopsis

Delete one or more environment variables that are stored.

```bash
devbox secrets rm <NAME1> [<NAME2>]... [flags]
```

## Options

```bash
--environment string Environment name, such as dev or prod (default "dev")
-h, --help help for rm
--org-id string Organization id to namespace secrets by
--project-id string Project id to namespace secrets by
```

## SEE ALSO

* [devbox_secrets](./devbox_secrets.md) - Manage environment variables and secrets
24 changes: 24 additions & 0 deletions docs/app/docs/cli_reference/devbox_secrets_set.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# devbox secrets set

Securely store one or more environment variables

## Synopsis

Securely store one or more environment variables.

```bash
devbox secrets set <NAME1>=<value1> [<NAME2>=<value2>]... [flags]
```

## Options

```bash
--environment string Environment name, such as dev or prod (default "dev")
-h, --help help for set
--org-id string Organization id to namespace secrets by
--project-id string Project id to namespace secrets by
```

## SEE ALSO

* [devbox_secrets](./devbox_secrets.md) - Manage environment variables and secrets
25 changes: 25 additions & 0 deletions docs/app/docs/cli_reference/devbox_secrets_upload.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# devbox secrets upload

Upload variables defined in a .env file

## Synopsis

Upload variables defined in one or more .env files. The files should have one NAME=VALUE per line.

```bash
devbox secrets upload <file1> [<fileN>]... [flags]
```

## Options

```bash
--environment string Environment name, such as dev or prod (default "dev")
-f, --format string File format: env or json (default "env")
-h, --help help for upload
--org-id string Organization id to namespace secrets by
--project-id string Project id to namespace secrets by
```

## SEE ALSO

* [devbox_secrets](./devbox_secrets.md) - Manage environment variables and secrets
4 changes: 4 additions & 0 deletions docs/app/docs/cloud/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"label": "Jetify Cloud",
"position": 3
}
63 changes: 63 additions & 0 deletions docs/app/docs/cloud/cache/authenticating.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
title: Authenticating with the Cache
sidebar_position: 2
---

Your Jetify Cloud organization is automatically provisioned with a shared cache. Any developers invited to your Jetify Cloud org will be automatically authenticated with the cache when they sign in.

## Managing Access to the Cache

Team members can be added in one of two Roles, which controls their access to the Jetify Build Cache.

- **Members** have read-only access to the cache, and cannot push new packages
- **Admins** have full read/write access to the cache, and can push new packages.

You can add or remove team members from your team, or modify their role, using the [Jetify Cloud Dashboard](../dashboard/inviting_members.md)

## Authenticating from the CLI

Once you’ve been invited to a team, you can authenticate from the CLI by running:

```bash
devbox auth login
```

This will launch a browser window where you can authenticate with an email address or via Google SSO.

You can check your current authentication status by running:

```bash
devbox auth whoami
```

You can check that you are connected to the cache, and your current cache URL, by running:

```bash
devbox cache info
```

You can logout by running:

```bash
devbox auth logout
```

### Authenticating CI or Build Hosts

Admin users can generate Personal Access Tokens to authenticate on hosts where you cannot login via the CLI or Browser. This token will have the same push/pull permissions as the account that generated it.

:::warning
Treat your Personal Access Token as a password — keep it secret and secure, and do not share it with other users.
:::

To generate a Token, first authenticate as described above, and then run:

```bash
devbox auth token new
```

To authenticate with the personal access token, export it as an environment variable on your host:

```bash
export DEVBOX_ACCESS_TOKEN=<personal_token>
```
23 changes: 23 additions & 0 deletions docs/app/docs/cloud/cache/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: Caching and Sharing Packages with Jetify
sidebar_position: 1
---

The **Jetify Cache** provides teams with a private, secure Nix package cache that makes it easy to share packages across all your projects and users. With the Jetify cache, you never have to rebuild a package, even if it's removed from the official [Nix package cache](https://cache.nixos.org).

:::info
If you want to use the Jetify Cache, you will need to add a payment option and upgrade your account to a Solo Plan or higher. For more details, see our [Plans and Pricing](https://www.jetify.com/cloud/pricing).
:::

Jetify Cache provides the following features:

* **Fast package installations**: Devbox is optimized for downloading and installing packages from the Jetify cache, and it can bypass costly Nix evaluation steps when installing your packages.
* **Integrates seamlessly with Devbox**: Devbox automatically configures access to the cache once users sign in, and packages are automatically pulled from the cache when running `devbox shell`, `devbox run`, or other commands.
* **Integrates with CI/CD**: Jetify Cache can generate a secure token for securely pushing and pulling packages in CI/CD.
* **Simple Access Control**: Devbox makes it easy to restrict which users can write to the cache, and makes it easy to revoke access directly from the dashboard. Jetify also supports Single Sign On for Enterprise Cache users

## Guides

- [Setting Up Jetify Cache](./authenticating.md)
- [Pushing and Pulling Packages from the Cache](./usage.md)
- [Using the Jetify Prebuilt Cache](./prebuilt_cache.md)
36 changes: 36 additions & 0 deletions docs/app/docs/cloud/cache/prebuilt_cache.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: Using the Jetify Prebuilt Cache
---

The Jetify Prebuilt Cache provides users with prebuilt binaries of popular packages for the most common OS(Linux, macOS) + Architecture (x86-64, aarch64) combinations.

The Jetify Prebuilt cache is intended to supplement the official NixOS Cache, and includes packages which are not available by default. This includes:

1. Older packages that have been garbage collected
2. Packages which have not been built for certain platforms
3. Packages with unfree licenses, which are not automatically built by NixOS

## Using the Prebuilt Cache

The Prebuilt Cache is available for free to every developer who signs up for a Jetify Cloud account. Devbox will automatically configure itself to use the Prebuilt Cache when you login with `devbox auth login`: no additional action or steps are required.

:::info
Free Jetify Cloud accounts are restricted to a **25 GB per month** download limit, and cannot generate access tokens for the cache.

Solo, Starter, and Scaleup accounts have unlimited access to the Prebuilt Cache.
:::

## Packages included in the Prebuilt Cache

Some of the packages included in the Prebuilt Cache are:

* MongoDB
* Terraform
* Vault
* DynamoDB local
* Pulumi
* Helm
* Unrar
* Graphite

More packages are added regularly. If you encounter a package that you think should be in the Prebuilt Cache, notify us on our [Discord](https://discord.gg/jetify).
Loading

0 comments on commit 815ff11

Please sign in to comment.