Code Monkey home page Code Monkey logo

bluefin's Introduction

bluefin

Bluefin GTS Bluefin Stable Bluefin Latest

image

"Let's see what's out there." - Jean-Luc Picard

A familiar(ish) Ubuntu desktop for Fedora Silverblue. It strives to cover these two use cases. For end users it provides a system as reliable as a Chromebook with near-zero maintainance, with the power of Ubuntu and Fedora fused together. For gamers we strive to deliver a world-class Flathub gaming experience.

Documentation

  1. Download and install the ISO from here:

For existing Silverblue/Kinoite users

  1. After you reboot you should pin the working deployment so you can safely rollback.
  2. [AMD/Intel GPU users only] Open a terminal and rebase the OS to this image:

Note: latest for current fedora, gts for current fedora - 1

Bluefin:

    sudo rpm-ostree rebase ostree-image-signed:docker://ghcr.io/bpbeatty/bluefin:latest
    sudo rpm-ostree rebase ostree-image-signed:docker://ghcr.io/bpbeatty/bluefin:gts

Bluefin Developer Experience:

    sudo rpm-ostree rebase ostree-image-signed:docker://ghcr.io/bpbeatty/bluefin-dx:latest
    sudo rpm-ostree rebase ostree-image-signed:docker://ghcr.io/bpbeatty/bluefin-dx:gts
  1. [Nvidia GPU users only] Open a terminal and rebase the OS to this image:

    Bluefin:

     sudo rpm-ostree rebase ostree-image-signed:docker://ghcr.io/bpbeatty/bluefin-nvidia:latest
     sudo rpm-ostree rebase ostree-image-signed:docker://ghcr.io/bpbeatty/bluefin-nvidia:gts
    

    Bluefin Developer Experience:

     sudo rpm-ostree rebase ostree-image-signed:docker://ghcr.io/bpbeatty/bluefin-dx-nvidia:latest
     sudo rpm-ostree rebase ostree-image-signed:docker://ghcr.io/bpbeatty/bluefin-dx-nvidia:gts
    
  2. Reboot the system and you're done!

  3. To revert back:

     sudo rpm-ostree rebase fedora:fedora/39/x86_64/silverblue
    

Check the Silverblue documentation for instructions on how to use rpm-ostree. We build date tags as well, so if you want to rebase to a particular day's release you can use the version number and date to boot off of that specific image:

sudo rpm-ostree rebase ostree-image-signed:docekr://ghcr.io/bpbeatty/bluefin:37-20230310

The latest tag will automatically point to the latest build.

Features

This image heavily utilizes cloud-native concepts.

System updates are image-based and automatic. Applications are logically seperated from the system by using Flatpaks, and the CLI experience is contained within OCI containers:

For Users

  • Ubuntu-like GNOME layout
    • Includes the following GNOME Extensions
      • Dash to Dock - for a more Unity-like dock
      • Appindicator - for tray-like icons in the top right corner
      • GSConnect - Integrate your mobile device with your desktop
      • Blur my Shell - for that bling
  • GNOME Software with Flathub
    • Use a familiar software center UI to install graphical software
  • Built on top of the the Universal Blue main image
    • Extra udev rules for game controllers and other devices included out of the box
    • All multimedia codecs included
    • System designed for automatic staging of updates
      • If you've never used an image-based Linux before just use your computer normally
      • Don't overthink it, just shut your computer off when you're not using it

For Developers

bluefin-dx - The Bluefin Developer Experience

Dedicated developer image with bundled tools. It endevaours to be the world's most powerful cloud native developer environment. :) It includes everything in the base image plus:

  • VSCode and related tools
  • virt-manager and associated tooling
  • Cockpit for local and remote management
  • Podman and Docker extras
    • Automatically aliases the docker command to podman
    • podman.socket on by default so existing tools expecting a docker socket work out of the box
  • LXC and LXD
  • A collection of well curated monospace fonts
  • hashicorp repo included and enabled
    • None of them installed by default, but you can just add them to the Containerfile as you need them
  • Built-in Ubuntu user space
    • Ctrl-Alt-u - will launch an Ubuntu image inside a terminal via Distrobox, your home directory will be transparently mounted
    • A BlackBox terminal is used just for this configuration
    • Use this container for your typical CLI needs or to install software that is not available via Flatpak or Fedora
    • Optional ubuntu-toolbox image with Python, and other convenience development tools. just distrobox-bluefin to get started. To configure just follow the guide.
    • Optional universal image with Python, Node.js, JavaScript, TypeScript, C++, Java, C#, F#, .NET Core, PHP, Go, Ruby, and and Conda. just distrobox-universal to get started
    • just assemble shortcut to decleratively build distroboxes defined in /etc/distrobox/distrobox.ini
    • Refer to the Distrobox documentation for more information on using and configuring custom images
    • GNOME Terminal
      • Ctrl-Alt-t - will launch a host-level GNOME Terminal if you need to do host-level things in Fedora (you shouldn't need to do much).
  • Cloud Native Tools
    • kind - Run a Kubernetes cluster on your machine. Do a kind create cluster on the host to get started!
    • kubectl - Administer Kubernetes Clusters
    • helm, ko, flux, minio-client -- if it's an incubated project we intend to add it where appropriate
  • DevPod - reproducible developer environments, powered by devcontainers - Nix-powered Development Experience powered by Devbox
    • Introducing Fleek
      • just nix-devbox to get started
      • just nix-devbox-global to install a global profile
      • Check out Devbox for more information
  • Quality of Life Improvements
    • systemd shutdown timers adjusted to 15 seconds
    • Just task runner for post-install automation tasks. Check out our documentation for more information on using and customizing just.
    • fish and zsh available as optional shells, use just fish or just zsh and follow the prompts to configure them

Verification

These images are signed with sigstore'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/bpbeatty/bluefin

Building Locally

  1. Clone this repository and cd into the working directory

    git clone https://github.com/bpbeatty/bluefin.git
    cd bluefin
    
  2. Make modifications if desired

  3. Build the image (Note that this will download and the entire image)

    podman build . -t bluefin
    
  4. Podman push to a registry of your choice.

  5. Rebase to your image to wherever you pushed it:

    sudo rpm-ostree rebase ostree-image-signed:docker://whatever/bluefin:latest
    

Frequently Asked Questions

What about codecs?

Everything you need is included. You will need to configure Firefox for hardware acceleration

How do I get my GNOME back to normal Fedora defaults?

We set the default dconf keys in /etc/dconf/db/local, removing those keys and updating the database will take you back to the fedora default:

sudo rm -f /etc/dconf/db/local.d/01-ublue
sudo dconf update

If you prefer a vanilla GNOME installation check out silverblue-main or silverblue-nvidia for a more upstream experience.

bluefin's People

Contributors

castrojo avatar bpbeatty avatar m2giles avatar kylegospo avatar bobslept avatar bketelsen avatar p5 avatar github-actions[bot] avatar dependabot[bot] avatar eyecantcu avatar noelmiller avatar bsherman avatar renovate[bot] avatar bigpod98 avatar marcoceppi avatar pull[bot] avatar hirnidrin avatar dylanmtaylor avatar ispanos avatar fiftydinar avatar jeefy avatar bayou-brogrammer avatar hikariknight avatar nihaiden avatar nicknamenamenick avatar raindrac avatar qoijjj avatar sekalengrengginang avatar lzumot avatar citrixscu 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.