I have an Elixir library that I’d like to create interactive documentation for. I saw livebook and thought it would be a perfect fit. I am curious if its possible to write said documentation and then be able to create a sharable version of it that can be accessed by anyone.
I launched livebook via fly.io and did a little test page and then shared it. I opened it up on my phone and it asked me to authenticate.
Is my thinking off base to think that a livebook could be something like https://readme.com/ but with inline elixir code evaluation?
If you don’t mind that I install my dogecoin miner on the server, do it.
so is the whole point of livebook to be a private collaboration tool?
You have to trust all people using it.
Livebook in a sandbox would be cool, but there is no Elixir sandbox (that I know of).
would something like a sandbox be possible so a public livebook could be a thing?
Please do not ping the core team, there are a lot of people here, that can answer this question.
Afaik not. Not in a way that would make your Livebook secure. As code input is executed at the server, there is no way to prevent malicious code from running on it.
There are a few threads at this forum about sandboxing Elixir; there you’ll find explanations why it can’t be done (typing at mobile so hard to link)
Livebook seems to have its uses for sharing code snippets and working collaboratively on something, but be careful about opening it up to anyone as it exposes lots of security risks.
A Livebook notebook session is opening access to whatever server/computer the Livebook application is running on. When running in prod mode (highly recommended) anyone with a valid token authentication can use Elixir functions to inspect the filesystems, environment variables, run other programs, and create remote connections to other servers
The sharing part of livebook are not the instances but the files. As others have mentioned sharing the runtime in a secure way is simply not feasable.
The idea currently would be, that you create a liveview page and that people having access to a (their own) livebook server execute and play with it in there.
There was a discussion somewhere here about elixir running in browser. Maybe that could be a potential solution?
Edit: something like this JupyterLite: Jupyter ❤️ WebAssembly ❤️ Python | by Jeremy Tuloup | Jupyter Blog