I work on two different computers and routinely need to transfer secrets between them. I used to paste those secrets in another application - whether that be through Discord chat or any other means - and delete them after copying and pasting. Other times, I regenerate credentials when I forgot them. This is error-prone, and sharing these secrets in other applications is not safe. envlink removes that friction by providing a centralized, secure place to store and sync your projects' .env files so you can access the right secrets on any machine without sharing them elsewhere.
- Go (Golang)
- Cobra: Go library for building CLI applications
- Gin: Go HTTP web framework for building APIs
- Supabase (PostgreSQL): Database for storing information
- Docker: To containerize the server code for deployment
- Railway (tentative): To host the server
cmd/cli/main.go: the CLI entrypoint that callscli.Execute()internal/cli/: cobra-based command definitionsroot.go: root command with flags and viper config- all other files in this directory are the commands for envlink
server/: HTTP server code with API endpoints, controllers, and routers.dockerignore: I am using Railway to host the server code, and I don't want my CLI related code in the docker image that Railway makes
login: log in to envlinkregister: register an accountpush: push .env to storagepull: pull latest .env changesprojects: list all stored .env filesstore: store your secret key
From the repo root:
go run ./cmd/cli {command}From the CLI directory:
cd cmd/cli
go run . {command}