GithubHelp home page GithubHelp logo

entelecheia / dotfiles Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 3.0 2.2 MB

Dotfiles management for Dev

Home Page: https://dotfiles.entelecheia.ai/

License: MIT License

Shell 97.93% Makefile 2.07%
dotfiles chezmoi dotfiles-automation dotdrop dotfiles-linux dotfiles-macos dotfiles-management dotfiles-wsl

dotfiles's Introduction

Dotfiles

version-image release-date-image test-image license-image

Easily manage and synchronize your dotfiles across multiple environments with the Dotfiles project, streamlining your development setup and CI/CD pipeline.

The Dotfiles project offers a comprehensive solution for managing and synchronizing your dotfiles across various environments, including local development, CI/CD pipelines, and production systems. With this tool, you can effortlessly maintain a consistent development environment, simplifying collaboration and reducing the time spent on setting up new machines. The Dotfiles project uses the Chezmoi framework, providing a secure and flexible way to manage your configuration files. The project also includes support for additional integrations, such as Docker, GitHub repositories, and password management tools, further enhancing your development experience. Get started with the Dotfiles project today and enjoy a seamless, hassle-free configuration management process.

Getting started

The following guide will walk you through the process of installing and initializing the Dotfiles project on your machine. This will help you set up a consistent development environment across different systems, simplifying your workflow and making it easier to collaborate with others.

Prerequisites

Before proceeding with the installation, ensure that your system has the following tools:

  • wget or curl: To fetch the installation script from the internet.
  • git: To clone the Dotfiles repository.

Most Linux distributions come with these tools pre-installed. If not, you can install them using your package manager.

Installing Dotfiles

To install the Dotfiles project on your machine, you need to fetch the installation script and execute it. You can do this using either wget or curl:

Using wget:

sh -c "$(wget -qO- https://dotfiles.entelecheia.ai/install)"

Using curl:

sh -c "$(curl -fsSL https://dotfiles.entelecheia.ai/install)"

Running the above command will download the installation script and execute it, cloning the Dotfiles repository to your machine and setting up the necessary configurations.

install dotfiles script For unattended installations such as in a dockerfile, you can use the environment variables to initialize the dotfiles automatically. For example:

# install dotfiles
ARG USER_FULLNAME="John Doe"
ARG USER_EMAIL="[email protected]"
ARG GITHUB_USERNAME="john-doe"
ARG SYSTEM_HOSTNANE="devcon-arm64"

ENV USER_FULLNAME=$USER_FULLNAME
ENV USER_EMAIL=$USER_EMAIL
ENV GITHUB_USERNAME=$GITHUB_USERNAME
ENV SYSTEM_HOSTNAME=$SYSTEM_HOSTNAME
ENV WORKSPACE_LOCATION="/"
ENV DOTFILES_APPLY_ROOTMOI=0
ENV REMOTE_CONTAINERS=1

RUN sh -c "$(wget -qO- https://dotfiles.entelecheia.ai/install)"

CMD ["zsh"]

Or you can provide the environment variables in the command line:

USER_FULLNAME="John Doe" \
USER_EMAIL="[email protected]" \
GITHUB_USERNAME="john-doe" \
SYSTEM_HOSTNAME="devcon-arm64" \
WORKSPACE_LOCATION="/" \
DOTFILES_APPLY_ROOTMOI=0 \
REMOTE_CONTAINERS=1 \
sh -c "$(wget -qO- https://dotfiles.entelecheia.ai/install)"

Initializing Dotfiles

After the installation, the initialization process will start automatically. This step applies the configurations defined in your dotfiles to your system, ensuring a consistent development environment.

initialize dotfiles

If you need to re-initialize your dotfiles manually, you can run the following command:

dotu init

This command will update your system with the latest configurations from your dotfiles, keeping your environment up-to-date and in sync with any changes you've made.

Once the initialization process is complete, you can start using your newly configured development environment. Feel free to explore the available configurations and customize them to your preferences.

