--- layout: default navsection: installguide title: Automatic single-node install ... {% comment %} Copyright (C) The Arvados Authors. All rights reserved. SPDX-License-Identifier: CC-BY-SA-3.0 {% endcomment %} {% include 'notebox_begin' %} This installation method is not fully implemented, which is why this page is not yet listed in the "table of installation options":{{site.baseurl}}/install/index.html or in the left nav. {% include 'notebox_end' %} This method sets up a new Arvados cluster using a single host/VM. It is the easiest way to get a new production cluster up and running. A single-node installation supports all Arvados functionality at small scale. Substantial workloads will require additional nodes and configuration steps. h2. Prerequisites You will need: * a server host running Debian 11 (bullseye) or Debian 12 (bookworm). * a unique 5-character ID like @x9999@ for your cluster (first character should be @[a-w]@ for a long-lived / production cluster; all characters are @[a-z0-9]@). * a DNS name like @x9999.example.com@ that resolves to your server host (or a load balancer / proxy that passes HTTP requests on port 80[1] and HTTPS requests on ports 443 and 4440-4460 through to the same port on your server host). * a firewall setup that allows incoming connections to ports 80[1], 443, and 4440-4460. fn1. Port 80 is only used to obtain TLS certificates automatically from Let's Encrypt. It is not needed if you have another way to provision certificates. h2. Options Arvados needs a PostgreSQL database. To get started quickly, install the postgresql-server package on your server host.
# apt install postgresql
Arvados normally uses cloud VMs or a Slurm/LSF cluster to run containers. To get started quickly, install Docker on your system host. The @arvados-server init@ command, as shown below, will configure Arvados to run containers on the system host.
# apt install docker.io
Arvados needs a login backend. To get started quickly, add a user account on your server host and assign a password. The @arvados-server init ... -login pam@ option, as shown below, will configure Arvados so you can log in with this username and password.
# adduser exampleUserName
h2. Initialize the cluster {% assign packages_to_install = "arvados-server-easy" %} {% include 'setup_debian_repo' %} Then initialize your cluster:
# arvados-server init -cluster-id x9999 -domain x9999.example.com -tls acme -login pam
When the "init" command is finished, navigate to the link shown in the terminal (e.g., @https://x9999.example.com/@) and log in with the account you created above. Activate your new Arvados user account. Copy the UUID (looks like @x9999-tpzed-xxxxxxxxxxxxxxx@) from your browser's location bar and run:
# arv sudo user setup --uuid x9999-tpzed-xxxxxxxxxxxxxxx
Run the diagnostics tool to ensure everything is working.
# arv sudo diagnostics
h2. Customize the cluster Things you should plan to update before using your cluster in production: * "Set up Google login":{{site.baseurl}}/install/setup-login.html or another authentication option. * "Set up a wildcard TLS certificate and DNS name,":{{site.baseurl}}/install/install-manual-prerequisites.html#dnstls or enable @TrustAllContent@ mode. * Update storage configuration to use a cloud storage bucket ("S3":{{site.baseurl}}/install/configure-s3-object-storage.html or "Azure":{{site.baseurl}}/install/configure-azure-blob-storage.html) instead of the local filesystem. * Update "CloudVMs configuration":{{site.baseurl}}/install/crunch2-cloud/install-dispatch-cloud.html to use a cloud provider to bring up VMs on demand instead of running containers on the server host. h2. Updating configuration After updating your configuration file (@/etc/arvados/config.yml@), notify the server:
# systemctl reload arvados-server
Optionally, add "AutoReloadConfig: true" at the top of @/etc/arvados/config.yml@. Arvados will automatically reload the config file when it changes.
AutoReloadConfig: true
Clusters:
  [...]