diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 65eb1c3..6729d1a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,6 +37,8 @@ jobs: - recipes/desktop/recipe-wayblue-wayfire-nvidia.yml - recipes/desktop/recipe-wayblue-hyprland-main.yml - recipes/desktop/recipe-wayblue-hyprland-nvidia.yml + - recipes/desktop/recipe-wayblue-river-main.yml + - recipes/desktop/recipe-wayblue-river-nvidia.yml # laptop - recipes/laptop/recipe-silverblue-main-laptop.yml - recipes/laptop/recipe-silverblue-nvidia-laptop.yml @@ -56,6 +58,8 @@ jobs: - recipes/laptop/recipe-wayblue-wayfire-nvidia-laptop.yml - recipes/laptop/recipe-wayblue-hyprland-main-laptop.yml - recipes/laptop/recipe-wayblue-hyprland-nvidia-laptop.yml + - recipes/laptop/recipe-wayblue-river-main-laptop.yml + - recipes/laptop/recipe-wayblue-river-nvidia-laptop.yml # framework - recipes/laptop/recipe-silverblue-framework.yml - recipes/laptop/recipe-kinoite-framework.yml @@ -82,6 +86,8 @@ jobs: - recipes/desktop/recipe-wayblue-wayfire-nvidia-userns.yml - recipes/desktop/recipe-wayblue-hyprland-main-userns.yml - recipes/desktop/recipe-wayblue-hyprland-nvidia-userns.yml + - recipes/desktop/recipe-wayblue-river-main-userns.yml + - recipes/desktop/recipe-wayblue-river-nvidia-userns.yml # laptop - recipes/laptop/recipe-silverblue-main-laptop-userns.yml - recipes/laptop/recipe-silverblue-nvidia-laptop-userns.yml @@ -103,6 +109,8 @@ jobs: - recipes/laptop/recipe-wayblue-wayfire-nvidia-laptop-userns.yml - recipes/laptop/recipe-wayblue-hyprland-main-laptop-userns.yml - recipes/laptop/recipe-wayblue-hyprland-nvidia-laptop-userns.yml + - recipes/laptop/recipe-wayblue-river-main-laptop-userns.yml + - recipes/laptop/recipe-wayblue-river-nvidia-laptop-userns.yml # framework - recipes/laptop/recipe-silverblue-framework-userns.yml - recipes/laptop/recipe-kinoite-framework-userns.yml diff --git a/README.md b/README.md index 76071fe..2c5bd16 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,8 @@ Have a look at [PREINSTALL-README](PREINSTALL-README.md) before proceeding. - wayblue-wayfire-nvidia-hardened - wayblue-hyprland-main-hardened - wayblue-hyprland-nvidia-hardened +- wayblue-river-main-hardened +- wayblue-river-nvidia-hardened ##### laptop [changes](./config/recipes/laptop/laptop-bling.yml) - kinoite-main-laptop-hardened @@ -100,6 +102,8 @@ Have a look at [PREINSTALL-README](PREINSTALL-README.md) before proceeding. - wayblue-wayfire-nvidia-laptop-hardened - wayblue-hyprland-main-laptop-hardened - wayblue-hyprland-nvidia-laptop-hardened +- wayblue-river-main-laptop-hardened +- wayblue-river-nvidia-laptop-hardened ###### framework [docs](https://universal-blue.org/images/framework/) - kinoite-framework-hardened @@ -130,6 +134,8 @@ Have a look at [PREINSTALL-README](PREINSTALL-README.md) before proceeding. - wayblue-wayfire-nvidia-userns-hardened - wayblue-hyprland-main-userns-hardened - wayblue-hyprland-nvidia-userns-hardened +- wayblue-river-main-userns-hardened +- wayblue-river-nvidia-userns-hardened ##### laptop [changes](./config/recipes/laptop/laptop-bling.yml) - kinoite-main-laptop-userns-hardened @@ -152,6 +158,8 @@ Have a look at [PREINSTALL-README](PREINSTALL-README.md) before proceeding. - wayblue-wayfire-nvidia-laptop-userns-hardened - wayblue-hyprland-main-laptop-userns-hardened - wayblue-hyprland-nvidia-laptop-userns-hardened +- wayblue-river-main-laptop-userns-hardened +- wayblue-river-nvidia-laptop-userns-hardened ###### framework [docs](https://universal-blue.org/images/framework/) - kinoite-framework-userns-hardened diff --git a/config/README.md b/config/README.md deleted file mode 100644 index 53892ed..0000000 --- a/config/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# Configuring your image - -The main file of your is *the recipe file*. You can have multiple recipe files, and the ones to build are declared in the matrix section of [build.yml](../.github/workflows/build.yml). - -## Basic options - -At the top of the recipe, there are four *mandatory* configuration options. - -`name:` is the name of the image that is used when rebasing to it. For example, the name "sapphire" would result in the final URL of the container being `ghcr.io//sapphire`. - -`description:` is a short description of your image that will be attached to your image's metadata. - -`base-image:` is the URL of the image your image will be built upon. - -`image-version:` is the version tag of the `base-image` that will be pulled. For example, Universal Blue's images build with Fedora version tags (`38`, `39`), with the `latest` tag for the latest major version, and [many other tags](https://github.com/ublue-os/main/pkgs/container/base-main/versions?filters%5Bversion_type%5D=tagged). - -## Modules - -The core of startingpoint's configuration is built around the idea of modules. Modules are scripts in the [`../modules`](../modules/) directory that you configure under `modules:` in the recipe. They are executed in order, and can run arbitrary shell commands and write any files. - -This repository fetches some useful default modules from [`ublue-os/bling`](https://github.com/ublue-os/bling/), like [`rpm-ostree`](https://universal-blue.org/tinker/modules/rpm-ostree) for pseudo-declarative package management, [`bling`](https://universal-blue.org/tinker/modules/bling) for pulling extra components from [`ublue-os/bling`](https://github.com/ublue-os/bling), and [`files`](https://universal-blue.org/tinker/modules/files) for copying files from the `config/files/` directory into your image. - -For a comprehensive list of modules, their in-depth documentation and example configuration, check out [the Modules page on the website](https://universal-blue.org/tinker/modules/). - -### Building multiple images and including module configuration from other files - -To build multiple images, you need to create another recipe.yml file, which you should name based on what kind of image you want it to build. Then, edit the [`build.yml`](../.github/workflows/build.yml) file. Inside the file, under `jobs: strategy: matrix:`, there's a list of recipe files to build images, which you need to add your new recipe file to. These should be paths to files inside the `config` directory. - -Module configuration can be included from other files using the `from-file` syntax. The value should be a path to a file inside the `config` directory. For example, the following snippet could be used to include the configuration for installing a set of packages common to multiple images. -```yaml -modules: - - from-file: common-packages.yml -``` -And inside config/common-packages.yml -```yaml -type: rpm-ostree -install: - - i3 - - dunst - - rofi - - kitty -``` -An external module can also include multiple modules. -```yaml -# config/common.yml -modules: - - type: files - files: - - usr: /usr - - type: rpm-ostree - install: - - i3 - - dunst - - rofi - - kitty -``` diff --git a/config/recipes/desktop/recipe-wayblue-river-main-userns.yml b/config/recipes/desktop/recipe-wayblue-river-main-userns.yml new file mode 100644 index 0000000..593787a --- /dev/null +++ b/config/recipes/desktop/recipe-wayblue-river-main-userns.yml @@ -0,0 +1,20 @@ +# image will be published to ghcr.io// +name: wayblue-river-main-userns-hardened +# description will be included in the image's metadata +description: "wayblue river main with some hardening applied" + +# the base image to build on top of (FROM) and the version tag to use +base-image: ghcr.io/wayblueorg/river +image-version: 39 + +# list of modules, executed in order +# you can include multiple instances of the same module +modules: + - from-file: common/common-files.yml + - from-file: common/gui-packages.yml + - from-file: common/common-packages.yml + - from-file: common/remove-firefox.yml + - from-file: common/common-scripts.yml + - type: signing + - from-file: common/gui-scripts.yml + - type: yafti \ No newline at end of file diff --git a/config/recipes/desktop/recipe-wayblue-river-main.yml b/config/recipes/desktop/recipe-wayblue-river-main.yml new file mode 100644 index 0000000..03d46af --- /dev/null +++ b/config/recipes/desktop/recipe-wayblue-river-main.yml @@ -0,0 +1,22 @@ +# image will be published to ghcr.io// +name: wayblue-river-main-hardened +# description will be included in the image's metadata +description: "wayblue river main with some hardening applied" + +# the base image to build on top of (FROM) and the version tag to use +base-image: ghcr.io/wayblueorg/river +image-version: 39 + +# list of modules, executed in order +# you can include multiple instances of the same module +modules: + - from-file: common/common-files.yml + - from-file: common/gui-packages.yml + - from-file: common/common-packages.yml + - from-file: common/remove-firefox.yml + - from-file: common/common-scripts.yml + - type: signing + - from-file: common/gui-scripts.yml + - from-file: common/disableuserns-packages.yml + - from-file: common/disableuserns-scripts.yml + - type: yafti \ No newline at end of file diff --git a/config/recipes/desktop/recipe-wayblue-river-nvidia-userns.yml b/config/recipes/desktop/recipe-wayblue-river-nvidia-userns.yml new file mode 100644 index 0000000..e4386d5 --- /dev/null +++ b/config/recipes/desktop/recipe-wayblue-river-nvidia-userns.yml @@ -0,0 +1,20 @@ +# image will be published to ghcr.io// +name: wayblue-river-nvidia-userns-hardened +# description will be included in the image's metadata +description: "wayblue river nvidia with some hardening applied" + +# the base image to build on top of (FROM) and the version tag to use +base-image: ghcr.io/wayblueorg/river-nvidia +image-version: 39 + +# list of modules, executed in order +# you can include multiple instances of the same module +modules: + - from-file: common/common-files.yml + - from-file: common/gui-packages.yml + - from-file: common/common-packages.yml + - from-file: common/remove-firefox.yml + - from-file: common/common-scripts.yml + - type: signing + - from-file: common/gui-scripts.yml + - type: yafti \ No newline at end of file diff --git a/config/recipes/desktop/recipe-wayblue-river-nvidia.yml b/config/recipes/desktop/recipe-wayblue-river-nvidia.yml new file mode 100644 index 0000000..0de5827 --- /dev/null +++ b/config/recipes/desktop/recipe-wayblue-river-nvidia.yml @@ -0,0 +1,22 @@ +# image will be published to ghcr.io// +name: wayblue-river-nvidia-hardened +# description will be included in the image's metadata +description: "wayblue river nvidia with some hardening applied" + +# the base image to build on top of (FROM) and the version tag to use +base-image: ghcr.io/wayblueorg/river-nvidia +image-version: 39 + +# list of modules, executed in order +# you can include multiple instances of the same module +modules: + - from-file: common/common-files.yml + - from-file: common/gui-packages.yml + - from-file: common/common-packages.yml + - from-file: common/remove-firefox.yml + - from-file: common/common-scripts.yml + - type: signing + - from-file: common/gui-scripts.yml + - from-file: common/disableuserns-packages.yml + - from-file: common/disableuserns-scripts.yml + - type: yafti \ No newline at end of file diff --git a/config/recipes/laptop/recipe-wayblue-river-main-laptop-userns.yml b/config/recipes/laptop/recipe-wayblue-river-main-laptop-userns.yml new file mode 100644 index 0000000..86343cb --- /dev/null +++ b/config/recipes/laptop/recipe-wayblue-river-main-laptop-userns.yml @@ -0,0 +1,21 @@ +# image will be published to ghcr.io// +name: wayblue-river-main-laptop-userns-hardened +# description will be included in the image's metadata +description: "wayblue river main with some hardening applied, for laptops" + +# the base image to build on top of (FROM) and the version tag to use +base-image: ghcr.io/wayblueorg/river +image-version: 39 + +# list of modules, executed in order +# you can include multiple instances of the same module +modules: + - from-file: common/common-files.yml + - from-file: common/gui-packages.yml + - from-file: common/common-packages.yml + - from-file: common/remove-firefox.yml + - from-file: recipes/laptop/laptop-bling.yml + - from-file: common/common-scripts.yml + - type: signing + - from-file: common/gui-scripts.yml + - type: yafti \ No newline at end of file diff --git a/config/recipes/laptop/recipe-wayblue-river-main-laptop.yml b/config/recipes/laptop/recipe-wayblue-river-main-laptop.yml new file mode 100644 index 0000000..4f2f8af --- /dev/null +++ b/config/recipes/laptop/recipe-wayblue-river-main-laptop.yml @@ -0,0 +1,23 @@ +# image will be published to ghcr.io// +name: wayblue-river-main-laptop-hardened +# description will be included in the image's metadata +description: "wayblue river main with some hardening applied, for laptops" + +# the base image to build on top of (FROM) and the version tag to use +base-image: ghcr.io/wayblueorg/river +image-version: 39 + +# list of modules, executed in order +# you can include multiple instances of the same module +modules: + - from-file: common/common-files.yml + - from-file: common/gui-packages.yml + - from-file: common/common-packages.yml + - from-file: common/remove-firefox.yml + - from-file: recipes/laptop/laptop-bling.yml + - from-file: common/common-scripts.yml + - type: signing + - from-file: common/gui-scripts.yml + - from-file: common/disableuserns-packages.yml + - from-file: common/disableuserns-scripts.yml + - type: yafti \ No newline at end of file diff --git a/config/recipes/laptop/recipe-wayblue-river-nvidia-laptop-userns.yml b/config/recipes/laptop/recipe-wayblue-river-nvidia-laptop-userns.yml new file mode 100644 index 0000000..b0c39c8 --- /dev/null +++ b/config/recipes/laptop/recipe-wayblue-river-nvidia-laptop-userns.yml @@ -0,0 +1,23 @@ +# image will be published to ghcr.io// +name: wayblue-river-nvidia-laptop-userns-hardened +# description will be included in the image's metadata +description: "wayblue river nvidia with some hardening applied, for laptops" + +# the base image to build on top of (FROM) and the version tag to use +base-image: ghcr.io/wayblueorg/river-nvidia +image-version: 39 + +# list of modules, executed in order +# you can include multiple instances of the same module +modules: + - from-file: common/common-files.yml + - from-file: common/gui-packages.yml + - from-file: common/common-packages.yml + - from-file: common/remove-firefox.yml + - from-file: recipes/laptop/laptop-bling.yml + - from-file: common/common-scripts.yml + - type: signing + - from-file: common/gui-scripts.yml + - from-file: common/nvidia-optimus-workaround-scripts.yml + - from-file: common/nvidia-laptop-scripts.yml + - type: yafti \ No newline at end of file diff --git a/config/recipes/laptop/recipe-wayblue-river-nvidia-laptop.yml b/config/recipes/laptop/recipe-wayblue-river-nvidia-laptop.yml new file mode 100644 index 0000000..e38dec1 --- /dev/null +++ b/config/recipes/laptop/recipe-wayblue-river-nvidia-laptop.yml @@ -0,0 +1,25 @@ +# image will be published to ghcr.io// +name: wayblue-river-nvidia-laptop-hardened +# description will be included in the image's metadata +description: "wayblue river nvidia with some hardening applied, for laptops" + +# the base image to build on top of (FROM) and the version tag to use +base-image: ghcr.io/wayblueorg/river-nvidia +image-version: 39 + +# list of modules, executed in order +# you can include multiple instances of the same module +modules: + - from-file: common/common-files.yml + - from-file: common/gui-packages.yml + - from-file: common/common-packages.yml + - from-file: common/remove-firefox.yml + - from-file: recipes/laptop/laptop-bling.yml + - from-file: common/common-scripts.yml + - type: signing + - from-file: common/gui-scripts.yml + - from-file: common/disableuserns-packages.yml + - from-file: common/disableuserns-scripts.yml + - from-file: common/nvidia-optimus-workaround-scripts.yml + - from-file: common/nvidia-laptop-scripts.yml + - type: yafti \ No newline at end of file