I want to create a droplet via API, run some tasks, then destroy it.

I was intending to run the tasks via a @reboot in crontab but this isn’t working, presumably because it isn’t technically a reboot (it does work if I reboot it immediately after creating it).

What alternative should I use? I need to run a .sh bash file I created.

Any ideas?


  • */1 * * * * <command> does not work either, so it looks like I actually need to log into the droplet first…

  • So the issue seems to be that you have to log into the new droplet first, then change the default password, then it will work, but this is not a suitable solution for me.

    Anyone know of any other ways to have tasks immediately from from a droplet creation via API without having to login for a first time?


These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
2 answers

You can use Cloud Init user data to pass either a bash script or a cloud-config file to the Droplet. See these tutorials for more info:

This is also accessible through the API. Here’s an example of passing user data through the control panel:

screenshot of the control panel

by Justin Ellingwood
The DigitalOcean metadata service includes a field called "user-data", which can be used to specify a script that will be run as your server is brought online. The CloudInit program, which runs these scripts, can process a special script type called "cloud-config". In this guide, we'll explore how to create cloud-config files and the best ways to leverage their power.