On the first start with an empty database, Galleon creates the first administrator and the starter set of repositories.
Bootstrap administrator
The first administrator account is described by the auth.bootstrap_admin configuration block:
the username and the password — via an environment variable (password_env)
or directly as a bcrypt hash (password_hash, takes priority).
The account is created only if the admin role is assigned to no user.
Once the administrator exists, the bootstrap_admin block is ignored: changing the password variable does not change the password of the existing account (the server log shows the “bootstrap_admin is configured but an admin already exists” warning). The password is changed only through the web interface.
Galleon has no means of recovering a lost administrator password: only another user with administrative rights can reset it. Create a second administrative account right away — otherwise the only way to regain access is to deploy the instance anew.
The force_password_change: true option makes the bootstrap password one-time:
until the password is changed, the user is blocked both in the web interface and in the format clients.
Starting state
On a fresh database, the following is created:
- the built-in
adminrole with full access and theanonymousrole for anonymous reads; - the privilege catalog (see Access control);
- the starter repositories (see the table in Repositories): proxy mirrors of Maven Central, proxy.golang.org, the Go checksum database, and Docker Hub — with automatic blocking enabled for an unreachable external registry — and hosted repositories for Maven (releases and snapshot versions), Go, and container images.
The anonymous role is pre-granted read privileges for the four public proxy mirrors,
but anonymous access has no effect
until the global switch is enabled (“Settings” → “Anonymous Access”).
The hosted starter repositories are never anonymously accessible.
The starter set is created only when the repository list is empty: repositories deleted one by one do not come back on restart. If, however, every last repository is deleted, the set is created anew on the next start, together with their privileges and anonymous read rights.
First steps
After the first sign-in as the bootstrap administrator, do the following:
- Create personal accounts for everyone who administers the instance and assign them the
adminrole (“Settings” → “Users”). Do not work under the bootstrap account permanently. - Create roles for development teams from the privileges of the repositories they need (“Settings” → “Roles”, see Access control).
- Decide whether users may change their own passwords: the
nx-userschangepwprivilege is not part of any role by default — grant it to user roles, otherwise only the administrator changes passwords. - Set up TLS, the reverse proxy if you use one, and backups.