Skip to content

Composable image: Move common content into individual settings topics #4789

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 42 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
1900178
stash
catplat Jul 15, 2025
9939a6d
Initial commit of new files containing common content
catplat Jul 19, 2025
b3f5940
Remove common content that has been moved into individual settings files
catplat Jul 19, 2025
862e72f
Composable image: Remove common content that has been moved into indi…
catplat Jul 19, 2025
c1cfdc8
settings/_index.md initial draft
catplat Jul 19, 2025
bf79995
Rename settings to image-properties
catplat Jul 19, 2025
a72bb8f
Merge branch 'main' into 4773-move-rlnshps-content
catplat Jul 19, 2025
8a90ba1
image-properties tweaks
catplat Jul 20, 2025
6f15842
Platform hooks.md - use codetabs
catplat Jul 20, 2025
8471043
platform web.md - update and fix link in intro
catplat Jul 20, 2025
61f6df4
Platform crons: change link title to avoid confusion with wiki page d…
catplat Jul 20, 2025
f07b94f
Platform crons.md - edit
catplat Jul 20, 2025
1aea509
Platform file to additional_hosts
catplat Jul 20, 2025
13d41e3
Platform image files - update link to additional_hosts info
catplat Jul 20, 2025
0d5c4b3
Upsun composable image - link update for testing
catplat Jul 20, 2025
2d88e72
Upsun single-runtime: Assorted minor additions to track merging content
catplat Jul 20, 2025
5a60377
Upsun: commit new image property files that contain merged content
catplat Jul 20, 2025
a97ca41
Upsun: tmp image-properties/_index.md file for testing subcategory
catplat Jul 20, 2025
b48a091
Merge branch 'main' into 4773-move-rlnshps-content
catplat Jul 28, 2025
245beb2
app-reference: change topic title to "Choose image type"
catplat Jul 31, 2025
d9eb5f6
platform: composable-image topic updates
catplat Jul 31, 2025
d203170
platform: single-runtime image topic updates
catplat Jul 31, 2025
66ff126
platform: add image-properties parent topic and child topics
catplat Jul 31, 2025
f26d6fe
platform: deletions as a result of moving files
catplat Jul 31, 2025
29e647c
Merge branch 'main' into 4773-move-rlnshps-content
catplat Jul 31, 2025
fa12a4b
platform/upsun: app-reference - update nix packages to 120,000
catplat Jul 31, 2025
ae6d037
platform: single-runtime/composable topics: minor edits
catplat Jul 31, 2025
9977942
platform: update frontmatter description for each property file
catplat Jul 31, 2025
a643a9f
platform: Add text to image properties landing page
catplat Jul 31, 2025
90f976c
platform: edits to create-app/app-reference/_index.md
catplat Jul 31, 2025
9c95e2b
platform: single-runtime-image - draft note text about properties res…
catplat Jul 31, 2025
cdcdef0
platform: image-properties/_index.md edits
catplat Jul 31, 2025
5d6f8ab
platform: /image-properties files - add {{% description %}}
catplat Jul 31, 2025
ac28e6f
platform: fix links to web.md
catplat Jul 31, 2025
3ee23d8
upsun: add image properties files
catplat Jul 31, 2025
f8bb843
upsun: move image properties files
catplat Jul 31, 2025
1cfa9df
platform: update links to point to new properties files
catplat Jul 31, 2025
9364b24
platform: more link updates to new properties files
catplat Jul 31, 2025
ae193f6
platform: add note about common properties above the properties table
catplat Jul 31, 2025
92e35da
upsun: update links to point to new properties files; add note about …
catplat Jul 31, 2025
0e58480
upsun: update links to point to new properties files
catplat Jul 31, 2025
7e9d0d3
upsun: app-reference initial outline - decision criteria
catplat Jul 31, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion sites/platform/src/administration/users.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ A user can have one of the following roles on an environment type which grants t
| Contributor | Yes | No | Yes | Yes | Yes | No | No |
| Viewer | Yes | No | No | Yes | No | No | No |

