Code Monkey home page Code Monkey logo

main's Introduction

Main

build-ublue

A common main image for all other uBlue images, with minimal (but important) adjustments to Fedora.

  1. Features
  2. Tips and Tricks
  3. How to Install
  4. Verification
  5. Configuring Automatic Updates
  6. Making your own

What is this?

You should be familiar with immutable desktops. These are Fedora ostree images that have been modified with the following quality of life features:

Features

  • Start with a Fedora image
  • Adds the following packages to the base image:
  • Sets automatic staging of updates for the system
  • Sets flatpaks to update twice a day
  • Everything else (desktop, artwork, etc) remains stock so you can use this as a good starting image

Tips and Tricks

These images are immutable, you can't, and really shouldn't, install packages like in a mutable "normal" distribution. Applications should be installed using Flatpak whenever possible (execpt for IDEs in some cases, more below). Should that not be possible, you can use distrobox to have images of mutable distributions where you can install applications normally. Want an application that is only available on Arch Linux and one that is only on Ubuntu? Well, now can have both!

Distrobox is very powerful, for example you can use to host your entire development environment completely separate from your host system. Or use it to run a container for your virtual machines.

ublue-os/base-main is also very well suited for servers, and users are expected to make full use of podman to host containers running "typical" server software i.e. nginx, caddy and others.

How to Install

  1. Download the image you want
  2. Follow these instructions
  3. File an issue if you find a problem
To switch to another Image

To rebase an existing Silverblue/Kinoite machine to the latest release (37):

  1. Download and install Fedora Silverblue
  2. After you reboot you should pin the working deployment so you can safely rollback
  3. If you are coming from an existing system it is recommended to not have any layered packages before proceeding. See the Fedora documentation for more information.
  4. Open a terminal and use one of the following commands to rebase the OS:

Silverblue (GNOME):

sudo rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/silverblue-main:37

Kinoite (KDE)

sudo rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/kinoite-main:37

LXQt

sudo rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/lxqt-main:37

MATE

sudo rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/mate-main:37

Sericea (Sway) Fedora 38-only, recommended only for advanced users

sudo rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/sericea-main:38

Vauxite (XFCE)

sudo rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/vauxite-main:37

Base

Which does not come with any desktops or window managers:

sudo rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/base-main:37

Verification

These images are signed with sisgstore's cosign. You can verify the signature by downloading the cosign.pub key from this repo and running the following command:

cosign verify --key cosign.pub ghcr.io/ublue-os/base

If you're forking this repo you should read the docs on keeping secrets in github. You need to generate a new keypair with cosign. The public key can be in your public repo (your users need it to check the signatures), and you can paste the private key in Settings -> Secrets -> Actions.

Configuring Automatic Updates

Warning

Disabling automatic updates is an unsupported configuration. If you reconfigure updates, you MUST be on the latest image before opening any issues.

With that said, you can individually disable which automatic update timers ublue-os/config provides with the following commands:

  • flatpak system: sudo systemctl disable flatpak-system-update.timer
  • flatpak user: sudo systemctl --global disable flatpak-user-update.timer

You can also configure automatic rpm-ostree updates by editing /etc/rpm-ostreed.conf and changing "AutomaticUpdatePolicy" to "none" or "check":

[Daemon]
AutomaticUpdatePolicy=check

Making your own

See the documentation on how use this image in your own projects.

Repography logo / Recent activity Time period

Timeline graph Issue status graph Pull request status graph Trending topics Top contributors Activity map

main's People

Contributors

bigpod98 avatar bsherman avatar castrojo avatar dependabot[bot] avatar dhoell avatar github-actions[bot] avatar joshua-stone avatar marcoceppi avatar redtopper avatar xynydev avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.