1. Deploying Armadillo for local use
Armadillo + RServer with Docker Compose
Welcome
- Run Armadillo, RServer, locally with Docker Compose
Services and Roles
What we Deploy:
- Armadillo → http://localhost:8000
- Main DataSHIELD server and admin UI. (With admin/admin as user)
- RServer → http://localhost:6311
- DataSHIELD packages;
Goal
Deploy Armadillo locally on your laptop using Docker Compose.
References :
- Armadillo Quick Setup
- Armadillo running under systemd
Files layout
local-deploy-armadillo
├── config
├── application.yml ( Main armadillo configuration )
├── data ( Local storage )
├── docker-compose.yml
└── logs ( Armadillo logfiles )
1) Armadillo configuration
Define password and profiles in this file. If you are running armadillo under systemd you can enable docker-management-enabled to true.
armadillo:
docker-management-enabled: false
docker-run-in-container: true
profiles:
- name: default
image: datashield/rock-base:latest
port: 8085
host: rserver
package-whitelist:
- dsBase
function-blacklist: [ ]
options:
datashield:
seed: 342325352
# required settings:
spring:
security:
user:
# please change this admin password!
password: admin!!!
# optional settings (review spring handbook to find more):
servlet:
multipart:
## change this if your files are bigger
max-file-size: 1000MB
max-request-size: 1000MB
storage:
## to change location of the data storage
root-dir: /data
# Match with Dockerfile volume /logs
audit.log.path: '/logs/audit.log'
stdout.log.path: '/logs/armadillo.log'
logging:
level:
root: INFO
## change to DEBUG to have more details, typically when developing
org.molgenis: DEBUG
## Don't log upload data
org.apache.coyote.http11.Http11InputBuffer: INFO
2) docker-compose.yml
Defines the armadillo docker config.
services:
armadillo:
image: molgenis/molgenis-armadillo:latest
platform: linux/amd64
environment:
LOGGING_CONFIG: 'classpath:logback-file.xml'
SPRING_SECURITY_USER_PASSWORD: 'admin'
SPRING_RSERVER_URL: 'http://rserver:8085'
DEBUG: "TRUE"
ports:
- "8000:8080"
volumes:
- ./logs:/app/logs
- ./data:/data
- /var/run/docker.sock:/var/run/docker.sock
- ./config:/config
networks:
- armadillo-workshop
rserver:
image: datashield/rock-base:latest
platform: linux/amd64
environment:
DEBUG: "TRUE"
networks:
- armadillo-workshop
networks:
armadillo-workshop:
driver: bridge
3) Bring up the stack
From the directory containing ‘docker-compose’
docker compose up -d
#firs start may take a minute while images are pulled.
#check health
docker compose logs -f armadillo
4) Check Armadillo UI
- Open
http://localhost:8000
in your browser. - Login with user admin and the password in the configuration.
5) Rstudio Check R connectivity
library(dsBaseClient)
library(DSI)
library(DSMolgenisArmadillo)
<- "http://localhost:8000"
url <- DSI::newDSLoginBuilder()
builder
$append(
builderserver = "armadillo",
url = url,
#token = token,
user = "admin",
password = "admin",
driver = "ArmadilloDriver",
profile = "default")
<- builder$build()
logindata <- DSI::datashield.login(logins = logindata)
conns
ds.ls()
Troubleshooting
- Reset the stack
docker compose down -v
docker compose up --build
Kubernetes / Production
- Full Docker stack, and systemd setup available at: https://molgenis.github.io/molgenis-service-armadillo
- Helm charts available:
https://github.com/molgenis/molgenis-service-armadillo/tree/master/helm-chart - DataSHIELD kubernetes profiles maintained in Helm (private repo for some charts)
- If you need help or want to contribute contact:
- Email: support@molgenis.org
- Slack: join the
#Armadillo-support
channel (DataSHIELD Slack)
Live Playground
- Molgenis is providing an Armadillo playground. With an central analysis server playground (Jupyterhub). Contact support@molgenis.org with your e-mail adres for (institute) access.
Notes
- This quickstart is intended for local development and testing
- For production deployments prefer systemd or Kubernetes/Helm configurations