Hosting PlutoSliderServer on Digital Ocean

Hi there,
I have been using @fonsp 's Pluto for a bit and I am quite satisfied with it.
My next objective is setting up an interactive PlutoSliderServer to show some projects I have been working on.

In order to achieve this goal, I have tried following this guide and the ReadMe of the official repository, failing.

Here are the precise steps I have followed.

  1. Created a Droplet on DigitalOcean, with Ubuntu.
  2. Downloaded the following repo, in order to use the template notebook, GitHub - JuliaPluto/static-export-template: Demo page:
  3. Following this snippet, I have created a julia env and installed PlutoSliderServer inside it.
  4. Installed nginx and enabled it.
  5. Updated all packages and installed Julia following this snippet
  6. Created the service and the startups scripts, then enabled and started them.
  7. Checked if everything is running. Pluto looks to be running.

Now, I have several questions/problems.

  1. In this moment, I haven’t deployed the test notebooks on GitHub Pages. As far as I understand, it is possible to put the static HTML on GH Pages and run the server from a cloud service or host everything in the same place. Which is the recommended approach?
  2. After I start the pluto service, if I get disconnected (this maybe due to a poor internet connection) and I try to reconnect to the Droplet, I cannot reconnect: connection timed out.
  3. I don’t know understand exactly what I have to do. I don’t even have an error message to show to you. I have no experience with web development and so I do not even know what I should ask to you.

Is there any updated tutorial that I can follow? Btw, if you have suggestion on what I should be doing, I will follow your suggestions.

Thank you for your help,
Marco

3 Likes

That’s great to hear @marcobonici !

The blog post by Connor Burns is awesome, it gives a good overview of what the different parts are, and how they interact, but the installation instructions are outdated. I would recommend destroying the digitalocean droplet, creating a new one, and following the “Sample setup” from the PlutoSliderServer README. (Be sure to read the entire readme before you start!) I have recently followed these instructions on a digitalocean droplet and it worked great!

If you get disconnected after starting the service, this might be a sign that your droplet ran out of RAM, and it crashed and rebooted. You can verify this by going to your droplet’s page on digitalocean.com and looking at the memory graph. Do you see the memory spike up to 100%, and then drop down again? That means that you are running out of memory. A sawtooth wave pattern means that it is happening on every reboot.

And about question 1: I would start off not using GitHub Pages, and only using your digitalocean server. Later, when you are more comfortable with the setup, you could use a separate github pages setup (or better yet: netlify) to host the HTML pages, which link to your digitalocean server for interactive bond requests (using the Export_slider_server_url configuration, example).
The advantage would be reduced downtime (the website stays online if your digitalocean server crashes), permanent archival (github pages is free, so you can keep the non-interactive notebook online for a long time) and faster page load times (netlify has a fast, global CDN).

1 Like