Skip to content

Commit

Permalink
refactor: clean up the template repo
Browse files Browse the repository at this point in the history
many of these docs are now on the website, a lot of this is just baggage from startingpoint
  • Loading branch information
xynydev committed Feb 2, 2024
1 parent 05b01dd commit be99df8
Show file tree
Hide file tree
Showing 8 changed files with 16 additions and 310 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
.idea
cosign.key
cosign.private
141 changes: 0 additions & 141 deletions CONTRIBUTING.md

This file was deleted.

46 changes: 3 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,15 @@
# BlueBuild Template

This is a constantly updating template repository for creating [a native container image](https://fedoraproject.org/wiki/Changes/OstreeNativeContainerStable) designed to be customized however you want. GitHub will build your image for you, and then host it for you on [ghcr.io](https://github.com/features/packages). You then just tell your computer to boot off of that image. GitHub keeps 90 days worth image backups for you, thanks Microsoft!

For more info, check out the [BlueBuild homepage](https://blue-build.org/) and the [BlueBuild CLI](https://github.com/blue-build/cli)

## Getting started

See the [BlueBuild docs](https://blue-build.org/learn/getting-started) for quick setup instructions for setting up your own repository based on this template.

Don't worry, it only requires some basic knowledge about using the terminal and git.
See the [BlueBuild docs](https://blue-build.org/how-to/setup/) for quick setup instructions for setting up your own repository based on this template.

After setup, it is recommended you update this README to describe your custom image.

## Customization

The easiest way to start customizing is by looking at and modifying `config/recipe.yml`. It's documented using comments and should be pretty easy to understand.

If you want to add custom configuration files, you can just add them in the `/usr/etc/` directory, which is the official OSTree "configuration template" directory and will be applied to `/etc/` on boot. `config/files/usr` is copied into your image's `/usr` by default. If you need to add other directories in the root of your image, that can be done using the `files` module. Writing to `/var/` in the image builds of OSTree-based distros isn't supported and will not work, as that is a local user-managed directory!

For more information about customization, see [the README in the config directory](config/README.md)

## Installation

> **Warning**
> [This is an experimental feature](https://www.fedoraproject.org/wiki/Changes/OstreeNativeContainerStable) and should not be used in production, try it in a VM for a while!
To rebase an existing Silverblue/Kinoite installation to the latest build:
To rebase an existing atomic Fedora installation to the latest build:

- First rebase to the unsigned image, to get the proper signing keys and policies installed:
```
Expand All @@ -44,14 +28,6 @@ To rebase an existing Silverblue/Kinoite installation to the latest build:
systemctl reboot
```

This repository builds date tags as well, so if you want to rebase to a particular day's build:

```
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/blue-build/template:20230403
```

This repository by default also supports signing.

The `latest` tag will automatically point to the latest build. That build will still always use the Fedora version specified in `recipe.yml`, so you won't get accidentally updated to the next major version.

## ISO
Expand All @@ -62,20 +38,4 @@ To run the action, simply edit the `boot_menu.yml` by changing all the reference

The Action uses [isogenerator](https://github.com/ublue-os/isogenerator) and works in a similar manner to the official Universal Blue ISO. If you have any issues, you should first check [the documentation page on installation](https://universal-blue.org/installation/). The ISO is a netinstaller and should always pull the latest version of your image.

Note that this release-iso action is not a replacement for a full-blown release automation like [release-please](https://github.com/googleapis/release-please).

## `just`

The [`just`](https://just.systems/) command runner is included in all `ublue-os/main`-derived images.

You need to have a `~/.justfile` with the following contents and `just` aliased to `just --unstable` (default in posix-compatible shells on ublue) to get started with just locally.
```
!include /usr/share/ublue-os/just/main.just
!include /usr/share/ublue-os/just/nvidia.just
!include /usr/share/ublue-os/just/custom.just
```
Then type `just` to list the just recipes available.

The file `/usr/share/ublue-os/just/custom.just` is intended for the custom just commands (recipes) you wish to include in your image. By default, it includes the justfiles from [`ublue-os/bling`](https://github.com/ublue-os/bling), if you wish to disable that, you need to just remove the line that includes bling.just.

See [the just-page in the Universal Blue documentation](https://universal-blue.org/guide/just/) for more information.
Note that this release-iso action is not a replacement for a full-blown release automation like [release-please](https://github.com/googleapis/release-please).
56 changes: 0 additions & 56 deletions config/README.md

This file was deleted.

2 changes: 0 additions & 2 deletions config/files/usr/share/ublue-os/just/100-bling.just

This file was deleted.

34 changes: 13 additions & 21 deletions config/recipe.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# image will be published to ghcr.io/<user>/<name>
name: startingpoint
name: template
# description will be included in the image's metadata
description: A starting point for further customization of uBlue images. Make your own! https://ublue.it/making-your-own/
description: This is my personal OS image.

# the base image to build on top of (FROM) and the version tag to use
base-image: ghcr.io/ublue-os/silverblue-main
Expand All @@ -12,13 +12,10 @@ image-version: 39 # latest is also supported if you want new updates ASAP
modules:
- type: files
files:
- usr: /usr # copy static configurations
#
# copies config/files/usr into your image's /usr
#
- usr: /usr # copies config/files/usr into your image's /usr
# configuration you wish to end up in /etc/ on the booted system
# should be added into /usr/etc/ as that is the proper "distro"
# config directory on ostree. Read more in the files module's README
# config directory on ostree. Read more in the files module's documentation

- type: rpm-ostree
repos:
Expand All @@ -31,26 +28,21 @@ modules:
- firefox-langpacks # langpacks needs to also be removed to prevent dependency problems

- type: default-flatpaks
notify: true # Send notification after install/uninstall is finished (true/false)
notify: true # Send notification after install/uninstall is finished (true/false)
system:
# If no repo information is specified, Flathub will be used by default
repo-url: https://dl.flathub.org/repo/flathub.flatpakrepo
repo-name: flathub
# repo-url: https://dl.flathub.org/repo/flathub.flatpakrepo
# repo-name: flathub
# repo-title: "Flathub (system-wide)" # Optional; this sets the remote's user-facing name in graphical frontends like GNOME Software
install:
# - org.gnome.Loupe
# - one.ablaze.floorp//lightning # This is an example of flatpak which has multiple branches in selection (flatpak//branch).
# Flatpak runtimes are not supported (like org.winehq.Wine//stable-23.08).
# Only normal flatpak applications are (like Floorp Lightning web browser in this example).
# Multiple install of same flatpaks with different branches is not supported.
- org.mozilla.firefox
# - org.gnome.Loupe
# - one.ablaze.floorp//lightning # This is an example of flatpak which has multiple branches in selection (flatpak//branch).
# Flatpak runtimes are not supported (like org.winehq.Wine//stable-23.08),
# only normal flatpak applications are (like Floorp Lightning web browser in this example).
# Installing different branches of the same Flatpak is not supported.
remove:
# - org.gnome.eog
#
# A flatpak repo can also be added without having to install flatpaks,
# as long as one of the repo- fields is present
user:
repo-url: https://dl.flathub.org/repo/flathub.flatpakrepo
repo-name: flathub

- type: script
scripts:
Expand Down
Empty file added modules/.gitkeep
Empty file.
Loading

0 comments on commit be99df8

Please sign in to comment.