Code Monkey home page Code Monkey logo

dots's Introduction

๐Ÿค– RoBo SqUaD Nix โ„๏ธS Template ๐Ÿค–

Follow these steps to configure and use this Nix template:

1. Clone the Repository

Clone the repository to get started with the setup. You can either use it as a template or create a fork.

Typically, you will want to clone it to a location where you keep your dot files, usually ~/.config/dots.

2. Open a Console Window and Go to the Root of the Cloned Repo

Then run:

direnv allow

This will pull down all the needed files to enter a dev shell. You know it worked if you see just outputs.

3. Modify Your Keys

Open your keys/default.nix in your favorite editor and modify the following:

Update the users -> main key to match your public key. This will be in your ~/.ssh/id_ed25519.pub file. You can run the following command to quickly get this:

cat ~/.ssh/id_ed25519.pub

You should also add the keys for each of your machines in the machines section. The reference to sushi is a placeholder and should be replaced with your keys.

Once you have completed your edits to keys/default.nix, save the file.

4. Configure your user

Open modules/options/system/default.nix and change the user from sincore to your main username.

the line that says default = ["sincore"]; (around line 77)

4. Configure Hosts

Navigate to your hosts directory. Within it, you will see four folders: airgap, installer, raspberry, and sushi.

Each of these folders represents a different NixOS system that can be built using this flake.

sushi will be the template you can use to create your own.

Now open the hosts/default.nix file. In this file, you will see all the modules and options defined at the top, followed by each system as described above defined as an output.

Review and modify the hosts configuration to suit your deployment needs. The default configuration includes a template for 'Sushi', which is my main workstation. Update or remove this to reflect your setup.

Update the fs folder to match your machine's setup. Sushi is configured with Disko, BTRFS, and Luks. If you don't want to use Disko, comment out the Disko import and use your own settings.

Pay close attention to the options in the 'Sushi' configuration. Ensure your users and main user are configured correctly, as many settings depend on these configurations.

These settings are influenced by modules/options/.

5. Adjust Home Manager Environments

Adjust the home directory configurations for your user. Rename the directory to match your user as it dictates the Home Manager environment.

These settings are influenced by modules/options/.

6. Update the SOPS Configuration

Modify the root .sops.yaml file to include your encryption keys. This configuration determines how SOPS will encrypt your keys. For more details, see the README in the secrets directory.

7. Build and Deploy

To build an ISO, use one of the following commands:

nix build .#images.installer
nix build .#images.airgap
nix build .#images.raspberry

Ensure all configurations are correct before proceeding to avoid errors during deployment.

8. Profit! ๐Ÿ’ต

dots's People

Contributors

use-the-fork avatar peter-umb avatar peoplenamed avatar

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

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

  • D3 photo D3

    Data-Driven Documents codes.