137 lines
3.7 KiB
Text
137 lines
3.7 KiB
Text
|
# Socket address to listen on
|
||
|
listen = "[::]:8080"
|
||
|
|
||
|
# Allowed `Host` headers
|
||
|
#
|
||
|
# This _must_ be configured for production use. If unconfigured or the
|
||
|
# list is empty, all `Host` headers are allowed.
|
||
|
allowed-hosts = []
|
||
|
|
||
|
# The canonical API endpoint of this server
|
||
|
#
|
||
|
# This is the endpoint exposed to clients in `cache-config` responses.
|
||
|
#
|
||
|
# This _must_ be configured for production use. If not configured, the
|
||
|
# API endpoint is synthesized from the client's `Host` header which may
|
||
|
# be insecure.
|
||
|
#
|
||
|
# The API endpoint _must_ end with a slash (e.g., `https://domain.tld/attic/`
|
||
|
# not `https://domain.tld/attic`).
|
||
|
#api-endpoint = "https://your.domain.tld/"
|
||
|
|
||
|
# Whether to soft-delete caches
|
||
|
#
|
||
|
# If this is enabled, caches are soft-deleted instead of actually
|
||
|
# removed from the database. Note that soft-deleted caches cannot
|
||
|
# have their names reused as long as the original database records
|
||
|
# are there.
|
||
|
#soft-delete-caches = false
|
||
|
|
||
|
# Whether to require fully uploading a NAR if it exists in the global cache.
|
||
|
#
|
||
|
# If set to false, simply knowing the NAR hash is enough for
|
||
|
# an uploader to gain access to an existing NAR in the global
|
||
|
# cache.
|
||
|
#require-proof-of-possession = true
|
||
|
|
||
|
# JWT signing token
|
||
|
#
|
||
|
# Set this to the Base64 encoding of some random data.
|
||
|
# You can also set it via the `ATTIC_SERVER_TOKEN_HS256_SECRET_BASE64` environment
|
||
|
# variable.
|
||
|
token-hs256-secret-base64 = "{{ attic_token }}"
|
||
|
|
||
|
# Database connection
|
||
|
[database]
|
||
|
# Connection URL
|
||
|
#
|
||
|
# For production use it's recommended to use PostgreSQL.
|
||
|
url = "sqlite:///usr/local/share/attic/server.db"
|
||
|
|
||
|
# Whether to enable sending on periodic heartbeat queries
|
||
|
#
|
||
|
# If enabled, a heartbeat query will be sent every minute
|
||
|
#heartbeat = false
|
||
|
|
||
|
# File storage configuration
|
||
|
[storage]
|
||
|
# Storage type
|
||
|
#
|
||
|
# Can be "local" or "s3".
|
||
|
type = "local"
|
||
|
|
||
|
## Local storage
|
||
|
|
||
|
# The directory to store all files under
|
||
|
path = "/usr/local/share/attic/storage"
|
||
|
|
||
|
# ## S3 Storage (set type to "s3" and uncomment below)
|
||
|
|
||
|
# The AWS region
|
||
|
# region = "auto"
|
||
|
|
||
|
# The name of the bucket
|
||
|
# bucket = "{{ s3_bucket }}"
|
||
|
|
||
|
# Custom S3 endpoint
|
||
|
#
|
||
|
# Set this if you are using an S3-compatible object storage (e.g., Minio).
|
||
|
# endpoint = "{{ s3_endpoint }}"
|
||
|
|
||
|
# Credentials
|
||
|
#
|
||
|
# If unset, the credentials are read from the `AWS_ACCESS_KEY_ID` and
|
||
|
# `AWS_SECRET_ACCESS_KEY` environment variables.
|
||
|
# [storage.credentials]
|
||
|
# access_key_id = "{{ s3_access_key_id }}"
|
||
|
# secret_access_key = "{{ s3_secret_access_key }}"
|
||
|
|
||
|
# Data chunking
|
||
|
#
|
||
|
# Warning: If you change any of the values here, it will be
|
||
|
# difficult to reuse existing chunks for newly-uploaded NARs
|
||
|
# since the cutpoints will be different. As a result, the
|
||
|
# deduplication ratio will suffer for a while after the change.
|
||
|
[chunking]
|
||
|
# The minimum NAR size to trigger chunking
|
||
|
#
|
||
|
# If 0, chunking is disabled entirely for newly-uploaded NARs.
|
||
|
# If 1, all NARs are chunked.
|
||
|
nar-size-threshold = 65536 # chunk files that are 64 KiB or larger
|
||
|
|
||
|
# The preferred minimum size of a chunk, in bytes
|
||
|
min-size = 16384 # 16 KiB
|
||
|
|
||
|
# The preferred average size of a chunk, in bytes
|
||
|
avg-size = 65536 # 64 KiB
|
||
|
|
||
|
# The preferred maximum size of a chunk, in bytes
|
||
|
max-size = 262144 # 256 KiB
|
||
|
|
||
|
# Compression
|
||
|
[compression]
|
||
|
# Compression type
|
||
|
#
|
||
|
# Can be "none", "brotli", "zstd", or "xz"
|
||
|
type = "zstd"
|
||
|
|
||
|
# Compression level
|
||
|
#level = 8
|
||
|
|
||
|
# Garbage collection
|
||
|
[garbage-collection]
|
||
|
# The frequency to run garbage collection at
|
||
|
#
|
||
|
# By default it's 12 hours. You can use natural language
|
||
|
# to specify the interval, like "1 day".
|
||
|
#
|
||
|
# If zero, automatic garbage collection is disabled, but
|
||
|
# it can still be run manually with `atticd --mode garbage-collector-once`.
|
||
|
interval = "0"
|
||
|
|
||
|
# Default retention period
|
||
|
#
|
||
|
# Zero (default) means time-based garbage-collection is
|
||
|
# disabled by default. You can enable it on a per-cache basis.
|
||
|
#default-retention-period = "6 months"
|