generated from ublue-os/image-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
23 changed files
with
367 additions
and
117 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,86 +1,52 @@ | ||
# image-template | ||
|
||
# Purpose | ||
|
||
This repository is meant to be a template for building your own custom Universal Blue image. This template is the recommended way to make customizations to any image published by the Universal Blue Project: | ||
- [Aurora](https://getaurora.dev/) | ||
- [Bazzite](https://bazzite.gg/) | ||
- [Bluefin](https://projectbluefin.io/) | ||
- [uCore](https://projectucore.io/) | ||
- [main](https://github.com/ublue-os/main/) | ||
- [hwe](https://github.com/ublue-os/hwe/) | ||
|
||
This template includes a Containerfile and a Github workflow for building the container image. As soon as the workflow is enabled in your repository, it will build the container image and push it to the Github Container Registry. | ||
|
||
# Prerequisites | ||
|
||
Working knowledge in the following topics: | ||
|
||
- Containers | ||
- https://www.youtube.com/watch?v=SnSH8Ht3MIc | ||
- https://www.mankier.com/5/Containerfile | ||
- rpm-ostree | ||
- https://coreos.github.io/rpm-ostree/container/ | ||
- Fedora Silverblue (and other Fedora Atomic variants) | ||
- https://docs.fedoraproject.org/en-US/fedora-silverblue/ | ||
- Github Workflows | ||
- https://docs.github.com/en/actions/using-workflows | ||
|
||
# How to Use | ||
|
||
## Template | ||
|
||
Select `Use this Template` and create a new repository from it. To enable the workflows, you may need to go the `Actions` tab of the new repository and click to enable workflows. | ||
|
||
## Containerfile | ||
|
||
This file defines the operations used to customize the selected image. It contains examples of possible modifications, including how to: | ||
- change the upstream from which the custom image is derived | ||
- add additional RPM packages | ||
- add binaries as a layer from other images | ||
|
||
## Workflows | ||
|
||
### build.yml | ||
|
||
This workflow creates your custom OCI image and publishes it to the Github Container Registry (GHCR). By default, the image name will match the Github repository name. | ||
|
||
#### Container Signing | ||
|
||
Container signing is important for end-user security and is enabled on all Universal Blue images. It is recommended you set this up, and by default the image builds *will fail* if you don't. | ||
|
||
This provides users a method of verifying the image. | ||
|
||
1. Install the [cosign CLI tool](https://edu.chainguard.dev/open-source/sigstore/cosign/how-to-install-cosign/#installing-cosign-with-the-cosign-binary) | ||
|
||
2. Run inside your repo folder: | ||
|
||
```bash | ||
cosign generate-key-pair | ||
``` | ||
|
||
|
||
- Do NOT put in a password when it asks you to, just press enter. The signing key will be used in GitHub Actions and will not work if it is encrypted. | ||
|
||
> [!WARNING] | ||
> Be careful to *never* accidentally commit `cosign.key` into your git repo. | ||
|
||
3. Add the private key to GitHub | ||
|
||
- This can also be done manually. Go to your repository settings, under Secrets and Variables -> Actions | ||
![image](https://user-images.githubusercontent.com/1264109/216735595-0ecf1b66-b9ee-439e-87d7-c8cc43c2110a.png) | ||
Add a new secret and name it `SIGNING_SECRET`, then paste the contents of `cosign.key` into the secret and save it. Make sure it's the .key file and not the .pub file. Once done, it should look like this: | ||
![image](https://user-images.githubusercontent.com/1264109/216735690-2d19271f-cee2-45ac-a039-23e6a4c16b34.png) | ||
- (CLI instructions) If you have the `github-cli` installed, run: | ||
```bash | ||
gh secret set SIGNING_SECRET < cosign.key | ||
``` | ||
4. Commit the `cosign.pub` file into your git repository | ||
### Examples | ||
- [m2os](https://github.com/m2giles/m2os) | ||
- [bos](https://github.com/bsherman/bos) | ||
- [homer](https://github.com/bketelsen/homer/) | ||
# Universal Blue Custom Image | ||
[universal-blue.org](https://universal-blue.org/) | ||
|
||
## Purpose | ||
|
||
This repository is meant to be a quick setup and restore for my personal use. | ||
|
||
## Install | ||
|
||
To rebase from an atomic distribution: | ||
```bash | ||
sudo bootc switch --enforce-container-sigpolicy ghcr.io/yardquit/atomic_custm:latest | ||
``` | ||
|
||
## Post Installs | ||
|
||
### 1. YubiKey | ||
To access the system using sudo, you will need to use your YubiKey as an additional factor of authentication. | ||
YubiKey Registration: | ||
Follow the below instructions to complete the registration process. | ||
```bash | ||
# Insert your YubiKey into a compatible USB port on your computer. | ||
ykpamcfg -2 | ||
``` | ||
Ensure that YubiKey support is enabled and functional in your system settings. | ||
```bash | ||
sudo echo "Testing sudo with YubiKey" | ||
``` | ||
Once your YubiKey is registered and supported by your system, you can use it to access the sudo command. | ||
|
||
|
||
### 2. fapolicyd | ||
Enabling and Installing fapolicyd for Enhanced Security | ||
|
||
To secure your system, follow these steps to install, enable, and start fapolicyd. | ||
|
||
Use the following command to install fapolicyd, its SELinux module, and a plugin for rpm-ostree. | ||
```bash | ||
rpm-ostree install fapolicyd fapolicyd-selinux rpm-plugin-fapolicyd | ||
``` | ||
Restart your system for the changes take effect: | ||
```bash | ||
reboot | ||
``` | ||
Configure the fapolicyd to allow repository packages, else fapolicy will allow everything. | ||
```bash | ||
sudo sed -i 's/integrity = none/integrity = sha256/g' /etc/fapolicyd/fapolicyd.conf | ||
``` | ||
Configure the fapolicyd service to start automatically on boot and enable it immediately. | ||
```bash | ||
sudo systemctl enable --now fapolicyd.service | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
-----BEGIN PUBLIC KEY----- | ||
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExKav2IaMoThdWkKBC8B542o36xkH | ||
N5gNpZA+dOf94UxEPyxsobP8ABov+Rj1YcCYwt4HsB8Kfe+Je689B5zHWA== | ||
-----END PUBLIC KEY----- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
cosmic-desktop | ||
cosmic-idle | ||
NetworkManager-tui | ||
NetworkManager-openvpn | ||
gnome-keyring | ||
pinentry-gnome3 | ||
udiskie |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
helix | ||
neovim | ||
osbuild | ||
osbuild-selinux | ||
koji | ||
fedora-packager | ||
fedora-review | ||
packit | ||
fedrq | ||
rpm-spec-language-server | ||
rpmdevtools | ||
rpmlint | ||
policycoreutils | ||
sepolicy_analysis | ||
libselinux-utils | ||
checkpolicy | ||
selinux-policy | ||
selinux-policy-mls | ||
selinux-policy-doc | ||
selinux-policy-mls | ||
selinux-policy-targeted | ||
setools-console | ||
setools-console-analyses | ||
libvirt-devel | ||
xorriso | ||
livecd-tools | ||
pykickstart | ||
rust | ||
rust-analyzer | ||
cargo | ||
rust-gdb | ||
rust2rpm | ||
rust-srpm-macros | ||
cargo-rpm-macros | ||
cargo2rpm | ||
clang | ||
gdb | ||
gdb-doc | ||
valgrind | ||
golang | ||
golang-x-tools-gopls | ||
go-rpm-macros | ||
go-srpm-macros | ||
go-rpm-templates | ||
go2rpm | ||
python-pip | ||
python3-devel | ||
python3-lsp-black | ||
python3-lsp-server+all | ||
python3-mypy | ||
python3-pytest | ||
python3-pytest-lsp | ||
poetry | ||
cairo-devel | ||
cairo-gobject-devel | ||
gobject-introspection-devel | ||
zig | ||
zig-doc | ||
zig-libs | ||
zig-rpm-macros | ||
zig-srpm-macros |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
hu.irl.cameractrls | ||
com.github.wwmm.easyeffects | ||
io.freetubeapp.FreeTube | ||
org.fedoraproject.MediaWriter | ||
org.gnome.Connections | ||
org.gnome.World.PikaBackup |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
cascadia-fonts-all | ||
fontawesome-fonts-all | ||
jetbrains-mono-fonts-all | ||
liberation-fonts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
mediainfo | ||
mpv | ||
PackageKit-gstreamer-plugin | ||
alsa-ucm | ||
alsa-utils | ||
gstreamer1-plugin-libav | ||
gstreamer1-plugin-openh264 | ||
gstreamer1-plugins-bad-free | ||
gstreamer1-plugins-good | ||
gstreamer1-plugins-ugly-free | ||
libva-intel-media-driver | ||
pipewire-alsa | ||
pipewire-gstreamer | ||
pipewire-pulseaudio | ||
pipewire-utils | ||
wireplumber | ||
gstreamer-plugins-espeak | ||
ffmpeg |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
starship | ||
lf | ||
fd-find | ||
iucode-tool | ||
stow | ||
stow-doc | ||
texinfo | ||
tldr | ||
yum-utils | ||
ptyxis | ||
inxi | ||
fastfetch | ||
fzf | ||
sshfs | ||
dislocker | ||
pinentry-qt | ||
pinentry-tty | ||
pinentry-emacs | ||
translate-shell | ||
lm_sensors | ||
lshw | ||
nvtop | ||
parallel | ||
xxd | ||
sassc | ||
unrar | ||
p7zip | ||
btop | ||
solaar | ||
solaar-doc | ||
solaar-udev |
Oops, something went wrong.