3 navsection: installguide
4 title: Automatic single-node install
7 Copyright (C) The Arvados Authors. All rights reserved.
9 SPDX-License-Identifier: CC-BY-SA-3.0
12 {% include 'notebox_begin' %}
13 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.
14 {% include 'notebox_end' %}
16 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.
18 A single-node installation supports all Arvados functionality at small scale. Substantial workloads will require additional nodes and configuration steps.
23 * a server host running Debian 11 (bullseye) or Debian 12 (bookworm).
24 * 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]@).
25 * 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).
26 * a firewall setup that allows incoming connections to ports 80[1], 443, and 4440-4460.
28 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.
32 Arvados needs a PostgreSQL database. To get started quickly, install the postgresql-server package on your server host.
35 # apt install postgresql
38 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.
41 # apt install docker.io
44 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.
47 # adduser exampleUserName
50 h2. Initialize the cluster
52 {% assign packages_to_install = "arvados-server-easy" %}
53 {% include 'setup_debian_repo' %}
55 Then initialize your cluster:
58 <pre><code># <span class="userinput">arvados-server init -cluster-id x9999 -domain x9999.example.com -tls acme -login pam</span>
62 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.
64 Activate your new Arvados user account. Copy the UUID (looks like @x9999-tpzed-xxxxxxxxxxxxxxx@) from your browser's location bar and run:
67 <pre><code># <span class="userinput">arv sudo user setup --uuid x9999-tpzed-xxxxxxxxxxxxxxx</span>
71 Run the diagnostics tool to ensure everything is working.
74 <pre><code># <span class="userinput">arv sudo diagnostics</span>
78 h2. Customize the cluster
80 Things you should plan to update before using your cluster in production:
81 * "Set up Google login":{{site.baseurl}}/install/setup-login.html or another authentication option.
82 * "Set up a wildcard TLS certificate and DNS name,":{{site.baseurl}}/install/install-manual-prerequisites.html#dnstls or enable @TrustAllContent@ mode.
83 * 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.
84 * 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.
86 h2. Updating configuration
88 After updating your configuration file (@/etc/arvados/config.yml@), notify the server:
91 # systemctl reload arvados-server
94 Optionally, add "AutoReloadConfig: true" at the top of @/etc/arvados/config.yml@. Arvados will automatically reload the config file when it changes.
97 AutoReloadConfig: true