Strap
一个用于引导最小化 macOS 开发系统的脚本。这并不假设你在进行 Ruby/Rails/Web 开发,而是安装每个 macOS 开发者都需要的最小软件集。
动机
在 GitHub 中用更好的工具替换 Boxen。这篇文章概述了 Boxen 的问题以及 Strap 和 GitHub 使用的其他工具的要求:https://mikemcquaid.com/2016/06/15/replacing-boxen/
功能
- 使用 TouchID 启用
sudo
- 在 Safari 中禁用 Java(为了更好的安全性)
- 立即启用 macOS 屏幕保护程序密码(为了更好的安全性)
- 启用 macOS 应用程序防火墙(为了更好的安全性)
- 在登录屏幕添加"发现此电脑?"信息(用于机器恢复)
- 启用全盘加密并将 FileVault 恢复密钥保存到桌面(为了更好的安全性)
- 安装 Xcode 命令行工具(用于编译器和 Unix 工具)
- 同意 Xcode 许可(为了使用编译器时不出现提示)
- 安装 Homebrew(用于安装命令行软件)
- 安装 Homebrew Bundle(用于支持类似
bundler
的Brewfile
) - 安装 Homebrew Services(用于管理 Homebrew 安装的服务)
- 安装 Homebrew Cask(用于安装图形界面软件)
- 安装最新的 macOS 软件更新(为了更好的安全性)
- 从用户的
https://github.com/username/dotfiles
仓库安装点文件。如果存在且可执行:运行script/setup
配置点文件,并在设置完其他所有内容后运行script/strap-after-setup
。 - 从用户
https://github.com/username/homebrew-brewfile
仓库中的Brewfile
或其主目录中的.Brewfile
安装软件。 - 一个简单的 Web 应用程序,用于设置 Git 的名称、电子邮件和 GitHub 令牌(需要授权访问任何你希望访问的组织)
- 幂等性
超出范围的功能
- 默认启用任何网络服务(相反,在需要时启用它们)
- 为组织中的每个人默认安装 Homebrew 配方(而是通过项目仓库中的
Brewfile
安装它们,而不是为整个组织强制使用配方) - 选择退出任何 macOS 更新(Apple 的安全更新和 macOS 更新是有原因的)
- 禁用安全功能(这些是最小的最佳实践集)
- 在安全屏幕信息中添加电话号码(想避免在安装时提示用户输入信息)
使用方法
在你的网络浏览器中打开 https://strap.mikemcquaid.com/。
或者,要在本地运行 Strap,请执行:
git clone https://github.com/MikeMcQuaid/strap
cd strap
bash bin/strap.sh # 或者 bash bin/strap.sh --debug 以获取更多调试输出
或者,要在本地运行 Web 应用程序,请执行:
git clone https://github.com/MikeMcQuaid/strap
cd strap
./script/bootstrap
GITHUB_KEY="..." GITHUB_SECRET="..." ./script/server
Strap 也可以在 Docker Hub(mikemcquaid/strap
)和 GitHub Packages(ghcr.io/mikemcquaid/strap
)上作为 Docker 镜像使用。
Web 应用程序配置环境变量
GITHUB_KEY
:GitHub.com 应用程序客户端 ID。GITHUB_SECRET
:GitHub.com 应用程序客户端密钥。SESSION_SECRET
:用于 cookie 会话存储的密钥。WEB_CONCURRENCY
:要运行的 Puma(Web 服务器)线程数(默认为 3)。STRAP_ISSUES_URL
:用户应该提交问题的 URL(默认为无 URL)。STRAP_BEFORE_INSTALL
:在 Web 应用程序中显示的用户在安装 Strap 之前需要遵循的说明(用<li>
标签包裹)。CUSTOM_HOMEBREW_TAP
:可选的 Homebrew tap,使用brew tap
安装。通过用空格分隔值来指定 brew tap 的多个参数。CUSTOM_BREW_COMMAND
:在所有其他阶段完成后运行的单个brew
命令。
状态
稳定且在积极开发中。
联系方式
许可证
基于 MIT 许可证。 完整的许可证文本可在 LICENSE.txt 中找到。