MyNixOS website logo
Description

Deploy '_server.yml' Compliant Applications to 'DigitalOcean'.

Provides tools to deploy R web server applications that follow the '_server.yml' standard. This standard allows different R server frameworks ('plumber2', 'fiery', etc.) to be deployed using a common interface. The package supports deployment to 'DigitalOcean' and includes validation tools to ensure '_server.yml' files are correctly formatted.

buoyant

Deploy _server.yml Compliant Applications to DigitalOcean

Overview

buoyant is an R package for deploying web server applications that follow the _server.yml standard to DigitalOcean. This standard provides a unified way to specify and deploy R web servers regardless of the underlying framework (plumber2, fiery, etc.).

Installation

You can install the development version of buoyant from GitHub with:

# install.packages("pak")
pak::pak("posit-dev/buoyant")

Usage

Basic Deployment

library(buoyant)
library(analogsea)

# Authenticate with DigitalOcean
do_oauth()

# Provision a new server
droplet <- do_provision(region = "sfo3")

# Deploy your application
do_deploy_server(
  droplet = droplet,
  path = "myapp",
  local_path = "path/to/my-api",
  port = 8000
)

# Get the URL
do_ip(droplet, "/myapp")

The _server.yml Standard

The _server.yml standard is a lightweight specification for R web servers. At minimum, you need an engine field:

engine: plumber2

Each engine package (like plumber2 or fiery) can define additional fields. The engine R package must provide a launch_server(settings, host = NULL, port = NULL, ...) function.

Features

  • Framework Agnostic: Works with any _server.yml-compliant engine
  • Easy Deployment: One function call to deploy an application - do_deploy_server()
  • Automatic Setup: Creates systemd services and nginx configuration
  • HTTPS Support: Easy Let's Encrypt integration via do_configure_https()
  • Multiple Apps: Deploy multiple applications to one server
  • Validation: Validate configurations before deployment with validate_server_yml()

Getting Help

Supported Engines

The following R packages support the _server.yml standard:

To make your own package compatible, see the _server.yml specification.

Acknowledgments

This package is inspired by plumberDeploy by Bruno Tremblay and Jeff Allen. The _server.yml standard was developed as part of the plumber2 project.

Metadata

Version

0.1.0

License

Unknown

Platforms (78)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows