自从开始ai coding之后,工作时有了更多的空闲时间。正好最近也在用ai coding做一些个人项目,我就在想能不能在工作时间偶尔摸摸鱼,看看ai coding的运行情况。刚好看到opencode有web能力,可以通过浏览器访问,而家里有一台一直开机的nas。一拍即合,那就在nas上搭建一个opencode开发环境
准备工作
Dockerfile
opencode本身是直接支持通过docker安装的,但是开发时我们需要使用的git等工具,在官方的镜像中是没有包含的,因此我们需要自己创建一个Docker镜像,将需要用到的工具打包到镜像中去
1 | FROM ghcr.io/anomalyco/opencode:latest |
docker-compose.yaml
创建一个docker-compose文件,端口根据需要进行修改。environment中的相关环境变量,放到.env 文件中,.env文件和docker-compose.yaml文件在同一个目录中。
1 | services: |
.env文件
环境变量配置模板如下
1 | OPENCODE_SERVER_USERNAME=opencode |
OpenCode启动与验证
在nas上完成上一步的准备工作后,启动docker, 通过 4096 端口就可以访问opencode的web服务。按照opencode官方文档进行大模型接入配置,就可以快乐开始vibe coding了。
Git配置
进行git配置前需要进入docker容器。
SSH配置
- 创建ssh key:
ssh-keygen -t ed25519 -C "email@example.com", 其中 passphrase 可以直接留空 - 将生成的公钥, 文件以
.pub结尾,配置到github: Setting -> SSH and GPG keys 页面中的SSH keys. Key Type为Authentication Key - 尝试通过ssh来clone一下仓库,验证配置的正确性
commit签名配置
github支持ssh签名和gpg签名,其中ssh签名配置比较简单,我也选择使用了ssh签名
- 创建ssh key:
ssh-keygen -t ed25519 -C "email@example.com", 其中 passphrase 可以直接留空, 注意文件名修改下,不要和ssh登录的文件名相同,否则会覆盖之前生成的key。 这里我们命名为sign_ed25519 - 将生成的公钥, 文件以
.pub结尾,配置到github: Setting -> SSH and GPG keys 页面中的SSH keys. Key Type为Signing Key - 开启commit加签配置
git config --global user.signingkey ~/.ssh/sign_ed25519.pubgit config --global user.signingkeygit config --global commit.gpgsign true
- 尝试做一个提交验证配置的正确性,在github上查看commit是否有签名
如此,再利用内网穿透,就可以在上班的时候打开浏览器,随时看下ai打工人的进度啦