Awesome
analogsea
<img src="https://raw.githubusercontent.com/pachadotdev/analogsea/main/inst/analogsea.svg" width=150 align="center" alt="sticker"/>Use our link https://m.do.co/c/1d5a471e5f54, you'll get 100 usd in credits to try DO!
analogsea
is an R client for version 2 of the Digital Ocean API. See ?droplet_functions
after loading analogsea. It allows you to programatically create and destroy droplets (remote computers), and install various R related tools:
- R (done)
- RStudio Server (done)
- RStudio Shiny Server (done)
- OpenCPU (not yet)
- Use packrat to move a project to a droplet (not yet)
In addition, it allows you to use a readily available image with RStudio Server, Shiny Server and fully tidyverse from DigitalOcean Marketplace.
Docs: https://pacha.dev/analogsea/.
Use cases
Install
Stable version from CRAN
install.packages("analogsea")
Development version from GitHub
remotes::install_github("pachadotdev/analogsea")
library("analogsea")
Create a DO account
If you don't already have one, create a DO account. By using this link, you'll start with $100 in credits with a 2 months limit. This is enough for 1440 hours of computing on a machine with 4 GB memory and 2 dedicated CPUs.
Authenticate
The best way to authenticate is to generate a personal access token (https://cloud.digitalocean.com/settings/tokens/new) and save it in an environment variable called DO_PAT
. If you don't do this, you'll be prompted to authenticate in your browser the first time you use analogsea.
Make sure you provide DigitalOcean your public key at https://cloud.digitalocean.com/ssh_keys. Github has some good advice on creating a new public key if you don't already have one: https://help.github.com/articles/generating-ssh-keys/.
It is highly recommended to use DO_PAT
, it's easier and allows (semi) automated tasks.
To use ssh keys install the recommended ssh package: r install.packages("ssh")
.
Get droplets
All droplets
droplets()
<r> droplets()
$unintrenchable
<droplet>unintrenchable (2724525)
Status: off
Region: San Francisco 1
Image: Ubuntu 14.04 x64
Size: 512mb ($0.00744 / hr)
$basipterygium
<droplet>basipterygium (2724526)
Status: active
Region: San Francisco 1
Image: Ubuntu 14.04 x64
Size: 512mb ($0.00744 / hr)
A single droplet. Pass in a single droplet id.
droplet(2724525)
<droplet>unintrenchable (2724525)
Status: off
Region: San Francisco 1
Image: Ubuntu 14.04 x64
Size: 512mb ($0.00744 / hr)
Spin up a new droplet
To make this as dead simple as possible, you just use one function, without any parameters.
droplet_create()
Using default ssh key: Jane Doe
NB: This costs $0.00744 / hour until you droplet_delete() it
<droplet>sabaoth (2727258)
Status: new
Region: San Francisco 1
Image: Ubuntu 14.04 x64
Size: 512mb ($0.00744 / hr)
You can of course pass in lots of options for name of the droplet, RAM size, disk size, ssh keys, etc. See regions()
and sizes()
to list available regions and sizes.
Delete a droplet
droplet_delete(1707487)
Chaining
Most of the droplet_*
functions can be chained together using the %>%
function. For example, you can turn a droplet off, snapshot, and then turn it back on with:
d %>%
droplet_power_off() %>%
droplet_snapshot() %>%
droplet_power_on() %>%
R/RStudio
We're still working on these, but would love feedback.
By default, analogsea
creates an Ubuntu 20.04 image. Let's say you've got ten students from an R workshop, then you can run
droplet_create("rstudio-20-04")
users <- list(
user = paste0("student", 1:5),
password = sapply(rep(8,5), create_password)
)
for (i in seq_along(users$user)) {
ubuntu_create_user(x, users$user[i], users$password[i], keyfile = "~/.ssh/id_rsa")
}
Then, each student shall be able to open RStudio from the browser, by visiting http://123.456.789:8787 and accessing with studentX (X = 1,...,10) and the password created.
To install more R packages, you can make them readily available for all the users that have access to your droplet with
ubuntu_install_r() # ohlf if you didn't use the RStudio image
install_r_package("arrow")
Shiny
The RStudio Server image also features readily available Shiny Server, but we provide the functions ubuntu_install_shiny()
and docklet_shinyserver()
(requires to use the Docker image, i.e. docklet_create()
) to configure Shiny from scratch.
Install RStudio Server
For the standard Ubuntu image you can use ubuntu_install_rstudio()
.
For dockerized RStudio you have the next option:
docklet_create() %>%
docklet_rstudio()
This will install R, RStudio Server and it's dependencies. It will automatically pop open the RStudio server instance in your default browser, with default username/password
of rstudio/server
.
Meta
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.