diff --git a/.github/workflows/pages.yaml b/.github/workflows/pages.yaml new file mode 100644 index 0000000..8c2d9ad --- /dev/null +++ b/.github/workflows/pages.yaml @@ -0,0 +1,67 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# Sample workflow for building and deploying a Jekyll site to GitHub Pages +name: Deploy Jekyll site to Pages + +on: + push: + branches: + - wiki_init + paths: + - 'docs/**' + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: 'pages' + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Ruby environment + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.3' + bundler-cache: true + + - name: Install dependencies + run: bundle install + working-directory: docs + + - name: Setup GitHub Pages + id: pages + uses: actions/configure-pages@v5 + + - name: Build Jekyll site + run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" + env: + JEKYLL_ENV: production + working-directory: docs + + - name: Upload artifact to GitHub Pages + uses: actions/upload-pages-artifact@v3 + with: + path: docs/_site/ + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/docs/Gemfile b/docs/Gemfile new file mode 100644 index 0000000..157e918 --- /dev/null +++ b/docs/Gemfile @@ -0,0 +1,7 @@ +source 'https://rubygems.org' + +gem "jekyll", "~> 4.3.4" # installed by `gem jekyll` +# gem "webrick" # required when using Ruby >= 3 and Jekyll <= 4.2.2 + +gem "just-the-docs", "0.10.0" # pinned to the current release +# gem "just-the-docs" # always download the latest release diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock new file mode 100644 index 0000000..dd64b4d --- /dev/null +++ b/docs/Gemfile.lock @@ -0,0 +1,91 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + bigdecimal (3.1.8) + colorator (1.1.0) + concurrent-ruby (1.3.4) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + ffi (1.17.0-arm64-darwin) + ffi (1.17.0-x86_64-linux-gnu) + forwardable-extended (2.6.0) + google-protobuf (4.28.1-arm64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.28.1-x86_64-linux) + bigdecimal + rake (>= 13) + http_parser.rb (0.8.0) + i18n (1.14.6) + concurrent-ruby (~> 1.0) + jekyll (4.3.4) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) + jekyll-watch (~> 2.0) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (>= 0.3.6, < 0.5) + pathutil (~> 0.9) + rouge (>= 3.0, < 5.0) + safe_yaml (~> 1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-sass-converter (3.0.0) + sass-embedded (~> 1.54) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + just-the-docs (0.10.0) + jekyll (>= 3.8.5) + jekyll-include-cache + jekyll-seo-tag (>= 2.0) + rake (>= 12.3.1) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (6.0.1) + rake (13.2.1) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) + ffi (~> 1.0) + rexml (3.3.7) + rouge (4.3.0) + safe_yaml (1.0.5) + sass-embedded (1.78.0-arm64-darwin) + google-protobuf (~> 4.27) + sass-embedded (1.78.0-x86_64-linux-gnu) + google-protobuf (~> 4.27) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + unicode-display_width (2.6.0) + webrick (1.8.1) + +PLATFORMS + arm64-darwin + x86_64-linux-gnu + +DEPENDENCIES + jekyll (~> 4.3.4) + just-the-docs (= 0.10.0) + +BUNDLED WITH + 2.5.9 diff --git a/docs/LICENSE b/docs/LICENSE new file mode 100644 index 0000000..7d510d0 --- /dev/null +++ b/docs/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 just-the-docs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..d6e45a1 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,174 @@ +# GLS-OS Wiki + +This is a *bare-minimum* template to create a [Jekyll] site that: + +- uses the [Just the Docs] theme; +- can be built and published on [GitHub Pages]; +- can be built and previewed locally, and published on other platforms. + +More specifically, the created site: + +- uses a gem-based approach, i.e. uses a `Gemfile` and loads the `just-the-docs` gem; +- uses the [GitHub Pages / Actions workflow] to build and publish the site on GitHub Pages. + +To get started with creating a site, simply: + +1. click "[use this template]" to create a GitHub repository +2. go to Settings > Pages > Build and deployment > Source, and select GitHub Actions + +If you want to maintain your docs in the `docs` directory of an existing project repo, see [Hosting your docs from an existing project repo](#hosting-your-docs-from-an-existing-project-repo). + +After completing the creation of your new site on GitHub, update it as needed: + +## Replace the content of the template pages + +Update the following files to your own content: + +- `index.md` (your new home page) +- `README.md` (information for those who access your site repo on GitHub) + +## Changing the version of the theme and/or Jekyll + +Simply edit the relevant line(s) in the `Gemfile`. + +## Adding a plugin + +The Just the Docs theme automatically includes the [`jekyll-seo-tag`] plugin. + +To add an extra plugin, you need to add it in the `Gemfile` *and* in `_config.yml`. For example, to add [`jekyll-default-layout`]: + +- Add the following to your site's `Gemfile`: + + ```ruby + gem "jekyll-default-layout" + ``` + +- And add the following to your site's `_config.yml`: + + ```yaml + plugins: + - jekyll-default-layout + ``` + +Note: If you are using a Jekyll version less than 3.5.0, use the `gems` key instead of `plugins`. + +## Publishing your site on GitHub Pages + +1. If your created site is `YOUR-USERNAME/YOUR-SITE-NAME`, update `_config.yml` to: + + ```yaml + title: YOUR TITLE + description: YOUR DESCRIPTION + theme: just-the-docs + + url: https://YOUR-USERNAME.github.io/YOUR-SITE-NAME + + aux_links: # remove if you don't want this link to appear on your pages + Template Repository: https://github.com/YOUR-USERNAME/YOUR-SITE-NAME + ``` + +2. Push your updated `_config.yml` to your site on GitHub. + +3. In your newly created repo on GitHub: + - go to the `Settings` tab -> `Pages` -> `Build and deployment`, then select `Source`: `GitHub Actions`. + - if there were any failed Actions, go to the `Actions` tab and click on `Re-run jobs`. + +## Building and previewing your site locally + +Assuming [Jekyll] and [Bundler] are installed on your computer: + +1. Change your working directory to the root directory of your site. + +2. Run `bundle install`. + +3. Run `bundle exec jekyll serve` to build your site and preview it at `localhost:4000`. + + The built site is stored in the directory `_site`. + +## Publishing your built site on a different platform + +Just upload all the files in the directory `_site`. + +## Customization + +You're free to customize sites that you create with this template, however you like! + +[Browse our documentation][Just the Docs] to learn more about how to use this theme. + +## Hosting your docs from an existing project repo + +You might want to maintain your docs in an existing project repo. Instead of creating a new repo using the [just-the-docs template](https://github.com/just-the-docs/just-the-docs-template), you can copy the template files into your existing repo and configure the template's Github Actions workflow to build from a `docs` directory. You can clone the template to your local machine or download the `.zip` file to access the files. + +### Copy the template files + +1. Create a `.github/workflows` directory at your project root if your repo doesn't already have one. Copy the `pages.yml` file into this directory. GitHub Actions searches this directory for workflow files. + +2. Create a `docs` directory at your project root and copy all remaining template files into this directory. + +### Modify the GitHub Actions workflow + +The GitHub Actions workflow that builds and deploys your site to Github Pages is defined by the `pages.yml` file. You'll need to edit this file to that so that your build and deploy steps look to your `docs` directory, rather than the project root. + +1. Set the default `working-directory` param for the build job. + + ```yaml + build: + runs-on: ubuntu-latest + defaults: + run: + working-directory: docs + ``` + +2. Set the `working-directory` param for the Setup Ruby step. + + ```yaml + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.3' + bundler-cache: true + cache-version: 0 + working-directory: '${{ github.workspace }}/docs' + ``` + +3. Set the path param for the Upload artifact step: + + ```yaml + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: docs/_site/ + ``` + +4. Modify the trigger so that only changes within the `docs` directory start the workflow. Otherwise, every change to your project (even those that don't affect the docs) would trigger a new site build and deploy. + + ```yaml + on: + push: + branches: + - "main" + paths: + - "docs/**" + ``` + +## Licensing and Attribution + +This repository is licensed under the [MIT License]. You are generally free to reuse or extend upon this code as you see fit; just include the original copy of the license (which is preserved when you "make a template"). While it's not necessary, we'd love to hear from you if you do use this template, and how we can improve it for future use! + +The deployment GitHub Actions workflow is heavily based on GitHub's mixed-party [starter workflows]. A copy of their MIT License is available in [actions/starter-workflows]. + +---- + +[^1]: [It can take up to 10 minutes for changes to your site to publish after you push the changes to GitHub](https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll#creating-your-site). + +[Jekyll]: https://jekyllrb.com +[Just the Docs]: https://just-the-docs.github.io/just-the-docs/ +[GitHub Pages]: https://docs.github.com/en/pages +[GitHub Pages / Actions workflow]: https://github.blog/changelog/2022-07-27-github-pages-custom-github-actions-workflows-beta/ +[Bundler]: https://bundler.io +[use this template]: https://github.com/just-the-docs/just-the-docs-template/generate +[`jekyll-default-layout`]: https://github.com/benbalter/jekyll-default-layout +[`jekyll-seo-tag`]: https://jekyll.github.io/jekyll-seo-tag +[MIT License]: https://en.wikipedia.org/wiki/MIT_License +[starter workflows]: https://github.com/actions/starter-workflows/blob/main/pages/jekyll.yml +[actions/starter-workflows]: https://github.com/actions/starter-workflows/blob/main/LICENSE diff --git a/docs/_config.yml b/docs/_config.yml index 3a76890..720469b 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,3 +1,50 @@ -theme: jekyll-theme-minimal -title: GLF Wiki Page d'accueil -description: Bienvenue sur le Wiki du projet communautaire GLF-OS +title: Just the Docs Template +description: A starter template for a Jeykll site using the Just the Docs theme! +theme: just-the-docs + +url: https://just-the-docs.github.io + +# See : https://just-the-docs.github.io/just-the-docs/docs/configuration/ + +aux_links: + Template Repository: https://github.com/just-the-docs/just-the-docs-template + +logo: "/assets/images/logo.png" +favicon_ico: "/assets/images/favicon.ico" + +mermaid: + # Version of mermaid library + # Pick an available version from https://cdn.jsdelivr.net/npm/mermaid/ + version: "9.1.3" + +# Aux links for the upper right navigation +aux_links: + "GamingLinuxFR": + - "https://www.gaminglinux.fr" + +# Makes Aux links open in a new tab. Default is false +aux_links_new_tab: true + +nav_enabled: true +fold_nav: true +heading_anchors: true + +last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter +last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https://ruby-doc.org/stdlib-2.7.0/libdoc/time/rdoc/Time.html + +enable_copy_code_button: true + +callouts_level: quiet +callouts: + info: + title: "ℹ️ Information" + color: blue + warning: + title: ⚠️ Avertissement + color: red + note: + title: "📝 Note" + color: green + +# Enable mathjax +math: mathjax diff --git a/docs/_sass/custom/custom.scss b/docs/_sass/custom/custom.scss new file mode 100644 index 0000000..fba0c06 --- /dev/null +++ b/docs/_sass/custom/custom.scss @@ -0,0 +1,20 @@ +.side-bar { + z-index: 0; + display: flex; + flex-wrap: wrap; + background-color: $sidebar-color; + + @include mq(md) { + flex-flow: column nowrap; + position: fixed; + width: $nav-width-md; + height: 100%; + border-right: $border $border-color; + align-items: flex-end; + } + + @include mq(lg) { + width: calc((100% - #{$nav-width + $content-width}) / 20 + #{$nav-width}); + min-width: $nav-width; + } +} diff --git a/docs/assets/images/favicon.ico b/docs/assets/images/favicon.ico new file mode 100644 index 0000000..c20a623 Binary files /dev/null and b/docs/assets/images/favicon.ico differ diff --git a/docs/assets/images/logo.png b/docs/assets/images/logo.png new file mode 100644 index 0000000..2b0bbb0 Binary files /dev/null and b/docs/assets/images/logo.png differ diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..ddd79a8 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,20 @@ +--- +title: Accueil +layout: home +has_children: true +nav_order: 1 +--- + +# GLF-OS + +Gaming Linux Fr est une communauté de passionés articulée autour d'un Discord, d'un site web et de la chaine Youtube de Vinceff. +Aujourd'hui, nous sommes la première communauté francophone dédiée au jeu vidéo sur Linux. + +Nous lançons régulièrement des projets pour améliorer l'accessibilité de Linux. Par exemple, nous avons déjà travaillé sur des scripts pour Arch Linux (Architect) ainsi que sur des applications pour faciliter l'installation des logiciels telles que Easy Flatpak. + +Notre communauté réalise également des exercices d'audit, afin de mettre en avant les distributions Linux qui s'approchent le plus de notre vision idéale. Celle-ci étant axée pour les nouveaux venus (installation Out of the box), le multimédia et le gaming et ce dès l'installation. + +Et c'est en cumulant ces deux exercices que l'idée de créer notre propre distribution est née : Obtenir un système d'exploitation stable, accessible et orienté gaming. Il répond à tous les aspects au cahier des charges GLF. + +Ce projet est avant tout un projet communautaire, pour Gaming Linux Fr. Il est également un défi, relevé par la communauté. + diff --git a/docs/pages/aboutUpdate.md b/docs/pages/aboutUpdate.md new file mode 100644 index 0000000..f7219a6 --- /dev/null +++ b/docs/pages/aboutUpdate.md @@ -0,0 +1,37 @@ +--- +title: A propos des mises à jours +layout: default +--- + +# A quelle fréquence apparaissent les mises à jours ? + +Il y a deux types de mises à jours dans glf-os : + +## Mise à jours des paquets + +Les mises à jours de vos paquets suivent celle du projet NixOS et sont effectués une fois par semaine en tâche de fond. + +## Mise à jour du module GLF + +GLF-OS propose dans vos configurations `/etc/nixos` un module GLF (`/etc/nixos/glf`) contenant des options pré-configuré. + +Après l'installation, tous les trois jours, vous recevez une mise à jour des options. + +{: .warning } +> Les mises à jours du module sont en cours de modifications et utiliseront les flocons. + +## Comment mettre à jour manuellement ? + +Actuellement, aucun outil graphique n'est disponible, il est donc nécessaire d'ouvrir l'application `console`. + +### Mettre à jour manuellement le module GLF + +```bash +bash /etc/update-glf-config.sh +``` + +### Mettre à jour manuellement les paquets + +```bash +sudo nixos-rebuild switch --upgrade +``` diff --git a/docs/pages/assistance/helpUser.md b/docs/pages/assistance/helpUser.md new file mode 100644 index 0000000..157548b --- /dev/null +++ b/docs/pages/assistance/helpUser.md @@ -0,0 +1,98 @@ +--- +title: Aider un utilisateur +layout: default +parent: Assistance +--- + +{: .warning } +> * Cette page se base sur le PR #100 qui n'est pas encore fusionné dans dev. +> * Cette page est en cours de travaux et est sujet aux changements. +> * Des modifications comme l'ajout d'alias pour fournir une commande prête à l'emploi, un lien vers un pastbin sont prévus à l'avenir. +> * Des diagrammes seront ajoutés à l'avenir pour répondre à des résolutions de problèmes courant. + +# Contexte + +Les utilisateurs qui rencontrent des soucis ne sont pas toujours à l'aise avec Linux ou l'informatique, l'objectif de cette page est de fournir une marche à suivre pour aider à la correction du problème et de réduire le rôle de l'utilisateur au strict minimum, c'est-à-dire, **rebuild**. + + +Les problèmes des utilisateurs permettront d'alimenter cette documentation. + +## Réunir des informations + +Avant de fournir des solutions, il est nécessaire de connaître les spécifications de l'appareil en cause. + +*Acteur* : L'utilisateur + +- Ouvrir l'application `Console` +- Coller la commande suivante dans le terminal et valider avec `ENTER` : + +```nix +nix-shell -p pciutils util-linux inxi --run "echo -e '\n--- Infos ---' ; inxi -M ; echo -e '\n--- CPU ---' ; lscpu | grep -E 'Architecture|CPU op-mode|Vendor ID|Model name' | awk '{$1=$1; print}' ; echo -e '\n--- GPU ---' ; lspci | grep -E 'VGA|3D' ; echo -e '\n--- Disque ---'; df -h ; echo -e '\n--- RAM --- ' ; free -h" +``` + +- Donner le résultat de la commande à la personne qui fournis l'assistance. + +- Répondre aux questions : + - [ ] L'utilisateur a-t'il modifié la configuration fournis par défaut ? + - Si oui, fournir les modifications + - [ ] L'utilisateur a-t'il redémarré sa machine pour vérifier que son problème appraît toujours ? + - [ ] L'utilisateur a-t'il vérifié que sa connexion internet fonctionnait bien ? + - [ ] Définir l'impact du problème : + - [ ] 🪦 Bloquant : Je ne peux pas utiliser la distribution. + - [ ] 🚨 Majeur : Fonctionnalités critiques non disponibles. + - [ ] ⚠️ Mineur ️: Gênant mais contournable. + - [ ] 👁 Cosmétiques ️: Problème visuel ou de confort. + +*Acteur* : L'assistant + +Le retour de commande de l'utilisateur devrait fournir un résultat similaire à : + +```bash +--- Infos --- +Machine: + Type: Desktop Mobo: AZW model: MINI S v: 10 serial: UEFI: American + Megatrends LLC. v: ADLNV104 date: 02/06/2023 + +--- CPU --- +Architecture: x86_64 +CPU op-mode(s): 32-bit, 64-bit +Vendor ID: GenuineIntel +Model name: Intel(R) N100 + +--- GPU --- +00:02.0 VGA compatible controller: Intel Corporation Alder Lake-N [UHD Graphics] + +--- Disque --- +Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur +/dev/nvme0n1p3 461G 242G 200G 55% / + +--- RAM --- + total utilisé libre partagé tamp/cache disponible +Mem: 15Gi 7,4Gi 1,2Gi 188Mi 7,3Gi 8,0Gi +Échange: 15Gi 4,9Gi 10Gi +``` + +{: .note } +> ### Que nous permet d'apprendre ces informations ? +> - L'utilisateur dispose d'un mini-pc **Mini S** +> - CPU : +>> - Architecture: x86_64 +>> - Modèle: Intel N100 +> - GPU : +>> - iGPU Intel (provenant du cpu) +> - RAM : 16Go +> - Disque : 461Go +> +> ### Que peut-on en conclure ? +> L'utilisateur respecte la configuration minimale excepté pour le GPU. + + + + + + + + + + + diff --git a/docs/pages/assistance/index.md b/docs/pages/assistance/index.md new file mode 100644 index 0000000..2e0b872 --- /dev/null +++ b/docs/pages/assistance/index.md @@ -0,0 +1,5 @@ +--- +title: Assistance +layout: default +has_children: true +--- diff --git a/docs/pages/customConfiguration.md b/docs/pages/customConfiguration.md new file mode 100644 index 0000000..9d091e6 --- /dev/null +++ b/docs/pages/customConfiguration.md @@ -0,0 +1,99 @@ +--- +title: Configurations personnalisée +layout: default +--- + +# Comment puis-je ajouter des configurations personnalisées + + +{: .note } +> En raison du fonctionnement des mises à jour de notre module GLF, pour avoir la certitude que le module fonctionne comme prévu chez vous, +> nous devons supprimer l'ancien module et le remplacer par la dernière version. +> Ce mécanisme est en cours de travail et sera prochainement remplacé. +> L'ajout de configurations customisé sera également simplifié à l'avenir. + +Si la configuration actuelle et les flatpaks ne répondent pas entièrement à vos besoins, vous avez la possibilité de modifier la configuration. +Vous pouvez écrire vos configurations où vous le souhaitez à l'exception du répertoire `/etc/nixos/glf` (voir la note ci-dessus). + +Voici un exemple pratique où nous allons ajouter zsh. + +L'option permettant d'installer zsh est `programs.zsh.enable` ([doc](https://search.nixos.org/options?channel=24.11&from=0&size=50&sort=relevance&type=packages&query=programs.zsh)). + +Créer un nouveau fichier dans `/etc/nixos/custom.nix` + +```bash +sudo touch /etc/nixos/custom.nix +``` + +Ouvrez-le + +```bash +sudo nano /etc/nixos/custom.nix +``` + +Rajoutez ensuite l'exemple minimal : + +{: .warning } +> Si vous êtes habitué à nixos, vous remarquerez que les mentions `lib`, `config` et `pkgs` sont inutile dans cet exemple spécifique. +> +> L'objectif est de fournir un exemple de départ qui répondra à la grande **majorité des usages**. + + +```nix +{ lib, config, pkgs, ... }: + +{ + + +} +``` + +Si nous rajoutons l'option zsh : + +```nix +{ lib, config, pkgs, ... }: + +{ + + programs.zsh.enable = true; + +} +``` + +Sauvegardez votre fichier avec `CTRL+O`, `ENTER`, puis quittez avec `CTRL+X`, `ENTER`. + +Il nous reste plus qu'à indiquer dans `configuration.nix` de lire le fichier. + +``` +sudo nano /etc/nixos/configuration.nix +``` + +Repérez la mention `imports` : + +```nix +{ + # .... + imports = [ + ./hardware-configuration.nix + ./glf + ]; + # .... +} +``` + +Modifiez pour ajoutez votre fichier : + +```nix +{ + # .... + imports = [ + ./hardware-configuration.nix + ./glf + ./custom.nix + ]; + # .... +} +``` + +{: .note } +> `./` fait référence au répertoire local, si votre fichier est dans un sous répertoire, adaptez le chemin en conséquence. diff --git a/docs/pages/dev/Makefile.md b/docs/pages/dev/Makefile.md new file mode 100644 index 0000000..bc44cdb --- /dev/null +++ b/docs/pages/dev/Makefile.md @@ -0,0 +1,20 @@ +--- +title: A propos du makefile +layout: default +parent: Développement +--- + +Le makefile expose les commandes suivantes : + +| Nom | Fonction | +|-------------------|----------------------------------------------------------------------| +| **make check** | *Vérifier la syntaxe nix sans compiler* | +| **make build** | *Vérifier la syntaxe nix et compiler le projet* | +| **make build-vm** | *Construire le projet et exécuter une VM du résultat* | +| **make update** | *Mettre à jour le flocon vers la dernière mise à jour disponible* | +| **make clean** | *Nettoyer le dépôt* | +| **make iso** | *Construire l'image iso* | +| **make install** | *Copier l'image iso dans un répertoire `iso` et générer un checksum* | + +{: .note } +> Dans la majorité des cas, vous aurez besoin de `make check` ou `make build` et `make all`. diff --git a/docs/pages/dev/aboutRepo.md b/docs/pages/dev/aboutRepo.md new file mode 100644 index 0000000..cbe5d81 --- /dev/null +++ b/docs/pages/dev/aboutRepo.md @@ -0,0 +1,44 @@ +--- +title: A propos du dépôt +layout: default +parent: Développement +--- + +{: .warning } +> Cette page se base sur le PR #100 qui n'est pas encore fusionné dans dev. + +En date du 20 décembre 2024, le dépôt est structuré des éléments principaux suivant : + +```bash +. +├── Makefile +├── flake.lock +├── flake.nix +├── nix-cfg +│   ├── configuration.nix +│   └── glf +└── patches +``` + +| Nom | Fonction | +|----------------|------------------------------------------------------------------------------------------------------------------------| +| **Makefile** | Contient des commandes pour automatiser les tests de la configuration, génération d'image iso. | +| **flake.lock** | Verrou de version de nixpkgs. | +| **flake.nix** | Décrit comment générer une image iso. | +| **nix-cfg** | Contient les configurations propres à l'image iso et des configurations ajoutées durant l'installation. | +| **patches** | Contient des modifications permettant d'inclure des configurations personnalisées durant l'installation via calamares. | + + + + + + + + + + + + + + + diff --git a/docs/pages/dev/build.md b/docs/pages/dev/build.md new file mode 100644 index 0000000..3ada9dd --- /dev/null +++ b/docs/pages/dev/build.md @@ -0,0 +1,30 @@ +--- +title: Construire une iso +layout: default +parent: Développement +--- + +# Pré-requis + +- Le gestionnaire de paquets `nix` +- `gnumake` + +# Construire + +1. Clonez le projet + +```bash +git clone https://github.com/GLF-OS/Nixos-by-GLF.git +``` + +2. Déplacez-vous dans l'arborescence + +```bash +cd Nixos-by-GLF +``` + +3. Construire + +```bash +make iso +``` diff --git a/docs/pages/dev/index.md b/docs/pages/dev/index.md new file mode 100644 index 0000000..8bebb1e --- /dev/null +++ b/docs/pages/dev/index.md @@ -0,0 +1,5 @@ +--- +title: Développement +layout: default +has_children: true +--- diff --git a/docs/pages/documentation/aboutDocumentation.md b/docs/pages/documentation/aboutDocumentation.md new file mode 100644 index 0000000..60c002a --- /dev/null +++ b/docs/pages/documentation/aboutDocumentation.md @@ -0,0 +1,24 @@ +--- +title: A propos de la documentation +layout: default +parent: Documentation +--- + +{: .warning } +> * Cette page est en cours de travaux et est sujet aux changements. + +La documentation est généré grâce à **Github Pages** et **Just-The-Docs**. + +Vous trouverez [ici](https://github.com/GLF-OS/Nixos-by-GLF/tree/dev/docs/pages) les pages de la documentation. + +Le format d'écriture est le **markdown**. + + + + + + + + + + diff --git a/docs/pages/documentation/index.md b/docs/pages/documentation/index.md new file mode 100644 index 0000000..dec0eb9 --- /dev/null +++ b/docs/pages/documentation/index.md @@ -0,0 +1,5 @@ +--- +title: Documentation +layout: default +has_children: true +--- diff --git a/docs/pages/faq.md b/docs/pages/faq.md new file mode 100644 index 0000000..c14a268 --- /dev/null +++ b/docs/pages/faq.md @@ -0,0 +1,49 @@ +--- +title: F.A.Q +layout: default +--- + +# F.A.Q + +## GLF-OS prends-t'il en charge le secureboot ? + +Non pas actuellement, c'est un objectif que nous souhaitons atteindre à l'avenir. + +{: .info } +> Notez d'ailleurs que secureboot doit être désactivé pour que GLF-OS fonctionne. + +## Comptez-vous proposer une installation entièrement hors-ligne ? + +Non, la raison n'est pas lié à l'envie mais à un problème technique. +Nous utilisons un `flocon` côté utilisateur pour gérer son système. +Dans les grandes lignes, ce flocon a systématiquement besoin d'accéder à internet pour travailler. + +## Quelle est la durée moyenne d'installation ? + +{: .info } +> La durée d'installation fait référence au moment où vous avez cliqué sur **Installer**. + +La durée d'installation dépends de votre bande passante, avec la fibre et une machine moderne, comptez entre 8 et 12 minutes. + +## Combien de données sont téléchargés pendant l'installation ? + +Nous fournissons dans l'iso l'ensemble des binaires compilés, de ce fait, la majorité des paquets n'ont pas besoin d'être téléchargés pendant l'installation. + +Notez cependant que le chargeur de démarrage (*grub*, *systemd-boot*) est téléchargé durant l'installation. + +Ainsi, pour répondre à la question initial, nous avons observé un minimum de **500Mo** téléchargé durant l'installation. +La valeur peut croitre si les paquets fournis dans l'iso sont plus anciens que ceux disponibles en ligne. + +## Le téléchargement est lent durant l'installation ! + +Les sources distribuant le cache de construction des paquets peut parfois être ralentis dans la journée dépendamment du traffic. + +## Mon installation reste bloqué à 46% ! + +En raison de la nature de Nix, l'installateur calamares ne reçoit pas d'informations sur l'avancée du téléchargement, compilation des paquets, etc. +Ainsi, la barre de progression semble bloqué à 46% mais ne l'est pas. +Vous pouvez cliquer sur la petite loupe en bas à droite de l'installateur pour voir ce qu'il se passe. + +{: .info } +> Ce bug qui n'en est pas un n'est pas de notre ressors, il est aussi présent avec NixOS. +> Nous n'avons pas l'intention de le corriger au vu du travail nécessaire derrière. diff --git a/docs/pages/installation/bootableISO.md b/docs/pages/installation/bootableISO.md new file mode 100644 index 0000000..c4b81a4 --- /dev/null +++ b/docs/pages/installation/bootableISO.md @@ -0,0 +1,25 @@ +--- +title: Préparer une iso Bootable +layout: default +parent: Installation +--- + +{: .warning } +> Cette page est en travaux et peut être incomplète + +Rendez-vous [ici](https://github.com/GLF-OS/Nixos-by-GLF/releases/) et téléchargez le fichier `glf-os.torrent` ou l'iso directement [ici](https://kdrive.infomaniak.com/app/share/280110/669a1cd6-21fd-4c5c-9ba0-c2f13b7bb18e/files/559). + +{: .info } +> L'hébergeur du lien vers l'iso a une limite de 100 téléchargements par heure. + +Vous avez à disposition un checksum pour vérifier que l'iso est bien valide. + +{: .note } +> A l'avenir, nous rajouterons une signature GPG pour que vous soyez assuré de la provenance de l'iso. + +Lorsque vous avez l'iso sur votre système, installez [balena etcher](https://etcher.balena.io/#download-etcher) qui vous permettra de préparer l'iso. + + + + + diff --git a/docs/pages/installation/index.md b/docs/pages/installation/index.md new file mode 100644 index 0000000..aaede36 --- /dev/null +++ b/docs/pages/installation/index.md @@ -0,0 +1,5 @@ +--- +title: Installation +layout: default +has_children: true +--- diff --git a/docs/pages/minimalConfiguration.md b/docs/pages/minimalConfiguration.md new file mode 100644 index 0000000..b9c45b5 --- /dev/null +++ b/docs/pages/minimalConfiguration.md @@ -0,0 +1,19 @@ +--- +title: Configuration Minimale +layout: default +--- + +La configuration matérielle minimale : + +{: .info } +> - CPU: +>> - Architecture: x86_64 +>> - Nombre de coeurs : 4 +> - GPU: +>> - 🔴 AMD: AMD RX560 +>> - 🔵 Intel: Xe/Arc +>> - 🟢 Nvidia: Nvidia GTX 700 +> - 💾 RAM: 8Go ou plus +> - 💿 Espace disque: 60Go + +Notez que les configurations *inférieurs* peuvent fonctionner mais ne sont pas pris en charge. diff --git a/docs/pages/roadmap.md b/docs/pages/roadmap.md new file mode 100644 index 0000000..d560db8 --- /dev/null +++ b/docs/pages/roadmap.md @@ -0,0 +1,10 @@ +--- +title: Roadmap +layout: default +--- + +# Roadmap + +Le projet est à l'état de prototype, il est sujet à de nombreuses modifications mais est déjà prêt à fonctionner sur vos machines. + +Nous vous laissons à disposition un [kanban](https://github.com/orgs/GLF-OS/projects/4) pour suivre l'évolution.