The complete list of config.yaml parameters, grouped by block. The environment variable override rules, the list of mandatory parameters, and the typical configuration tasks are described in Configuration.

Parameters without a default carry an example value: it shows the form of the value, not a recommended setting.

server

Network parameters, limits, and reverse proxy trust.

See Reverse proxy and Monitoring for details.

ParameterDescription
listenThe address and port the server accepts HTTP requests on.
Default: :8080
public_base_urlThe external address of the instance. It is used in the addresses the server reports to clients.
Default: none.
Example: https://galleon.example.com
max_upload_sizeThe size limit of a file uploaded to a repository. The 0 value removes the limit, and then the effective limit is set by the reverse proxy.
Default: 0.
Example: 10GB
tls.cert_fileThe path to the certificate file in PEM format. Inside the file the server certificate comes first, the intermediate certificates after it. TLS is on only when tls.key_file is set as well (TLS).
Default: none.
Example: /etc/galleon/tls/fullchain.pem
tls.key_fileThe path to the private key file in PEM format. Keys with a passphrase are not accepted. TLS is on only when tls.cert_file is set as well.
Default: none.
Example: /etc/galleon/tls/privkey.pem
max_control_bodyThe body size limit of a management API request — creating repositories, users, roles.
Default: 256K
max_query_value_bytesThe length limit of a single value in the query string, after the ? sign. The 0 value removes the limit.
Default: 4096
max_header_bytesThe total size limit of request headers, in bytes.
Default: 1048576
read_timeoutThe limit on reading the whole request, body included. The 0s value removes the limit so that slow uploads can finish.
Default: 0s.
Example: 30m
read_header_timeoutThe limit on reading the headers. It protects against connections that are opened but send no request.
Default: 10s
idle_timeoutHow long an idle keep-alive connection stays open.
Default: 120s
trusted_proxiesThe addresses of reverse proxies in CIDR notation or as individual IP addresses. The headers of their requests may be trusted.
Default: [].
Example: ["10.0.0.0/8"]
proxy_auth.headerThe header in which the reverse proxy passes the shared secret.
Default: X-Origin-Token
proxy_auth.secret_envThe name of the environment variable the secret is read from.
Default: none.
Example: GALLEON_ORIGIN_TOKEN
trust_forwarded_headersHonor the X-Forwarded-Host and X-Forwarded-Proto headers when building addresses for clients.
Default: false
monitoring_allowlistThe addresses allowed to reach the health endpoints. Everyone else gets the nonexistent-path response.
Default: ["127.0.0.0/8", "::1/128"].
Example: ["127.0.0.0/8", "10.0.0.0/8"]

database

The PostgreSQL connection and connection pools.

When changing the pool sizes, recalculate the database max_connections: it needs max_open_conns × 2 + registry_max_open_conns + superuser_reserved_connections. Where the summands come from is explained in Configuration.

ParameterDescription
hostThe database server address.
Default: localhost.
Example: postgres.internal
portThe database server port.
Default: 5432.
Example: 6432
userThe database role name.
Default: none.
Example: galleon
dbnameThe database name.
Default: none.
Example: galleon
password_envThe name of the environment variable with the password. Without this key the connection is passwordless.
Default: none.
Example: GALLEON_DATABASE_PASSWORD
sslmodeThe TLS mode of the database connection: disable, require, verify-ca, or verify-full.
Default: disable.
Example: verify-full
connect_timeoutThe limit on establishing a database connection.
Default: 5s
migrate_waitHow long to wait for a database that is still booting before the migrations. 0 — do not wait and exit at once.
Default: 0s.
Example: 5m
max_open_connsThe size of each of the two main connection pools.
Default: 40.
Example: 80
max_idle_connsHow many connections these pools keep open while idle.
Default: 5
registry_max_open_connsThe size of the separate connection pool serving container images.
Default: 25.
Example: 40
statement_timeoutThe execution limit of a single SQL query. It does not apply to migrations.
Default: 30s
lock_timeoutThe limit on waiting for a database lock.
Default: 10s
idle_in_transaction_session_timeoutThe idle limit inside an open transaction.
Default: 60s
max_conn_lifetimeThe connection lifetime after which it is recreated.
Default: 30m
max_conn_idle_timeThe connection idle time after which it is closed.
Default: 5m

