# TerrariumExe
[](https://hex.pm/packages/terrarium_exe)
[](https://hexdocs.pm/terrarium_exe)
[](https://github.com/pepicrft/terrarium_exe/actions/workflows/terrarium_exe.yml)
[exe.dev](https://exe.dev) provider for [Terrarium](https://github.com/pepicrft/terrarium) sandbox environments.
exe.dev provides persistent Linux VMs with sub-second start times, unrestricted outbound internet access, and SSH-based access.
## Installation
```elixir
def deps do
[
{:terrarium_exe, "~> 0.1.0"}
]
end
```
## Usage
```elixir
# Configure
config :terrarium,
providers: [
exe: {Terrarium.Providers.Exe,
token: System.fetch_env!("EXE_DEV_TOKEN"),
ssh_key_path: "~/.ssh/id_ed25519"
}
]
# Create a sandbox
{:ok, sandbox} = Terrarium.create(:exe)
# Execute commands
{:ok, result} = Terrarium.exec(sandbox, "echo hello")
# File operations
:ok = Terrarium.write_file(sandbox, "/home/exedev/config.txt", "content")
{:ok, content} = Terrarium.read_file(sandbox, "/home/exedev/config.txt")
# Clean up
:ok = Terrarium.destroy(sandbox)
```
## Authentication
exe.dev uses token-based authentication. Tokens are generated by signing with your SSH key registered with exe.dev. See the [exe.dev API docs](https://exe.dev/docs/api) for token generation details.
## License
MIT