Skip to main content

Dotfiles management package

Project description

🗜 Welcome to Machineconfig

Your stack is awesome, but you need a stack manager, to have a tight grip over it, put it together and maintain it. Entering, Machineconfig, a cli-based cross-platform Stack Manager — It is a swiss-army knife; a Package Manager, Configuration Manager, Automation Tool, Dotfiles Manager, Data Solution, and Code Manager, among other functionalities covered, all rolled into one seamless experience, that is consistent across different platforms.

Workflow:

What is your stack? Say you have a new computer/ VM, how do you go about setting it up with your stack? Surely, you have:

  • A bunch of CLI tools.
  • [Optional] A bunch of softwares (GUIs for desktop environment)
  • [Public] A bunch of configuration files for your tools.
  • [Private] A bunch of secrets, passowords, tokens, credentials etc, etc.
  • Data (Both highly sensitive and encrypted less serious unencrypted data)
  • Code (your repositories).

Wouldn't be nice if you can set it all up in 2 minutes? This is a hackable tool to get it done.

Consider this concrete scenario: When setting up a new machine, VM, or Docker container, you often face dependency chains like this:

flowchart TD
    A["Need to setup my [dev] environment"] --> B["need my tool x, e.g.: yadm"]
    B --> C["Requires git"]
    C --> D["Requires package manager, e.g. brew"]
    D --> E["Requires curl"]
    E --> F["Requires network setup / system update"]
    F --> G["Requires system configuration access"]
    G --> H["Finally ready to start setup the tool x."]

Machineconfig builds on shoulder of giants. A suite of best-in-class stack of projects on github are used, the most starred, active and written in Rust tools are used when possible. The goal is to provide a seamless experience that abstracts away the complexity of setting up and maintaining your digital environment. The goal of machineconfig is to replicate your setup, config, code, data and secrets on any machine, any os, in 5 minutes, using minimal user input. Then, from that point, machineconfig will help you maintain, update, backup and sync your digital life across all your devices, automatically.

⚙️ Functional Overview

Category Comparable Tools Description
Package Manager winget, apt, brew, nix Installs and manages software packages across systems.
Configuration Manager Ansible, Chef, Puppet Configures and maintains system‐level preferences.
Automation Tool Airflow, Prefect, Dagster, Celery Automates repetitive tasks, pipelines, orchestration.
Dotfiles Manager chezmoi, yadm, rcm, GNU Stow Synchronises dotfiles & personal configs across systems.
Data Solution rclone, rsync Handles backups, mirroring and secure file sync.
Code Manager strong‐box, Vault Manages and protects code snippets, secrets and creds.

Install On Windows:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"  # Skip if UV is already installed
uv tool install --upgrade --python 3.14 machineconfig

Install On Linux and MacOS

curl -LsSf https://astral.sh/uv/install.sh | sh  # Skip if UV is already installed
uv tool install --upgrade --python 3.14 machineconfig

Quickies ...

# interactive install of machineconfig and following on to run it and make basic machine configuration (RECOMMENDED):
irm bit.ly/cfgwindows | iex  # Or, if UV is installed: iex (uvx machineconfig define)
# Quick install and configure (optionals are accepted by default):
irm bit.ly/cfgwq | iex
# interactive install of machineconfig and following on to run it and make basic machine configuration (RECOMMENDED):
. <(curl -L bit.ly/cfglinux) # Or, if UV is installed: . <(uvx machineconfig define)

Author

Alex Al-Saffar. email

Contributor

Ruby Chan. email

Alex's github activity graph

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcfg-8.36.tar.gz (671.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcfg-8.36-py3-none-any.whl (888.4 kB view details)

Uploaded Python 3

File details

Details for the file mcfg-8.36.tar.gz.

File metadata

  • Download URL: mcfg-8.36.tar.gz
  • Upload date:
  • Size: 671.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"21.3","id":"virginia","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mcfg-8.36.tar.gz
Algorithm Hash digest
SHA256 718f31fd732f1e5bbcc338c509d31b31b058b2eada4ced4ecc9a856ca733dbfe
MD5 c362dd2675444d8e2cb72511fc0a7162
BLAKE2b-256 8f089db8710c5b56f3ec75da1220d900ae9c28cf6f35db87b540a7aa7d2c6723

See more details on using hashes here.

File details

Details for the file mcfg-8.36-py3-none-any.whl.

File metadata

  • Download URL: mcfg-8.36-py3-none-any.whl
  • Upload date:
  • Size: 888.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"21.3","id":"virginia","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mcfg-8.36-py3-none-any.whl
Algorithm Hash digest
SHA256 899e15aff449f5314b41b4e87f77b44c3057fd7b0b99a57434a0ad616b39f847
MD5 3b4b3a2fd824f4239c443b4b27160094
BLAKE2b-256 477fbe8ee95614502f5d32250430d90ba967b28bab063dfcc932e0eb99149278

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page