Skip to content

acikgozb's host configuration. Installation is automated with Ansible.

Notifications You must be signed in to change notification settings

acikgozb/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Dotfiles is a collection of configuration files that allows me to create my own local environment. By storing my local environment configuration in a version control system, it allows me to track and maintain my configuration via code.

Table of Contents

Motivation

In all of my projects, my initial thought process is more or less the same:

  • First, I learn the basics of a tool,
  • Then, I try to define a real life problem I have,
  • Finally, I try to come up with a project which allows me to solve the problem whilst gaining experience with the tool (and having fun along the way!).

In this context, dotfiles ticks all steps beautifully:

  • tool: I had learnt the basics of Ansible, and wanted to gain experience with it. I like the tool but unfortunately cannot practice it in my day to day job.
  • problem: My local environment (before this project) was a good example of a "snowflake" host. The configurations and installed packages were all over the place, and there were a mental and physical overhead whenever I tried to switch hosts.
  • project: What if there was a way to keep all the configuration in one place, store it in version control, and manage the configuration via Ansible for every host I have?

As a result of the analysis above, this project was born.

For Whom Is This Repository For?

I'll be blunt in here, I would highly encourage anyone reading this to just jump right in and create their own dotfiles. These configurations are what work for me and my own taste. You need to find your unique local environment configuration, and then create your dotfiles from that environment.

You can reference this repository while thinking about it, I believe this repository can be a good starting point, especially the installation parts with Ansible.

This does not mean that everything here is absolutely perfect, as I said before this was just a problem for me to gain experience in Ansible and have fun while doing so. In case you see something that's not right or something that you have issues with, I would LOVE to hear your feedback!

With all the disclaimers out of the way, let us continue with the contents of the actual configurations.

What Does This Repository Have?

When it comes to tools, I think it's safe to group them based on their functionalities:

There are also tools which are used solely during development. These tools are installed with Neovim.

Installation

The installation is done through an Ansible playbook. Please refer here to see the details of the installation.

Usage

The usage of the tools are the same, regardless of the installation method. Please refer to each tool's documentation to see their usage.

Neovim

The most complex configuration in this repository belongs to Neovim. For detailed information about my Neovim plugins and how everything is set up, please refer to here.

TODO

  • Improve the testing experience, instead of using Vagrant which limits the arch to the underlying host, use various EC2 instances on AWS to test for all platforms.
  • Add workflows for CI/CD, test the installation changes on AWS before merging to main.