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.
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
- Clean, Ubuntu 20.04 Server minimal installation with ssh access, Ansible version >2.9 and GNU make.
-
Create an inventories file called
live
ininventories/
(seeexamples/inventories/
) -
Create a provisioning file
task
.yml at the root of the repository. (seeexamples/template/
) -
Execute:
make with-target TARGET=<task>
For advanced usage lookup ansible var files.
- 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
-
clojure
-
go
-
elixir
- Elixir - Latest packaged by ES
-
haskell
-
java
- JVM 11/13 LTS (packaged openjdk)
- jenv - 0.5.4
-
javascript
- nvm - 0.39.0
-
kotlin
- Kotlin - 1.6.0
-
python pyenv* - (HEAD, no release tracking)
-
racket
- Racket - v7.9
-
rust
- Rustup - v1.25.1
- Rust analyzer - release 2022-11-07
-
scala
- Emacs
- A Custom emacs configuration w/ LSP running on nightly.
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).
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.
MIT License