storage

The artifact file storage. The keys are set per named storage; a backend named default is mandatory.

The directory layout is described in Storage and garbage collection.

ParameterDescription
typeThe storage type. Only local is supported.
Default: none.
Example: local
local.rootThe storage root directory.
Default: none.
Example: /var/lib/galleon/data

security

Encryption of the stored secrets.

See Secrets and the encryption key for details.

ParameterDescription
secret_key_fileThe path to the encryption key file. The parameter is mandatory: without it the server does not start.
Default: none.
Example: /etc/galleon/secret-key.yaml

auth

The first administrator, the credential cache, and web interface sessions.

See Initial setup for details.

ParameterDescription
bootstrap_admin.usernameThe name of the first administrator.
Default: none.
Example: admin
bootstrap_admin.password_envThe name of the environment variable with the first administrator’s password.
Default: none.
Example: GALLEON_BOOTSTRAP_ADMIN_PASSWORD
bootstrap_admin.password_hashThe bcrypt hash of the password. It takes priority over password_env.
Default: none.
Example: $2a$12$LQv3c1yqBWVHxkd0...
bootstrap_admin.force_password_changeRequire a password change on the first sign-in.
Default: false
credential_cache_ttlHow long a password check result is kept in memory. The 0s value disables the cache, and the password is verified again on every client request.
Default: 60s.
Example: 0s
session_max_lifetimeThe maximum lifetime of a web interface session regardless of activity.
Default: 168h.
Example: 24h
session_idle_timeoutThe inactivity time after which a session ends.
Default: 168h.
Example: 8h

oci

Parameters for pulling container images from external registries.

ParameterDescription
proxy.blob_idle_windowThe allowed pause in data transfer while pulling a layer from an external registry. After it the connection is dropped.
Default: 60s
proxy.db_mirror_timeoutThe limit on writing the metadata of a pulled layer to the database.
Default: 60s

gc

Storage garbage collection. The semantics are described in Storage and garbage collection.

ParameterDescription
autoScheduled cycles. The manual run works regardless of this value.
Default: true.
Example: false
intervalThe pause between scheduled cycles.
Default: 5m.
Example: 15m
grace_periodThe minimum file age that allows its deletion.
Default: 24h.
Example: 5m
batch_sizeHow many candidate files are selected per database query.
Default: 500.
Example: 1000
max_durationThe duration limit of a single cycle. The remainder is handled by the next cycle.
Default: 15m.
Example: 5m

index

Background building of repository indexes — the service files Galleon generates itself: version lists, package metadata.

The number of workers is chosen by the load: the more of them, the faster the indexes are updated after publications. The workers: 0 value stops background index building entirely and must not be set in a production installation.

ParameterDescription
workersThe number of build queue workers.
Default: 4.
Example: 8
poll_intervalThe pause between job queue polls.
Default: 1s.
Example: 5s
max_backoffThe delay limit before retrying a failed job.
Default: 1h.
Example: 15m
lease_durationHow long a worker holds a job. If it does not finish, the job returns to the queue.
Default: 5m.
Example: 10m
backfill_on_startBuild the missing indexes when the server starts.
Default: true.
Example: false

logging

The server log.

See Logging for details.

ParameterDescription
levelThe Galleon log threshold: debug, info, warn, or error.
Default: info.
Example: debug
formatThe log record format.
Default: json.
Example: text
registry_levelA separate threshold for the records about container image operations.
Default: warn.
Example: info

proxy

Protection of the outbound requests of proxy repositories.

The metadata service addresses of cloud providers are always blocked, regardless of these settings.

ParameterDescription
ssrf.block_private_networksForbid requests from proxy repositories to private networks.
Default: true.
Example: false
ssrf.allowlist.ipsAddresses allowed to bypass the ban.
Default: [].
Example: ["10.0.0.10"]
ssrf.allowlist.domainsDomains allowed to bypass the ban.
Default: [].
Example: ["registry.internal.example.com"]