All Projects → pachadotdev → analogsea

pachadotdev / analogsea

Licence: Apache-2.0 license
Digital Ocean R client

Programming Languages

r
7636 projects
Makefile
30231 projects

Projects that are alternatives of or similar to analogsea

cb-tumblebug
Cloud-Barista Multi-Cloud Infra Management Framework
Stars: ✭ 33 (-76.76%)
Mutual labels:  cloud-computing
Implementaion-of-Private-Cloud-using-ownCloud
Implementation of Private Cloud using ownCloud. ownCloud is a suite of client–server software for creating and using file hosting services. This repository explains implementing ownCloud on an Ubuntu VM running on top of a Windows host for secure cloud storage
Stars: ✭ 30 (-78.87%)
Mutual labels:  cloud-computing
Host-Load-Prediction-with-LSTM
host load prediction with Long Short-Term Memory in cloud computing
Stars: ✭ 28 (-80.28%)
Mutual labels:  cloud-computing
prometheus-spec
Censorship-resistant trustless protocols for smart contract, generic & high-load computing & machine learning on top of Bitcoin
Stars: ✭ 24 (-83.1%)
Mutual labels:  cloud-computing
bisqueUCSB
BisQue is an ML Platform for storing, analyzing, and visualizing your data all in the browser.
Stars: ✭ 26 (-81.69%)
Mutual labels:  cloud-computing
dots
digital ocean api typescript/javascript wrapper
Stars: ✭ 65 (-54.23%)
Mutual labels:  droplet
Invtero.net
inVtero.net: A high speed (Gbps) Forensics, Memory integrity & assurance. Includes offensive & defensive memory capabilities. Find/Extract processes, hypervisors (including nested) in memory dumps using microarchitechture independent Virtual Machiene Introspection techniques
Stars: ✭ 237 (+66.9%)
Mutual labels:  cloud-computing
tencent-cam-policy
Easily create an Tencent CAM Policy with Serverless Components
Stars: ✭ 20 (-85.92%)
Mutual labels:  cloud-computing
awesome-cloud-native-security
awesome resources about cloud native security 🐿
Stars: ✭ 233 (+64.08%)
Mutual labels:  cloud-computing
steep
⤴️ Steep Workflow Management System – Run scientific workflows in the Cloud
Stars: ✭ 30 (-78.87%)
Mutual labels:  cloud-computing
lynnlangit
Lynn Langit profile
Stars: ✭ 46 (-67.61%)
Mutual labels:  cloud-computing
awesome-aws-research
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources for Academic Researchers new to AWS
Stars: ✭ 41 (-71.13%)
Mutual labels:  cloud-computing
MicrosoftCloudWorkshop-Asia
Microsoft Cloud Workshop Asia for Intelligent Cloud / Intelligent Edge
Stars: ✭ 20 (-85.92%)
Mutual labels:  cloud-computing
DeployMachineLearningModels
This Repo Contains Deployment of Machine Learning Models on various cloud services like Azure, Heroku, AWS,GCP etc
Stars: ✭ 14 (-90.14%)
Mutual labels:  cloud-computing
infra
Infrastructure management for Google Cloud Platform
Stars: ✭ 14 (-90.14%)
Mutual labels:  cloud-computing
Friendup
Friend OS is the Internet Operating System for any device, running on posix compatible hosts. Also known as the Friend Unifying Platform.
Stars: ✭ 241 (+69.72%)
Mutual labels:  cloud-computing
PainlessDocker
Painless Docker book git repository.
Stars: ✭ 17 (-88.03%)
Mutual labels:  cloud-computing
MERlin
MERlin is an extensible analysis pipeline applied to decoding MERFISH data
Stars: ✭ 19 (-86.62%)
Mutual labels:  cloud-computing
datajoint-python
Relational data pipelines for the science lab
Stars: ✭ 140 (-1.41%)
Mutual labels:  cloud-computing
theeye-of-sauron
TheEye Dockers and QuickStart
Stars: ✭ 27 (-80.99%)
Mutual labels:  cloud-computing

analogsea

codecov.io rstudio mirror downloads cran version R-CMD-check Lifecycle: stable

sticker

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].