Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pachadotdev/analogsea
Digital Ocean R client
https://github.com/pachadotdev/analogsea
cloud-computing droplet rstats ssh
Last synced: 10 days ago
JSON representation
Digital Ocean R client
- Host: GitHub
- URL: https://github.com/pachadotdev/analogsea
- Owner: pachadotdev
- License: apache-2.0
- Created: 2014-05-24T17:54:43.000Z (over 10 years ago)
- Default Branch: main
- Last Pushed: 2024-05-01T14:23:13.000Z (6 months ago)
- Last Synced: 2024-10-11T19:21:12.682Z (about 1 month ago)
- Topics: cloud-computing, droplet, rstats, ssh
- Language: R
- Homepage: https://pacha.dev/analogsea/
- Size: 1.59 MB
- Stars: 156
- Watchers: 8
- Forks: 24
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Changelog: NEWS.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codemeta: codemeta.json
Awesome Lists containing this project
- jimsghstars - pachadotdev/analogsea - Digital Ocean R client (R)
README
analogsea
=========[![codecov.io](https://codecov.io/github/pachadotdev/analogsea/coverage.svg?branch=master)](https://codecov.io/github/pachadotdev/analogsea?branch=master)
[![rstudio mirror downloads](https://cranlogs.r-pkg.org/badges/analogsea)](https://github.com/r-hub/cranlogs.app)
[![cran version](https://www.r-pkg.org/badges/version/analogsea)](https://cran.r-project.org/package=analogsea)
[![R-CMD-check](https://github.com/pachadotdev/analogsea/actions/workflows/R-CMD-check.yml/badge.svg)](https://github.com/pachadotdev/analogsea/actions/workflows/R-CMD-check.yml)
[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html#stable)**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](https://marketplace.digitalocean.com/apps/rstudio).
Docs: https://pacha.dev/analogsea/.
## Use cases
- Andrew Heiss: [Create a cheap, disposable supercomputer with R, DigitalOcean, and future](https://www.andrewheiss.com/blog/2018/07/30/disposable-supercomputer-future/)
## Install
Stable version from CRAN
```r
install.packages("analogsea")
```Development version from GitHub
```r
remotes::install_github("pachadotdev/analogsea")
``````r
library("analogsea")
```## Create a DO account
If you don't already have one, [create a DO account](https://m.do.co/c/1d5a471e5f54). 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
```r
droplets()
``````r
droplets()
$unintrenchable
unintrenchable (2724525)
Status: off
Region: San Francisco 1
Image: Ubuntu 14.04 x64
Size: 512mb ($0.00744 / hr)$basipterygium
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.
```r
droplet(2724525)
``````r
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.
```r
droplet_create()
``````r
Using default ssh key: Jane Doe
NB: This costs $0.00744 / hour until you droplet_delete() it
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
```r
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:
```r
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
```r
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
```r
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:
```r
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](https://github.com/pachadotdev/analogsea/blob/master/CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.