To customize which roles can use SSH, set [`access` in your app configuration](/create-apps/app-reference/single-runtime-image.md#access).
To customize which roles can use SSH, set [`access` in your app configuration](/create-apps/image-properties/access.md).

### View a user's permissions across all of the projects in your organization

Expand Down
51 changes: 46 additions & 5 deletions sites/platform/src/create-apps/app-reference/_index.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,65 @@
---
title: "App reference"
weight: 4
title: "Choose an image type"
weight: -19
description: Configure your app and control how it's built and deployed on {{% vendor/name %}}.
layout: single
---

<!--
Jul20205 WORK IN PROGRESS
The point of this topic is to help the user to decide which type to choose
- rework this topic make it clear when you choose one instead of the other (a table, if possible)
- add "image" definition here and also in the glossary
- link to use cases
- mention the level of support for both types
-->

An _image_ represents the configuration for the container that contains the application (or service) that you want to deploy.

<!-- JUL20205 kept the original content below for now -->
To define your app, you can either use one of {{% vendor/name %}}'s [single-runtime image](/create-apps/app-reference/single-runtime-image.md)
or its [composable image (BETA)](/create-apps/app-reference/composable-image.md).

The single-runtime image type has the following characteristics:
- Can contain only a single runtime
- Requires more manual configuration the composable images, but are more flexible
- Initial build takes
- `type` defines your image version (for example, `php:8.4`)
- You can move to a composable image later, if your application needs change

The composable image type has the following characteristics:
- Can contain multiple runtimes
- Requires less manual configuration than single-runtime images and offers more flexibility in other ways
- Initial build and rebuilds and can take a long time,<!-- a few minutes? --> but caching increases the speed <!-- clarify this -->
- `type` defines your Nix channel
- Can be used for applications only, not services <!-- what about workers? -->


<!-- add a feature/comparison table, if appropriate - easier to read for user
| Feature | Single-runtime image | Composable image |
|----------------------|----------------------|------------------|
| Support | | |
| `type` | | |
| | | |

-->

## Single-runtime image

{{% vendor/name %}} provides and maintains a list of single-runtime images you can use for each of your application containers.</br>
See [all of the options you can use](/create-apps/app-reference/single-runtime-image.md) to define your app using a single-runtime image.

## Composable image (BETA)

The {{% vendor/name %}} composable image provides more flexibility than single-runtime images.
When using a composable image, you can define a stack (or group of packages) for your application container to use.
The {{% vendor/name %}} composable image provides more flexibility than single-runtime images. This image type enables you to define or "compose" the stack (or group of packages) to include in the container that runs your application.

Composable images can be used for applications only, not for services. This image type enables you to install multiple runtimes (such as PHP, Ruby, and so on) as well aXXX in your application container.

<!-- orig sentence below, now in included in first para
When using a composable image, you can define a stack (or group of packages) for your application container to use.
-->

There are over 80,000 packages available from the [Nix Packages collection](https://search.nixos.org/) that you can add to your stack.
There are over 120,000 packages available from the [Nix Packages collection](https://search.nixos.org/) that you can add to your stack.
You can add as many packages to your application container as you need.

{{% note %}}
Expand Down
1,156 changes: 20 additions & 1,136 deletions sites/platform/src/create-apps/app-reference/composable-image.md

Large diffs are not rendered by default.

1,148 changes: 23 additions & 1,125 deletions sites/platform/src/create-apps/app-reference/single-runtime-image.md

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions sites/platform/src/create-apps/image-properties/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: "Image properties"
weight: 4
description: Details about image properties in the {{% vendor/name %}} config.yaml file
# layout: single
---

**Note:** The properties below are available in both single-runtime and composable images.
For most of these properties, the syntax and details are the same for both image types. Differences in meaning and syntax are noted as needed in the property details.

To learn about the properties that are unique to each image type, refer to the [single-runtime image](/create-apps/app-reference/single-runtime-image.md#) and [composable image](/create-apps/app-reference/composable-image.md#) topics.
29 changes: 29 additions & 0 deletions sites/platform/src/create-apps/image-properties/access.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
title: "`access`"
weight: 4
description: An access dictionary that defines the access control for roles accessing app environments.
---

Optional in [single-runtime](/create-apps/app-reference/single-runtime-image.md#top-level-properties) and [composable](/create-apps/app-reference/composable-image.md#top-level-properties) images.

{{% description %}}

The `access` dictionary has one allowed key:

| Name | Allowed values | Default | Description |
| ----- | ----------------------------------- | ------------- | ----------- |
| `ssh` | `admin`, `contributor`, or `viewer` | `contributor` | Defines the minimum role required to access app environments via SSH. |

In the following example, only users with `admin` permissions for the given [environment type](/administration/users.md#environment-type-roles)
can access the deployed environment via SSH:

```yaml {configFile="app"}
access:
ssh: admin
```

<!-- another option for getting back to the single/composable topics
Related topics:
* [Single-runtime image](/create-apps/app-reference/single-runtime-image.md)
* [Composable image](/create-apps/app-reference/composable-image.md)
-->
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: "`additional_hosts`"
weight: 4
description: An additional hosts dictionary that maps hostnames to IP addresses.
---

Optional in [single-runtime](/create-apps/app-reference/single-runtime-image.md#top-level-properties) and [composable](/create-apps/app-reference/composable-image.md#top-level-properties) images.

{{% description %}}

If you're using a private network with specific IP addresses you need to connect to,
you might want to map those addresses to hostnames to better remember and organize them.
In such cases, you can add a map of those IP addresses to whatever hostnames you like.
Then when your app tries to access the hostname, it's sent to the proper IP address.

So in the following example, if your app tries to access `api.example.com`, it's sent to `192.0.2.23`.

```yaml {configFile="app"}
additional_hosts:
api.example.com: "192.0.2.23"
web.example.com: "203.0.113.42"
```

This is equivalent to adding the mapping to the `/etc/hosts` file for the container.

Loading
Loading