{"id":26338722,"url":"https://github.com/fredodupoux/macosautomatedsetup","last_synced_at":"2026-04-18T04:02:45.082Z","repository":{"id":282259313,"uuid":"947383106","full_name":"fredodupoux/macOSAutomatedSetup","owner":"fredodupoux","description":"Streamline the setup process across multiple macOS machines.","archived":false,"fork":false,"pushed_at":"2026-03-13T04:18:19.000Z","size":32,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-13T10:49:26.802Z","etag":null,"topics":["brew","brewfile","it-admin","macos","tailscale"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/fredodupoux.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-12T15:48:12.000Z","updated_at":"2026-03-13T04:18:23.000Z","dependencies_parsed_at":"2025-04-23T16:25:17.523Z","dependency_job_id":"2e68bc64-b906-407a-9780-14ae946579f3","html_url":"https://github.com/fredodupoux/macOSAutomatedSetup","commit_stats":null,"previous_names":["fredodupoux/macosautomatedsetup"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fredodupoux/macOSAutomatedSetup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredodupoux%2FmacOSAutomatedSetup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredodupoux%2FmacOSAutomatedSetup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredodupoux%2FmacOSAutomatedSetup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredodupoux%2FmacOSAutomatedSetup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fredodupoux","download_url":"https://codeload.github.com/fredodupoux/macOSAutomatedSetup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredodupoux%2FmacOSAutomatedSetup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31955920,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["brew","brewfile","it-admin","macos","tailscale"],"created_at":"2025-03-16T03:14:44.431Z","updated_at":"2026-04-18T04:02:45.077Z","avatar_url":"https://github.com/fredodupoux.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# macOS Automated Setup Script\n\nAutomates the provisioning of macOS machines with applications, system settings, user management, and Tailscale connectivity. Designed for IT administrators often deploying multiple Macs.\n\n## Features\n\n| Step | Feature | Description |\n|------|---------|-------------|\n| 1 | **Configuration** | Collects all inputs upfront before execution begins |\n| 2 | **Rename Computer** | Sets ComputerName, HostName, and LocalHostName — runs first |\n| 3 | **Pre-flight Checks** | Verifies macOS 11+ and installs Xcode Command Line Tools |\n| 4 | **Homebrew** | Installs Homebrew (Intel \u0026 Apple Silicon support) |\n| 5 | **Tailscale** | Installs and authenticates Tailscale (optional, auth key or interactive) |\n| 6 | **Brewfile Apps** | Installs applications from your Brewfile |\n| 7 | **Hide IT Admin** | Hides an admin user from the login screen |\n| 8 | **Create User** | Creates a new user account for the end user |\n| 9 | **Security Settings** | Configures firewall, auto-updates, screen lock |\n| 10 | **Cleanup** | Optionally deletes the script and folder |\n\n## Quick Start\n\n**One-liner for fresh Mac:**\n\n```bash\ncurl -L -o macOSAutomatedSetup.zip https://github.com/fredodupoux/macOSAutomatedSetup/archive/refs/heads/main.zip \u0026\u0026 unzip macOSAutomatedSetup.zip \u0026\u0026 cd macOSAutomatedSetup-main \u0026\u0026 chmod +x automateSetup.sh \u0026\u0026 ./automateSetup.sh\n```\n\n## Configuration Prompts\n\nAll inputs are collected upfront before any changes are made to the system:\n\n| Prompt | Default | Description |\n|--------|---------|-------------|\n| Brewfile name | `brewfile` | Name of the Brewfile in the script directory |\n| New computer name | _(skip)_ | Max 63 chars, letters/numbers/spaces/hyphens |\n| New username | _(skip)_ | Lowercase, no spaces |\n| Full name | username | Display name for the new user |\n| Administrator? | Yes | Grant admin privileges to the new user |\n| Password | — | Hidden input, confirmed twice before proceeding |\n| Hide IT admin user? | Yes | Username to hide from the login screen |\n| Install Tailscale? | Yes | Whether to install and connect Tailscale |\n| Have a Tailscale auth key? | No | If yes, prompts for the key (hidden); if no, runs interactive browser login |\n| Delete script after setup? | Yes | Removes the setup folder on completion |\n\n## Brewfile Example\n\nCreate a `brewfile` in the same directory as the script:\n\n```ruby\n# Browsers\ncask \"google-chrome\"\ncask \"firefox\"\n\n# Productivity\ncask \"microsoft-office\"\ncask \"slack\"\ncask \"zoom\"\n\n# Utilities\ncask \"dropbox\"\ncask \"1password\"\n\n# CLI tools\nbrew \"git\"\nbrew \"wget\"\n```\n\n## Security Features\n\n- All inputs collected upfront — no mid-script interruptions\n- Tailscale auth key hidden when typing\n- User password hidden and confirmed twice before proceeding\n- Log file restricted to owner only (chmod 600)\n- Sensitive variables cleared from memory after use\n- Firewall and stealth mode enabled\n- Automatic security updates enabled\n- Screen lock password required immediately\n\n## macOS Settings Applied\n\n- Automatic update checks enabled\n- Automatic update downloads enabled\n- Critical security updates auto-install\n- Firewall enabled\n- Firewall stealth mode enabled (ignores ping)\n- Password required immediately after sleep/screensaver\n- Remote Apple events disabled\n\n## Logging\n\nAll output is logged to `~/mac_setup_YYYYMMDD_HHMMSS.log` with restricted permissions.\n\n## Requirements\n\n- macOS 11 (Big Sur) or later\n- Internet connection\n- Administrator privileges\n- Tailscale account (optional — supports auth key or interactive browser login)\n\n## License\n\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredodupoux%2Fmacosautomatedsetup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffredodupoux%2Fmacosautomatedsetup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredodupoux%2Fmacosautomatedsetup/lists"}