Skip to content

nolte/workstation

Repository files navigation

workstation

Build Release Drafter Auto-merge

This project uses chezmoi to provision developer workstations from a single source tree: asdf-pinned command-line interface (CLI) tool versions, a baseline git configuration, zsh plugins, and a reusable Taskfile collection. It targets developers who want a reproducible, idempotent setup across machines.

Purpose

  • Provision a developer workstation deterministically with chezmoi: one chezmoi init --apply brings a fresh machine to a known state.
  • Pin CLI tool versions through asdf so every machine resolves the same versions, kept current by Renovate.
  • Ship a baseline git configuration, zsh plugins, and a reusable Taskfile collection without per-machine hand-editing.
  • This repository targets the workstation operator applying it to their own machine — not application code or project scaffolding.

Features

Package manager (asdf)

Manage a set of extra repositories, not managed at asdf-vm/asdf-plugins

Git

The basic Git configurations such as default branch are pre-configured.

zsh

The local terminal is optimized with various extensions to further increase productivity.

Taskfile

A reusable go-task/task collection for working with the installed tools.

Usage

Initial setup

Requires chezmoi installed on the target machine.

Before you can start, create a local configuration at ~/.config/chezmoi/chezmoi.toml with the information required for file generation:

[data]
    git_email = "<EmailForGitConfig>"
    git_name  = "<NameForGitConfig>"

See the chezmoi configuration reference for details. Use this repository as your dotfile source:

chezmoi init --apply --verbose https://github.com/nolte/workstation.git

Day-to-day

Pull the latest changes and apply them, or preview and apply local edits:

chezmoi update
chezmoi apply

See the chezmoi quick-start guide for more commands.

Structure

.chezmoiroot            # points chezmoi at chezmoi_config/ as the source dir
chezmoi_config/         # the chezmoi source tree applied to target machines
  dot_tool-versions     # asdf tool versions (-> ~/.tool-versions)
  dot_gitconfig.tmpl    # templated git config (-> ~/.gitconfig)
  run_onchange_*.sh     # provisioning hooks (plugins, asdf install, venvs)
  .chezmoiexternal.toml # external sources (zsh plugins, taskfile collection)
docs/                   # MkDocs documentation source
.github/                # CI workflows and repository configuration

Everything outside chezmoi_config/ is repository tooling and is not delivered to target machines.

Related repositories

  • nolte/gh-plumbing — reusable GitHub workflows and Probot/Renovate presets this repository extends.
  • nolte/taskfiles — the reusable Taskfile collection fetched onto provisioned machines.
  • nolte/vale-style — the Vale prose-style package used to lint this repository's docs.

Development

Repo-level checks run from the repository root via the root Taskfile.yml:

  • task lint — run pre-commit across all files.
  • task test — lint prose with Vale against the shared nolte/vale-style rules.
  • task docs:build — build the documentation site with mkdocs build --strict.

The develop branch is the integration branch; main is fast-forwarded only on release publish.

Status

Early stage, personal-use. Actively maintained for a single operator's Linux workstation; interfaces may change without notice.

License

MIT © 2026 nolte

About

Local Workstation Configuration

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors