Configuration File
The configuration file is typically located at:- Development:
config.tomlin your Gitaly directory - Production:
/home/git/gitlab/tmp/sockets/private/gitaly/config.toml
config.toml.example in the Gitaly repository.
Core Settings
Socket Path
Unix socket path for Gitaly to listen on.
Binary Directory
The directory where Gitaly’s executables are stored.
Runtime Directory
The directory where Gitaly can create all files required to properly operate at runtime. If not set, Gitaly will create a directory in the global temporary directory. This directory must exist.
Network Configuration
TCP Listening
Listen on a TCP socket. Warning: This is insecure without TLS (no authentication).
Listen on a TCP socket with TLS encryption.
Prometheus Metrics
Export metrics via Prometheus on this address.
Internal Sockets
Configure where Gitaly creates sockets for internal connections. If unset, Gitaly creates a randomly named temp directory each time it boots. Non-Gitaly clients should never connect to these sockets.
Git Configuration
Git-specific settings.
Path to the Git binary.
Number of cached git-cat-file processes.
Git Configuration Values
You can set Git configuration values that apply to all Git operations:Storage Configuration
See the Storage Configuration page for detailed information about configuring Git repository storage.Logging Configuration
Configure Gitaly’s logging behavior.
The directory where Gitaly stores extra log files.
Output format for logs. Options:
text or json.Log level to filter entries. One of:
debug, info, warn, error, fatal, panic (in order of severity).Sentry Integration
Report exceptions from the Go server to Sentry.
Report exceptions from gitaly-ruby to Sentry.
Prometheus Configuration
Configure Prometheus metrics collection.
Histogram buckets for recording GRPC method call latencies (in seconds).
Gitaly-Ruby Configuration
Configuration for the Ruby helper process.
The directory where gitaly-ruby is installed.
Number of gitaly-ruby worker processes.
Gitaly-ruby resident set size (RSS) that triggers a memory restart (in bytes).
Grace period before a gitaly-ruby process is forcibly terminated after exceeding max_rss.
Time that gitaly-ruby memory must remain high before a restart.
Search path for system gitconfig file (e.g.,
/etc, /opt/gitlab/embedded/etc). Only affects RPCs that use Rugged.GitLab Shell Configuration
GitLab Shell integration settings.
The directory where gitlab-shell is installed.
Hooks Configuration
Custom Git hooks configuration.
Directory containing custom Git hooks to be executed.
GitLab Integration
GitLab Rails application integration settings.
Path to the shared secret file for authenticating with GitLab.
URL of the GitLab Rails application.
Only needed if a UNIX socket is used in
url and GitLab is configured to use a relative path (e.g., /gitlab).GitLab HTTP Settings
HTTP client configuration for GitLab API requests.
HTTP read timeout in seconds.
HTTP basic auth username.
HTTP basic auth password.
Path to CA certificate file.
Path to CA certificates directory.
Allow self-signed certificates.
Concurrency Configuration
Control the concurrency of RPC endpoints:The full RPC method name.
Maximum number of concurrent calls per repository.
Maximum time a request can wait in the queue.
Maximum number of requests that can be queued.
Rate Limiting
Configure rate limiting for specific RPCs:The full RPC method name to rate limit.
Time window for rate limiting.
Maximum number of requests allowed in the interval.
Daily Maintenance
Schedule daily maintenance tasks to optimize repositories:Hour to start daily maintenance (0-23).
Minute to start daily maintenance (0-59).
How long maintenance window lasts.
List of storage names to run maintenance on.
Disable daily maintenance.
Cgroups Configuration
Control resource usage with cgroups:Number of cgroup partitions to create.
Cgroup mount point.
Root hierarchy for Gitaly cgroups.
Enable memory limits.
Memory limit in bytes.
Enable CPU limits.
CPU shares (relative weight).
Complete Example
Here’s a complete example configuration file:Further Reading
Official Documentation
Complete administration and reference guide in the GitLab documentation