As I dig into the docs for sprites, I notice that while they come with prebuilt support for some languages, they ignore other like PHP. So I have to manually install PHP and Composer on each Sprite. It would be nice if I could have a base Sprite that I configure once then can clone for each unique Sprite I need.
I agree, that is the primary reason I couldn’t switch to sprites fully yet. Even though the sprites API is much better than all the other sandboxes I have tried so far.
Something like writing your own Dockerfile, that is then used as the base for the sprite image, would be very useful.
I believe sprite cloning is on the way. However I would regard this problem as trivially solvable another way; just create a one-off installation script:
Ah good to know thanks. Yeah installation scripts are too slow for me… I spin up sprites on demand to run LLM generated code isolated per conversation and user. So having the most common packages baked in from the start is quite useful. I don’t want to wait 2 min every time I let the LLM generate a latex document for me ![]()
If this is in response to user demand, keeping a queue of warm, pre-installed machines would be the way to go for now. You can always ask an employee when sprite cloning is coming, but historically they have (understandably) been cagey about putting timelines on things.
On a side note, I wonder if I haven’t really grokked sprites properly, and in particular what they bring to the table that can’t be done with machines. For your use-case I’d just use the machines creation API, and you can specify a base image. Or you could even spin up a base machine, make changes programmatically, then stop the machine, and start it on demand. It sounds like you’re going to have to use some kind of API either way, and as I say, machines can already do this.
I am embarrassed to admit that I didn’t look too closely at fly machines until now… But yes, looks like I could build on fly machines for what I need. Although not quite sure if I would need an app per machine to use endpoints such es `execute command` Fly Machines API Need to do some more reading.
What I really appreciate about sprites is file persistence and auto suspension without having to set up volumes manually and the API for file operations and command execution with web sockets. This makes it quite simple to embed it into my own application.
Yes, definitely look into machines. The payload for the /create endpoint allows the engineer to make a machine dynamically, including volume creation. I also use the "files" part of the payload to add custom configuration files to each machine. You probably don’t need an execute command as such; just ensure your basic app has an HTTP API on it, and then you can devise your own execute system.
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.