Skip to content

Latest commit

 

History

History
122 lines (78 loc) · 2.98 KB

File metadata and controls

122 lines (78 loc) · 2.98 KB

Dotfiles [++]

The repository is used to configure a development machine starting from a minimal ubuntu server install. It includes gui and tooling as well as multiple roles for keeping runtimes of various programming languages up to date.

Machines

The following repository currently synchronizes the development experience between 3 machiens:

  • Desktop 5600x, 64GB, RTX 3800, Ubuntu Server 20.04
  • Laptop Macbook Air M1 16GB - 8GB Qemu VM, headless Ubuntu Server 20.04 aarch64

Requirements

  • Clean, Ubuntu 20.04 Server minimal installation with ssh access, Ansible version >2.9 and GNU make.

Usage

  1. Create an inventories file called live in inventories/ (see examples/inventories/)

  2. Create a provisioning file task.yml at the root of the repository. (see examples/template/)

  3. Execute:

    make with-target TARGET=<task>

For advanced usage lookup ansible var files.

Available roles

Utility

  • secure-ssh
    • Trivial parameter changes to SSH according to configuration. Enables collecting remote forward binds.
  • purge-snap
    • Remove snap for good (ubuntu can still pull it via hard apt dependency)
  • zsh
    • adjust default shell to zsh
  • gui-base
    • xorg, openbox, lightdm, tint2 + utilities.
  • dev-base
    • git, tmux, jq, ag, build-essential meta.
  • gui-extras
    • firefox
  • docker
    • Docker
  • docker-compose
    • Docker-compose

Programming Languages w/ Tooling

Editors

  • Emacs
    • A Custom emacs configuration w/ LSP running on nightly.

Diverse

The zsh configuration contains commented out gpg section and sshd_config is pre-configured to accept gpg-agent forwarding(useful for Host -> Guest only, otherwise insecure).

Disclaimer

This is a personal repository, synchronized between multiple machines and as such is often kept up to date and there is no guarantee on the state of the master branch.

License

MIT License