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.
| Parameter | Description |
|---|---|
listen | The address and port the server accepts HTTP requests on. Default: :8080 |
public_base_url | The 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_size | The 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_file | The 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_file | The 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_body | The body size limit of a management API request — creating repositories, users, roles. Default: 256K |
max_query_value_bytes | The length limit of a single value in the query string, after the ? sign. The 0 value removes the limit.Default: 4096 |
max_header_bytes | The total size limit of request headers, in bytes. Default: 1048576 |
read_timeout | The 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_timeout | The limit on reading the headers. It protects against connections that are opened but send no request. Default: 10s |
idle_timeout | How long an idle keep-alive connection stays open. Default: 120s |
trusted_proxies | The 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.header | The header in which the reverse proxy passes the shared secret. Default: X-Origin-Token |
proxy_auth.secret_env | The name of the environment variable the secret is read from. Default: none. Example: GALLEON_ORIGIN_TOKEN |
trust_forwarded_headers | Honor the X-Forwarded-Host and X-Forwarded-Proto headers when building addresses for clients.Default: false |
monitoring_allowlist | The 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.
| Parameter | Description |
|---|---|
host | The database server address. Default: localhost.Example: postgres.internal |
port | The database server port. Default: 5432.Example: 6432 |
user | The database role name. Default: none. Example: galleon |
dbname | The database name. Default: none. Example: galleon |
password_env | The name of the environment variable with the password. Without this key the connection is passwordless. Default: none. Example: GALLEON_DATABASE_PASSWORD |
sslmode | The TLS mode of the database connection: disable, require, verify-ca, or verify-full.Default: disable.Example: verify-full |
connect_timeout | The limit on establishing a database connection. Default: 5s |
migrate_wait | How 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_conns | The size of each of the two main connection pools. Default: 40.Example: 80 |
max_idle_conns | How many connections these pools keep open while idle. Default: 5 |
registry_max_open_conns | The size of the separate connection pool serving container images. Default: 25.Example: 40 |
statement_timeout | The execution limit of a single SQL query. It does not apply to migrations. Default: 30s |
lock_timeout | The limit on waiting for a database lock. Default: 10s |
idle_in_transaction_session_timeout | The idle limit inside an open transaction. Default: 60s |
max_conn_lifetime | The connection lifetime after which it is recreated. Default: 30m |
max_conn_idle_time | The 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.
| Parameter | Description |
|---|---|
type | The storage type. Only local is supported.Default: none. Example: local |
local.root | The storage root directory. Default: none. Example: /var/lib/galleon/data |
security
Encryption of the stored secrets.
See Secrets and the encryption key for details.
| Parameter | Description |
|---|---|
secret_key_file | The 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.
| Parameter | Description |
|---|---|
bootstrap_admin.username | The name of the first administrator. Default: none. Example: admin |
bootstrap_admin.password_env | The name of the environment variable with the first administrator’s password. Default: none. Example: GALLEON_BOOTSTRAP_ADMIN_PASSWORD |
bootstrap_admin.password_hash | The bcrypt hash of the password. It takes priority over password_env.Default: none. Example: $2a$12$LQv3c1yqBWVHxkd0... |
bootstrap_admin.force_password_change | Require a password change on the first sign-in. Default: false |
credential_cache_ttl | How 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_lifetime | The maximum lifetime of a web interface session regardless of activity. Default: 168h.Example: 24h |
session_idle_timeout | The inactivity time after which a session ends. Default: 168h.Example: 8h |
oci
Parameters for pulling container images from external registries.
| Parameter | Description |
|---|---|
proxy.blob_idle_window | The allowed pause in data transfer while pulling a layer from an external registry. After it the connection is dropped. Default: 60s |
proxy.db_mirror_timeout | The 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.
| Parameter | Description |
|---|---|
auto | Scheduled cycles. The manual run works regardless of this value. Default: true.Example: false |
interval | The pause between scheduled cycles. Default: 5m.Example: 15m |
grace_period | The minimum file age that allows its deletion. Default: 24h.Example: 5m |
batch_size | How many candidate files are selected per database query. Default: 500.Example: 1000 |
max_duration | The 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.
| Parameter | Description |
|---|---|
workers | The number of build queue workers. Default: 4.Example: 8 |
poll_interval | The pause between job queue polls. Default: 1s.Example: 5s |
max_backoff | The delay limit before retrying a failed job. Default: 1h.Example: 15m |
lease_duration | How long a worker holds a job. If it does not finish, the job returns to the queue. Default: 5m.Example: 10m |
backfill_on_start | Build the missing indexes when the server starts. Default: true.Example: false |
logging
The server log.
See Logging for details.
| Parameter | Description |
|---|---|
level | The Galleon log threshold: debug, info, warn, or error.Default: info.Example: debug |
format | The log record format. Default: json.Example: text |
registry_level | A 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.
| Parameter | Description |
|---|---|
ssrf.block_private_networks | Forbid requests from proxy repositories to private networks. Default: true.Example: false |
ssrf.allowlist.ips | Addresses allowed to bypass the ban. Default: [].Example: ["10.0.0.10"] |
ssrf.allowlist.domains | Domains allowed to bypass the ban. Default: [].Example: ["registry.internal.example.com"] |