Skip to content

Commit 8bf45b4

Browse files
committed
feat: init
0 parents  commit 8bf45b4

File tree

11 files changed

+414
-0
lines changed

11 files changed

+414
-0
lines changed

.github/workflows/lint.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
name: lint
3+
4+
on:
5+
- pull_request
6+
7+
jobs:
8+
yamllint:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout
12+
uses: actions/checkout@v5
13+
- name: Run yamllint
14+
uses: karancode/yamllint-github-action@master
15+
16+
actionlint:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: actions/checkout@v5
20+
- name: Download actionlint
21+
id: get_actionlint
22+
run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
23+
shell: bash
24+
- name: Run actionlint
25+
run: ${{ steps.get_actionlint.outputs.executable }} -color
26+
shell: bash

.github/workflows/publish.yaml

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
name: image
3+
4+
on:
5+
schedule:
6+
- cron: '0 3 * * *'
7+
push:
8+
branches: ["main"]
9+
paths:
10+
- Containerfile
11+
- build.sh
12+
- plasma.sh
13+
# tags: ['v*.*.*']
14+
# pull_request:
15+
# branches: ["main"]
16+
17+
env:
18+
REGISTRY: ghcr.io
19+
IMAGE_NAME: ${{ github.repository }}
20+
21+
jobs:
22+
build:
23+
runs-on: ubuntu-latest
24+
permissions:
25+
contents: read
26+
packages: write
27+
id-token: write
28+
29+
steps:
30+
- name: Checkout repository
31+
uses: actions/checkout@v4
32+
33+
- name: Install cosign
34+
if: github.event_name != 'pull_request'
35+
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
36+
37+
- name: Set up Docker Buildx
38+
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0
39+
40+
- name: Log into registry ${{ env.REGISTRY }}
41+
if: github.event_name != 'pull_request'
42+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
43+
with:
44+
registry: ${{ env.REGISTRY }}
45+
username: ${{ github.actor }}
46+
password: ${{ secrets.GITHUB_TOKEN }}
47+
48+
- name: Extract Docker metadata
49+
id: meta
50+
uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0
51+
with:
52+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
53+
labels: |
54+
org.opencontainers.image.description=Customized image of Fedora Kinoite
55+
org.opencontainers.image.licenses=MIT
56+
org.opencontainers.image.source=https://github.com/clemak27/kinokite
57+
org.opencontainers.image.title=Fedora Kinokite
58+
tags: |
59+
type=schedule,pattern={{date 'YYYYMMDD'}}
60+
type=raw,value=latest
61+
type=raw,value=43
62+
63+
- name: Build and push Docker image
64+
id: build-and-push
65+
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
66+
with:
67+
context: .
68+
file: Containerfile
69+
push: ${{ github.event_name != 'pull_request' }}
70+
tags: ${{ steps.meta.outputs.tags }}
71+
labels: ${{ steps.meta.outputs.labels }}
72+
cache-from: type=gha
73+
cache-to: type=gha,mode=max
74+
75+
- name: Sign the published Docker image
76+
if: ${{ github.event_name != 'pull_request' }}
77+
env:
78+
TAGS: ${{ steps.build-and-push.outputs.digest }}
79+
COSIGN_EXPERIMENTAL: false
80+
COSIGN_PRIVATE_KEY: ${{ secrets.SIGNING_SECRET }}
81+
run: |
82+
IMAGE_FULL="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}"
83+
for tag in ${{ steps.metadata.outputs.tags }}; do
84+
cosign sign -y --key env://COSIGN_PRIVATE_KEY $IMAGE_FULL:$tag
85+
done

.yamllint

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
extends: default
3+
4+
rules:
5+
line-length: false
6+
truthy:
7+
ignore: |
8+
.github
9+
comments:
10+
ignore: |
11+
.github

