config.yaml

  1# Soft Serve Server configurations
  2
  3# The name of the server.
  4# This is the name that will be displayed in the UI.
  5name: "Kilimanjaro Git"
  6
  7# Logging configuration.
  8log:
  9  # Log format to use. Valid values are "json", "logfmt", and "text".
 10  format: "json"
 11  # Time format for the log "timestamp" field.
 12  # Should be described in Golang's time format.
 13  time_format: "2006-01-02 15:04:05"
 14  # Path to the log file. Leave empty to write to stderr.
 15  #path: ""
 16
 17# The SSH server configuration.
 18ssh:
 19  # Enable SSH.
 20  enabled: true
 21
 22  # The address on which the SSH server will listen.
 23  listen_addr: ":23231"
 24
 25  # The public URL of the SSH server.
 26  # This is the address that will be used to clone repositories.
 27  public_url: "ssh://git.kilimanjaro.io:23231"
 28
 29  # The path to the SSH server's private key.
 30  key_path: ssh/soft_serve_host_ed25519
 31
 32  # The path to the server's client private key. This key will be used to
 33  # authenticate the server to make git requests to ssh remotes.
 34  client_key_path: ssh/soft_serve_client_ed25519
 35
 36  # The maximum number of seconds a connection can take.
 37  # A value of 0 means no timeout.
 38  max_timeout: 600
 39
 40  # The number of seconds a connection can be idle before it is closed.
 41  # A value of 0 means no timeout.
 42  idle_timeout: 600
 43
 44# The Git daemon configuration.
 45git:
 46  # Enable the Git daemon.
 47  enabled: true
 48
 49  # The address on which the Git daemon will listen.
 50  listen_addr: ":9418"
 51
 52  # The public URL of the Git daemon server.
 53  # This is the address that will be used to clone repositories.
 54  public_url: "git://git.kilimanjaro.io"
 55
 56  # The maximum number of seconds a connection can take.
 57  # A value of 0 means no timeout.
 58  max_timeout: 15
 59
 60  # The number of seconds a connection can be idle before it is closed.
 61  idle_timeout: 3
 62
 63  # The maximum number of concurrent connections.
 64  max_connections: 32
 65
 66# The HTTP server configuration.
 67http:
 68  # Enable the HTTP server.
 69  enabled: true
 70
 71  # The address on which the HTTP server will listen.
 72  # Bind to localhost only - Caddy will proxy external requests
 73  listen_addr: "localhost:23232"
 74
 75  # The path to the TLS private key.
 76  tls_key_path:
 77
 78  # The path to the TLS certificate.
 79  tls_cert_path:
 80
 81  # The public URL of the HTTP server.
 82  # This is the address that will be used to clone repositories.
 83  # Caddy provides HTTPS termination at the edge.
 84  public_url: "https://git.kilimanjaro.io"
 85
 86  # The cross-origin request security options
 87  cors:
 88    # The allowed cross-origin headers
 89    allowed_headers:
 90      - "Accept"
 91      - "Accept-Language"
 92      - "Content-Language"
 93      - "Content-Type"
 94      - "Origin"
 95      - "X-Requested-With"
 96      - "User-Agent"
 97      - "Authorization"
 98      - "Access-Control-Request-Method"
 99      - "Access-Control-Allow-Origin"
100    # The allowed cross-origin URLs
101    allowed_origins:
102      - "http://localhost:23232" # always allowed
103      - "https://git.kilimanjaro.io"
104    # The allowed cross-origin methods
105    allowed_methods:
106      - "GET"
107      - "HEAD"
108      - "POST"
109      - "PUT"
110      - "OPTIONS"
111
112# The stats server configuration.
113stats:
114  # Enable the stats server.
115  enabled: true
116
117  # The address on which the stats server will listen.
118  listen_addr: "localhost:23233"
119
120# The database configuration.
121db:
122  # The database driver to use.
123  # Valid values are "sqlite" and "postgres".
124  driver: "sqlite"
125  # The database data source name.
126  # This is driver specific and can be a file path or connection string.
127  # Make sure foreign key support is enabled when using SQLite.
128  data_source: "soft-serve.db?_pragma=busy_timeout(5000)&_pragma=foreign_keys(1)&_journal=WAL"
129
130# Git LFS configuration.
131lfs:
132  # Enable Git LFS.
133  enabled: true
134  # Enable Git SSH transfer.
135  ssh_enabled: false
136
137# Cron job configuration
138jobs:
139  mirror_pull: "@every 10m"
140
141# Additional admin keys.
142initial_admin_keys:
143  - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJBc3G95VyLjrA2cnUjRnWRV3Uf3x08hxKkPw6ufY9YD [email protected]"