{"id":16962954,"url":"https://github.com/vincentkoc/natilius","last_synced_at":"2025-10-29T06:52:05.418Z","repository":{"id":65644275,"uuid":"596399241","full_name":"vincentkoc/natilius","owner":"vincentkoc","description":"🐚  Automated one-click developer and engineering environment setup on Mac OS","archived":false,"fork":false,"pushed_at":"2024-10-26T02:59:53.000Z","size":685,"stargazers_count":38,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-15T15:12:21.951Z","etag":null,"topics":["development-environment","homebrew","macos"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vincentkoc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"vincentkoc","buy_me_a_coffee":"vincentkoc"}},"created_at":"2023-02-02T04:59:08.000Z","updated_at":"2025-02-19T08:37:25.000Z","dependencies_parsed_at":"2024-08-22T06:03:12.400Z","dependency_job_id":"6532c471-951d-4204-995c-4eba5dfb281f","html_url":"https://github.com/vincentkoc/natilius","commit_stats":null,"previous_names":["vincentkoc/natilius"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vincentkoc%2Fnatilius","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vincentkoc%2Fnatilius/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vincentkoc%2Fnatilius/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vincentkoc%2Fnatilius/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vincentkoc","download_url":"https://codeload.github.com/vincentkoc/natilius/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244971727,"owners_count":20540839,"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":["development-environment","homebrew","macos"],"created_at":"2024-10-13T23:22:57.782Z","updated_at":"2025-10-29T06:52:05.413Z","avatar_url":"https://github.com/vincentkoc.png","language":"Shell","funding_links":["https://github.com/sponsors/vincentkoc","https://buymeacoffee.com/vincentkoc"],"categories":["Deployment und Betrieb"],"sub_categories":["Self-Hosted Deployment und Infrastruktur"],"readme":"# Natilius 🐚\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/natilius_image.png\" alt=\"Natilius Logo\" width=\"200\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eAutomated One-Click Mac Developer Environment Setup\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e •\n  \u003ca href=\"#quick-start\"\u003eQuick Start\u003c/a\u003e •\n  \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e •\n  \u003ca href=\"#customization\"\u003eCustomization\u003c/a\u003e •\n  \u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e •\n  \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/vincentkoc/natilius\" alt=\"License\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/stars/vincentkoc/natilius\" alt=\"Stars\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/forks/vincentkoc/natilius\" alt=\"Forks\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/issues/vincentkoc/natilius\" alt=\"Issues\"\u003e\n\u003c/p\u003e\n\nNatilius is a powerful, customizable, and easy-to-use tool that automates the setup of a complete Mac development environment. With just one click, it installs and configures essential developer tools, applications, and settings, saving you hours of manual setup time.\n\n## Features\n\n- 🚀 **One-Click Setup**: Get your Mac ready for development in minutes, not hours.\n- 🛠 **Customizable**: Easily tailor the setup to your specific needs.\n- 📦 **Comprehensive**: Installs and configures a wide range of development tools and applications.\n- 🔒 **Secure**: Implements best practices for macOS security settings.\n- 🔄 **Idempotent**: Safely run multiple times without side effects.\n- 📊 **Modular**: Easily extend or modify functionality.\n\n## Customization\n\nNatilius is highly customizable. Edit the `.natiliusrc` file in your home directory to tailor the installation to your needs. You can:\n\n- Choose which development environments to set up (e.g., Python, Node.js, Ruby)\n- Select which applications to install\n- Configure macOS preferences\n- And much more!\n\n## What Gets Installed?\n\nNatilius can set up a complete development environment, including:\n\n- Xcode Command Line Tools\n- Homebrew and essential formulae\n- Programming languages and version managers (e.g., Python, Node.js, Ruby)\n- Developer tools (e.g., Git, Docker, Visual Studio Code)\n- Productivity apps (e.g., Alfred, iTerm2)\n- And much more!\n\nCheck the [full list of installed software](docs/installed-software.md) for details.\n\n## Why Natilius?\n\n- **Time-saving**: Set up your development environment in minutes, not hours or days.\n- **Consistency**: Ensure all your Macs have the same setup, great for teams.\n- **Best Practices**: Implements security and performance best practices out of the box.\n- **Customizable**: Easily adapt to your specific needs and preferences.\n- **Open Source**: Benefit from community contributions and transparency.\n\n## How It Works\n\nNatilius uses a modular approach to set up your Mac:\n\n1. **System Update**: Ensures your Mac is up-to-date and installs necessary components like Xcode CLI tools.\n2. **Security**: Implements best-practice security settings for macOS.\n3. **Homebrew**: Installs Homebrew and manages package installations.\n4. **Development Environments**: Sets up various language environments (Python, Node.js, Ruby, etc.).\n5. **Applications**: Installs and configures both CLI and GUI applications.\n6. **macOS Preferences**: Configures macOS settings for optimal development experience.\n\nEach step is customizable and can be enabled or disabled as needed.\n\n## Installation\n\nTo install Natilius, follow these steps:\n\n1. Open Terminal on your Mac.\n2. Run the following command to download and install Natilius:\n\n   ```\n   /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/vincentkoc/natilius/main/install.sh)\"\n   ```\n\n3. Follow the on-screen prompts to complete the installation.\n\n## Quick Start\n\nAfter installing Natilius, you can quickly set up your Mac development environment:\n\n### Basic Setup\n```bash\n# Run the full setup\nnatilius setup\n\n# Or run interactively to choose modules\nnatilius --interactive setup\n```\n\n### Check Before Installing\n```bash\n# See what would be installed without making changes\nnatilius --check\n\n# Run system diagnostics\nnatilius doctor\n\n# List all available modules\nnatilius list-modules\n```\n\n## Usage\n\nNatilius provides a comprehensive CLI interface with multiple commands and options:\n\n### Commands\n\n```bash\nnatilius setup           # Run the full setup process (default)\nnatilius doctor          # Run system diagnostics and health checks\nnatilius list-modules    # List all available modules\nnatilius version         # Show version information\nnatilius help            # Show help message\n```\n\n### Options\n\n```bash\n-v, --verbose       # Enable verbose output\n-q, --quiet         # Suppress non-error output\n-i, --interactive   # Run in interactive mode\n-c, --check         # Run in check/dry-run mode (no changes)\n-p, --profile NAME  # Use a specific configuration profile\n--dry-run           # Same as --check\n-h, --help          # Show help message\n```\n\n### Examples\n\n```bash\n# Basic usage\nnatilius                    # Run default setup\nnatilius --check            # Dry run to see what would be done\nnatilius doctor             # Run system diagnostics\nnatilius list-modules       # Show available modules\n\n# Advanced usage\nnatilius -v setup           # Run setup with verbose output\nnatilius -i setup           # Run setup in interactive mode\nnatilius -p work setup      # Use 'work' profile configuration\nnatilius --quiet setup      # Run setup with minimal output\n```\n\n### System Diagnostics\n\nThe `doctor` command provides comprehensive system analysis:\n\n- ✅ System information (macOS version, architecture)\n- ✅ Development tools verification (Xcode, Homebrew, Git)\n- ✅ Configuration validation\n- ✅ Disk space monitoring\n- ✅ Network connectivity testing\n- ✅ Security settings analysis\n- ✅ Apple Silicon compatibility (Rosetta 2)\n\n### Shell Completions\n\nNatilius includes shell completions for enhanced productivity:\n\n```bash\n# Bash\nsource completions/natilius-completion.bash\n\n# Zsh\nsource completions/natilius-completion.zsh\n```\n\nFor more detailed usage instructions, run `natilius help`.\n\n## Development\n\n### Prerequisites\n\n- macOS (for full testing)\n- Homebrew (recommended)\n- Git\n\n### Quick Development Setup\n\n```bash\n# Clone and setup\ngit clone https://github.com/vincentkoc/natilius.git\ncd natilius\nmake dev-setup\n```\n\n### Development Commands\n\n```bash\nmake help           # Show all available commands\nmake test           # Run unit tests\nmake test-all       # Run all tests\nmake lint           # Run shellcheck linting\nmake precommit      # Run pre-commit hooks\nmake coverage       # Generate coverage report\nmake check-version  # Check version consistency\nmake release-check  # Check if ready for release\n```\n\n### VS Code Development\n\nNatilius includes a complete VS Code devcontainer setup:\n\n1. Open the repository in VS Code\n2. Click \"Reopen in Container\" when prompted\n3. Everything will be automatically configured!\n\n### Testing\n\nNatilius uses BATS (Bash Automated Testing System) for testing:\n\n```bash\n# Run specific test suites\nmake test              # Unit tests\nmake integration-test  # Integration tests\nmake test-config       # Configuration tests\n\n# Coverage analysis\nmake coverage\n```\n\n## Contributing\n\nWe welcome contributions! Whether it's bug reports, feature requests, or code contributions, please feel free to contribute.\n\n### Development Process\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Run tests: `make test-all`\n5. Run linting: `make lint`\n6. Submit a pull request\n\nSee our [Contributing Guide](CONTRIBUTING.md) for more details.\n\n## License\n\nNatilius is open-source software licensed under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for more details.\n\n## Acknowledgments\n\nNatilius stands on the shoulders of giants. We'd like to thank:\n\n- [Homebrew](https://brew.sh/)\n- [Oh My Zsh](https://ohmyz.sh/)\n- And all the amazing open-source projects that make Natilius possible.\n\n## Support\n\nIf you find Natilius useful, please consider starring the repository on GitHub. It helps others discover the project and motivates further development.\n\nFor issues, feature requests, or questions, please use the [GitHub Issues](https://github.com/vincentkoc/natilius/issues) page.\n\n## Roadmap\n\n- [ ] Add support for more development environments and applications\n- [ ] Implement a GUI for easier customization\n- [ ] Create a web-based configuration generator\n- [ ] Add support for Linux distributions\n\n---\n\n\u003cp align=\"center\"\u003e\n  Made with ❤️ by \u003ca href=\"https://github.com/vincentkoc\"\u003eVincent Koc\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvincentkoc%2Fnatilius","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvincentkoc%2Fnatilius","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvincentkoc%2Fnatilius/lists"}