Containerfile

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
FROM quay.io/fedora/fedora-kinoite:43
2+
3+
ARG IMAGE_NAME="kinokite"
4+
ARG IMAGE_VENDOR="clemak27"
5+
6+
COPY build.sh /tmp/build.sh
7+
COPY plasma.sh /tmp/plasma.sh
8+
COPY cosign.pub /tmp/cosign.pub
9+
10+
ARG RELEASE_VERSION
11+
12+
RUN mkdir -p /var/lib/alternatives
13+
14+
RUN /tmp/build.sh && \
15+
/tmp/plasma.sh && \
16+
ostree container commit

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 clemens
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# `kinokite`
2+
3+
## About
4+
5+
This repo contains a customized image of Fedora Kinoite.
6+
This is for my personal use and a bit opinionated,
7+
but feel free to use it as inspiration.
8+
9+
It installs some basic packages and sets up all
10+
Plasma Extensions I typically use.
11+
A significant one is [kröhnkite](https://github.com/anametologin/krohnkite),
12+
hence the name of the image.
13+
14+
Dotfiles and setup for user-specific changes are in my
15+
[linux_setup repo](https://github.com/clemak27/linux_setup).
16+
17+
## Usage
18+
19+
In a fresh Fedora Kinoite installation, change the base image:
20+
21+
```sh
22+
rpm-ostree rebase ostree-unverified-registry:ghcr.io/clemak27/kinokite:latest
23+
```

build.sh

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#!/bin/bash
2+
3+
set -ouex pipefail
4+
5+
# disable unused registries
6+
7+
sudo sed -i 's/enabled=1/enabled=0/' \
8+
/etc/yum.repos.d/_copr:copr.fedorainfracloud.org:phracek:PyCharm.repo \
9+
/etc/yum.repos.d/fedora-cisco-openh264.repo \
10+
/etc/yum.repos.d/google-chrome.repo \
11+
/etc/yum.repos.d/rpmfusion-nonfree-nvidia-driver.repo \
12+
/etc/yum.repos.d/rpmfusion-nonfree-steam.repo
13+
14+
RELEASE=$(rpm -E %fedora)
15+
16+
rpm-ostree install \
17+
"https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$RELEASE.noarch.rpm" \
18+
"https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$RELEASE.noarch.rpm"
19+
20+
# packages
21+
22+
rpm-ostree uninstall firefox firefox-langpacks
23+
24+
rpm-ostree install \
25+
distrobox \
26+
gcc-c++ \
27+
kontact \
28+
ksshaskpass \
29+
podman-compose \
30+
podman-docker \
31+
steam-devices \
32+
vim \
33+
wl-clipboard \
34+
zsh
35+
36+
# podman
37+
38+
mkdir -p /etc/containers
39+
touch /etc/containers/nodocker
40+
41+
systemctl enable podman.socket
42+
43+
# openrgb udev rules
44+
45+
curl -LO "https://openrgb.org/releases/release_0.9/60-openrgb.rules"
46+
mv 60-openrgb.rules /etc/udev/rules.d/
47+
restorecon /etc/udev/rules.d/60-openrgb.rules
48+
49+
# steam udev rules
50+
51+
curl -fLo /etc/udev/rules.d/60-steam-input.rules https://raw.githubusercontent.com/ValveSoftware/steam-devices/master/60-steam-input.rules
52+
restorecon /etc/udev/rules.d/60-steam-input.rules
53+
curl -fLo /etc/udev/rules.d/60-steam-vr.rules https://raw.githubusercontent.com/ValveSoftware/steam-devices/master/60-steam-vr.rules
54+
restorecon /etc/udev/rules.d/60-steam-vr.rules
55+
56+
# change default shell
57+
58+
sed -i 's@/bin/bash@/bin/zsh@g' /etc/default/useradd

cosign.pub

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIe2hemJ7QgU7bJqSlOeTUxdNEFpi
3+
viU6JVI284hX4VRVZVXvnKMWAuFSO02/prbB385YhyQx7qNKsPcF+HU4oA==
4+
-----END PUBLIC KEY-----

mise.toml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[tools]
2+
cosign = "3.0.2"
3+
4+
[env]
5+
IMAGE_NAME = "ghcr.io/clemak27/kinokite"
6+
IMAGE_TAG = "latest"
7+
8+
[tasks.build-image]
9+
run = """
10+
docker build -t ${IMAGE_NAME}:${IMAGE_TAG} .
11+
"""

0 commit comments

Comments
 (0)