Repositories and repository templates for setting up your own dotfiles

Installing the font on Windows

  1. Download Fira Code Regular Nerd Font Complete.
  2. Open the downloaded file and click Install.
  3. Restart Windows Terminal or VS Code.

Configuring the font in VS Code

  1. Open settings by pressing Ctrl/Cmd+,.
  2. Change the font family to FiraCode Nerd Font in Terminal โ€บ Integrated: Font Family.

Configuring the font in Windows Terminal

  1. On Windows Terminal, press Ctrl+, to open the settings.
  2. Go to Profiles -> Defaults in the left panel. Then, go to Additional settings -> Appearance.
  3. At Text -> Font face, enable the Show all fonts option and select FiraCode Nerd Font. Like below:

Changelog

See the CHANGELOG for more information.

Contributing

Contributions are welcome! Please see the contributing guidelines for more information.

License

This project is released under the MIT License.

dotfiles's People

Contributors

dependabot[bot] avatar entelecheia avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

dotfiles's Issues

Installing go-sops encounters a version error

- name: go-sops
script: true
script_cmd: go install go.mozilla.org/sops/v3/cmd/sops@latest
script_prereqs: "source ${HOME}/.config/shrc/00-dotfiles-export"
check_prereqs: "command -v go &> /dev/null"
check_installed: command -v sops &>/dev/null
current_version: "sops --version | awk '{print $NF}'"
latest_version: $(curl -s https://api.github.com/repos/mozilla/sops/releases/latest | grep 'tag_name' | cut -d'"' -f4)
scope: optional
- name: go-task

Provide the default information from the dotfiles profile

init-hyperfast-project:
desc: Create a new project using the hyperfast template
dir: {{"'{{.USER_WORKING_DIR}}'"}}
cmds:
- copier copy --UNSAFE gh:entelecheia/hyperfast-template .
init-hyfi-project:
desc: Create a new project using the hyfi template
dir: {{"'{{.USER_WORKING_DIR}}'"}}
cmds:
- copier copy --UNSAFE --data 'code_template_source=gh:entelecheia/hyfi-template' gh:entelecheia/hyperfast-python-template .
init-hyperfast-python-project:
desc: Create a new Python project using the hyperfast template
dir: {{"'{{.USER_WORKING_DIR}}'"}}
cmds:
- copier copy --UNSAFE gh:entelecheia/hyperfast-python-template .
init-hyperfast-docker-project:
desc: Create a new Docker project using the hyperfast template
dir: {{"'{{.USER_WORKING_DIR}}'"}}
cmds:
- copier copy --UNSAFE gh:entelecheia/hyperfast-docker-template .

Modify the docker-compose helper script to be reconciled with the hyperfast-docker-template.


Description

hyperfast-docker-template is a template for docker-compose projects. It is designed to be a starting point for new projects. This template has its own helper script to make it easier to use. Compatibility with the docker-compose command is maintained.

The helper script of this dotfiles project should be reconciled with the helper script of the hyperfast-docker-template project.

Modify lfs-folderstore-init [email protected]

After cloning the repository, lfs-folderstore-init task initializes the LFS folderstore. The task is defined in the Taskfile.dist.yaml.tmpl file. The task is defined as follows:

  lfs-folderstore-init:
    desc: Initialize the LFS folderstore for the current Git repository
    dir: {{"'{{.USER_WORKING_DIR}}'"}}
    cmds:
      - git config --add lfs.customtransfer.lfs-folder.path "${HOME}/.local/bin/lfs-folderstore"
      - git config --add lfs.customtransfer.lfs-folder.args "{{ .lfs_folderstore.store_dir }}"
      - git config --add lfs.standalonetransferagent lfs-folder
      - git config lfs.url "https://localhost"

After this, you need to run git reset --hard main to apply the changes. Consider adding this command to the task or specify it in the task description.

Refer to the Git LFS: Shared Folder agent repository for more information about the lfs-folderstore tool.

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.