Giter Club home page Giter Club logo

commssn's Introduction

commssn

A set of Ansible tools for commissioning new development machines.

The software configuration is broken into two stages:

  1. Comissioning (Ansible)

  2. Configuration (Syncthing)

Usage

Stage 1: Commissioning

Tested on Ubuntu 20.04 (focal)

Depending on your system, some of these steps may be optional.

  1. Update and upgrade your APT sources and install some required packages

    sudo apt update && sudo apt upgrade
    sudo apt install -y git curl python3-distutils python3-testresources
  2. Create a new SSH key pair

    ssh-keygen -t ed25519

    and provide the public key to GitHub so you can authenticate.

  3. Clone this repo.

    git clone [email protected]:brahste/commssn.git .commssn
    cd .commssn
  4. Install Ansible with pip.

    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    python3 get-pip.py --user
    python3 -m pip install --user ansible
    rm get-pip.py
  5. Set your hosts.

    ./setup
  6. Commission the device (first, export the path to Ansible if not done already).

    export PATH=$PATH:$HOME/.local/bin
    ./commission
  7. Reset your font cache and set Zsh as your default shell.

    fc-cache -fv
    chsh -s $(which zsh)
  8. Exit and reopen your console (Ctrl+Shft+W then Ctrl+Shft+T). Terminator should open. Change the default font to JetBrains Mono Nerd Font Regular (right click > Preferences > Profiles).

By the end of these steps your terminal will look pretty bare, you need to configure and sync with existing devices to get your system back up to its expected state.

Stage 2: Configuration

  1. Install Syncthing from their releases page here. Do not install with APT, since the version on APT is out of date, the Systemd service auto-start functionailty won't work properly.

    cd Downloads
    curl -LO "https://github.com/syncthing/syncthing/releases/download/v1.22.0/syncthing-linux-amd64-v1.22.0.tar.gz"
    tar -xzvf syncthing-linux-amd64-v1.22.0.tar.gz
    cd syncthing-linux-amd64-v1.22.0/
    sudo cp syncthing /usr/bin/
  2. Run syncthingand add your new device to the set of nodes (see Getting Started: Syncthing documentation).

    • Select Add Remote Device (bottom right)
  3. Once your device is synced, go to ~/.braden-home-overlay and set up you symlinks.

    cd ~/.braden-home-overlay
    ./setup_symlinks
  4. Install your Nvim packages with :PackerSync. TreeSitter may fail to install correctly, this is okay, it will resolve itself on future launches of Nvim.

Voila! Your new device is (nearly) set up, now go make some bugs.

Final Touches

  1. Update your Terminator colors to match the colours in extras/terminal_colors

  2. Setup the Systemd service for Syncthing in extras/syncthing.service

    cp extras/syncthing.service ~/.config/systemd/user/
    systemctl --user start syncthing
    systemctl --user enable syncthing

commssn's People

Contributors

bstefa avatar

Stargazers

 avatar

Watchers

 avatar

commssn's Issues

Continuous: packages to add

Packages to add to APT install step

Packages to add to SNAP install step

  • cmake 3.22

Rust packages to add

  • du-dust

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.