---
layout: default
navsection: installguide
title: Create standard objects
...
{% comment %}
Copyright (C) The Arvados Authors. All rights reserved.
SPDX-License-Identifier: CC-BY-SA-3.0
{% endcomment %}
In these steps we use the Arvados CLI tools on the shell server to create a few Arvados objects. The CLI tools require an ARVADOS_API_TOKEN environment variable with a valid admin token. If you haven't already done so, set that up as shown in the "API token guide":../user/reference/api-tokens.html.
h3. Arvados repository
Here we create a repository object which will be used to set up a hosted clone of the arvados repository on this cluster.
~$ prefix=`arv --format=uuid user current | cut -d- -f1`
~$ echo "Site prefix is '$prefix'"
~$ all_users_group_uuid="$prefix-j7d0g-fffffffffffffff"
~$ repo_uuid=`arv --format=uuid repository create --repository "{\"owner_uuid\":\"$prefix-tpzed-000000000000000\", \"name\":\"arvados\"}"`
~$ echo "Arvados repository uuid is '$repo_uuid'"
Create a link object to make the repository object readable by the "All users" group, and therefore by every active user. This makes it possible for users to run the bundled Crunch scripts by specifying @"script_version":"master","repository":"arvados"@ rather than pulling the Arvados source tree into their own repositories.
~$ read -rd $'\000' newlink <<EOF; arv link create --link "$newlink"
{
"tail_uuid":"$all_users_group_uuid",
"head_uuid":"$repo_uuid",
"link_class":"permission",
"name":"can_read"
}
EOF
In a couple of minutes, your arvados-git-sync cron job will create an empty repository on your git server. Seed it with the real arvados repository. If your git credential helpers were configured correctly when you "set up your shell server":install-shell-server.html, the "git push" command will use your API token instead of prompting you for a username and password.
~$ cd /tmp
/tmp$ git clone --bare https://github.com/curoverse/arvados.git
/tmp git --git-dir arvados.git push https://git.uuid_prefix.your.domain/arvados.git '*:*'
If you did not set up a HTTPS service, you can push to git@git.uuid_prefix.your.domain:arvados.git
using your SSH key, or by logging in to your git server and using sudo.
gitserver:~$ sudo -u git -i bash
git@gitserver:~$ git clone --bare https://github.com/curoverse/arvados.git /tmp/arvados.git
git@gitserver:~$ cd /tmp/arvados.git
git@gitserver:/tmp/arvados.git$ gitolite push /var/lib/arvados/git/repositories/your_arvados_repo_uuid.git '*:*'
h3. Default project for docker images
Here we create a default project for the standard Arvados Docker images, and give all users read access to it. The project is owned by the system user.
~$ project_uuid=`arv --format=uuid group create --group "{\"owner_uuid\":\"$prefix-tpzed-000000000000000\", \"name\":\"Arvados Standard Docker Images\"}"`
~$ echo "Arvados project uuid is '$project_uuid'"
~$ read -rd $'\000' newlink <<EOF; arv link create --link "$newlink"
{
"tail_uuid":"$all_users_group_uuid",
"head_uuid":"$project_uuid",
"link_class":"permission",
"name":"can_read"
}
EOF
h3. Download and tag the latest arvados/jobs docker image
The @arvados-cwl-runner@ needs access to an arvados/jobs image that is tagged as 'latest'. The following command downloads the latest arvados/jobs image from Docker Hub, loads it into Keep, and tags it as 'latest'.
~$ arv-keepdocker --pull arvados/jobs latest
If the image needs to be downloaded from Docker Hub, the command can take a few minutes to complete, depending on available network bandwidth.