From 745b1408d0a60c434347dd97180a60fe4050d970 Mon Sep 17 00:00:00 2001 From: joostruis Date: Sun, 4 Feb 2024 20:38:22 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20b35dc?= =?UTF-8?q?91f6748f16c7a495ed5258b6f904b1e432a=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 2 +- .../index.html | 8 +- blog/2022/01/01/january-updates/index.html | 8 +- blog/index.html | 4 +- blog/news/index.html | 4 +- community/index.html | 2 +- docs/contribution-guidelines/index.html | 10 +-- docs/desktop/apache_with_docker/index.html | 10 +-- docs/desktop/appimage/index.html | 10 +-- docs/desktop/building_packages/index.html | 10 +-- docs/desktop/desktop_environements/index.html | 27 +++++-- docs/desktop/development/howdoi/index.html | 10 +-- docs/desktop/development/index.html | 6 +- docs/desktop/docker/index.html | 10 +-- docs/desktop/download/index.html | 10 +-- docs/desktop/flatpak/index.html | 10 +-- docs/desktop/index.html | 6 +- docs/desktop/index.xml | 14 ++++ docs/desktop/migration/gentoo/index.html | 10 +-- docs/desktop/migration/index.html | 6 +- docs/desktop/migration/sabayon/index.html | 10 +-- docs/desktop/repositories/index.html | 10 +-- docs/desktop/usage/index.html | 10 +-- docs/desktop/virt-manager/index.html | 10 +-- docs/desktop/whalebrew/index.html | 10 +-- docs/donate/index.html | 10 +-- docs/general/index.html | 6 +- docs/general/iso-building/index.html | 10 +-- docs/general/kernels/index.html | 10 +-- docs/general/network-config/index.html | 10 +-- docs/general/system-config/index.html | 10 +-- docs/general/system-profiles/index.html | 10 +-- docs/index.html | 6 +- docs/index.xml | 14 ++++ docs/micro/building-packages/index.html | 10 +-- docs/micro/docker/index.html | 10 +-- docs/micro/index.html | 6 +- docs/micro/installation/index.html | 10 +-- docs/micro/service-management/index.html | 10 +-- docs/micro/wireguard/index.html | 10 +-- index.html | 2 +- ...ndex.1ebfebe1201015be8a61b08336ad59f9.json | 1 - ...ndex.59a0436e172d490f7515835718df1091.json | 1 + search/index.html | 6 +- sitemap.xml | 78 +++++++++---------- 45 files changed, 250 insertions(+), 207 deletions(-) delete mode 100644 offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json create mode 100644 offline-search-index.59a0436e172d490f7515835718df1091.json diff --git a/404.html b/404.html index e081ecb6..d5bf7d61 100644 --- a/404.html +++ b/404.html @@ -149,7 +149,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > diff --git a/blog/2021/12/06/updates-on-funtoo-collaboration/index.html b/blog/2021/12/06/updates-on-funtoo-collaboration/index.html index a489b9d8..7ce60157 100644 --- a/blog/2021/12/06/updates-on-funtoo-collaboration/index.html +++ b/blog/2021/12/06/updates-on-funtoo-collaboration/index.html @@ -27,12 +27,12 @@ - + - + @@ -158,7 +158,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -181,7 +181,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > diff --git a/blog/2022/01/01/january-updates/index.html b/blog/2022/01/01/january-updates/index.html index d8fcfa74..26b4bc1b 100644 --- a/blog/2022/01/01/january-updates/index.html +++ b/blog/2022/01/01/january-updates/index.html @@ -27,12 +27,12 @@ - + - + @@ -158,7 +158,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -181,7 +181,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > diff --git a/blog/index.html b/blog/index.html index e1e8f5d9..8df0f2c1 100644 --- a/blog/index.html +++ b/blog/index.html @@ -151,7 +151,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -174,7 +174,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > diff --git a/blog/news/index.html b/blog/news/index.html index fdb9dcd8..756b02ee 100644 --- a/blog/news/index.html +++ b/blog/news/index.html @@ -150,7 +150,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -173,7 +173,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > diff --git a/community/index.html b/community/index.html index bf056e50..679ad999 100644 --- a/community/index.html +++ b/community/index.html @@ -150,7 +150,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > diff --git a/docs/contribution-guidelines/index.html b/docs/contribution-guidelines/index.html index 7c1fa226..343d0a87 100644 --- a/docs/contribution-guidelines/index.html +++ b/docs/contribution-guidelines/index.html @@ -30,13 +30,13 @@ - + - + @@ -163,7 +163,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -186,7 +186,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -419,7 +419,7 @@

References

- Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
diff --git a/docs/desktop/apache_with_docker/index.html b/docs/desktop/apache_with_docker/index.html index b3c82c4f..862686b4 100644 --- a/docs/desktop/apache_with_docker/index.html +++ b/docs/desktop/apache_with_docker/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -466,7 +466,7 @@

Stop the container

- Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
diff --git a/docs/desktop/appimage/index.html b/docs/desktop/appimage/index.html index bfa80d56..b547b180 100644 --- a/docs/desktop/appimage/index.html +++ b/docs/desktop/appimage/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -362,7 +362,7 @@

References

- Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
diff --git a/docs/desktop/building_packages/index.html b/docs/desktop/building_packages/index.html index aa9c7ab0..20b86058 100644 --- a/docs/desktop/building_packages/index.html +++ b/docs/desktop/building_packages/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -592,7 +592,7 @@

Removing generated docker images

- Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
diff --git a/docs/desktop/desktop_environements/index.html b/docs/desktop/desktop_environements/index.html index 973e15b7..69a918c2 100644 --- a/docs/desktop/desktop_environements/index.html +++ b/docs/desktop/desktop_environements/index.html @@ -27,13 +27,13 @@ - + - - + + @@ -181,7 +181,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -306,6 +306,7 @@
  • Enlightenment
  • Trinity
  • Hyprland
  • +
  • Fluxbox
  • Login managers
  • @@ -522,6 +523,20 @@

    KDE Plasma

    
     $ sudo luet install layers/hyprland 
     
    +
    + +

    Fluxbox

    +

    This command installs the Fluxbox desktop environment.

    +
    + +
    +
    1
    +2
    +3
    +
    +
    
    +$ sudo luet install layers/fluxbox 
    +
     

    Login managers

    @@ -579,7 +594,7 @@

    KDE Plasma

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/desktop/development/howdoi/index.html b/docs/desktop/development/howdoi/index.html index 06b5aaee..0ab719b1 100644 --- a/docs/desktop/development/howdoi/index.html +++ b/docs/desktop/development/howdoi/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -637,7 +637,7 @@

    How d
    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/desktop/development/index.html b/docs/desktop/development/index.html index e65b6623..07ea99da 100644 --- a/docs/desktop/development/index.html +++ b/docs/desktop/development/index.html @@ -150,7 +150,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -173,7 +173,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -374,7 +374,7 @@

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/desktop/docker/index.html b/docs/desktop/docker/index.html index f9ad84ef..da8c6848 100644 --- a/docs/desktop/docker/index.html +++ b/docs/desktop/docker/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -406,7 +406,7 @@

    Setup

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/desktop/download/index.html b/docs/desktop/download/index.html index 251155b1..2213531e 100644 --- a/docs/desktop/download/index.html +++ b/docs/desktop/download/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -357,7 +357,7 @@

    Login

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/desktop/flatpak/index.html b/docs/desktop/flatpak/index.html index 0a01cddc..0d523168 100644 --- a/docs/desktop/flatpak/index.html +++ b/docs/desktop/flatpak/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -446,7 +446,7 @@

    References

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/desktop/index.html b/docs/desktop/index.html index 2fb18539..9e4b59ff 100644 --- a/docs/desktop/index.html +++ b/docs/desktop/index.html @@ -150,7 +150,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -173,7 +173,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -474,7 +474,7 @@
    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/desktop/index.xml b/docs/desktop/index.xml index af100925..13579c91 100644 --- a/docs/desktop/index.xml +++ b/docs/desktop/index.xml @@ -361,6 +361,20 @@ $ sudo luet install layers/trinity <pre tabindex="0" style="color:#d0d0d0;background-color:#202020;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"> $ sudo luet install layers/hyprland +</code></pre></td></tr></table> +</div> +</div><h2 id="fluxbox">Fluxbox</h2> +<p>This command installs the Fluxbox desktop environment.</p> +<div class="highlight"><div style="color:#d0d0d0;background-color:#202020;-moz-tab-size:4;-o-tab-size:4;tab-size:4"> +<table style="border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;"> +<pre tabindex="0" style="color:#d0d0d0;background-color:#202020;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#686868">1 +</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#686868">2 +</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#686868">3 +</span></code></pre></td> +<td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"> +<pre tabindex="0" style="color:#d0d0d0;background-color:#202020;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"> +$ sudo luet install layers/fluxbox + </code></pre></td></tr></table> </div> </div><h2 id="login-managers">Login managers</h2> diff --git a/docs/desktop/migration/gentoo/index.html b/docs/desktop/migration/gentoo/index.html index 59f48b82..d71ff32d 100644 --- a/docs/desktop/migration/gentoo/index.html +++ b/docs/desktop/migration/gentoo/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -438,7 +438,7 @@

    Enabling the Portage Tree layer

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/desktop/migration/index.html b/docs/desktop/migration/index.html index 2a7c0092..afbd35b2 100644 --- a/docs/desktop/migration/index.html +++ b/docs/desktop/migration/index.html @@ -150,7 +150,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -173,7 +173,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -380,7 +380,7 @@
    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/desktop/migration/sabayon/index.html b/docs/desktop/migration/sabayon/index.html index daf27ad2..baa285a0 100644 --- a/docs/desktop/migration/sabayon/index.html +++ b/docs/desktop/migration/sabayon/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -478,7 +478,7 @@

    Note

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/desktop/repositories/index.html b/docs/desktop/repositories/index.html index 227c9dab..87647b83 100644 --- a/docs/desktop/repositories/index.html +++ b/docs/desktop/repositories/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -434,7 +434,7 @@

    Warning

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/desktop/usage/index.html b/docs/desktop/usage/index.html index d1130bbc..0344e3a4 100644 --- a/docs/desktop/usage/index.html +++ b/docs/desktop/usage/index.html @@ -27,12 +27,12 @@ - + - + @@ -158,7 +158,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -181,7 +181,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -530,7 +530,7 @@

    JSON

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/desktop/virt-manager/index.html b/docs/desktop/virt-manager/index.html index 41847ef9..e7104194 100644 --- a/docs/desktop/virt-manager/index.html +++ b/docs/desktop/virt-manager/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -482,7 +482,7 @@

    Setup

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/desktop/whalebrew/index.html b/docs/desktop/whalebrew/index.html index 8ec28f1d..3e7de0ec 100644 --- a/docs/desktop/whalebrew/index.html +++ b/docs/desktop/whalebrew/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -377,7 +377,7 @@

    Install a package

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/donate/index.html b/docs/donate/index.html index 99ba7909..bf26e682 100644 --- a/docs/donate/index.html +++ b/docs/donate/index.html @@ -30,7 +30,7 @@ - + - + @@ -167,7 +167,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -190,7 +190,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -490,7 +490,7 @@

    Stop the service

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/general/index.html b/docs/general/index.html index 8544192d..4d510d7b 100644 --- a/docs/general/index.html +++ b/docs/general/index.html @@ -150,7 +150,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -173,7 +173,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -411,7 +411,7 @@
    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/general/iso-building/index.html b/docs/general/iso-building/index.html index 0cd6f221..df0a9530 100644 --- a/docs/general/iso-building/index.html +++ b/docs/general/iso-building/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -456,7 +456,7 @@

    Building the ISO

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/general/kernels/index.html b/docs/general/kernels/index.html index a01d3daa..95a84fe9 100644 --- a/docs/general/kernels/index.html +++ b/docs/general/kernels/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -397,7 +397,7 @@

    List available kernels

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/general/network-config/index.html b/docs/general/network-config/index.html index fda665f6..cf8b5bcf 100644 --- a/docs/general/network-config/index.html +++ b/docs/general/network-config/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -471,7 +471,7 @@

    systemd-networkd

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/general/system-config/index.html b/docs/general/system-config/index.html index 79f39221..01bab48d 100644 --- a/docs/general/system-config/index.html +++ b/docs/general/system-config/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -397,7 +397,7 @@

    System Configuration

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/general/system-profiles/index.html b/docs/general/system-profiles/index.html index 04468a96..9ecfcaf6 100644 --- a/docs/general/system-profiles/index.html +++ b/docs/general/system-profiles/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -373,7 +373,7 @@

    Search available profiles

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/index.html b/docs/index.html index 5263855c..4aaa65f8 100644 --- a/docs/index.html +++ b/docs/index.html @@ -156,7 +156,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -179,7 +179,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -428,7 +428,7 @@
    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/index.xml b/docs/index.xml index bf38ae9a..f87596fc 100644 --- a/docs/index.xml +++ b/docs/index.xml @@ -1028,6 +1028,20 @@ $ sudo luet install layers/trinity <pre tabindex="0" style="color:#d0d0d0;background-color:#202020;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"> $ sudo luet install layers/hyprland +</code></pre></td></tr></table> +</div> +</div><h2 id="fluxbox">Fluxbox</h2> +<p>This command installs the Fluxbox desktop environment.</p> +<div class="highlight"><div style="color:#d0d0d0;background-color:#202020;-moz-tab-size:4;-o-tab-size:4;tab-size:4"> +<table style="border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;"> +<pre tabindex="0" style="color:#d0d0d0;background-color:#202020;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#686868">1 +</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#686868">2 +</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#686868">3 +</span></code></pre></td> +<td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"> +<pre tabindex="0" style="color:#d0d0d0;background-color:#202020;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"> +$ sudo luet install layers/fluxbox + </code></pre></td></tr></table> </div> </div><h2 id="login-managers">Login managers</h2> diff --git a/docs/micro/building-packages/index.html b/docs/micro/building-packages/index.html index 991b163b..2b680605 100644 --- a/docs/micro/building-packages/index.html +++ b/docs/micro/building-packages/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -660,7 +660,7 @@

    Permanent setup

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/micro/docker/index.html b/docs/micro/docker/index.html index 10c1cf63..3f699ccb 100644 --- a/docs/micro/docker/index.html +++ b/docs/micro/docker/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -403,7 +403,7 @@

    Setup

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/micro/index.html b/docs/micro/index.html index 45d57a67..a437b5a0 100644 --- a/docs/micro/index.html +++ b/docs/micro/index.html @@ -155,7 +155,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -178,7 +178,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -436,7 +436,7 @@
    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/micro/installation/index.html b/docs/micro/installation/index.html index b4b739c8..83644a74 100644 --- a/docs/micro/installation/index.html +++ b/docs/micro/installation/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -389,7 +389,7 @@

    SSH Access

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/micro/service-management/index.html b/docs/micro/service-management/index.html index fd8a343b..43d4a33c 100644 --- a/docs/micro/service-management/index.html +++ b/docs/micro/service-management/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -511,7 +511,7 @@

    Examples

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/docs/micro/wireguard/index.html b/docs/micro/wireguard/index.html index e8949b8c..4eeeed12 100644 --- a/docs/micro/wireguard/index.html +++ b/docs/micro/wireguard/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -177,7 +177,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > @@ -389,7 +389,7 @@

    Multiple connections

    - Last modified February 4, 2024: Update desktop_environements.md (f917174) + Last modified February 4, 2024: Update desktop_environements.md (b35dc91)
    diff --git a/index.html b/index.html index 1f088e24..4f80abfe 100644 --- a/index.html +++ b/index.html @@ -167,7 +167,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > diff --git a/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json b/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json deleted file mode 100644 index 35308aae..00000000 --- a/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json +++ /dev/null @@ -1 +0,0 @@ -[{"body":"Official releases can be downloaded from Github repository\nLogin Default username and password is mocaccino\n","categories":"","description":"Get MocaccinoOS Desktop!","excerpt":"Get MocaccinoOS Desktop!","ref":"/docs/desktop/download/","tags":"","title":"Download"},{"body":" Warning Mocaccino and Luet are under active development and should not be considered “production ready” at this time. The following steps should only be carried out on test systems. Do make sure you have any important data backed up before starting a migration.\nThis section is completely experimental, if you want to help us to improve it, please edit or submit an issue\n You can convert a Gentoo system to Mocaccino OS (running luet) with the following commands as root\n1 2 3 curl https://get.mocaccino.org/luet/get_luet_root.sh | sh luet install system/luet-migrate-emerge luet migrate-emerge migrate-emerge detects packages that are installed and fills the luet database accordingly. It will report any errors if any to screen. If you for some reason need to repeat this step, please remove the luet database first. rm /var/luet/db/luet.db\nEven if in this way it is possible to keep in syncronization the db from portage to luet, migrations are experimental and are not guaranteed to work. Mixed systems aren’t supported, and usage of emerge and luet in the system is discouraged, see how to build packages instead.\nEnabling the Portage Tree layer Once converted to Mocaccino OS, you will want to enable the Mocaccino Repositories\n1 2 3 luet install repository/mocaccino-os-commons luet install repository/mocaccino-extra-stable luet install repository/mocaccino-desktop-stable Upgrading to the latest packages Install all available newer packages from the Mocaccino repositories using:\n1 luet upgrade And finally, review and merge any changes to your configuration files:\n1 etc-update Remove cached downloads If you wish to reclaim the disk space used by the upgrade process (downloaded packages and cached metadata), you can do so using:\n1 luet cleanup ","categories":"","description":"Migrating from Gentoo to MocaccinoOS Desktop","excerpt":"Migrating from Gentoo to MocaccinoOS Desktop","ref":"/docs/desktop/migration/gentoo/","tags":"","title":"Migrating from Gentoo"},{"body":" Warning Mocaccino and Luet are under active development and should not be considered “production ready” at this time. The following steps should only be carried out on test systems. Do make sure you have any important data backed up before starting a migration. Prepare your system If you are on a GNOME/MATE/XFCE system you probably do not need Qt related packages. The more you remove prior to migration, the more easy it will go. So for example if we do not need Qt we can uninstall qtcore using Entropy:\n1 equo remove dev-qt/qtcore --ask Warning Migration can take some time. We advice you to disable screen-locking and power savings. If your screen gets locked during upgrade you might not be able to login again while the upgrade is running. You can convert a Sabayon system (running Entropy) to Mocaccino OS (running luet) with the following commands as root\n1 2 3 4 curl -k https://get.mocaccino.org/luet/get_luet_root.sh | sh luet install repository/mocaccino-os-commons repository/mocaccino-extra repository/mocaccino-desktop-stable luet install system/luet-migrate-entropy luet migrate-entropy The migrate-entropy script detects packages that are installed and fills the luet database. If you for some reason need to repeat this step, please remove the luet database first. rm /var/luet/db/luet.db\nMigrations have been checked for systems running Sabayon 18.05 and newer. You can check which version of Sabayon you are running with cat /etc/sabayon-release.\nUpgrading to the latest packages Install all available newer packages from the Mocaccino repositories using:\n1 luet upgrade And finally, review and merge any changes to your configuration files:\n1 etc-update Remove cached downloads If you wish to reclaim the disk space used by the upgrade process (downloaded packages and cached metadata), you can do so using:\n1 luet cleanup Manual migration Note Note, the steps below are a work in progress and might not work at all and break your system. Consider using the steps below to try to recovery from a broken migration. It is possible to migrate manually a system by running luet migrate-entropy and replacing packages with the layers available in the mOS repositories, for instance, to migrate and replace all packages with the gnome variant:\n1 2 3 4 5 6 7 8 curl -k https://get.mocaccino.org/luet/get_luet_root.sh | sh luet install -y repository/mocaccino-os-commons repository/mocaccino-kernel-stable repository/mocaccino-extra repository/mocaccino-desktop-stable luet install -y system/luet-migrate-entropy utils/jq luet migrate-entropy mkdir -p /etc/mocaccino/ echo \"desktop\" \u003e /etc/mocaccino/release installed=$(luet search --installed -o json | jq '.packages | map(.category+\"/\"+.name+\"@\"+.version)[]' -rc | xargs echo) luet replace $installed --for kernel/mocaccino-lts-full --for kernel/mocaccino-lts-modules --for layers/firmware --for system-profile/default-systemd --for system/luet --for layers/system-x --for layers/gnome ","categories":"","description":"Migrating from Sabayon to MocaccinoOS Desktop","excerpt":"Migrating from Sabayon to MocaccinoOS Desktop","ref":"/docs/desktop/migration/sabayon/","tags":"","title":"Migrating from Sabayon"},{"body":"Init system The Micro and MicroServer ISO flavors are using runit as init system. For ease of use, a very simple helper is provided, and can be used as follows:\nList available services 1 $ runit-list Start a service 1 $ runit-start sshd Stop a service 1 $ runit-stop sshd Enable a service on boot 1 $ runit-enable sshd Disable a service from booting on startup 1 $ runit-disable sshd Boot scripts It’s possible to add scripts to be executed during boot execution, under /etc/runit/core-services/*.sh.\nFor example:\n1 $ echo \"modprobe e1000e\" \u003e /etc/runit/core-services/modules.sh Yip Integration Mocaccino Micro can be configured to execute yipfiles during different stages.\n1 $ luet install runit-srv/yip To start the yip service:\n1 $ runit-start yip To Enable yip on boot:\n1 $ runit-enable yip Yip files running periodically The yip service runs periodically yip files in /etc/yip.d, /etc/yip.yaml and from the boot cmdline on the system.\nFor example, by creating a yip file as /etc/yip.d/sshd.yaml:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 name:\"sshd\"stages:reconcile:- name:\"sshd_config setup\"commands:- chmod 644 /etc/ssh/sshd_configfiles:- path:\"/etc/ssh/sshd_config\"owner:0group:0permission:644content:|AuthorizedKeysFile %h/.ssh/authorized_keys PermitRootLogin yes ListenAddress 0.0.0.0 yip will make sure and keep sshd configured.\nThere are two stages currently supported: reconcile and boot. The boot yip stage is run at start, during runit initialization, while the reconcile is called periodically. You can also run yip-reconcile to trigger the execution manually.\nFor more information about yip, check here. To see a sample /etc/yip.d control-repo check here.\nSpecifing yip files from boot It is also possible to use yip to automatically configure the system from boot.\nAdd yip=... to the boot command lines to specify the yip file to execute across the stages (can be a path to a local file, or either a URL)\nExamples yipcontrol-sample ","categories":"","description":"Service management on Mocaccino Micro","excerpt":"Service management on Mocaccino Micro","ref":"/docs/micro/service-management/","tags":"","title":"Service Management and Init"},{"body":"MocaccinoOS uses luet as a package manager. Here in this document are collected references from the luet docs.\nUpdate the repositories This command updates your repository database.\n1 2 3 $ sudo luet repo update Installing a package To install a package with luet, simply run:\n1 2 3 $ sudo luet install \u003cpackage_name\u003e Be sure you write the full package name that includes the category. So if you are installing for example neofetch:\n1 2 3 $ sudo luet install apps/neofetch Uninstalling a package To uninstall a package with luet, simply run:\n1 2 3 $ sudo luet uninstall \u003cpackage_name\u003e Upgrading the system To upgrade your system, simply run:\n1 2 3 $ sudo luet upgrade Searching a package To search a package:\n1 2 3 $ sudo luet search \u003cregex\u003e To search a package and display results in a table:\n1 2 3 $ sudo luet search --table \u003cregex\u003e To look into the installed packages:\n1 2 3 $ sudo luet search --installed \u003cregex\u003e Note: the regex argument is optional\nSearch output Search can return results in the terminal in different ways: as terminal output, as json or as yaml.\nJSON 1 2 3 $ sudo luet search --json \u003cregex\u003e YAML 1 2 3 $ sudo luet search --yaml \u003cregex\u003e Tabular 1 2 3 $ sudo luet search --table \u003cregex\u003e References Luet docs ","categories":"","description":"Frequent commands\n","excerpt":"Frequent commands\n","ref":"/docs/desktop/usage/","tags":"","title":"Package manager"},{"body":"Installation At the moment Micro images are tested to be bootable with Virtualbox, and can be installed in VMs.\nTo install Micro on a virtual machine, run mocaccino-unattended-installer.\nDefault username The default account is root with password mocaccino\nSSH Access add PermitRootLogin yes to /etc/ssh/sshd_config with your editor of choice ( for nano, luet install editors/nano )\nStart the sshd daemon:\n1 $ runit-start sshd You should be able to log-in to your machine, check the ip with ip a.\nTo enable sshd on boot,\n1 $ runit-enable sshd Once logged in, remind to change the configuration settings!\n","categories":"","description":"Installation and after install notes","excerpt":"Installation and after install notes","ref":"/docs/micro/installation/","tags":"","title":"Installation notes"},{"body":"ISO Building The ISO building process is performed within dockers to keep ISOs clean and uncontaiminated by unnecessary dev files, temp files, etc.\nDocker installation If you’re planning on using docker as a user rather than just from root, you’ll want additional packages such as entity/docker and acct-group/docker, but they aren’t necessary for our purposes.\nroot@mocaccino:~# luet install container/docker systemd-service/dockerd root@mocaccino:~# systemctl enable docker; systemctl start docker If you’re using mocaccino-micro, you’ll use runit-srv/dockerd instead of systemd-service.\nroot@mocaccino:~# luet install container/docker runit-srv/dockerd root@mocaccino:~# runit-enable dockerd; runit-start dockerd Creating a Dockerfile You’ll need a dockerfile that tells docker how to build our image and what it should do. Lets start by creating a dedicated directory for this work.\nroot@mocaccino:~# mkdir -p Docker/iso-builder root@mocaccino:~/Docker/iso-builder# cd Docker/iso-builder root@mocaccino:~/Docker/iso-builder# touch Dockerfile root@mocaccino:~/Docker/iso-builder# vim Dockerfile Now what do we need in this dockerfile?\nFROM ubuntu RUN apt-get update RUN apt-get install curl xorriso squashfs-tools dosfstools RUN curl https://get.mocaccino.org/luet/get_luet_root.sh | sh RUN luet install -y extension/makeiso WORKDIR /output ENTRYPOINT [\"/usr/bin/luet-makeiso\"] So what exactly is happening here? We’re telling docker we want our image to start FROM the ubuntu core image which is very small and extremely lean. Then we’re telling docker to RUN these commands inside the docker for setup. These command update the apt repos, install a few required tools, install luet via a script, and add the makeiso luet extension. Then we’re saying we need a WORKDIR where we’re going to output our file file and we want that to be a folder we link outside the docker so we can have that ISO outside of the docker. Then we’re using ENTRYPOINT to tell docker after the image is built and started, what command do we want the docker to run?\nWant to start from Gentoo Stage3 (WIP)? Try this Dockerfile:\nFROM gentoo/stage3:systemd RUN rm -rf /var/lock RUN mkdir -p /var/lock/ RUN touch /var/lock/luet.lock RUN curl https://get.mocaccino.org/luet/get_luet_root.sh | sh RUN luet install -y extension/makeiso sys-fs/squashfs-tools sys-fs/dosfstools dev-libs/libisoburn WORKDIR /output ENTRYPOINT [\"/usr/bin/luet-makeiso\"] Building the docker image Building the docker image and installing/running the docker container are different. Building the docker image means you have the starting point image built and ready, but doesn’t mean the docker container installed and running. We’ll be building and tagging this image with a name.\n1 root@mocaccino:~/Docker/iso-builder# docker build -t iso-builder . What is this command doing? Its telling docker to build the Dockerfile inside the current directory (.) and tag (-t) it with the name iso-builder. When this is complete you should see something like this at the end:\n1 2 Successfully built af8d3b35de70 Successfully tagged iso-builder:latest This means the docker image was successfully built and it has been tagged/named iso-builder:latest. What is with the “:latest”? Well you can have multiple revisions of docker and tag them with different version numbers. For example if I was maintaining 2 different versions such as how ubuntu LTS has multiple still supported versions we could tag it like :1804 and :2004, but for our usecases we won’t be doing that. We’ll just be using latest.\nBuilding the ISO Now we have a docker image we can use to build clean ISOs from scratch, but we’re still not done. the ENTRYPOINT command luet-makeiso requires arguements. running the command alone doesn’t just build an ISO. It needs instructions on the list of layers and packages to download and install to build a specific spin of MocaccinoOS. For the simplicity of the guide we’ll just be using Gnome, but there are multiple Mocaccino flavors for you to choose from. You can build from a pre-built specification or you can tweak a specification to make your own ISO build. Our specification files are stored at https://github.com/mocaccinoOS/mocaccino/tree/master/specs.\nLets download the gnome.yaml spec file into our iso-builder directory.\n1 root@mocaccino:~/Docker/iso-builder# curl https://raw.githubusercontent.com/mocaccinoOS/mocaccino/master/specs/gnome.yaml Our iso-builder directory should now look like this:\n1 2 root@mocaccino:~/Docker/iso-builder# ls Dockerfile gnome.yaml Lets tell Docker to run our newly built docker container image and tell it to build us an ISO!\n1 root@mocaccino:~/Docker/iso-builder# docker run -ti -v $PWD:/output --privileged=true --rm iso-builder:latest gnome.yaml So whats happening here exactly? We’re telling docker run a docker container using the iso-builder:latest image we built and we want to see the output run in a new tty/shell that is interactive (-ti) and we’re binding (-v) our current folder ($PWD) to a folder inside the docker /output. Now files in our current directly will be accessible to the docker and files the docker creates in that directory will be accessible to us. We also want the docker to delete itself when the job is complete (–rm). We also need privileges to fork the processes for speed (–privileged=true). We’re passing an argument (gnome.yaml) to the command at the ENTRYPOINT command of the docker. So Effectively the docker is running the command /usr/bin/luet-makeiso gnome.yaml and that gnome.yaml file is accessible because its in the WORKDIR /output that we binded to the docker.\nNow the docker will begin as a minimal image installing all required files via luet to have a bootable mocaccino gnome system. This will take some time. After all the packages are installed into the docker it will begin building an ISO of the current snapshot of that docker. After the ISO build is complete, the ISO will be dumped into /output which also happens to be the current directory your in on the host system ~/Docker/iso-builder#. After that is complete, the docker will proceed to remove itself. This cleans up any unncessary dockers and bloat on your system, but leaves you with the ISO in your iso-builder directory.\n","categories":"","description":"Building ISOs for testing or custom ISOs.","excerpt":"Building ISOs for testing or custom ISOs.","ref":"/docs/general/iso-building/","tags":"","title":"ISO building"},{"body":"Mocaccino Desktop is a Gentoo-based distribution (derived from Sabayon) oriented towards Desktop systems.\nIt contains installable “apps” that we refer internally as “layers” to install common suite of packages needed to bootstrap a pure and simple OS.\nA user should be able then to install KDE Plasma by running luet install layers/plasma and nothing else. That package should install all the necessary components to make the “app” work as expected. The user shouldn’t be exposed to the typical OS architecture of bringing with it dozens of dependencies. Simply said: All micropackages are abstracted away and are included in a layer and installed as a single package.\nThink at it like Android apps: Install and uninstall should be as simple as that.\nThis approach is completely different from Mocaccino Micro, which is a LFS and all packages are compiled 1:1.\nIn this repository, updates are OTA-alike, with less friction as possible.\nWhy MOS Desktop is different? For the user, MOS Desktop is a pure and simple OS. We target to deliver an unique approach on package installation and upgrades. Applications should bundle all the required dependencies in order to run, or alternatively share common layers that are used between them (for example think about MATE, GNOME, and all software that depends on GTK). This allows users to have OTA-alike updates, without having to struggle with all packages dependencies.\nFrom a developer standpoint, MOS takes a unique approach on package building, allowing developers to iterate locally changes to the packages very easily, thanks to the Luet flexible backend approach. You can use Docker to build packages locally, or Kubernetes to build them in your cluster\n","categories":"","description":"MocaccinoOS variant based from Portage","excerpt":"MocaccinoOS variant based from Portage","ref":"/docs/desktop/","tags":"","title":"Mocaccino Desktop"},{"body":"Network Manager By default your system is configured with dhcp using Netwok Manager. Currently Network Manager is installed on the system as a part of layers/X.\nsystemd-networkd If you want to use systemd-networkd instead of Network Manager follow these steps.\nFirst disable Network Manager service and enable systemd-networkd service:\n1 2 3 root@mocaccino:~# systemctl stop NetworkManager root@mocaccino:~# systemctl disable NetworkManager root@mocaccino:~# systemctl enable systemd-networkd Enable the systemd-resolved service:\n1 2 root@mocaccino:~# systemctl enable systemd-resolved root@mocaccino:~# systemctl start systemd-resolved Configure your connection: To list available connectiond you can run networkctl\n1 root@mocaccino:~# networkctl This will display a list like this:\n1 2 3 4 5 6 7 8 9 10 11 IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback carrier unmanaged 2 enp3s0 ether routable configured 3 enp2s0 ether off unmanaged 4 edgevpn0 none routable unmanaged 5 docker0 bridge routable unmanaged 7 vethf4478cf ether enslaved unmanaged 9 veth65a81ba ether enslaved unmanaged 11 veth6df3fd4 ether enslaved unmanaged 8 links listed. In our example we want to configure enp3s0\nStatic config:\n1 root@mocaccino:~# nano /etc/systemd/network/00-enp3s0.network And as an example add this to the file\n1 2 3 4 5 6 7 [Match] Name=enp3s0 [Network] Address=192.168.1.50/24 Gateway=192.168.1.1 DNS=192.168.1.1 DHCP: We edit the same file as above but now we put in this config\n1 2 3 4 5 [Match] Name=enp3s0 [Network] DHCP=yes ","categories":"","description":"Configure your network","excerpt":"Configure your network","ref":"/docs/general/network-config/","tags":"","title":"Network configuration"},{"body":"Switching kernels MocaccinoOS images are shipping the latest LTS available Kernel version by default. It is possible to switch kernels by running mos kernel-switcher.\nList available kernels 1 $ mos kernel-switcher list Switch to main kernels To switch to main kernels, that gets updated more frequently:\n1 $ mos kernel-switcher switch kernel/mocaccino-full Switch to LTS kernels To switch to LTS kernels, run:\n1 $ mos kernel-switcher switch kernel/mocaccino-lts-full ","categories":"","description":"Switching between LTS and mainline kernels","excerpt":"Switching between LTS and mainline kernels","ref":"/docs/general/kernels/","tags":"","title":"Switching kernels"},{"body":"This page explains how to install several desktop environments.\nKDE Plasma This command installs the KDE Plasma desktop environment.\n1 2 3 $ sudo luet install layers/plasma layers/kde-apps-minimal apps/discover The layers/plasma package ships with the SDDM login manager. If you prefer to use SDDM as your login manager run this command:\n1 2 3 $ sudo systemctl enable sddm --force GNOME This command installs the GNOME desktop environment.\n1 2 3 $ sudo luet install layers/gnome apps/gnome-software The layers/gnome package ships with the GDM login manager. If you prefer to use GDM as your login manager run this command:\n1 2 3 $ sudo systemctl enable gdm --force MATE This command installs the MATE desktop environment.\n1 2 3 $ sudo luet install layers/mate themes/mate XFCE This command installs the XFCE desktop environment.\n1 2 3 $ sudo luet install layers/xfce LXQT This command installs the LXQT desktop environment.\n1 2 3 $ sudo luet install layers/lxqt Cinnamon This command installs the Cinnamon desktop environment.\n1 2 3 $ sudo luet install layers/cinnamon Enlightenment This command installs the Cinnamon desktop environment.\n1 2 3 $ sudo luet install layers/enlightenment Trinity This command installs the Trinity desktop environment.\n1 2 3 $ sudo luet install layers/trinity Hyprland This command installs the Hyprland desktop environment.\n1 2 3 $ sudo luet install layers/hyprland Login managers If you prefer to use Lightdm as your login manager run these commands:\n1 2 3 $ sudo luet install apps/lightdm 1 2 3 $ sudo systemctl enable lightdm --force If you prefer to use Slim as your login manager run these commands:\n1 2 3 $ sudo luet install apps/slim 1 2 3 $ sudo systemctl enable slim --force ","categories":"","description":"MocaccinoOS supports several popular desktop environments.\n","excerpt":"MocaccinoOS supports several popular desktop environments.\n","ref":"/docs/desktop/desktop_environements/","tags":"","title":"Desktop environements"},{"body":" Warning This is currently experimental In Micro, currently it’s possible to build packages with K3s and Luet\nFirst install k3s:\n1 luet install -y container/k3s runit-srv/k3s And start it:\n1 $ runit-start k3s To enable it permanently on boot, run runit-enable k3s\nWait for k3s to be ready (Until ContainerCreating becomes Ready):\n1 $ watch k3s kubectl get pods -A Now install the luet controller:\n1 $ k3s kubectl apply -f https://raw.githubusercontent.com/mudler/luet-k8s/master/hack/kube.yaml And wait for it to be ready:\n1 $ watch k3s kubectl get pods -A Once all is up, we are ready to build packages, try for example with:\n1 2 3 4 5 6 7 8 9 10 11 12 13 $ cat \u003c\u003cEOF | k3s kubectl apply -f - apiVersion: luet.k8s.io/v1alpha1 kind: PackageBuild metadata: name: test spec: packageName: container/img repository: url: \"https://github.com/mocaccinoOS/mocaccino-extra\" options: pull: true imageRepository: \"quay.io/mocaccinocache/extra-amd64-cache\" EOF In this case, we can inspect the build logs with:\n1 k3s kubectl logs -f test (advanced) Multi-node setup This section shows how to configure 2(or more) MocaccinoOS Micro instances with K3s and edgevpn.\nWarning Note, this setup is for development purposes, and intended to be run in a trusted environment, and just on Virtual machines. The following steps should only be carried out on test systems. Do make sure you have any important data backed up before starting a migration. Install edgevpn and k3s 1 luet install -y runit-srv/edgevpn utils/edgevpn container/k3s runit-srv/k3s Generate edgevpn configuration 1 edgevpn -g \u003e vpn.yaml Save the configuration file, it has to be available on all the machines that will belong to the cluster.\nStart the vpn We are ready to try to start the vpn:\n on node A: sudo IFACE=edgevpn0 ADDRESS=10.1.0.3/24 EDGEVPNCONFIG=vpn.yml edgevpn\n on node B: sudo IFACE=edgevpn0 ADDRESS=10.1.0.4/24 EDGEVPNCONFIG=vpm.yml edgevpn\n Where:\n IFACE is the vpn interface to be created ADDRESS is the address of the node in the vpn network EDGEVPNCONFIG is the path of the configuration which was generated before If all goes well, we should see some connection messages, and after a while we should be able to ping the nodes.\nStart k3s: on node A: k3s server --flannel-iface=edgevpn0\n on node B: K3S_URL=https://10.1.0.3:6443 K3S_TOKEN=xx k3s agent --flannel-iface=edgevpn0 --node-ip 10.1.0.4\n Permanent setup Annotate the IFACE, ADDRESS, and EDGEVPNCONFIG in /etc/sv/edgevpn/conf in each node, and then you can use the following yip file for example to configure k3s (to place under /etc/yip.d):\nNode A:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 stages:boot:- name:\"k3s\"commands:- |if [ ! -e \"/usr/bin/k3s\" ]; then luet install -y container/k3s runit-srv/k3s runit-enable k3s fi- ulimit -u unlimitedfiles:- path:\"/etc/sv/k3s/run\"owner:0group:0permissions:0755content:|#!/bin/sh exec 2\u003e\u00261 [ -r ./conf ] \u0026\u0026 . ./conf echo 'k3s starting.' LANG=C LC_ALL=C \\ exec /usr/bin/k3s server --flannel-iface=edgevpn0 2\u003e\u00261 Node B:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 stages:boot:- name:\"k3s\"commands:- |if [ ! -e \"/usr/bin/k3s\" ]; then luet install -y container/k3s runit-srv/k3s runit-enable k3s fi- ulimit -u unlimitedfiles:- path:\"/etc/sv/k3s/run\"owner:0group:0permissions:0755content:|#!/bin/sh exec 2\u003e\u00261 [ -r ./conf ] \u0026\u0026 . ./conf echo 'k3s starting.' LANG=C LC_ALL=C K3S_URL=https://10.1.0.1:6443 K3S_TOKEN=xxx \\ exec /usr/bin/k3s agent --flannel-iface=edgevpn0 --node-ip 10.1.0.13 2\u003e\u00261 Then enable the services at boot:\n1 2 $ runit-enable k3s $ runit-enable edgevpn Example Full package build example ","categories":"","description":"How to build packages with Luet in Mocaccino Micro and k3s","excerpt":"How to build packages with Luet in Mocaccino Micro and k3s","ref":"/docs/micro/building-packages/","tags":"","title":"Building packages with Micro and k3s"},{"body":" Warning Mocaccino and Luet are under active development and should not be considered “production ready” at this time. The following steps should only be carried out on test systems. Do make sure you have any important data backed up before. Here are collected docs that applies to all flavors of MocaccinoOS\n","categories":"","description":"Articles that applies to all MocaccinoOS flavors","excerpt":"Articles that applies to all MocaccinoOS flavors","ref":"/docs/general/","tags":"","title":"General section"},{"body":" Warning Mocaccino and Luet are under active development and should not be considered “production ready” at this time. The following steps should only be carried out on test systems. Do make sure you have any important data backed up before. Mocaccino Micro is a musl-based LFS distribution with a minimal set of packages in order to boot and build an entire OS.\nAt the moment are available alpha ISO releases, and the following docker images can be used:\n1 $ docker pull quay.io/mocaccino/micro Extra repositories Additional packages are available in the mocaccino-extra repositories.\nTo enable them:\n1 $ luet install repository/mocaccino-extra ","categories":"","description":"","excerpt":" Warning Mocaccino and Luet are under active development and should …","ref":"/docs/micro/","tags":"","title":"Mocaccino Micro"},{"body":"MocaccinoOS Desktop and Micro automatically protects /etc from overwriting user-override changes. Although, upgrades might require to overwrite and upgrade specific default configuration. The mos cli embeds a config-update tool which is compatible with etc-update and dispatch-conf.\nTo show a summary of the config changes that requires merging:\n1 2 3 $ mos config-update check Files with unmerged config files: 1 - /etc/test/foo (2 unmerged config files) Merging configuration To merge configurations interactively, run:\n1 mos config-update update To check the configuration of all the files, 1-by-1, run:\n1 mos config-update update -a Auto-merging It’s possible to auto-merge configurations automatically with:\n1 $ mos config-update update --interactive=false ","categories":"","description":"Dealing with system configuration after upgrades","excerpt":"Dealing with system configuration after upgrades","ref":"/docs/general/system-config/","tags":"","title":"System Configuration"},{"body":"System profiles are specific MocaccinoOS configuration that can be enabled/disabled from the mos cli.\nList available profiles To list all the installed available profiles, run mos profile list\nEnable profiles To enable a specific profile, run mos profile enable \u003cprofile\u003e\nDisable profiles To disable a profile, run mos profile disable \u003cprofile\u003e\nSearch available profiles To search all the available profiles for installation, run luet search system-profiles.\nTo install a specific profile, run luet install system-profile/\u003cname\u003e.\n","categories":"","description":"Enabling and disabling system profiles","excerpt":"Enabling and disabling system profiles","ref":"/docs/general/system-profiles/","tags":"","title":"System profiles"},{"body":"Setup First install container/docker and systemd-service/dockerd, which provides the systemd service:\n1 $ sudo luet install container/docker systemd-service/dockerd To start dockerd, just:\n1 $ sudo systemctl start docker or to enable at boot:\n1 $ sudo systemctl enable docker Optionally add your user to the docker group:\n$ sudo usermod -aG docker $USER Now you should be able to use docker as usual, for example:\n1 2 3 4 5 6 7 root@mocaccino:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES root@mocaccino:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/mocaccino/extra latest ce197d5b1a7e 3 days ago 21.2MB you could also use Whalebrew to make aliasing the containers into something more useable.\n","categories":"","description":"Running Docker on Mocaccino Desktop","excerpt":"Running Docker on Mocaccino Desktop","ref":"/docs/desktop/docker/","tags":"","title":"Running docker"},{"body":"Setup First install container/docker, or directly runit-srv/docker, which provides the runit service:\n1 $ luet install runit-srv/dockerd To start dockerd, just:\n1 $ runit-start dockerd or to enable at boot:\n1 $ runit-enable dockerd Now you should be able to use docker as usual, for example:\n1 2 3 4 5 6 7 root@mocaccino:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES root@mocaccino:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/mocaccino/extra latest ce197d5b1a7e 3 days ago 21.2MB ","categories":"","description":"Running Docker on Mocaccino Micro","excerpt":"Running Docker on Mocaccino Micro","ref":"/docs/micro/docker/","tags":"","title":"Running docker"},{"body":"“Whalebrew is homebrew but for docker images” that is to say it creates aliases for docker images so you could run them as regular commands\nSetup Be sure to have docker installed, and the daemon running.\nFirst install utils/whalebrew:\n1 $ luet install utils/whalebrew Now you should be able to use whalebrew as usual\nInstall a package 1 $ whalebrew install whalebrew/ffmpeg Then it should be accessible as a normal binary. You can call directly the program (ffmpeg in the above example)\n","categories":"","description":"Whalebrew on Mocaccino Desktop","excerpt":"Whalebrew on Mocaccino Desktop","ref":"/docs/desktop/whalebrew/","tags":"","title":"Whalebrew"},{"body":"Setup Wireguard comes embedded in the Mocaccino Kernels.\nFirst install wireguard-tools and the wg runit service:\n1 $ luet install runit-srv/wg networking/wireguard-tools By default, the service sets up the wg0 interface, with configuration at /etc/wireguard/wg0.conf.\nEdit /etc/wireguard/wg0.conf with your configuration, or to change the default interface configuration, change the /etc/sv/wg/conf file accordingly.\nTo start wg, just:\n1 $ runit-start wg or to enable at boot:\n1 $ runit-enable wg Now you should be able to see the wg interface with wg show.\nMultiple connections For multiple connections, copy the /etc/sv/wg/ service directory to your custom one, for example /etc/sv/wg2 and tweak it accordingly to your needs. You can start it afterwards with runit-start wg2\n","categories":"","description":"Running Wireguard on Mocaccino Micro","excerpt":"Running Wireguard on Mocaccino Micro","ref":"/docs/micro/wireguard/","tags":"","title":"Running wireguard"},{"body":" Warning MocaccinoOS and this wiki is a work in progress. Please help us improve by opening a PR or filing an issue.\nMocaccino and Luet are under active development and should not be considered “production ready” at this time. The steps described in the article are for development only and should only be carried out on test systems.\n Welcome to the MocaccinoOS wiki!\nMocaccinoOS is a minimal meta-Linux distribution. It uses Luet as a package manager, which is static and uses containers to build packages.\nMain features of MocaccinoOS:\n Focused on minimalism, small footprint, and ease of use Native vanilla upstream kernel: We closely follow kernel versions from upstream, LTS included. Unique approach to package management: SAT-solving is also applied on packages built in containers (Docker, Kubernetes, etc.) Meta distribution: It can be easily used to bootstrap other OS or spin-offs Local iteration: With the container ecosystem, it’s easy to iterate development locally Cloud first: Support for the most important cloud technology in the landscape Different variants: From server to desktop, from systemd to runit! Here you will find installations, articles, and how-tos for the MocaccinoOS variants.\n","categories":"","description":"","excerpt":" Warning MocaccinoOS and this wiki is a work in progress. Please help …","ref":"/docs/","tags":"","title":"Documentation"},{"body":"This document has the objective to address several questions that starts with “How do I … ?”\nHow do I start contributing? Have a look at the official Luet docs about package building, and feel free to submit your first PR! Be sure to also read all this document to get an Idea on how things should look like.\nHow do I know which version of a package is available in the Portage tree We pin Portage versions by using packages that are shipping a version of it. This guarantees that there are no moving parts, and we can in this way provide updates as part of a development lifecycle.\nWe have an automated bot that automatically opens PR to track new version of the available Portage version. The package is available here: https://github.com/mocaccinoOS/desktop/tree/master/packages/portage. You don’t need to do it manually. Just wait for a PR from MarvinHatesOceans to pop-up, we will review it and merge it only when we decide (after proper QA) that a development lifecycle is over.\nA Portage bump happens when:\n We close a dev cycle (release, and upgrades) Security fixes So, how do I know which package I can build? At the moment is as easy as browsing the portage git and point it at the same commit of our package.\nFor example:\ngit.hash: \"b0e157b071cb23b348acab3d596b49f66c244808\" in https://github.com/mocaccinoOS/desktop/blob/e9ae4aafead5a79d1d36630c932d907361d8c93c/packages/portage/definition.yaml#L6 tells you that we are pinning at commit b0e157b071cb23b348acab3d596b49f66c244808 of portage tree. So you can e.g. point your browser at : https://github.com/gentoo/gentoo/tree/b0e157b071cb23b348acab3d596b49f66c244808\nHow do I revbump a package? (and when it’s actually needed?) By convention, we have chosen to increment the version of a package after the +, following semver notation.\nThat means, if a package version is at 1.0.0, it’s revbump version would be 1.0.0+1, and a subsequent one would be for example 1.0.0+2.\nWhen I do need to bump a package? Only when there is a new version available!\nWhen I do need to revbump a package? A Package revbump is necessary when you apply changes to build.yaml, although, it’s not always necessary, but just in few cases:\n When you change steps in the build.yaml When you change prelude in the build.yaml When you change requires in the build.yaml What about packages depending on it? Always by convention, we have chosen to revbump manually those. Luet does support tracking automatically new package versions, but we want to make this transparent in the Git repository, so reverting changes introduced by mistakes it’s easier, and so we also rely on the caching mechanism of Luet.\nIf we don’t revbump reverse dependencies our CI would skip such changes, because we enforced this by policy.\nHow do I do that? Until https://github.com/mocaccinoOS/desktop/issues/7 is delivered, it is a manual process.\nHow do I add a useflag to a Portage package or layer? If the useflag you are going to add doesn’t have an huge impact on its dependencies (not requiring a rebuild) then it’s fine to apply at the spec-level. Otherwise it might be required to specify the useflags needed in that specific package, or on the parent layer which your package is depending on, requiring a package revbump.\nTake the layers/system-x package as an example, in the prelude steps of the package, we copy over the building container the custom useflags in the prelude steps:\n1 2 3 4 5 prelude:- cp -rf package.use /etc/portage/- cp -rf make.conf /etc/portage/- cp -rf package.accept_keywords /etc/portage/- cp -rf package.license /etc/portage/ the package.use folder is actually shipped with the package spec. That approach can be used also in layers depending on system-x, with a separate set of flags. You just have to be sure to not override any useflag between layers, and to try to share as much as you can with parent layers while do you see it fit.\nHow do I split a package? A layer can be split into multiple packages, using the excludes/includes pattern which is used for example by gcc and gcc-base. This means you can safely compile packages into parent-layers, and exclude those in the final artifact which gets installed by the end-user.\nFor example, for gcc we drop the files from system-x, and we include explicitly files to the gcc package, which at that point doesn’t need to compile anything by itself. It just needs to depend on the parent layer, so all the gcc files are accessible from that container.\nIn the system-x spec, you will find something similar:\n1 2 3 4 5 6 7 8 9 10 11 12 13 excludes:...# GCC split- ^/etc/env.d/04gcc-x86_64-pc-linux-gnu- ^/etc/ld.so.conf.d/05gcc-x86_64-pc-linux-gnu.conf- ^/etc/env.d/gcc.*- ^/usr/lib/debug/usr/lib/gcc.*- ^/usr/lib/gcc/x86_64-pc-linux-gnu.*- ^/usr/share/gcc-data/x86_64-pc-linux-gnu.*- ^/usr/bin/c\\+\\+.*- ^/usr/bin/cc$- ^/usr/bin/cpp.* This tells luet to exclude those files from the final artifact.\nSimilarly, you can find in the gcc package those files being included:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 includes:...- /usr/lib/gcc$- /usr/lib/gcc/x86_64-pc-linux-gnu$- /usr/lib/gcc/x86_64-pc-linux-gnu/{{.Values.version}}.*- /usr/lib/go$- /usr/lib/go/{{.Values.version}}.*- /usr/lib64$- /usr/lib64/go$- /usr/lib64/go/{{.Values.version}}.*- /usr/libexec$- /usr/libexec/gcc$- /usr/libexec/gcc/x86_64-pc-linux-gnu$- /usr/libexec/gcc/x86_64-pc-linux-gnu/{{.Values.version}}.*- /usr/share$- /usr/share/gcc-data$- /usr/share/gcc-data/x86_64-pc-linux-gnu$- /usr/share/gcc-data/x86_64-pc-linux-gnu/{{.Values.version}}.* How do I try my changes? You need at least Docker running locally, or img installed.\nTo build a package, just edit/add the relevant specs and run PACKAGES=\"..\" make rebuild-all.\nHow can I debug the build environment? Luet generates docker images for each package, you can start a shell by either retrieving the docker image of the package manually with luet tree images and manually run docker run.. on it. Here an example how we shell into layers/X:\n1 luet tree images --image-repository quay.io/mocaccino/desktop layers/X This returns a list of docker containers where layers/X image is created from.\n1 2 3 4 5 layers/gentoo-portage-0.20230110: quay.io/mocaccino/desktop:febbfe7192e42abb3671acd65ff3ec7a6cfad063334f5c24301f30b56f0ad7dd layers/system-x-0.20230110: quay.io/mocaccino/desktop:7343fcc6f4bbbf5906b3104ad96431192a0110fb020186825409abac6587ddc3 layers/codecs-7+22: quay.io/mocaccino/desktop:4e885e2b509102e808f21efa38f4734c98e23279775beb2b3a0ec6db182f7ebd layers/sys-fs-0.9+27: quay.io/mocaccino/desktop:e1ae4a4e732e8a866721d380c7a30c930996d6d0e1840deaa5901d35f72a3b35 layers/X-1.1+28: quay.io/mocaccino/desktop:865b8d9662679f9c145f13b82c803f3380d7b5dbfad2fa2316646a46977ad3c2 Now that we know the image string we can apply that to our docker command:\n1 docker run -ti --rm quay.io/mocaccino/desktop:865b8d9662679f9c145f13b82c803f3380d7b5dbfad2fa2316646a46977ad3c2 /bin/bash Or you can use the luet extension which does that already for you. You need to have installed system/luet-devkit package, and you can use it as follows:\n1 DOCKER_HOST=\"...\" LUET_ARGS=\"--image-repository quay.io/mocaccino/desktop\" luet remote-exec packagename Note: It’s not required DOCKER_HOST unless you want to leverage a remote host.\nOnce you are hooked into the container there are some limited tools at your disposal that might help you. For instance if you want to list all the atoms that are installed you can do:\n1 qlist -IRv How do I add a package? Have a look at the official docs about specfile and their syntax. After you familiarize with it, you can just open up a PR, by taking as an example an already existing layer. See, for example calamares\nHow do I update provides list, and what are they? Provides are packages that your layer/package is going to satisfy. That means if other packages are depending on a package/foo, and that is provided by package/bar, package/bar will get installed in place of package/foo.\nAt the moment it’s a manual process - and we will work an automated way as soon as we have bandwidth for it. This mechanism it’s used to ensure a smooth migration path from Sabayon/Entropy based systems.\nHow do I know that a package belongs to a Layer? Packages belonging to a layer should be listed as provides, and also part of the arguments to emerge for compiling that package. Until we deliver https://github.com/mocaccinoOS/desktop/issues/6 - it is also a manual process. Refer to the section of this document “How can I debug the build environment?” to see how to hook directly into a package container to inspect its content.\nHow do I find the duplicate files in the package repositories? You can use luet search and luet filter to compose a list of duplicate files. luet 0.11.3 returns the files in the packages as part of the json result:\n1 luet search -o json | luet filter To install luet-filter, just run:\n1 luet install -y extension/filter Note: luet search searches into online repositories enabled in the system unless --installed is specified. You need to have the desktop repo enabled locally in order to retrieve this list.\nFilter by package fields As luet filter can be piped, you can use jq to narrow down the search by specific by package fields. For example, to filter out by category, you can:\n1 2 3 $ luet search -o json | jq '{ packages: [.packages[] | select( .category == \"kernel-modules\" )] }' | luet filter Duplicate found for etc/modprobe.d/vboxdrv.conf in kernel-modules/virtualbox-modules kernel-modules/virtualbox-modules-lts Duplicate found for usr/lib/modules-load.d/virtualbox.conf in kernel-modules/virtualbox-modules kernel-modules/virtualbox-modules-lts Note, the query is select( .category == \"kernel-modules\" ) and you can customize it further to narrow down to specific queries.\nExamples Filtering kernel luet search -o json | jq '{ packages: [.packages[] | select( .category != \"kernel\" )] }' | luet filter \u003e\u003e dups.txt\nFiltering ‘layers’ and ‘repository category luet search -o json | jq '{ packages: [.packages[] | select( .category != \"repository\" ) | select(.category != \"layers\") ] }' | luet filter \u003e\u003e dups.txt\nThe package I want to add needs a user/group. Where do I add it? The user/groups in MocaccinoOS are defined by entities. They are an uniform way to define user/groups across different distributions in a unique and interoperable way. The same users/groups are indeed shared with Mocaccino Micro.\nAll the users groups are defined in a unique collection inside the os-commons repository, here\nHow do I add a system-wide extension, or configure a gnome setting? We have a gnome-skel package for that purpose. Check the content, apply the required changes and bump the package version.\n","categories":"","description":"How do I..? ~~hitchhiker's~~ Ops guide to the galaxy. This document tries to collect the frequent questions while operating the MocaccinoOS tree","excerpt":"How do I..? ~~hitchhiker's~~ Ops guide to the galaxy. This document …","ref":"/docs/desktop/development/howdoi/","tags":"","title":"Frequent questions"},{"body":"","categories":"","description":"","excerpt":"","ref":"/blog/news/","tags":"","title":"News About MocaccinoOS"},{"body":"An AppImage is a downloadable file for Linux that contains an application and everything the application needs to run (e.g., libraries, icons, fonts, translations, etc.) that cannot be reasonably expected to be part of each target system.\nAppImages should work in MocaccinoOS as in other distributions, with no exception. If you encounter issues, please file a bug\nReferences AppImage website List of some AppImage apps Another list of AppImage apps ","categories":"","description":"MocaccinoOS and AppImage integration","excerpt":"MocaccinoOS and AppImage integration","ref":"/docs/desktop/appimage/","tags":"","title":"AppImages"},{"body":"MocaccinoOS Desktop supports flatpak, and it’s usage is encouraged for packages like Firefox, LibreOffice, …\nTo install flatpak, run as root:\n1 $\u003e luet install apps/flatpak Once flatpak is installed, from your user add the flathub repo:\n1 user $\u003e flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo To install Firefox, for example, now you can:\n1 user $\u003e flatpak install org.mozilla.firefox For a detailed documentation, we suggest as a follow-up reading the official docs, here you can find a short summary of the most used commands.\nSearch Applications can be found in any of the added remotes using the search command. For example:\n1 $ flatpak search gimp Running applications After an application is installed, can be run by their id:\n1 $\u003e flatpak run org.gimp.GIMP Updating To update all your installed applications and runtimes to the latest available version in Flatpak, run:\n1 $\u003e flatpak update Accessing external paths (or storage) from Flatpak apps Flatpak runs applications in sandbox that prevents them to access the host content. You can although add paths that are accessible to a specific Flatpak app.\nFor example, to expose the path /mnt to our org.app.Id:\n1 $\u003e flatpak override --user --filesystem=/mnt org.app.Id Flatseal is a GUI permissions manager which offer simple point-and-click permissions operations.\nReferences Flatpak documentation Flathub Give access to flatpak applications bauh - a visual frontend for Flatpak (and others) ","categories":"","description":"MocaccinoOS and Flatpak integration","excerpt":"MocaccinoOS and Flatpak integration","ref":"/docs/desktop/flatpak/","tags":"","title":"Flatpak"},{"body":"Setup Install virt-manager using Luet:\n1 $ sudo luet install apps/virt-manager edit /etc/libvirt/libvirtd.conf and uncomment these lines:\nunix_sock_group = \"libvirt\"\nunix_sock_ro_perms = \"0777\"\nunix_sock_rw_perms = \"0770\"\nAdd your user to the libvirt group\n1 $ sudo usermod -aG libvirt $USER Add your user to the kvm group\n1 $ sudo usermod -aG kvm $USER Enable and start the libvirtd systemd service\n1 $ sudo systemctl enable libvirtd 1 $ sudo systemctl start libvirtd Networking By default libvirt comes with no network configured by default.\nYou can check that by running:\n1 2 3 4 $ sudo virsh net-list --all Name State Autostart Persistent ---------------------------------------------------------- Create the default network by copy-pasting the following lines into a file called default.xml\n1 2 3 4 5 6 7 8 9 10 11 12 \u003cnetwork\u003e \u003cname\u003edefault\u003c/name\u003e \u003cuuid\u003e9a05da11-e96b-47f3-8253-a3a482e445f5\u003c/uuid\u003e \u003cforward mode='nat'/\u003e \u003cbridge name='virbr0' stp='on' delay='0'/\u003e \u003cmac address='52:54:00:0a:cd:21'/\u003e \u003cip address='192.168.122.1' netmask='255.255.255.0'\u003e \u003cdhcp\u003e \u003crange start='192.168.122.2' end='192.168.122.254'/\u003e \u003c/dhcp\u003e \u003c/ip\u003e \u003c/network\u003e Now add it:\n1 $ sudo virsh net-define --file default.xml To start it, run:\n1 $ sudo virsh net-start default Start it permanently by default:\n1 $ sudo virsh net-autostart --network default References https://blog.programster.org/kvm-missing-default-network ","categories":"","description":"Installing virt-manager in Mocaccino Desktop","excerpt":"Installing virt-manager in Mocaccino Desktop","ref":"/docs/desktop/virt-manager/","tags":"","title":"Virt-manager"},{"body":"Create the webserver documentroot in your homedir 1 $ mkdir website Install Apache container Now we pull the httpd:2.4 container from dockerhub and map the documentroot to our just created directory\n1 $ sudo docker run -dit --name my-web -p 8080:80 -v ~/website/:/usr/local/apache2/htdocs/ httpd:2.4 We use docker ps to confirm our container is running\n1 2 3 $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e837d58776cd httpd:2.4 \"httpd-foreground\" 18 seconds ago Up 16 seconds 0.0.0.0:8080-\u003e80/tcp my-web Create a simple homepage Add index.html to our documentroot\n1 2 3 4 5 6 7 8 9 10 11 12 cat \u003c\u003cEOF \u003e\u003e/website/index.html \u003c!DOCTYPE html\u003e \u003chtml lang=\"en\"\u003e \u003chead\u003e \u003cmeta charset=\"UTF-8\"\u003e \u003ctitle\u003eMy website rocks!\u003c/title\u003e \u003c/head\u003e \u003cbody\u003e \u003ch1\u003eWelcome to my homepage!\u003c/h1\u003e \u003c/body\u003e \u003c/html\u003e EOF And we are done! To view the result simply open http://localhost:8080/ in your webbrowser!\nStop the container 1 $ sudo docker stop my-web Remove the container 1 $ sudo docker rm my-web Remove the dockerhub image 1 $ sudo docker image remove httpd:2.4 References TecMint ","categories":"","description":"Installing Apache webserver using Docker","excerpt":"Installing Apache webserver using Docker","ref":"/docs/desktop/apache_with_docker/","tags":"","title":"Install Apache webserver"},{"body":" Warning Building packages is a complex topic. Installing packages coming from untrusted repositories, or building packages in the wrong way might break your system.\nThe following steps should only be carried out on test systems. Do make sure you have any important data backed up before installing any package.\n MocaccinoOS desktop, even if based on portage, doesn’t support the direct usage of emerge. Although it’s possible to compile and install packages from portage.\nTo build a system package, instead use luet build. The following document tries to summarize the steps to build a package with emerge with luet build, and install and track it in a MocaccinoOS Desktop system, should cover the scenario: “hey, can I install packages with emerge?\".\nRequirements Be sure to have docker installed, and the daemon running. The document is assuming you are carrying the steps on MocaccinoOS Desktop (GNOME in the specific case). At least 30G of free disk space. To reclaim the space afterwards, run docker system prune --force --volumes --all Follow the steps described in this document before going ahead.\nCreate a workspace First of all, let’s create a workspace. The packages that we will build have to persist somewhere in your local system, the location must be accessible while performing a luet upgrade. We will use /user/system_repository as an example. And we will assume the commands are running as root.\n1 2 $ mkdir -p /user/system_repository/tree $ cd /user/system_repository All the commands from now on will be carried from the /user/system_repository directory.\nFirst package Let’s put our eyes on, let’s say, games-board/gnome-chess, and create a compilation definition for it.\nLet’s first declare it’s canonical name, or how you would actually install it afterwards with luet (e.g. luet install app/gnome-chess)\n1 2 3 4 5 6 $ mkdir tree/gnome-chess $ cat \u003c\u003cEOF \u003e\u003etree/gnome-chess/definition.yaml category: \"apps\" name: \"gnome-chess\" version: \"0.1\" EOF Here the version doesn’t really matter, it’s mostly for you to keep it track in your system. You can decide to follow strictly the versioning from gnome-chess, or not.\nNow let’s get to the important part, the build definition. This tells luet how to compile your package:\n1 2 3 4 5 6 7 8 $ cat \u003c\u003cEOF \u003e\u003etree/gnome-chess/build.yaml steps: - emerge games-board/gnome-chess requires: - category: \"layers\" name: \"gnome\" version: \"\u003e=0\" EOF as you see, we are using emerge here to compile the package. The requires section tells from where it runs the command, which in this case is the MocaccinoOS desktop gnome layer. To see all the layers available, run luet search layers or to see the currently installed, you can run luet search --installed layers).\nNote Even if the example shows how to build a package with emerge, it is although possible to create packages out from any docker image - even not by compiling. You have to be careful to check if any package dependencies are actually already shipped by the layers Now let’s add an installation hook to our package, in our specific case (gnome-chess) we need a trigger to generate glib schemas right after the package gets installed in the system:\n1 2 3 4 $ cat \u003c\u003cEOF \u003e\u003etree/gnome-chess/finalize.yaml install: - glib-compile-schemas /usr/share/glib-2.0/schemas EOF Building the package Now let’s build the packages (remember to run as root, or with sudo upfront):\n1 $ luet build --tree tree --pull --pull-repository quay.io/mocaccino/desktop --from-repositories --live-output --only-target-package apps/gnome-chess Note The first time can take up some time due to downloading the images, but those are cached locally for local iteration. Time for a coffee! After build is completed, generate the repository metadata:\n1 $ luet create-repo --tree tree Install the package First let’s consume the repository we just created in our system:\n1 2 3 4 5 6 7 8 9 10 $ cat \u003c\u003cEOF \u003e\u003e /etc/luet/repos.conf.d/local.yaml name: \"local-repository\" description: \"Local repository\" type: \"disk\" enable: true cached: true priority: 99 urls: # Repository URLs - /user/system_repository/build EOF Now we are ready to install gnome-chess locally:\n1 $ luet install apps/gnome-chess Advanced topics Showing package files Luet shows already all the files shipped by a package with luet search. For example:\n1 $ luet search apps/gnome-chess -o yaml Find duplicate files shipped by packages You can check duplicate files into the package shipped by repositories, also before installing them:\n1 luet search -o json | luet filter This is particularly useful to check for any conflicting files with the system packages and the ones you are generating.\nSee also the dev section regarding duplicate files.\nRemoving generated docker images By default, images are tagged under luet/cache. So it’s possible to remove all the cache images generated by removing the luet/cache and quay.io/mocaccinocache/desktop images, although, you should also prune afterwards the images not referenced anymore by any tag with docker image prune:\n1 2 3 $ docker images --filter='reference=luet/cache' --format='{{.Repository}}:{{.Tag}}' | xargs -r docker rmi $ docker images --filter='reference=quay.io/mocaccino/desktop' --format='{{.Repository}}:{{.Tag}}' | xargs -r docker rmi $ docker image prune A way to reclaim all the space occupied by docker more aggressively is by running docker system prune, but attention, this command will remove all the images, also the ones which weren’t generated by luet:\n1 $ docker system prune --force --volumes --all References Luet docs Luet Packages Luet hello world Emerge ebuild example ","categories":"","description":"How to build packages on MocaccinoOS with portage (or not)","excerpt":"How to build packages on MocaccinoOS with portage (or not)","ref":"/docs/desktop/building_packages/","tags":"","title":"Building packages locally"},{"body":"This documentation section tries to summarize and provide general guidelines while applying changes to MocaccinoOS Desktop.\nA prior knowledge of the basics of how to build packages with luet is assumed, it’s strongly adviced to follow the Getting started docs of Luet before going ahead.\n","categories":"","description":"Guidelines on how to develop MocaccinoOS","excerpt":"Guidelines on how to develop MocaccinoOS","ref":"/docs/desktop/development/","tags":"","title":"Development guidelines"},{"body":"Development isos have the -dev suffix. Those are coming with the development repositories pre-installed. The -dev ISOs are intended for development and testing only, so this document outlines the steps to switch back and forth from the stable and unstable repositories.\nIdentify the installed repositories With luet repo list you can check the repositories currently installed in the system, for example:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ luet repo list mocaccino-repository-index MocaccinoOS Repository Index Revision 1 - 2021-01-02 17:47:32 +0100 CET luet Luet official Repository Revision 1 - 2021-04-23 20:11:47 +0200 CEST mocaccino-extra-stable MocaccinoOS extra Repository (stable) Revision 178 - 2021-04-23 18:35:14 +0200 CEST mocaccino-extra MocaccinoOS extra Repository Revision 178 - 2021-04-23 18:35:14 +0200 CEST mocaccino-repository-index MocaccinoOS Repository Index Revision 1 - 2021-01-02 17:47:32 +0100 CET If the output doesn’t contain repositories named with -stable at the end, most likely you are using the development repositories.\nSwitch repositories Warning Do not mix development and stable repositories! Be sure to have installed in the system or the stable or the development repositories only. In MocaccinoOS repositories are standard packages. To remove the development repositories, you can:\n1 $ luet uninstall -y repository/mocaccino-extra repository/mocaccino-kernel repository/mocaccino-desktop repository/mocaccino-os-commons And then to enable the stable repositories:\n1 luet install -y --nodeps repository/mocaccino-extra-stable repository/mocaccino-kernel-stable repository/mocaccino-desktop-stable repository/mocaccino-os-commons-stable The same procedure is valid as well to switch from -stable to development repositories.\nThe difference is that you have to remove the -stable ones instead.\n","categories":"","description":"This document describes how to switch between stable and unstable repositories","excerpt":"This document describes how to switch between stable and unstable …","ref":"/docs/desktop/repositories/","tags":"","title":"Repositories"},{"body":"","categories":"","description":"Migrating existing systems to MocaccinoOS Desktop","excerpt":"Migrating existing systems to MocaccinoOS Desktop","ref":"/docs/desktop/migration/","tags":"","title":"Migration"},{"body":"We love your input! We want to make contributing to this project as easy and transparent as possible, whether it’s:\n Reporting a bug Discussing the current state of the code Submitting a fix Proposing new features Becoming a maintainer We Develop with GitHub We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.\nStay in touch Join us in Slack and hang out with the community! It will be much easier to get started and take your first steps toward contributing to the project.\nAll Code Changes Happen Through Pull Requests Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:\n Fork the repo you want to contribute to and create your branch from master. If you’ve added code that should be tested, add tests. If you’ve changed APIs, update the documentation. Ensure the test suite passes. Make sure your code lints. Issue that pull request! Any contributions you make will be under the Software License of the repository In short, when you submit code changes, your submissions are understood to be under the same License that covers the project. Feel free to contact the maintainers if that’s a concern.\nReport bugs using GitHub’s issues We use GitHub issues to track public bugs. Report a bug by opening a new issue; it’s that easy!\nWrite bug reports with detail, background, and sample code Try to be as more descriptive as possible. When opening a new issue you will be prompted to choose between a bug or a feature request, with a small template to fill details with. Be specific!\nGreat Bug Reports tend to have:\n A quick summary and/or background Steps to reproduce Be specific! Give sample code if you can. What you expected would happen What actually happens Notes (possibly including why you think this might be happening, or things you tried that didn’t work) People love thorough bug reports.\nLicense By contributing, you agree that your contributions will be licensed under the project Licenses.\nReferences This document was adapted from the open-source contribution guidelines from https://gist.github.com/briandk/3d2e8b3ec8daf5a27a62\n","categories":"","description":"","excerpt":"We love your input! We want to make contributing to this project as …","ref":"/docs/contribution-guidelines/","tags":"","title":"Contributing to MocaccinoOS"},{"body":"Become a donor today.\nIf you want to help us, but you cannot contribute to code, you can still buy us a coffee, or just donate a little bit of your hardware power.\nAs a small open source project, know that every dollar will have an immense impact on our ability to continue working towards our mission.\nYour support means the world to us :)\nYou can donate by going to our Patreon page, or if you prefer cryptocurrencies, we accept donations to the following XMR wallet: 84AsfE73Cy7hAYKy7PN8N8D3fh39JzXyLjaiYpgXm3NrJHH7cTPxUJSgsdFiSL6mwE9MKpvrYJQoaTxRG6sJX6aBRpr45dc.\nBecome a Patron!\nDonate through Liberapay Liberapay is a very easy platform to make micro donations to FOSS projects.\n \nDonating computing power If you want, you can also support our project by donating your idle computing power. We have a “donor” profile that you can install/uninstall any time. It will kick-in automatically xmrig when it detects a idle cpu in a range of 15m.\nDonate from Mocaccino Micro Install the following packages:\n1 $ luet install -y runit-srv/xmrig system-profile/donate cryptocurrency/xmrig Enable the donate profile:\n1 $ mos profile enable donate done!\nDonate from Mocaccino Desktop Install the following packages:\n1 $ luet install -y systemd-service/xmrig system-profile/donate cryptocurrency/xmrig Enable the donate profile:\n1 $ mos profile enable donate done!\nStop the service To stop the service, on Mocaccino Micro:\n1 $ runit-stop xmrig while on Desktop:\n1 $ systemctl stop xmrig Disable Just disable the donate profile:\n1 $ mos profile disable donate Uninstall Just remove the installed packages, most importantly system-profile/donate which starts xmrig when the CPU is idling:\n1 $ luet uninstall -y system-profile/donate cryptocurrency/xmrig Then remove the appropriate service, on Micro:\n1 $ luet uninstall -y runit-srv/xmrig while on Desktop:\n1 $ luet uninstall -y systemd-service/xmrig ","categories":"","description":"","excerpt":"Become a donor today.\nIf you want to help us, but you cannot …","ref":"/docs/donate/","tags":"","title":"Donate"},{"body":"Happy new 2022! Another year has passed, and yet we are here, really close to release an alpha release. Meanwhile, we are sharing updates and new packages available in our repositories.\nMaui shell Screenshot #1 Screenshot #2 As you might have heard Maui shell was recently announced, and we are happy to share with you that is officially available in our development repositories as experimental version and going to land into stable repositories very soon.\nIn order to install Maui shell, just run:\nluet install layers/maui-shell Currently, it might be required a reboot in order to log-in as a first time.\nWe are also working on a dedicated ISO flavor with LightDM and Maui shell, stay tuned.\nFynedesk Screenshot #1 Screenshot #2 If you don’t know about fynedesk, maybe you should. FyneDesk is an easy to use Linux/Unix desktop environment following material design. It is built using the Fyne toolkit and is designed to be easy to use as well as easy to develop.\nFynedesk is available in our development repositories and going to land into stable repositories very soon.\nIn order to install Fynedesk, just run:\nluet install layers/fynedesk We are also working on a dedicated ISO flavor with LightDM and fynedesk, stay tuned.\nUpdater We have been developing an alpha version of the updater app of mOS. It is currently available in the development repositories, and you can download it already with:\nluet install apps/mos-updater you can run it in the terminal with mos-updater or via the application menu.\nIf upgrades are available, a button will be present which if pressed will start upgrades automatically in the background. The GUI is intentionally simple to just handle upgrades and display notification upgrades to the user.\n","categories":"","description":"End of year, December/January updates!\n","excerpt":"End of year, December/January updates!\n","ref":"/blog/2022/01/01/january-updates/","tags":"","title":"January updates"},{"body":"Dear community,\nWhere we at first, with all good intentions, wanted to work on the binary end of Funtoo and strenghten both projects we ran into our first technical issue preventing us to quickly go ahead and develop against Funtoo. Not that that would scare us of, oh no, we decided to make this a R\u0026D project and one of our developers was working fully on this.\nMeanwhile the other team members were focusing their efforts for a MocaccinoOS Desktop alpha and pushing forward on developing a Luet based repository that is based on a layered concept and still originates on Gentoo Portage tree.\nAs weeks and months passed, several issues got resolved, but the projects really grew appart from eachother. Now that the R\u0026D Funtoo/MocaccinoOS project lead decided to leave and work on his own fork within the Funtoo project it is time for us to let go of the initial idea of working together with Funtoo. We wish you luck in all future new endeavours.\nMocaccinoOS Desktop hopes to release a first alpha image soon. Meanwhile we are always looking for help! Feel free to contact us in our slack channel!\nOn behalf of the MocaccinoOS team.\n","categories":"","description":"Updates on Funtoo collaboration\n","excerpt":"Updates on Funtoo collaboration\n","ref":"/blog/2021/12/06/updates-on-funtoo-collaboration/","tags":"","title":"Updates on Funtoo collaboration"},{"body":"This is the blog section.\n","categories":"","description":"","excerpt":"This is the blog section.\n","ref":"/blog/","tags":"","title":"MocaccinoOS Blog"},{"body":"","categories":"","description":"","excerpt":"","ref":"/community/","tags":"","title":"Community"},{"body":" #td-cover-block-0 { background-image: url(/featured-background_hu2226c7009d5c201991b3c3f4c09a60eb_1455824_960x540_fill_q75_catmullrom_top.jpg); } @media only screen and (min-width: 1200px) { #td-cover-block-0 { background-image: url(/featured-background_hu2226c7009d5c201991b3c3f4c09a60eb_1455824_1920x1080_fill_q75_catmullrom_top.jpg); } } MocaccinoOS Learn More Download MocaccinoOS is a minimal Linux meta-distribution for the 21st century! Beyond Gentoo.\nMocaccinoOS uses Luet as a package manager, which is completely static and fully based on containers. It comes in two variants:\n Mocaccino Micro: Musl-based Linux From Scratch using only Luet. Suited for cloud and containers, but more to come as a Desktop flavor. Mocaccino Desktop: Gentoo-based (former Sabayon branch) suited for Desktop environments. No frills MocaccinoOS uses a layered approach for system and common packages: smoother upgrades so you can focus on the things that really matter.\n Contributions welcome! MocaccinoOS is a work-in-progress. Stop over by our GitHub Organization. New users are always welcome!\n Read more …\n Get in touch on Slack! For discussions, announcements, etc.\n Read more …\n Upgrading is no longer a nightmare You can just focus on your work from now on var text = [ \"game\", \"website\", \"music player\", \"ide\"]; var counter = 0; var elem = $(\"#work\"); setInterval(change, 3000); function change() { elem.fadeOut(function(){ elem.html(text[counter]); counter++; if(counter = text.length) { counter = 0; } elem.fadeIn(); }); } luet upgrade -y ⠖ Downloaded repository.yaml of 0.00 MB ( 0.00 MiB/s ) Repository mocaccino-repository-index is already up to date. ℹ Repository: mocaccino-repository-index Priority: 1 Type: http ⠦ Downloaded repository.yaml of 0.00 MB ( 0.00 MiB/s ) Repository luet-official is already up to date. ℹ Repository: luet Priority: 1 Type: http ⠐ Downloaded repository.yaml of 0.00 MB ( 0.00 MiB/s ) Repository mocaccino-extra is already up to date. ℹ Repository: mocaccino-extra-stable Priority: 2 Type: http ⠉ Downloaded repository.yaml of 0.00 MB ( 0.00 MiB/s ) Repository mocaccino-extra is already up to date. ⠈ ℹ Repository: mocaccino-extra Priority: 2 Type: http ⠋ Downloaded repository.yaml of 0.00 MB ( 0.00 MiB/s ) Repository mocaccino-repository-index is already up to date. ℹ Repository: mocaccino-repository-index Priority: 1 Type: http 🤔 Computing upgrade, please hang tight... 💤 var termynal = new Termynal('#upgrade') \n Focus on the things that matter. MocaccinoOS Desktop uses a layered approach. Most common system packages and desktop environments (DE) are packaged as single installable layers, along with libraries. The system set is only composed by 2 core layers\nCompletely out of sight ! MocaccinoOS Micro is a LFS Musl OS based not on layers, but on a tiny core package set, suitable for cloud and embedded environment. Easy to build packages on. Static package manager Versioned rootfs as layers, delivered as upgrades or multiple single packages. You can choose the format you like. Musl? Server variant? We’ve got you covered.\n Layers Static package manager, your system will always be recoverable!\n Build your packages Thanks to the Docker-based package manager, building and sharing packages has never been so easy!\n Customize your experience A declarative suite of tools to set your box in the cloud or in a server environment Luet luet is a small-footprint static Golang package manager. It uses SAT and RL approaches to solve package dependencies.\n Yip yip is a small-footprint distro-agnostic cloud-init style tool. Statically built which executes and sets Linux system configurations.\n Declarative user management With entities, users and groups in your systems are formally declared and can be carried over to other systems easily.\n ","categories":"","description":"","excerpt":" #td-cover-block-0 { background-image: …","ref":"/","tags":"","title":"MocaccinoOS"},{"body":"","categories":"","description":"","excerpt":"","ref":"/search/","tags":"","title":"Search Results"}] \ No newline at end of file diff --git a/offline-search-index.59a0436e172d490f7515835718df1091.json b/offline-search-index.59a0436e172d490f7515835718df1091.json new file mode 100644 index 00000000..353f8442 --- /dev/null +++ b/offline-search-index.59a0436e172d490f7515835718df1091.json @@ -0,0 +1 @@ +[{"body":"Official releases can be downloaded from Github repository\nLogin Default username and password is mocaccino\n","categories":"","description":"Get MocaccinoOS Desktop!","excerpt":"Get MocaccinoOS Desktop!","ref":"/docs/desktop/download/","tags":"","title":"Download"},{"body":" Warning Mocaccino and Luet are under active development and should not be considered “production ready” at this time. The following steps should only be carried out on test systems. Do make sure you have any important data backed up before starting a migration.\nThis section is completely experimental, if you want to help us to improve it, please edit or submit an issue\n You can convert a Gentoo system to Mocaccino OS (running luet) with the following commands as root\n1 2 3 curl https://get.mocaccino.org/luet/get_luet_root.sh | sh luet install system/luet-migrate-emerge luet migrate-emerge migrate-emerge detects packages that are installed and fills the luet database accordingly. It will report any errors if any to screen. If you for some reason need to repeat this step, please remove the luet database first. rm /var/luet/db/luet.db\nEven if in this way it is possible to keep in syncronization the db from portage to luet, migrations are experimental and are not guaranteed to work. Mixed systems aren’t supported, and usage of emerge and luet in the system is discouraged, see how to build packages instead.\nEnabling the Portage Tree layer Once converted to Mocaccino OS, you will want to enable the Mocaccino Repositories\n1 2 3 luet install repository/mocaccino-os-commons luet install repository/mocaccino-extra-stable luet install repository/mocaccino-desktop-stable Upgrading to the latest packages Install all available newer packages from the Mocaccino repositories using:\n1 luet upgrade And finally, review and merge any changes to your configuration files:\n1 etc-update Remove cached downloads If you wish to reclaim the disk space used by the upgrade process (downloaded packages and cached metadata), you can do so using:\n1 luet cleanup ","categories":"","description":"Migrating from Gentoo to MocaccinoOS Desktop","excerpt":"Migrating from Gentoo to MocaccinoOS Desktop","ref":"/docs/desktop/migration/gentoo/","tags":"","title":"Migrating from Gentoo"},{"body":" Warning Mocaccino and Luet are under active development and should not be considered “production ready” at this time. The following steps should only be carried out on test systems. Do make sure you have any important data backed up before starting a migration. Prepare your system If you are on a GNOME/MATE/XFCE system you probably do not need Qt related packages. The more you remove prior to migration, the more easy it will go. So for example if we do not need Qt we can uninstall qtcore using Entropy:\n1 equo remove dev-qt/qtcore --ask Warning Migration can take some time. We advice you to disable screen-locking and power savings. If your screen gets locked during upgrade you might not be able to login again while the upgrade is running. You can convert a Sabayon system (running Entropy) to Mocaccino OS (running luet) with the following commands as root\n1 2 3 4 curl -k https://get.mocaccino.org/luet/get_luet_root.sh | sh luet install repository/mocaccino-os-commons repository/mocaccino-extra repository/mocaccino-desktop-stable luet install system/luet-migrate-entropy luet migrate-entropy The migrate-entropy script detects packages that are installed and fills the luet database. If you for some reason need to repeat this step, please remove the luet database first. rm /var/luet/db/luet.db\nMigrations have been checked for systems running Sabayon 18.05 and newer. You can check which version of Sabayon you are running with cat /etc/sabayon-release.\nUpgrading to the latest packages Install all available newer packages from the Mocaccino repositories using:\n1 luet upgrade And finally, review and merge any changes to your configuration files:\n1 etc-update Remove cached downloads If you wish to reclaim the disk space used by the upgrade process (downloaded packages and cached metadata), you can do so using:\n1 luet cleanup Manual migration Note Note, the steps below are a work in progress and might not work at all and break your system. Consider using the steps below to try to recovery from a broken migration. It is possible to migrate manually a system by running luet migrate-entropy and replacing packages with the layers available in the mOS repositories, for instance, to migrate and replace all packages with the gnome variant:\n1 2 3 4 5 6 7 8 curl -k https://get.mocaccino.org/luet/get_luet_root.sh | sh luet install -y repository/mocaccino-os-commons repository/mocaccino-kernel-stable repository/mocaccino-extra repository/mocaccino-desktop-stable luet install -y system/luet-migrate-entropy utils/jq luet migrate-entropy mkdir -p /etc/mocaccino/ echo \"desktop\" \u003e /etc/mocaccino/release installed=$(luet search --installed -o json | jq '.packages | map(.category+\"/\"+.name+\"@\"+.version)[]' -rc | xargs echo) luet replace $installed --for kernel/mocaccino-lts-full --for kernel/mocaccino-lts-modules --for layers/firmware --for system-profile/default-systemd --for system/luet --for layers/system-x --for layers/gnome ","categories":"","description":"Migrating from Sabayon to MocaccinoOS Desktop","excerpt":"Migrating from Sabayon to MocaccinoOS Desktop","ref":"/docs/desktop/migration/sabayon/","tags":"","title":"Migrating from Sabayon"},{"body":"Init system The Micro and MicroServer ISO flavors are using runit as init system. For ease of use, a very simple helper is provided, and can be used as follows:\nList available services 1 $ runit-list Start a service 1 $ runit-start sshd Stop a service 1 $ runit-stop sshd Enable a service on boot 1 $ runit-enable sshd Disable a service from booting on startup 1 $ runit-disable sshd Boot scripts It’s possible to add scripts to be executed during boot execution, under /etc/runit/core-services/*.sh.\nFor example:\n1 $ echo \"modprobe e1000e\" \u003e /etc/runit/core-services/modules.sh Yip Integration Mocaccino Micro can be configured to execute yipfiles during different stages.\n1 $ luet install runit-srv/yip To start the yip service:\n1 $ runit-start yip To Enable yip on boot:\n1 $ runit-enable yip Yip files running periodically The yip service runs periodically yip files in /etc/yip.d, /etc/yip.yaml and from the boot cmdline on the system.\nFor example, by creating a yip file as /etc/yip.d/sshd.yaml:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 name:\"sshd\"stages:reconcile:- name:\"sshd_config setup\"commands:- chmod 644 /etc/ssh/sshd_configfiles:- path:\"/etc/ssh/sshd_config\"owner:0group:0permission:644content:|AuthorizedKeysFile %h/.ssh/authorized_keys PermitRootLogin yes ListenAddress 0.0.0.0 yip will make sure and keep sshd configured.\nThere are two stages currently supported: reconcile and boot. The boot yip stage is run at start, during runit initialization, while the reconcile is called periodically. You can also run yip-reconcile to trigger the execution manually.\nFor more information about yip, check here. To see a sample /etc/yip.d control-repo check here.\nSpecifing yip files from boot It is also possible to use yip to automatically configure the system from boot.\nAdd yip=... to the boot command lines to specify the yip file to execute across the stages (can be a path to a local file, or either a URL)\nExamples yipcontrol-sample ","categories":"","description":"Service management on Mocaccino Micro","excerpt":"Service management on Mocaccino Micro","ref":"/docs/micro/service-management/","tags":"","title":"Service Management and Init"},{"body":"MocaccinoOS uses luet as a package manager. Here in this document are collected references from the luet docs.\nUpdate the repositories This command updates your repository database.\n1 2 3 $ sudo luet repo update Installing a package To install a package with luet, simply run:\n1 2 3 $ sudo luet install \u003cpackage_name\u003e Be sure you write the full package name that includes the category. So if you are installing for example neofetch:\n1 2 3 $ sudo luet install apps/neofetch Uninstalling a package To uninstall a package with luet, simply run:\n1 2 3 $ sudo luet uninstall \u003cpackage_name\u003e Upgrading the system To upgrade your system, simply run:\n1 2 3 $ sudo luet upgrade Searching a package To search a package:\n1 2 3 $ sudo luet search \u003cregex\u003e To search a package and display results in a table:\n1 2 3 $ sudo luet search --table \u003cregex\u003e To look into the installed packages:\n1 2 3 $ sudo luet search --installed \u003cregex\u003e Note: the regex argument is optional\nSearch output Search can return results in the terminal in different ways: as terminal output, as json or as yaml.\nJSON 1 2 3 $ sudo luet search --json \u003cregex\u003e YAML 1 2 3 $ sudo luet search --yaml \u003cregex\u003e Tabular 1 2 3 $ sudo luet search --table \u003cregex\u003e References Luet docs ","categories":"","description":"Frequent commands\n","excerpt":"Frequent commands\n","ref":"/docs/desktop/usage/","tags":"","title":"Package manager"},{"body":"Installation At the moment Micro images are tested to be bootable with Virtualbox, and can be installed in VMs.\nTo install Micro on a virtual machine, run mocaccino-unattended-installer.\nDefault username The default account is root with password mocaccino\nSSH Access add PermitRootLogin yes to /etc/ssh/sshd_config with your editor of choice ( for nano, luet install editors/nano )\nStart the sshd daemon:\n1 $ runit-start sshd You should be able to log-in to your machine, check the ip with ip a.\nTo enable sshd on boot,\n1 $ runit-enable sshd Once logged in, remind to change the configuration settings!\n","categories":"","description":"Installation and after install notes","excerpt":"Installation and after install notes","ref":"/docs/micro/installation/","tags":"","title":"Installation notes"},{"body":"ISO Building The ISO building process is performed within dockers to keep ISOs clean and uncontaiminated by unnecessary dev files, temp files, etc.\nDocker installation If you’re planning on using docker as a user rather than just from root, you’ll want additional packages such as entity/docker and acct-group/docker, but they aren’t necessary for our purposes.\nroot@mocaccino:~# luet install container/docker systemd-service/dockerd root@mocaccino:~# systemctl enable docker; systemctl start docker If you’re using mocaccino-micro, you’ll use runit-srv/dockerd instead of systemd-service.\nroot@mocaccino:~# luet install container/docker runit-srv/dockerd root@mocaccino:~# runit-enable dockerd; runit-start dockerd Creating a Dockerfile You’ll need a dockerfile that tells docker how to build our image and what it should do. Lets start by creating a dedicated directory for this work.\nroot@mocaccino:~# mkdir -p Docker/iso-builder root@mocaccino:~/Docker/iso-builder# cd Docker/iso-builder root@mocaccino:~/Docker/iso-builder# touch Dockerfile root@mocaccino:~/Docker/iso-builder# vim Dockerfile Now what do we need in this dockerfile?\nFROM ubuntu RUN apt-get update RUN apt-get install curl xorriso squashfs-tools dosfstools RUN curl https://get.mocaccino.org/luet/get_luet_root.sh | sh RUN luet install -y extension/makeiso WORKDIR /output ENTRYPOINT [\"/usr/bin/luet-makeiso\"] So what exactly is happening here? We’re telling docker we want our image to start FROM the ubuntu core image which is very small and extremely lean. Then we’re telling docker to RUN these commands inside the docker for setup. These command update the apt repos, install a few required tools, install luet via a script, and add the makeiso luet extension. Then we’re saying we need a WORKDIR where we’re going to output our file file and we want that to be a folder we link outside the docker so we can have that ISO outside of the docker. Then we’re using ENTRYPOINT to tell docker after the image is built and started, what command do we want the docker to run?\nWant to start from Gentoo Stage3 (WIP)? Try this Dockerfile:\nFROM gentoo/stage3:systemd RUN rm -rf /var/lock RUN mkdir -p /var/lock/ RUN touch /var/lock/luet.lock RUN curl https://get.mocaccino.org/luet/get_luet_root.sh | sh RUN luet install -y extension/makeiso sys-fs/squashfs-tools sys-fs/dosfstools dev-libs/libisoburn WORKDIR /output ENTRYPOINT [\"/usr/bin/luet-makeiso\"] Building the docker image Building the docker image and installing/running the docker container are different. Building the docker image means you have the starting point image built and ready, but doesn’t mean the docker container installed and running. We’ll be building and tagging this image with a name.\n1 root@mocaccino:~/Docker/iso-builder# docker build -t iso-builder . What is this command doing? Its telling docker to build the Dockerfile inside the current directory (.) and tag (-t) it with the name iso-builder. When this is complete you should see something like this at the end:\n1 2 Successfully built af8d3b35de70 Successfully tagged iso-builder:latest This means the docker image was successfully built and it has been tagged/named iso-builder:latest. What is with the “:latest”? Well you can have multiple revisions of docker and tag them with different version numbers. For example if I was maintaining 2 different versions such as how ubuntu LTS has multiple still supported versions we could tag it like :1804 and :2004, but for our usecases we won’t be doing that. We’ll just be using latest.\nBuilding the ISO Now we have a docker image we can use to build clean ISOs from scratch, but we’re still not done. the ENTRYPOINT command luet-makeiso requires arguements. running the command alone doesn’t just build an ISO. It needs instructions on the list of layers and packages to download and install to build a specific spin of MocaccinoOS. For the simplicity of the guide we’ll just be using Gnome, but there are multiple Mocaccino flavors for you to choose from. You can build from a pre-built specification or you can tweak a specification to make your own ISO build. Our specification files are stored at https://github.com/mocaccinoOS/mocaccino/tree/master/specs.\nLets download the gnome.yaml spec file into our iso-builder directory.\n1 root@mocaccino:~/Docker/iso-builder# curl https://raw.githubusercontent.com/mocaccinoOS/mocaccino/master/specs/gnome.yaml Our iso-builder directory should now look like this:\n1 2 root@mocaccino:~/Docker/iso-builder# ls Dockerfile gnome.yaml Lets tell Docker to run our newly built docker container image and tell it to build us an ISO!\n1 root@mocaccino:~/Docker/iso-builder# docker run -ti -v $PWD:/output --privileged=true --rm iso-builder:latest gnome.yaml So whats happening here exactly? We’re telling docker run a docker container using the iso-builder:latest image we built and we want to see the output run in a new tty/shell that is interactive (-ti) and we’re binding (-v) our current folder ($PWD) to a folder inside the docker /output. Now files in our current directly will be accessible to the docker and files the docker creates in that directory will be accessible to us. We also want the docker to delete itself when the job is complete (–rm). We also need privileges to fork the processes for speed (–privileged=true). We’re passing an argument (gnome.yaml) to the command at the ENTRYPOINT command of the docker. So Effectively the docker is running the command /usr/bin/luet-makeiso gnome.yaml and that gnome.yaml file is accessible because its in the WORKDIR /output that we binded to the docker.\nNow the docker will begin as a minimal image installing all required files via luet to have a bootable mocaccino gnome system. This will take some time. After all the packages are installed into the docker it will begin building an ISO of the current snapshot of that docker. After the ISO build is complete, the ISO will be dumped into /output which also happens to be the current directory your in on the host system ~/Docker/iso-builder#. After that is complete, the docker will proceed to remove itself. This cleans up any unncessary dockers and bloat on your system, but leaves you with the ISO in your iso-builder directory.\n","categories":"","description":"Building ISOs for testing or custom ISOs.","excerpt":"Building ISOs for testing or custom ISOs.","ref":"/docs/general/iso-building/","tags":"","title":"ISO building"},{"body":"Mocaccino Desktop is a Gentoo-based distribution (derived from Sabayon) oriented towards Desktop systems.\nIt contains installable “apps” that we refer internally as “layers” to install common suite of packages needed to bootstrap a pure and simple OS.\nA user should be able then to install KDE Plasma by running luet install layers/plasma and nothing else. That package should install all the necessary components to make the “app” work as expected. The user shouldn’t be exposed to the typical OS architecture of bringing with it dozens of dependencies. Simply said: All micropackages are abstracted away and are included in a layer and installed as a single package.\nThink at it like Android apps: Install and uninstall should be as simple as that.\nThis approach is completely different from Mocaccino Micro, which is a LFS and all packages are compiled 1:1.\nIn this repository, updates are OTA-alike, with less friction as possible.\nWhy MOS Desktop is different? For the user, MOS Desktop is a pure and simple OS. We target to deliver an unique approach on package installation and upgrades. Applications should bundle all the required dependencies in order to run, or alternatively share common layers that are used between them (for example think about MATE, GNOME, and all software that depends on GTK). This allows users to have OTA-alike updates, without having to struggle with all packages dependencies.\nFrom a developer standpoint, MOS takes a unique approach on package building, allowing developers to iterate locally changes to the packages very easily, thanks to the Luet flexible backend approach. You can use Docker to build packages locally, or Kubernetes to build them in your cluster\n","categories":"","description":"MocaccinoOS variant based from Portage","excerpt":"MocaccinoOS variant based from Portage","ref":"/docs/desktop/","tags":"","title":"Mocaccino Desktop"},{"body":"Network Manager By default your system is configured with dhcp using Netwok Manager. Currently Network Manager is installed on the system as a part of layers/X.\nsystemd-networkd If you want to use systemd-networkd instead of Network Manager follow these steps.\nFirst disable Network Manager service and enable systemd-networkd service:\n1 2 3 root@mocaccino:~# systemctl stop NetworkManager root@mocaccino:~# systemctl disable NetworkManager root@mocaccino:~# systemctl enable systemd-networkd Enable the systemd-resolved service:\n1 2 root@mocaccino:~# systemctl enable systemd-resolved root@mocaccino:~# systemctl start systemd-resolved Configure your connection: To list available connectiond you can run networkctl\n1 root@mocaccino:~# networkctl This will display a list like this:\n1 2 3 4 5 6 7 8 9 10 11 IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback carrier unmanaged 2 enp3s0 ether routable configured 3 enp2s0 ether off unmanaged 4 edgevpn0 none routable unmanaged 5 docker0 bridge routable unmanaged 7 vethf4478cf ether enslaved unmanaged 9 veth65a81ba ether enslaved unmanaged 11 veth6df3fd4 ether enslaved unmanaged 8 links listed. In our example we want to configure enp3s0\nStatic config:\n1 root@mocaccino:~# nano /etc/systemd/network/00-enp3s0.network And as an example add this to the file\n1 2 3 4 5 6 7 [Match] Name=enp3s0 [Network] Address=192.168.1.50/24 Gateway=192.168.1.1 DNS=192.168.1.1 DHCP: We edit the same file as above but now we put in this config\n1 2 3 4 5 [Match] Name=enp3s0 [Network] DHCP=yes ","categories":"","description":"Configure your network","excerpt":"Configure your network","ref":"/docs/general/network-config/","tags":"","title":"Network configuration"},{"body":"Switching kernels MocaccinoOS images are shipping the latest LTS available Kernel version by default. It is possible to switch kernels by running mos kernel-switcher.\nList available kernels 1 $ mos kernel-switcher list Switch to main kernels To switch to main kernels, that gets updated more frequently:\n1 $ mos kernel-switcher switch kernel/mocaccino-full Switch to LTS kernels To switch to LTS kernels, run:\n1 $ mos kernel-switcher switch kernel/mocaccino-lts-full ","categories":"","description":"Switching between LTS and mainline kernels","excerpt":"Switching between LTS and mainline kernels","ref":"/docs/general/kernels/","tags":"","title":"Switching kernels"},{"body":"This page explains how to install several desktop environments.\nKDE Plasma This command installs the KDE Plasma desktop environment.\n1 2 3 $ sudo luet install layers/plasma layers/kde-apps-minimal apps/discover The layers/plasma package ships with the SDDM login manager. If you prefer to use SDDM as your login manager run this command:\n1 2 3 $ sudo systemctl enable sddm --force GNOME This command installs the GNOME desktop environment.\n1 2 3 $ sudo luet install layers/gnome apps/gnome-software The layers/gnome package ships with the GDM login manager. If you prefer to use GDM as your login manager run this command:\n1 2 3 $ sudo systemctl enable gdm --force MATE This command installs the MATE desktop environment.\n1 2 3 $ sudo luet install layers/mate themes/mate XFCE This command installs the XFCE desktop environment.\n1 2 3 $ sudo luet install layers/xfce LXQT This command installs the LXQT desktop environment.\n1 2 3 $ sudo luet install layers/lxqt Cinnamon This command installs the Cinnamon desktop environment.\n1 2 3 $ sudo luet install layers/cinnamon Enlightenment This command installs the Cinnamon desktop environment.\n1 2 3 $ sudo luet install layers/enlightenment Trinity This command installs the Trinity desktop environment.\n1 2 3 $ sudo luet install layers/trinity Hyprland This command installs the Hyprland desktop environment.\n1 2 3 $ sudo luet install layers/hyprland Fluxbox This command installs the Fluxbox desktop environment.\n1 2 3 $ sudo luet install layers/fluxbox Login managers If you prefer to use Lightdm as your login manager run these commands:\n1 2 3 $ sudo luet install apps/lightdm 1 2 3 $ sudo systemctl enable lightdm --force If you prefer to use Slim as your login manager run these commands:\n1 2 3 $ sudo luet install apps/slim 1 2 3 $ sudo systemctl enable slim --force ","categories":"","description":"MocaccinoOS supports several popular desktop environments.\n","excerpt":"MocaccinoOS supports several popular desktop environments.\n","ref":"/docs/desktop/desktop_environements/","tags":"","title":"Desktop environements"},{"body":" Warning This is currently experimental In Micro, currently it’s possible to build packages with K3s and Luet\nFirst install k3s:\n1 luet install -y container/k3s runit-srv/k3s And start it:\n1 $ runit-start k3s To enable it permanently on boot, run runit-enable k3s\nWait for k3s to be ready (Until ContainerCreating becomes Ready):\n1 $ watch k3s kubectl get pods -A Now install the luet controller:\n1 $ k3s kubectl apply -f https://raw.githubusercontent.com/mudler/luet-k8s/master/hack/kube.yaml And wait for it to be ready:\n1 $ watch k3s kubectl get pods -A Once all is up, we are ready to build packages, try for example with:\n1 2 3 4 5 6 7 8 9 10 11 12 13 $ cat \u003c\u003cEOF | k3s kubectl apply -f - apiVersion: luet.k8s.io/v1alpha1 kind: PackageBuild metadata: name: test spec: packageName: container/img repository: url: \"https://github.com/mocaccinoOS/mocaccino-extra\" options: pull: true imageRepository: \"quay.io/mocaccinocache/extra-amd64-cache\" EOF In this case, we can inspect the build logs with:\n1 k3s kubectl logs -f test (advanced) Multi-node setup This section shows how to configure 2(or more) MocaccinoOS Micro instances with K3s and edgevpn.\nWarning Note, this setup is for development purposes, and intended to be run in a trusted environment, and just on Virtual machines. The following steps should only be carried out on test systems. Do make sure you have any important data backed up before starting a migration. Install edgevpn and k3s 1 luet install -y runit-srv/edgevpn utils/edgevpn container/k3s runit-srv/k3s Generate edgevpn configuration 1 edgevpn -g \u003e vpn.yaml Save the configuration file, it has to be available on all the machines that will belong to the cluster.\nStart the vpn We are ready to try to start the vpn:\n on node A: sudo IFACE=edgevpn0 ADDRESS=10.1.0.3/24 EDGEVPNCONFIG=vpn.yml edgevpn\n on node B: sudo IFACE=edgevpn0 ADDRESS=10.1.0.4/24 EDGEVPNCONFIG=vpm.yml edgevpn\n Where:\n IFACE is the vpn interface to be created ADDRESS is the address of the node in the vpn network EDGEVPNCONFIG is the path of the configuration which was generated before If all goes well, we should see some connection messages, and after a while we should be able to ping the nodes.\nStart k3s: on node A: k3s server --flannel-iface=edgevpn0\n on node B: K3S_URL=https://10.1.0.3:6443 K3S_TOKEN=xx k3s agent --flannel-iface=edgevpn0 --node-ip 10.1.0.4\n Permanent setup Annotate the IFACE, ADDRESS, and EDGEVPNCONFIG in /etc/sv/edgevpn/conf in each node, and then you can use the following yip file for example to configure k3s (to place under /etc/yip.d):\nNode A:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 stages:boot:- name:\"k3s\"commands:- |if [ ! -e \"/usr/bin/k3s\" ]; then luet install -y container/k3s runit-srv/k3s runit-enable k3s fi- ulimit -u unlimitedfiles:- path:\"/etc/sv/k3s/run\"owner:0group:0permissions:0755content:|#!/bin/sh exec 2\u003e\u00261 [ -r ./conf ] \u0026\u0026 . ./conf echo 'k3s starting.' LANG=C LC_ALL=C \\ exec /usr/bin/k3s server --flannel-iface=edgevpn0 2\u003e\u00261 Node B:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 stages:boot:- name:\"k3s\"commands:- |if [ ! -e \"/usr/bin/k3s\" ]; then luet install -y container/k3s runit-srv/k3s runit-enable k3s fi- ulimit -u unlimitedfiles:- path:\"/etc/sv/k3s/run\"owner:0group:0permissions:0755content:|#!/bin/sh exec 2\u003e\u00261 [ -r ./conf ] \u0026\u0026 . ./conf echo 'k3s starting.' LANG=C LC_ALL=C K3S_URL=https://10.1.0.1:6443 K3S_TOKEN=xxx \\ exec /usr/bin/k3s agent --flannel-iface=edgevpn0 --node-ip 10.1.0.13 2\u003e\u00261 Then enable the services at boot:\n1 2 $ runit-enable k3s $ runit-enable edgevpn Example Full package build example ","categories":"","description":"How to build packages with Luet in Mocaccino Micro and k3s","excerpt":"How to build packages with Luet in Mocaccino Micro and k3s","ref":"/docs/micro/building-packages/","tags":"","title":"Building packages with Micro and k3s"},{"body":" Warning Mocaccino and Luet are under active development and should not be considered “production ready” at this time. The following steps should only be carried out on test systems. Do make sure you have any important data backed up before. Here are collected docs that applies to all flavors of MocaccinoOS\n","categories":"","description":"Articles that applies to all MocaccinoOS flavors","excerpt":"Articles that applies to all MocaccinoOS flavors","ref":"/docs/general/","tags":"","title":"General section"},{"body":" Warning Mocaccino and Luet are under active development and should not be considered “production ready” at this time. The following steps should only be carried out on test systems. Do make sure you have any important data backed up before. Mocaccino Micro is a musl-based LFS distribution with a minimal set of packages in order to boot and build an entire OS.\nAt the moment are available alpha ISO releases, and the following docker images can be used:\n1 $ docker pull quay.io/mocaccino/micro Extra repositories Additional packages are available in the mocaccino-extra repositories.\nTo enable them:\n1 $ luet install repository/mocaccino-extra ","categories":"","description":"","excerpt":" Warning Mocaccino and Luet are under active development and should …","ref":"/docs/micro/","tags":"","title":"Mocaccino Micro"},{"body":"MocaccinoOS Desktop and Micro automatically protects /etc from overwriting user-override changes. Although, upgrades might require to overwrite and upgrade specific default configuration. The mos cli embeds a config-update tool which is compatible with etc-update and dispatch-conf.\nTo show a summary of the config changes that requires merging:\n1 2 3 $ mos config-update check Files with unmerged config files: 1 - /etc/test/foo (2 unmerged config files) Merging configuration To merge configurations interactively, run:\n1 mos config-update update To check the configuration of all the files, 1-by-1, run:\n1 mos config-update update -a Auto-merging It’s possible to auto-merge configurations automatically with:\n1 $ mos config-update update --interactive=false ","categories":"","description":"Dealing with system configuration after upgrades","excerpt":"Dealing with system configuration after upgrades","ref":"/docs/general/system-config/","tags":"","title":"System Configuration"},{"body":"System profiles are specific MocaccinoOS configuration that can be enabled/disabled from the mos cli.\nList available profiles To list all the installed available profiles, run mos profile list\nEnable profiles To enable a specific profile, run mos profile enable \u003cprofile\u003e\nDisable profiles To disable a profile, run mos profile disable \u003cprofile\u003e\nSearch available profiles To search all the available profiles for installation, run luet search system-profiles.\nTo install a specific profile, run luet install system-profile/\u003cname\u003e.\n","categories":"","description":"Enabling and disabling system profiles","excerpt":"Enabling and disabling system profiles","ref":"/docs/general/system-profiles/","tags":"","title":"System profiles"},{"body":"Setup First install container/docker and systemd-service/dockerd, which provides the systemd service:\n1 $ sudo luet install container/docker systemd-service/dockerd To start dockerd, just:\n1 $ sudo systemctl start docker or to enable at boot:\n1 $ sudo systemctl enable docker Optionally add your user to the docker group:\n$ sudo usermod -aG docker $USER Now you should be able to use docker as usual, for example:\n1 2 3 4 5 6 7 root@mocaccino:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES root@mocaccino:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/mocaccino/extra latest ce197d5b1a7e 3 days ago 21.2MB you could also use Whalebrew to make aliasing the containers into something more useable.\n","categories":"","description":"Running Docker on Mocaccino Desktop","excerpt":"Running Docker on Mocaccino Desktop","ref":"/docs/desktop/docker/","tags":"","title":"Running docker"},{"body":"Setup First install container/docker, or directly runit-srv/docker, which provides the runit service:\n1 $ luet install runit-srv/dockerd To start dockerd, just:\n1 $ runit-start dockerd or to enable at boot:\n1 $ runit-enable dockerd Now you should be able to use docker as usual, for example:\n1 2 3 4 5 6 7 root@mocaccino:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES root@mocaccino:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/mocaccino/extra latest ce197d5b1a7e 3 days ago 21.2MB ","categories":"","description":"Running Docker on Mocaccino Micro","excerpt":"Running Docker on Mocaccino Micro","ref":"/docs/micro/docker/","tags":"","title":"Running docker"},{"body":"“Whalebrew is homebrew but for docker images” that is to say it creates aliases for docker images so you could run them as regular commands\nSetup Be sure to have docker installed, and the daemon running.\nFirst install utils/whalebrew:\n1 $ luet install utils/whalebrew Now you should be able to use whalebrew as usual\nInstall a package 1 $ whalebrew install whalebrew/ffmpeg Then it should be accessible as a normal binary. You can call directly the program (ffmpeg in the above example)\n","categories":"","description":"Whalebrew on Mocaccino Desktop","excerpt":"Whalebrew on Mocaccino Desktop","ref":"/docs/desktop/whalebrew/","tags":"","title":"Whalebrew"},{"body":"Setup Wireguard comes embedded in the Mocaccino Kernels.\nFirst install wireguard-tools and the wg runit service:\n1 $ luet install runit-srv/wg networking/wireguard-tools By default, the service sets up the wg0 interface, with configuration at /etc/wireguard/wg0.conf.\nEdit /etc/wireguard/wg0.conf with your configuration, or to change the default interface configuration, change the /etc/sv/wg/conf file accordingly.\nTo start wg, just:\n1 $ runit-start wg or to enable at boot:\n1 $ runit-enable wg Now you should be able to see the wg interface with wg show.\nMultiple connections For multiple connections, copy the /etc/sv/wg/ service directory to your custom one, for example /etc/sv/wg2 and tweak it accordingly to your needs. You can start it afterwards with runit-start wg2\n","categories":"","description":"Running Wireguard on Mocaccino Micro","excerpt":"Running Wireguard on Mocaccino Micro","ref":"/docs/micro/wireguard/","tags":"","title":"Running wireguard"},{"body":" Warning MocaccinoOS and this wiki is a work in progress. Please help us improve by opening a PR or filing an issue.\nMocaccino and Luet are under active development and should not be considered “production ready” at this time. The steps described in the article are for development only and should only be carried out on test systems.\n Welcome to the MocaccinoOS wiki!\nMocaccinoOS is a minimal meta-Linux distribution. It uses Luet as a package manager, which is static and uses containers to build packages.\nMain features of MocaccinoOS:\n Focused on minimalism, small footprint, and ease of use Native vanilla upstream kernel: We closely follow kernel versions from upstream, LTS included. Unique approach to package management: SAT-solving is also applied on packages built in containers (Docker, Kubernetes, etc.) Meta distribution: It can be easily used to bootstrap other OS or spin-offs Local iteration: With the container ecosystem, it’s easy to iterate development locally Cloud first: Support for the most important cloud technology in the landscape Different variants: From server to desktop, from systemd to runit! Here you will find installations, articles, and how-tos for the MocaccinoOS variants.\n","categories":"","description":"","excerpt":" Warning MocaccinoOS and this wiki is a work in progress. Please help …","ref":"/docs/","tags":"","title":"Documentation"},{"body":"This document has the objective to address several questions that starts with “How do I … ?”\nHow do I start contributing? Have a look at the official Luet docs about package building, and feel free to submit your first PR! Be sure to also read all this document to get an Idea on how things should look like.\nHow do I know which version of a package is available in the Portage tree We pin Portage versions by using packages that are shipping a version of it. This guarantees that there are no moving parts, and we can in this way provide updates as part of a development lifecycle.\nWe have an automated bot that automatically opens PR to track new version of the available Portage version. The package is available here: https://github.com/mocaccinoOS/desktop/tree/master/packages/portage. You don’t need to do it manually. Just wait for a PR from MarvinHatesOceans to pop-up, we will review it and merge it only when we decide (after proper QA) that a development lifecycle is over.\nA Portage bump happens when:\n We close a dev cycle (release, and upgrades) Security fixes So, how do I know which package I can build? At the moment is as easy as browsing the portage git and point it at the same commit of our package.\nFor example:\ngit.hash: \"b0e157b071cb23b348acab3d596b49f66c244808\" in https://github.com/mocaccinoOS/desktop/blob/e9ae4aafead5a79d1d36630c932d907361d8c93c/packages/portage/definition.yaml#L6 tells you that we are pinning at commit b0e157b071cb23b348acab3d596b49f66c244808 of portage tree. So you can e.g. point your browser at : https://github.com/gentoo/gentoo/tree/b0e157b071cb23b348acab3d596b49f66c244808\nHow do I revbump a package? (and when it’s actually needed?) By convention, we have chosen to increment the version of a package after the +, following semver notation.\nThat means, if a package version is at 1.0.0, it’s revbump version would be 1.0.0+1, and a subsequent one would be for example 1.0.0+2.\nWhen I do need to bump a package? Only when there is a new version available!\nWhen I do need to revbump a package? A Package revbump is necessary when you apply changes to build.yaml, although, it’s not always necessary, but just in few cases:\n When you change steps in the build.yaml When you change prelude in the build.yaml When you change requires in the build.yaml What about packages depending on it? Always by convention, we have chosen to revbump manually those. Luet does support tracking automatically new package versions, but we want to make this transparent in the Git repository, so reverting changes introduced by mistakes it’s easier, and so we also rely on the caching mechanism of Luet.\nIf we don’t revbump reverse dependencies our CI would skip such changes, because we enforced this by policy.\nHow do I do that? Until https://github.com/mocaccinoOS/desktop/issues/7 is delivered, it is a manual process.\nHow do I add a useflag to a Portage package or layer? If the useflag you are going to add doesn’t have an huge impact on its dependencies (not requiring a rebuild) then it’s fine to apply at the spec-level. Otherwise it might be required to specify the useflags needed in that specific package, or on the parent layer which your package is depending on, requiring a package revbump.\nTake the layers/system-x package as an example, in the prelude steps of the package, we copy over the building container the custom useflags in the prelude steps:\n1 2 3 4 5 prelude:- cp -rf package.use /etc/portage/- cp -rf make.conf /etc/portage/- cp -rf package.accept_keywords /etc/portage/- cp -rf package.license /etc/portage/ the package.use folder is actually shipped with the package spec. That approach can be used also in layers depending on system-x, with a separate set of flags. You just have to be sure to not override any useflag between layers, and to try to share as much as you can with parent layers while do you see it fit.\nHow do I split a package? A layer can be split into multiple packages, using the excludes/includes pattern which is used for example by gcc and gcc-base. This means you can safely compile packages into parent-layers, and exclude those in the final artifact which gets installed by the end-user.\nFor example, for gcc we drop the files from system-x, and we include explicitly files to the gcc package, which at that point doesn’t need to compile anything by itself. It just needs to depend on the parent layer, so all the gcc files are accessible from that container.\nIn the system-x spec, you will find something similar:\n1 2 3 4 5 6 7 8 9 10 11 12 13 excludes:...# GCC split- ^/etc/env.d/04gcc-x86_64-pc-linux-gnu- ^/etc/ld.so.conf.d/05gcc-x86_64-pc-linux-gnu.conf- ^/etc/env.d/gcc.*- ^/usr/lib/debug/usr/lib/gcc.*- ^/usr/lib/gcc/x86_64-pc-linux-gnu.*- ^/usr/share/gcc-data/x86_64-pc-linux-gnu.*- ^/usr/bin/c\\+\\+.*- ^/usr/bin/cc$- ^/usr/bin/cpp.* This tells luet to exclude those files from the final artifact.\nSimilarly, you can find in the gcc package those files being included:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 includes:...- /usr/lib/gcc$- /usr/lib/gcc/x86_64-pc-linux-gnu$- /usr/lib/gcc/x86_64-pc-linux-gnu/{{.Values.version}}.*- /usr/lib/go$- /usr/lib/go/{{.Values.version}}.*- /usr/lib64$- /usr/lib64/go$- /usr/lib64/go/{{.Values.version}}.*- /usr/libexec$- /usr/libexec/gcc$- /usr/libexec/gcc/x86_64-pc-linux-gnu$- /usr/libexec/gcc/x86_64-pc-linux-gnu/{{.Values.version}}.*- /usr/share$- /usr/share/gcc-data$- /usr/share/gcc-data/x86_64-pc-linux-gnu$- /usr/share/gcc-data/x86_64-pc-linux-gnu/{{.Values.version}}.* How do I try my changes? You need at least Docker running locally, or img installed.\nTo build a package, just edit/add the relevant specs and run PACKAGES=\"..\" make rebuild-all.\nHow can I debug the build environment? Luet generates docker images for each package, you can start a shell by either retrieving the docker image of the package manually with luet tree images and manually run docker run.. on it. Here an example how we shell into layers/X:\n1 luet tree images --image-repository quay.io/mocaccino/desktop layers/X This returns a list of docker containers where layers/X image is created from.\n1 2 3 4 5 layers/gentoo-portage-0.20230110: quay.io/mocaccino/desktop:febbfe7192e42abb3671acd65ff3ec7a6cfad063334f5c24301f30b56f0ad7dd layers/system-x-0.20230110: quay.io/mocaccino/desktop:7343fcc6f4bbbf5906b3104ad96431192a0110fb020186825409abac6587ddc3 layers/codecs-7+22: quay.io/mocaccino/desktop:4e885e2b509102e808f21efa38f4734c98e23279775beb2b3a0ec6db182f7ebd layers/sys-fs-0.9+27: quay.io/mocaccino/desktop:e1ae4a4e732e8a866721d380c7a30c930996d6d0e1840deaa5901d35f72a3b35 layers/X-1.1+28: quay.io/mocaccino/desktop:865b8d9662679f9c145f13b82c803f3380d7b5dbfad2fa2316646a46977ad3c2 Now that we know the image string we can apply that to our docker command:\n1 docker run -ti --rm quay.io/mocaccino/desktop:865b8d9662679f9c145f13b82c803f3380d7b5dbfad2fa2316646a46977ad3c2 /bin/bash Or you can use the luet extension which does that already for you. You need to have installed system/luet-devkit package, and you can use it as follows:\n1 DOCKER_HOST=\"...\" LUET_ARGS=\"--image-repository quay.io/mocaccino/desktop\" luet remote-exec packagename Note: It’s not required DOCKER_HOST unless you want to leverage a remote host.\nOnce you are hooked into the container there are some limited tools at your disposal that might help you. For instance if you want to list all the atoms that are installed you can do:\n1 qlist -IRv How do I add a package? Have a look at the official docs about specfile and their syntax. After you familiarize with it, you can just open up a PR, by taking as an example an already existing layer. See, for example calamares\nHow do I update provides list, and what are they? Provides are packages that your layer/package is going to satisfy. That means if other packages are depending on a package/foo, and that is provided by package/bar, package/bar will get installed in place of package/foo.\nAt the moment it’s a manual process - and we will work an automated way as soon as we have bandwidth for it. This mechanism it’s used to ensure a smooth migration path from Sabayon/Entropy based systems.\nHow do I know that a package belongs to a Layer? Packages belonging to a layer should be listed as provides, and also part of the arguments to emerge for compiling that package. Until we deliver https://github.com/mocaccinoOS/desktop/issues/6 - it is also a manual process. Refer to the section of this document “How can I debug the build environment?” to see how to hook directly into a package container to inspect its content.\nHow do I find the duplicate files in the package repositories? You can use luet search and luet filter to compose a list of duplicate files. luet 0.11.3 returns the files in the packages as part of the json result:\n1 luet search -o json | luet filter To install luet-filter, just run:\n1 luet install -y extension/filter Note: luet search searches into online repositories enabled in the system unless --installed is specified. You need to have the desktop repo enabled locally in order to retrieve this list.\nFilter by package fields As luet filter can be piped, you can use jq to narrow down the search by specific by package fields. For example, to filter out by category, you can:\n1 2 3 $ luet search -o json | jq '{ packages: [.packages[] | select( .category == \"kernel-modules\" )] }' | luet filter Duplicate found for etc/modprobe.d/vboxdrv.conf in kernel-modules/virtualbox-modules kernel-modules/virtualbox-modules-lts Duplicate found for usr/lib/modules-load.d/virtualbox.conf in kernel-modules/virtualbox-modules kernel-modules/virtualbox-modules-lts Note, the query is select( .category == \"kernel-modules\" ) and you can customize it further to narrow down to specific queries.\nExamples Filtering kernel luet search -o json | jq '{ packages: [.packages[] | select( .category != \"kernel\" )] }' | luet filter \u003e\u003e dups.txt\nFiltering ‘layers’ and ‘repository category luet search -o json | jq '{ packages: [.packages[] | select( .category != \"repository\" ) | select(.category != \"layers\") ] }' | luet filter \u003e\u003e dups.txt\nThe package I want to add needs a user/group. Where do I add it? The user/groups in MocaccinoOS are defined by entities. They are an uniform way to define user/groups across different distributions in a unique and interoperable way. The same users/groups are indeed shared with Mocaccino Micro.\nAll the users groups are defined in a unique collection inside the os-commons repository, here\nHow do I add a system-wide extension, or configure a gnome setting? We have a gnome-skel package for that purpose. Check the content, apply the required changes and bump the package version.\n","categories":"","description":"How do I..? ~~hitchhiker's~~ Ops guide to the galaxy. This document tries to collect the frequent questions while operating the MocaccinoOS tree","excerpt":"How do I..? ~~hitchhiker's~~ Ops guide to the galaxy. This document …","ref":"/docs/desktop/development/howdoi/","tags":"","title":"Frequent questions"},{"body":"","categories":"","description":"","excerpt":"","ref":"/blog/news/","tags":"","title":"News About MocaccinoOS"},{"body":"An AppImage is a downloadable file for Linux that contains an application and everything the application needs to run (e.g., libraries, icons, fonts, translations, etc.) that cannot be reasonably expected to be part of each target system.\nAppImages should work in MocaccinoOS as in other distributions, with no exception. If you encounter issues, please file a bug\nReferences AppImage website List of some AppImage apps Another list of AppImage apps ","categories":"","description":"MocaccinoOS and AppImage integration","excerpt":"MocaccinoOS and AppImage integration","ref":"/docs/desktop/appimage/","tags":"","title":"AppImages"},{"body":"MocaccinoOS Desktop supports flatpak, and it’s usage is encouraged for packages like Firefox, LibreOffice, …\nTo install flatpak, run as root:\n1 $\u003e luet install apps/flatpak Once flatpak is installed, from your user add the flathub repo:\n1 user $\u003e flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo To install Firefox, for example, now you can:\n1 user $\u003e flatpak install org.mozilla.firefox For a detailed documentation, we suggest as a follow-up reading the official docs, here you can find a short summary of the most used commands.\nSearch Applications can be found in any of the added remotes using the search command. For example:\n1 $ flatpak search gimp Running applications After an application is installed, can be run by their id:\n1 $\u003e flatpak run org.gimp.GIMP Updating To update all your installed applications and runtimes to the latest available version in Flatpak, run:\n1 $\u003e flatpak update Accessing external paths (or storage) from Flatpak apps Flatpak runs applications in sandbox that prevents them to access the host content. You can although add paths that are accessible to a specific Flatpak app.\nFor example, to expose the path /mnt to our org.app.Id:\n1 $\u003e flatpak override --user --filesystem=/mnt org.app.Id Flatseal is a GUI permissions manager which offer simple point-and-click permissions operations.\nReferences Flatpak documentation Flathub Give access to flatpak applications bauh - a visual frontend for Flatpak (and others) ","categories":"","description":"MocaccinoOS and Flatpak integration","excerpt":"MocaccinoOS and Flatpak integration","ref":"/docs/desktop/flatpak/","tags":"","title":"Flatpak"},{"body":"Setup Install virt-manager using Luet:\n1 $ sudo luet install apps/virt-manager edit /etc/libvirt/libvirtd.conf and uncomment these lines:\nunix_sock_group = \"libvirt\"\nunix_sock_ro_perms = \"0777\"\nunix_sock_rw_perms = \"0770\"\nAdd your user to the libvirt group\n1 $ sudo usermod -aG libvirt $USER Add your user to the kvm group\n1 $ sudo usermod -aG kvm $USER Enable and start the libvirtd systemd service\n1 $ sudo systemctl enable libvirtd 1 $ sudo systemctl start libvirtd Networking By default libvirt comes with no network configured by default.\nYou can check that by running:\n1 2 3 4 $ sudo virsh net-list --all Name State Autostart Persistent ---------------------------------------------------------- Create the default network by copy-pasting the following lines into a file called default.xml\n1 2 3 4 5 6 7 8 9 10 11 12 \u003cnetwork\u003e \u003cname\u003edefault\u003c/name\u003e \u003cuuid\u003e9a05da11-e96b-47f3-8253-a3a482e445f5\u003c/uuid\u003e \u003cforward mode='nat'/\u003e \u003cbridge name='virbr0' stp='on' delay='0'/\u003e \u003cmac address='52:54:00:0a:cd:21'/\u003e \u003cip address='192.168.122.1' netmask='255.255.255.0'\u003e \u003cdhcp\u003e \u003crange start='192.168.122.2' end='192.168.122.254'/\u003e \u003c/dhcp\u003e \u003c/ip\u003e \u003c/network\u003e Now add it:\n1 $ sudo virsh net-define --file default.xml To start it, run:\n1 $ sudo virsh net-start default Start it permanently by default:\n1 $ sudo virsh net-autostart --network default References https://blog.programster.org/kvm-missing-default-network ","categories":"","description":"Installing virt-manager in Mocaccino Desktop","excerpt":"Installing virt-manager in Mocaccino Desktop","ref":"/docs/desktop/virt-manager/","tags":"","title":"Virt-manager"},{"body":"Create the webserver documentroot in your homedir 1 $ mkdir website Install Apache container Now we pull the httpd:2.4 container from dockerhub and map the documentroot to our just created directory\n1 $ sudo docker run -dit --name my-web -p 8080:80 -v ~/website/:/usr/local/apache2/htdocs/ httpd:2.4 We use docker ps to confirm our container is running\n1 2 3 $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e837d58776cd httpd:2.4 \"httpd-foreground\" 18 seconds ago Up 16 seconds 0.0.0.0:8080-\u003e80/tcp my-web Create a simple homepage Add index.html to our documentroot\n1 2 3 4 5 6 7 8 9 10 11 12 cat \u003c\u003cEOF \u003e\u003e/website/index.html \u003c!DOCTYPE html\u003e \u003chtml lang=\"en\"\u003e \u003chead\u003e \u003cmeta charset=\"UTF-8\"\u003e \u003ctitle\u003eMy website rocks!\u003c/title\u003e \u003c/head\u003e \u003cbody\u003e \u003ch1\u003eWelcome to my homepage!\u003c/h1\u003e \u003c/body\u003e \u003c/html\u003e EOF And we are done! To view the result simply open http://localhost:8080/ in your webbrowser!\nStop the container 1 $ sudo docker stop my-web Remove the container 1 $ sudo docker rm my-web Remove the dockerhub image 1 $ sudo docker image remove httpd:2.4 References TecMint ","categories":"","description":"Installing Apache webserver using Docker","excerpt":"Installing Apache webserver using Docker","ref":"/docs/desktop/apache_with_docker/","tags":"","title":"Install Apache webserver"},{"body":" Warning Building packages is a complex topic. Installing packages coming from untrusted repositories, or building packages in the wrong way might break your system.\nThe following steps should only be carried out on test systems. Do make sure you have any important data backed up before installing any package.\n MocaccinoOS desktop, even if based on portage, doesn’t support the direct usage of emerge. Although it’s possible to compile and install packages from portage.\nTo build a system package, instead use luet build. The following document tries to summarize the steps to build a package with emerge with luet build, and install and track it in a MocaccinoOS Desktop system, should cover the scenario: “hey, can I install packages with emerge?\".\nRequirements Be sure to have docker installed, and the daemon running. The document is assuming you are carrying the steps on MocaccinoOS Desktop (GNOME in the specific case). At least 30G of free disk space. To reclaim the space afterwards, run docker system prune --force --volumes --all Follow the steps described in this document before going ahead.\nCreate a workspace First of all, let’s create a workspace. The packages that we will build have to persist somewhere in your local system, the location must be accessible while performing a luet upgrade. We will use /user/system_repository as an example. And we will assume the commands are running as root.\n1 2 $ mkdir -p /user/system_repository/tree $ cd /user/system_repository All the commands from now on will be carried from the /user/system_repository directory.\nFirst package Let’s put our eyes on, let’s say, games-board/gnome-chess, and create a compilation definition for it.\nLet’s first declare it’s canonical name, or how you would actually install it afterwards with luet (e.g. luet install app/gnome-chess)\n1 2 3 4 5 6 $ mkdir tree/gnome-chess $ cat \u003c\u003cEOF \u003e\u003etree/gnome-chess/definition.yaml category: \"apps\" name: \"gnome-chess\" version: \"0.1\" EOF Here the version doesn’t really matter, it’s mostly for you to keep it track in your system. You can decide to follow strictly the versioning from gnome-chess, or not.\nNow let’s get to the important part, the build definition. This tells luet how to compile your package:\n1 2 3 4 5 6 7 8 $ cat \u003c\u003cEOF \u003e\u003etree/gnome-chess/build.yaml steps: - emerge games-board/gnome-chess requires: - category: \"layers\" name: \"gnome\" version: \"\u003e=0\" EOF as you see, we are using emerge here to compile the package. The requires section tells from where it runs the command, which in this case is the MocaccinoOS desktop gnome layer. To see all the layers available, run luet search layers or to see the currently installed, you can run luet search --installed layers).\nNote Even if the example shows how to build a package with emerge, it is although possible to create packages out from any docker image - even not by compiling. You have to be careful to check if any package dependencies are actually already shipped by the layers Now let’s add an installation hook to our package, in our specific case (gnome-chess) we need a trigger to generate glib schemas right after the package gets installed in the system:\n1 2 3 4 $ cat \u003c\u003cEOF \u003e\u003etree/gnome-chess/finalize.yaml install: - glib-compile-schemas /usr/share/glib-2.0/schemas EOF Building the package Now let’s build the packages (remember to run as root, or with sudo upfront):\n1 $ luet build --tree tree --pull --pull-repository quay.io/mocaccino/desktop --from-repositories --live-output --only-target-package apps/gnome-chess Note The first time can take up some time due to downloading the images, but those are cached locally for local iteration. Time for a coffee! After build is completed, generate the repository metadata:\n1 $ luet create-repo --tree tree Install the package First let’s consume the repository we just created in our system:\n1 2 3 4 5 6 7 8 9 10 $ cat \u003c\u003cEOF \u003e\u003e /etc/luet/repos.conf.d/local.yaml name: \"local-repository\" description: \"Local repository\" type: \"disk\" enable: true cached: true priority: 99 urls: # Repository URLs - /user/system_repository/build EOF Now we are ready to install gnome-chess locally:\n1 $ luet install apps/gnome-chess Advanced topics Showing package files Luet shows already all the files shipped by a package with luet search. For example:\n1 $ luet search apps/gnome-chess -o yaml Find duplicate files shipped by packages You can check duplicate files into the package shipped by repositories, also before installing them:\n1 luet search -o json | luet filter This is particularly useful to check for any conflicting files with the system packages and the ones you are generating.\nSee also the dev section regarding duplicate files.\nRemoving generated docker images By default, images are tagged under luet/cache. So it’s possible to remove all the cache images generated by removing the luet/cache and quay.io/mocaccinocache/desktop images, although, you should also prune afterwards the images not referenced anymore by any tag with docker image prune:\n1 2 3 $ docker images --filter='reference=luet/cache' --format='{{.Repository}}:{{.Tag}}' | xargs -r docker rmi $ docker images --filter='reference=quay.io/mocaccino/desktop' --format='{{.Repository}}:{{.Tag}}' | xargs -r docker rmi $ docker image prune A way to reclaim all the space occupied by docker more aggressively is by running docker system prune, but attention, this command will remove all the images, also the ones which weren’t generated by luet:\n1 $ docker system prune --force --volumes --all References Luet docs Luet Packages Luet hello world Emerge ebuild example ","categories":"","description":"How to build packages on MocaccinoOS with portage (or not)","excerpt":"How to build packages on MocaccinoOS with portage (or not)","ref":"/docs/desktop/building_packages/","tags":"","title":"Building packages locally"},{"body":"This documentation section tries to summarize and provide general guidelines while applying changes to MocaccinoOS Desktop.\nA prior knowledge of the basics of how to build packages with luet is assumed, it’s strongly adviced to follow the Getting started docs of Luet before going ahead.\n","categories":"","description":"Guidelines on how to develop MocaccinoOS","excerpt":"Guidelines on how to develop MocaccinoOS","ref":"/docs/desktop/development/","tags":"","title":"Development guidelines"},{"body":"Development isos have the -dev suffix. Those are coming with the development repositories pre-installed. The -dev ISOs are intended for development and testing only, so this document outlines the steps to switch back and forth from the stable and unstable repositories.\nIdentify the installed repositories With luet repo list you can check the repositories currently installed in the system, for example:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ luet repo list mocaccino-repository-index MocaccinoOS Repository Index Revision 1 - 2021-01-02 17:47:32 +0100 CET luet Luet official Repository Revision 1 - 2021-04-23 20:11:47 +0200 CEST mocaccino-extra-stable MocaccinoOS extra Repository (stable) Revision 178 - 2021-04-23 18:35:14 +0200 CEST mocaccino-extra MocaccinoOS extra Repository Revision 178 - 2021-04-23 18:35:14 +0200 CEST mocaccino-repository-index MocaccinoOS Repository Index Revision 1 - 2021-01-02 17:47:32 +0100 CET If the output doesn’t contain repositories named with -stable at the end, most likely you are using the development repositories.\nSwitch repositories Warning Do not mix development and stable repositories! Be sure to have installed in the system or the stable or the development repositories only. In MocaccinoOS repositories are standard packages. To remove the development repositories, you can:\n1 $ luet uninstall -y repository/mocaccino-extra repository/mocaccino-kernel repository/mocaccino-desktop repository/mocaccino-os-commons And then to enable the stable repositories:\n1 luet install -y --nodeps repository/mocaccino-extra-stable repository/mocaccino-kernel-stable repository/mocaccino-desktop-stable repository/mocaccino-os-commons-stable The same procedure is valid as well to switch from -stable to development repositories.\nThe difference is that you have to remove the -stable ones instead.\n","categories":"","description":"This document describes how to switch between stable and unstable repositories","excerpt":"This document describes how to switch between stable and unstable …","ref":"/docs/desktop/repositories/","tags":"","title":"Repositories"},{"body":"","categories":"","description":"Migrating existing systems to MocaccinoOS Desktop","excerpt":"Migrating existing systems to MocaccinoOS Desktop","ref":"/docs/desktop/migration/","tags":"","title":"Migration"},{"body":"We love your input! We want to make contributing to this project as easy and transparent as possible, whether it’s:\n Reporting a bug Discussing the current state of the code Submitting a fix Proposing new features Becoming a maintainer We Develop with GitHub We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.\nStay in touch Join us in Slack and hang out with the community! It will be much easier to get started and take your first steps toward contributing to the project.\nAll Code Changes Happen Through Pull Requests Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:\n Fork the repo you want to contribute to and create your branch from master. If you’ve added code that should be tested, add tests. If you’ve changed APIs, update the documentation. Ensure the test suite passes. Make sure your code lints. Issue that pull request! Any contributions you make will be under the Software License of the repository In short, when you submit code changes, your submissions are understood to be under the same License that covers the project. Feel free to contact the maintainers if that’s a concern.\nReport bugs using GitHub’s issues We use GitHub issues to track public bugs. Report a bug by opening a new issue; it’s that easy!\nWrite bug reports with detail, background, and sample code Try to be as more descriptive as possible. When opening a new issue you will be prompted to choose between a bug or a feature request, with a small template to fill details with. Be specific!\nGreat Bug Reports tend to have:\n A quick summary and/or background Steps to reproduce Be specific! Give sample code if you can. What you expected would happen What actually happens Notes (possibly including why you think this might be happening, or things you tried that didn’t work) People love thorough bug reports.\nLicense By contributing, you agree that your contributions will be licensed under the project Licenses.\nReferences This document was adapted from the open-source contribution guidelines from https://gist.github.com/briandk/3d2e8b3ec8daf5a27a62\n","categories":"","description":"","excerpt":"We love your input! We want to make contributing to this project as …","ref":"/docs/contribution-guidelines/","tags":"","title":"Contributing to MocaccinoOS"},{"body":"Become a donor today.\nIf you want to help us, but you cannot contribute to code, you can still buy us a coffee, or just donate a little bit of your hardware power.\nAs a small open source project, know that every dollar will have an immense impact on our ability to continue working towards our mission.\nYour support means the world to us :)\nYou can donate by going to our Patreon page, or if you prefer cryptocurrencies, we accept donations to the following XMR wallet: 84AsfE73Cy7hAYKy7PN8N8D3fh39JzXyLjaiYpgXm3NrJHH7cTPxUJSgsdFiSL6mwE9MKpvrYJQoaTxRG6sJX6aBRpr45dc.\nBecome a Patron!\nDonate through Liberapay Liberapay is a very easy platform to make micro donations to FOSS projects.\n \nDonating computing power If you want, you can also support our project by donating your idle computing power. We have a “donor” profile that you can install/uninstall any time. It will kick-in automatically xmrig when it detects a idle cpu in a range of 15m.\nDonate from Mocaccino Micro Install the following packages:\n1 $ luet install -y runit-srv/xmrig system-profile/donate cryptocurrency/xmrig Enable the donate profile:\n1 $ mos profile enable donate done!\nDonate from Mocaccino Desktop Install the following packages:\n1 $ luet install -y systemd-service/xmrig system-profile/donate cryptocurrency/xmrig Enable the donate profile:\n1 $ mos profile enable donate done!\nStop the service To stop the service, on Mocaccino Micro:\n1 $ runit-stop xmrig while on Desktop:\n1 $ systemctl stop xmrig Disable Just disable the donate profile:\n1 $ mos profile disable donate Uninstall Just remove the installed packages, most importantly system-profile/donate which starts xmrig when the CPU is idling:\n1 $ luet uninstall -y system-profile/donate cryptocurrency/xmrig Then remove the appropriate service, on Micro:\n1 $ luet uninstall -y runit-srv/xmrig while on Desktop:\n1 $ luet uninstall -y systemd-service/xmrig ","categories":"","description":"","excerpt":"Become a donor today.\nIf you want to help us, but you cannot …","ref":"/docs/donate/","tags":"","title":"Donate"},{"body":"Happy new 2022! Another year has passed, and yet we are here, really close to release an alpha release. Meanwhile, we are sharing updates and new packages available in our repositories.\nMaui shell Screenshot #1 Screenshot #2 As you might have heard Maui shell was recently announced, and we are happy to share with you that is officially available in our development repositories as experimental version and going to land into stable repositories very soon.\nIn order to install Maui shell, just run:\nluet install layers/maui-shell Currently, it might be required a reboot in order to log-in as a first time.\nWe are also working on a dedicated ISO flavor with LightDM and Maui shell, stay tuned.\nFynedesk Screenshot #1 Screenshot #2 If you don’t know about fynedesk, maybe you should. FyneDesk is an easy to use Linux/Unix desktop environment following material design. It is built using the Fyne toolkit and is designed to be easy to use as well as easy to develop.\nFynedesk is available in our development repositories and going to land into stable repositories very soon.\nIn order to install Fynedesk, just run:\nluet install layers/fynedesk We are also working on a dedicated ISO flavor with LightDM and fynedesk, stay tuned.\nUpdater We have been developing an alpha version of the updater app of mOS. It is currently available in the development repositories, and you can download it already with:\nluet install apps/mos-updater you can run it in the terminal with mos-updater or via the application menu.\nIf upgrades are available, a button will be present which if pressed will start upgrades automatically in the background. The GUI is intentionally simple to just handle upgrades and display notification upgrades to the user.\n","categories":"","description":"End of year, December/January updates!\n","excerpt":"End of year, December/January updates!\n","ref":"/blog/2022/01/01/january-updates/","tags":"","title":"January updates"},{"body":"Dear community,\nWhere we at first, with all good intentions, wanted to work on the binary end of Funtoo and strenghten both projects we ran into our first technical issue preventing us to quickly go ahead and develop against Funtoo. Not that that would scare us of, oh no, we decided to make this a R\u0026D project and one of our developers was working fully on this.\nMeanwhile the other team members were focusing their efforts for a MocaccinoOS Desktop alpha and pushing forward on developing a Luet based repository that is based on a layered concept and still originates on Gentoo Portage tree.\nAs weeks and months passed, several issues got resolved, but the projects really grew appart from eachother. Now that the R\u0026D Funtoo/MocaccinoOS project lead decided to leave and work on his own fork within the Funtoo project it is time for us to let go of the initial idea of working together with Funtoo. We wish you luck in all future new endeavours.\nMocaccinoOS Desktop hopes to release a first alpha image soon. Meanwhile we are always looking for help! Feel free to contact us in our slack channel!\nOn behalf of the MocaccinoOS team.\n","categories":"","description":"Updates on Funtoo collaboration\n","excerpt":"Updates on Funtoo collaboration\n","ref":"/blog/2021/12/06/updates-on-funtoo-collaboration/","tags":"","title":"Updates on Funtoo collaboration"},{"body":"This is the blog section.\n","categories":"","description":"","excerpt":"This is the blog section.\n","ref":"/blog/","tags":"","title":"MocaccinoOS Blog"},{"body":"","categories":"","description":"","excerpt":"","ref":"/community/","tags":"","title":"Community"},{"body":" #td-cover-block-0 { background-image: url(/featured-background_hu2226c7009d5c201991b3c3f4c09a60eb_1455824_960x540_fill_q75_catmullrom_top.jpg); } @media only screen and (min-width: 1200px) { #td-cover-block-0 { background-image: url(/featured-background_hu2226c7009d5c201991b3c3f4c09a60eb_1455824_1920x1080_fill_q75_catmullrom_top.jpg); } } MocaccinoOS Learn More Download MocaccinoOS is a minimal Linux meta-distribution for the 21st century! Beyond Gentoo.\nMocaccinoOS uses Luet as a package manager, which is completely static and fully based on containers. It comes in two variants:\n Mocaccino Micro: Musl-based Linux From Scratch using only Luet. Suited for cloud and containers, but more to come as a Desktop flavor. Mocaccino Desktop: Gentoo-based (former Sabayon branch) suited for Desktop environments. No frills MocaccinoOS uses a layered approach for system and common packages: smoother upgrades so you can focus on the things that really matter.\n Contributions welcome! MocaccinoOS is a work-in-progress. Stop over by our GitHub Organization. New users are always welcome!\n Read more …\n Get in touch on Slack! For discussions, announcements, etc.\n Read more …\n Upgrading is no longer a nightmare You can just focus on your work from now on var text = [ \"game\", \"website\", \"music player\", \"ide\"]; var counter = 0; var elem = $(\"#work\"); setInterval(change, 3000); function change() { elem.fadeOut(function(){ elem.html(text[counter]); counter++; if(counter = text.length) { counter = 0; } elem.fadeIn(); }); } luet upgrade -y ⠖ Downloaded repository.yaml of 0.00 MB ( 0.00 MiB/s ) Repository mocaccino-repository-index is already up to date. ℹ Repository: mocaccino-repository-index Priority: 1 Type: http ⠦ Downloaded repository.yaml of 0.00 MB ( 0.00 MiB/s ) Repository luet-official is already up to date. ℹ Repository: luet Priority: 1 Type: http ⠐ Downloaded repository.yaml of 0.00 MB ( 0.00 MiB/s ) Repository mocaccino-extra is already up to date. ℹ Repository: mocaccino-extra-stable Priority: 2 Type: http ⠉ Downloaded repository.yaml of 0.00 MB ( 0.00 MiB/s ) Repository mocaccino-extra is already up to date. ⠈ ℹ Repository: mocaccino-extra Priority: 2 Type: http ⠋ Downloaded repository.yaml of 0.00 MB ( 0.00 MiB/s ) Repository mocaccino-repository-index is already up to date. ℹ Repository: mocaccino-repository-index Priority: 1 Type: http 🤔 Computing upgrade, please hang tight... 💤 var termynal = new Termynal('#upgrade') \n Focus on the things that matter. MocaccinoOS Desktop uses a layered approach. Most common system packages and desktop environments (DE) are packaged as single installable layers, along with libraries. The system set is only composed by 2 core layers\nCompletely out of sight ! MocaccinoOS Micro is a LFS Musl OS based not on layers, but on a tiny core package set, suitable for cloud and embedded environment. Easy to build packages on. Static package manager Versioned rootfs as layers, delivered as upgrades or multiple single packages. You can choose the format you like. Musl? Server variant? We’ve got you covered.\n Layers Static package manager, your system will always be recoverable!\n Build your packages Thanks to the Docker-based package manager, building and sharing packages has never been so easy!\n Customize your experience A declarative suite of tools to set your box in the cloud or in a server environment Luet luet is a small-footprint static Golang package manager. It uses SAT and RL approaches to solve package dependencies.\n Yip yip is a small-footprint distro-agnostic cloud-init style tool. Statically built which executes and sets Linux system configurations.\n Declarative user management With entities, users and groups in your systems are formally declared and can be carried over to other systems easily.\n ","categories":"","description":"","excerpt":" #td-cover-block-0 { background-image: …","ref":"/","tags":"","title":"MocaccinoOS"},{"body":"","categories":"","description":"","excerpt":"","ref":"/search/","tags":"","title":"Search Results"}] \ No newline at end of file diff --git a/search/index.html b/search/index.html index f38fdf07..109b056b 100644 --- a/search/index.html +++ b/search/index.html @@ -25,11 +25,11 @@ - + - + @@ -154,7 +154,7 @@ aria-label="Search this site…" autocomplete="off" - data-offline-search-index-json-src="/offline-search-index.1ebfebe1201015be8a61b08336ad59f9.json" + data-offline-search-index-json-src="/offline-search-index.59a0436e172d490f7515835718df1091.json" data-offline-search-base-href="/" data-offline-search-max-results="10" > diff --git a/sitemap.xml b/sitemap.xml index 59fe57c5..da5f3805 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -3,120 +3,120 @@ xmlns:xhtml="http://www.w3.org/1999/xhtml"> https://www.mocaccino.org/docs/desktop/download/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/migration/gentoo/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/migration/sabayon/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/micro/service-management/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/usage/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/micro/installation/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/general/iso-building/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/general/network-config/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/general/kernels/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/desktop_environements/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/micro/building-packages/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/general/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/micro/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/general/system-config/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/general/system-profiles/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/docker/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/micro/docker/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/whalebrew/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/micro/wireguard/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/development/howdoi/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/blog/news/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/appimage/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/flatpak/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/virt-manager/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/apache_with_docker/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/building_packages/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/development/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/repositories/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/desktop/migration/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/contribution-guidelines/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/docs/donate/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/blog/2022/01/01/january-updates/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/blog/2021/12/06/updates-on-funtoo-collaboration/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/blog/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/community/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00 https://www.mocaccino.org/search/ - 2024-02-04T21:33:08+01:00 + 2024-02-04T21:37:15+01:00