{"id":14968072,"url":"https://github.com/tsirysndr/crosup","last_synced_at":"2025-10-26T00:30:56.337Z","repository":{"id":170352600,"uuid":"646204150","full_name":"tsirysndr/crosup","owner":"tsirysndr","description":"Quickly setup your development environment on your Chromebook/ChromeOS , MacOS or any Linux distribution 🐧 ❄️ 💻 🚀 ✨","archived":false,"fork":false,"pushed_at":"2024-04-25T16:12:27.000Z","size":1072,"stargazers_count":51,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-30T02:48:18.874Z","etag":null,"topics":["chromebook","chromeos","chromeos-flex","command-line-tool","containers","debian","devbox","docker","environment-manager","flox","homebrew","nix","package-manager","vm"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tsirysndr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"tsirysndr","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null}},"created_at":"2023-05-27T16:11:02.000Z","updated_at":"2024-10-18T04:35:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"2734bf75-4d06-435a-a59f-8c2bceda6475","html_url":"https://github.com/tsirysndr/crosup","commit_stats":null,"previous_names":["tsirysndr/crosup"],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsirysndr%2Fcrosup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsirysndr%2Fcrosup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsirysndr%2Fcrosup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsirysndr%2Fcrosup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsirysndr","download_url":"https://codeload.github.com/tsirysndr/crosup/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237870917,"owners_count":19379378,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chromebook","chromeos","chromeos-flex","command-line-tool","containers","debian","devbox","docker","environment-manager","flox","homebrew","nix","package-manager","vm"],"created_at":"2024-09-24T13:39:12.106Z","updated_at":"2025-10-26T00:30:55.872Z","avatar_url":"https://github.com/tsirysndr.png","language":"Rust","funding_links":["https://github.com/sponsors/tsirysndr"],"categories":["Rust"],"sub_categories":[],"readme":"# Crosup 🐧 💻 🚀 ✨\n\n\u003cp\u003e\n  \u003ca href=\"https://flakehub.com/flake/tsirysndr/crosup\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/endpoint?url=https://flakehub.com/f/tsirysndr/crosup/badge\" /\u003e\n  \u003c/a\u003e\n\u003ca href=\"https://builtwithnix.org\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Built_With-Nix-5277C3.svg?logo=nixos\u0026labelColor=73C3D5\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://crates.io/crates/crosup\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/crates/v/crosup.svg\" /\u003e\n  \u003c/a\u003e\n  \n  \u003ca href=\"https://crates.io/crates/crosup\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/crates/dr/crosup\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/tsirysndr/crosup/actions/workflows/release.yml\" target=\"_blank\"\u003e\n    \u003cimg alt=\"release\" src=\"https://github.com/tsirysndr/crosup/actions/workflows/release.yml/badge.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"LICENSE\" target=\"./LICENSE\"\u003e\n    \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/badge/License-MIT-blue.svg\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cimg src=\"./preview.png\" width=\"100%\" style=\"margin-top: 20px; margin-bottom: 20px;\" /\u003e\n\nCrosup is a CLI tool to help you quickly setup your development environment on a new Chromebook (ChromeOS) or any Linux distribution. It is designed to be simple and easy to use.\n\n## ✨ Features\n- [x] Compatible with ChromeOS, Debian-based Linux, OpenSUSE, Fedora, RedHat, CentOS, Alpine and more!\n- [x] Detects your OS and installs the appropriate tools\n- [x] HCL/TOML configuration file\n- [x] Installs developer tools like docker, nix, devbox, homebrew, flox, fish, vscode, ble.sh, atuin, tig, fzf, httpie, kubectl, minikube, tilt, zellij, ripgrep, fd, eza, bat, glow, devenv and more!\n  \n## 🚚 Installation\n\n```sh\nbash \u003c(curl -sSL https://raw.githubusercontent.com/tsirysndr/crosup/master/install.sh)\n```\n\nCompiling from source:\n\n```bash\ngit clone https://github.com/tsirysndr/crosup.git\ncd crosup\nnix develop --experimental-features \"nix-command flakes\"\ncargo install --path crates/cli\n```\n\n## 📦 Supported OS\n- [x] ChromeOS (Debian Container)\n- [x] Debian-based Linux\n- [x] OpenSUSE\n- [x] Fedora\n- [x] RedHat\n- [x] CentOS\n- [x] Alpine\n- [x] Arch\n- [x] Gentoo\n- [x] Slackware\n\n## 🚀 Usage\n```\n             ______                __  __\n            / ____/________  _____/ / / /___\n           / /   / ___/ __ \\/ ___/ / / / __ \\\n          / /___/ /  / /_/ (__  ) /_/ / /_/ /\n          \\____/_/   \\____/____/\\____/ .___/\n                                    /_/\n\nQuickly install your development tools on your new Chromebook or any Linux distribution\n\nUSAGE:\n    crosup [SUBCOMMAND]\n\nOPTIONS:\n    -h, --help       Print help information\n    -V, --version    Print version information\n\nSUBCOMMANDS:\n    add        Add a new tool to the configuration file\n    diff       Show the difference between the current configuration and the previous one\n    help       Print this message or the help of the given subcommand(s)\n    history    Show the change history of the configuration file\n    init       Generate a default configuration file\n    install    Install developer tools, e.g. docker, nix, devbox, homebrew, fish, vscode, ble.sh\n                   ...\n    search     Search for a package in the nixpkgs repository\n```\n\n## 🛠️ Minimal Configuration\nThis is a minimal configuration file to install vim and git:\n\n```toml\n# Crosfile.toml\npackages = [\n  \"vim\",\n  \"git\"\n]\n```\n\nWhen you run `crosup install`, it will detect your OS and install the appropriate tools using nix [home-manager](https://nix-community.github.io/home-manager/) on your system.\n\n## 📝 Advanced Configuration\nCrosup uses a configuration file to determine which tools to install. The default configuration is embedded in the binary, but you can generate a default configuration file (Crosfile.hcl) using the `crosup init` subcommand, you can specify the default format using the `--toml` flag.\n\nExample of a Crosfile.toml (`crosup init --toml`) for a Debian-based system:\n\n```toml\n# Crosfile.toml\n[brew.install.pkg.minikube]\npreinstall = \"sudo apt-get install -y qemu-system libvirt-clients libvirt-daemon-system\"\npostinstall = \"\"\"\nsudo sed -i 's/#user = \\\"root\\\"/user = \\\"root\\\"/g' /etc/libvirt/qemu.conf\n            sudo sed -i 's/#group = \\\"root\\\"/group = \\\"root\\\"/g' /etc/libvirt/qemu.conf\n            sudo sed -i 's/#dynamic_ownership = 1/dynamic_ownership = 0/g' /etc/libvirt/qemu.conf\n            sudo sed -i 's/#remember_owner = 1/remember_owner = 0/g' /etc/libvirt/qemu.conf\"\"\"\n\n[brew.install.pkg.tilt]\n\n[brew.install.pkg.kubernetes-cli]\nversion_check = \"kubectl\"\n\n[brew.install.pkg.bat]\n\n[brew.install.pkg.direnv]\n\n[brew.install.pkg.eza]\n\n[brew.install.pkg.fd]\n\n[brew.install.pkg.fzf]\n\n[brew.install.pkg.fish]\n\n[brew.install.pkg.glow]\n\n[brew.install.pkg.httpie]\nversion_check = \"http\"\n\n[brew.install.pkg.tig]\n\n[brew.install.pkg.zellij]\n\n[brew.install.pkg.zoxide]\n\n[brew.install.pkg.ripgrep]\nversion_check = \"rg\"\n\n[brew.install.pkg.neovim]\nversion_check = \"nvim\"\n\n[git.install.repo.blesh]\nurl = \"https://github.com/akinomyoga/ble.sh.git\"\ninstall = \"make -C ble.sh install PREFIX=~/.local\"\npreinstall = \"sudo apt-get install -y gawk build-essential\"\npostinstall = \"echo 'source ~/.local/share/blesh/ble.sh' \u003e\u003e ~/.bashrc\"\ninstall_check = \"~/.local/share/blesh/ble.sh\"\nrecursive = true\ndepth = 1\nshallow_submodules = true\n\n[nix.install.pkg.flox]\nimpure = true\nexperimental_features = \"nix-command flakes\"\naccept_flake_config = true\npreinstall = \"echo 'extra-trusted-substituters = https://cache.floxdev.com' | sudo tee -a /etc/nix/nix.conf \u0026\u0026 echo 'extra-trusted-public-keys = flox-store-public-0:8c/B+kjIaQ+BloCmNkRUKwaVPFWkriSAd0JJvuDu4F0=' | sudo tee -a /etc/nix/nix.conf\"\nflake = \"github:flox/floxpkgs#flox.fromCatalog\"\n\n[nix.install.pkg.cachix]\nflake = \"github:cachix/cachix\"\n\n[nix.install.pkg.devenv]\naccept_flake_config = true\npreinstall = \"\"\"\necho \\\"trusted-users = root $USER\\\" | sudo tee -a /etc/nix/nix.conf\nsudo pkill nix-daemon\ncachix use devenv\"\"\"\nflake = \"github:cachix/devenv/latest\"\ndepends_on = [\"cachix\"]\n\n[curl.install.script.devbox]\nurl = \"https://get.jetpack.io/devbox\"\nshell = \"bash\"\ndepends_on = [\"nix\"]\n\n[curl.install.script.devbox.env]\nFORCE = \"1\"\n\n[curl.install.script.atuin]\nurl = \"https://raw.githubusercontent.com/ellie/atuin/main/install.sh\"\nshell = \"bash\"\n\n[curl.install.script.nix]\nurl = \"https://install.determinate.systems/nix\"\nenable_sudo = true\nargs = \"install --no-confirm\"\n\n[curl.install.script.homebrew]\nurl = \"https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh\"\npostinstall = \"echo 'eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)' \u003e\u003e ~/.bashrc\"\nversion_check = \"brew\"\nshell = \"bash\"\n\n[curl.install.script.homebrew.env]\nNONINTERACTIVE = \"true\"\n\n[apt.install.pkg.docker]\ngpg_key = \"https://download.docker.com/linux/debian/gpg\"\ngpg_path = \"/etc/apt/keyrings/docker.gpg\"\nsetup_repository = \"echo \\\"deb [arch=\\\"$(dpkg --print-architecture)\\\" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \\\"$(. /etc/os-release \u0026\u0026 echo \\\"$VERSION_CODENAME\\\")\\\" stable\\\" | sudo tee /etc/apt/sources.list.d/docker.list \u003e /dev/null\"\napt_update = true\npackages = [\n    \"docker-ce\",\n    \"docker-ce-cli\",\n    \"containerd.io\",\n    \"docker-buildx-plugin\",\n    \"docker-compose-plugin\",\n]\ndepends_on = [\n    \"ca-certificates\",\n    \"curl\",\n    \"gnupg\",\n]\npostinstall = \"sudo usermod -aG docker $USER \u0026\u0026 newgrp docker\"\n\n[apt.install.pkg.vscode]\nurl = \"https://code.visualstudio.com/sha/download?build=stable\u0026os=linux-deb-x64\"\nversion_check = \"code\"\n\n```\n\n## 🚀 As a GitHub Action\n\nYou can use crosup as a GitHub Action to install developer tools on your CI/CD pipeline.\n\n\n```yaml\nname: Setup Crosup\non:\n  push:\n    branches:\n      - master\n  pull_request:\n    branches:\n      - master\n  workflow_dispatch:\n\njobs:\n  setup-crosup:\n    runs-on: ubuntu-latest\n    continue-on-error: true\n    steps:\n      - name: Install Nix\n        uses: DeterminateSystems/nix-installer-action@v4\n      - name: Setup Crosup\n        uses: tsirysndr/setup-crosup@v1\n        with:\n          version: 'v0.5.0'\n          # Add packages to install here\n          packages: |\n            deno\n            zig\n      - name: Verify Crosup\n        run: crosup --version\n      - name: Verify Deno\n        run: deno --version\n      - name: Verify Zig\n        run: zig version\n```\n\nSee [action.yml](https://github.com/tsirysndr/setup-crosup/blob/master/action.yml) for the full documentation for this action's inputs and outputs.\n\n## 🤝 Contributing\nContributions, issues and feature requests are welcome!\nSee [CONTRIBUTING](./CONTRIBUTING.md) for more information.\n\n## 📝 License\n[MIT](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsirysndr%2Fcrosup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsirysndr%2Fcrosup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsirysndr%2Fcrosup/lists"}