# Aptly Configuration File
###########################
# vim: : filetype=yaml

# aptly 1.6.0 supports yaml configuraiton files with inline documentation and examples.
# Legacy json config files are still supported, and may be converted to yaml with `aptly config show -yaml`

# Root directory for:
# - downloaded packages (`rootDir`/pool)
# - database (`rootDir`/db)
# - published repositories (`rootDir`/public)
root_dir: ~/.aptly

# Log Level
# * debug
# * info
# * warning
# * error
log_level: info

# Log Format
# * default (text)
# * json
log_format: default

# Number of attempts to open database if it's locked by other instance
# * -1 (no retry)
database_open_attempts: -1

# Default Architectures
# empty list defaults to all available architectures
architectures:
#    - amd64

# OBSOLETE
# in aptly up to version 1.0.0, package files were stored in internal package pool
# with MD5-dervied path, since 1.1.0 package pool layout was changed;
# if option is enabled, aptly stops checking for legacy paths;
# by default option is enabled for new aptly installations and disabled when
# upgrading from older versions
skip_legacy_pool: true


# Dependency following
#######################

# Follow contents of `Suggests:` field when processing dependencies for the package
dep_follow_suggests: false

# Follow contents of `Recommends:` field when processing dependencies for the package
dep_follow_recommends: false

# When dependency looks like `package-a | package-b`, follow both variants always
dep_follow_allvariants: false

# Follow dependency from binary package to source package
dep_follow_source: false

# Log additional details while resolving dependencies (useful for debugging)
dep_verbose_resolve: false


# PPA
######

# Specify paramaters for short PPA url expansion
# empty defaults to output of `lsb_release` command
ppa_distributor_id: ubuntu

# Codename for short PPA url expansion
ppa_codename: ""


# Aptly Server
###############

# Serve published repos as well as API
serve_in_api_mode: false

# Enable metrics for Prometheus client
enable_metrics_endpoint: false

# Enable API documentation on /docs
enable_swagger_endpoint: false

# OBSOLETE: use via url param ?_async=true
async_api: false


# Database
###########

# Database backend
# Type must be one of:
# * leveldb (default)
# * etcd
database_backend:
    type: leveldb
    # Path to leveldb files
    # empty dbPath defaults to `rootDir`/db
    db_path: ""

    # type: etcd
    # # URL to db server
    # url: "127.0.0.1:2379"


# Mirroring
############

# Downloader
# * "default"
# * "grab"      (more robust)
downloader: default

# Number of parallel download threads to use when downloading packages
download_concurrency: 4

# Limit in kbytes/sec on download speed while mirroring remote repositories
download_limit: 0

# Number of retries for download attempts
download_retries: 0

# Download source packages per default
download_sourcepackages: false


# Signing
##########

# GPG Provider
# * "internal" (Go internal implementation)
# * "gpg"      (External `gpg` utility)
gpg_provider: gpg

# Disable signing of published repositories
gpg_disable_sign: false

# Disable signature verification of remote repositories
gpg_disable_verify: false


# Publishing
#############

# Do not publish Contents files
skip_contents_publishing: false

# Do not create bz2 files
skip_bz2_publishing: false


# Storage
##########

# Filesystem publishing endpoints
#
# aptly defaults to publish to a single publish directory under `rootDir`/public. For
# a more advanced publishing strategy, you can define one or more filesystem endpoints in the
# `FileSystemPublishEndpoints` list of the aptly configuration file. Each endpoint has a name
# and the following associated settings.
#
# In order to publish to such an endpoint, specify the endpoint as `filesystem:endpoint-name`
# with `endpoint-name` as the name given in the aptly configuration file. For example:
#
#   `aptly publish snapshot wheezy-main filesystem:test1:wheezy/daily`
#
filesystem_publish_endpoints:
    # # Endpoint Name
    # test1:
    #     # Directory for publishing
    #     root_dir: /opt/srv/aptly_public
    #     # File Link Method for linking files from the internal pool to the published directory
    #     # * hardlink
    #     # * symlink
    #     # * copy
    #     link_method: hardlink
    #     # File Copare Method for comparing existing links from the internal pool to the published directory
    #     # Only used when "linkMethod" is set to "copy"
    #     # * md5 (default: compare md5 sum)
    #     # * size (compare file size)
    #     verify_method: md5

# S3 Endpoint Support
#
# cloud storage). First, publishing
# endpoints should be described in aptly configuration file. Each endpoint has name
# and associated settings.
#
# In order to publish to S3, specify endpoint as `s3:endpoint-name:` before
# publishing prefix on the command line, e.g.:
#
#   `aptly publish snapshot wheezy-main s3:test:`
#
s3_publish_endpoints:
    # # Endpoint Name
    # test:
    #     # Amazon region for S3 bucket
    #     region: us-east-1
    #     # Bucket name
    #     bucket: test-bucket
    #     # Prefix (optional)
    #     # publishing under specified prefix in the bucket, defaults to
    #     # no prefix (bucket root)
    #     prefix: ""
    #     # Default ACLs (optional)
    #     # assign ACL to published files:
    #     # * private     (default, for use with apt S3 transport)
    #     # * public-read (public repository)
    #     # * none        (don't set ACL)
    #     acl: private
    #     # Credentials (optional)
    #     # Amazon credentials to access S3 bucket. If not supplied, environment variables
    #     # `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and `AWS_SESSION_TOKEN` are used
    #     access_key_id: ""
    #     secret_access_key: ""
    #     session_token: ""
    #     # Endpoint (optional)
    #     # When using S3-compatible cloud storage, specify hostname of service endpoint here,
    #     # region is ignored if endpoint is set (set region to some human-readable name)
    #     # (should be left blank for real Amazon S3)
    #     endpoint: ""
    #     # Storage Class (optional)
    #     # Amazon S3 storage class, defaults to `STANDARD`. Other values
    #     # available: `REDUCED_REDUNDANCY` (lower price, lower redundancy)
    #     storage_class: STANDARD
    #     # Encryption Method (optional)
    #     # Server-side encryption method, defaults to none. Currently
    #     # the only available encryption method is `AES256`
    #     encryption_method: ""
    #     # Plus Workaround (optional)
    #     # Workaround misbehavior in apt and Amazon S3 for files with `+` in filename by
    #     # creating two copies of package files with `+` in filename: one original
    #     # and another one with spaces instead of plus signs
    #     # With `plusWorkaround` enabled, package files with plus sign
    #     # would be stored twice. aptly might not cleanup files with spaces when published
    #     # repository is dropped or updated (switched) to new version of repository (snapshot)
    #     plus_workaround: false
    #     # Disable MultiDel (optional)
    #     # For S3-compatible cloud storages which do not support `MultiDel` S3 API,
    #     # enable this setting (file deletion would be slower with this setting enabled)
    #     disable_multidel: false
    #     # Force Signature v2 (optional)
    #     # Disable Signature V4 support, useful with non-AWS S3-compatible object stores
    #     # which do not support SigV4, shouldn't be enabled for AWS
    #     force_sigv2: false
    #     # Force VirtualHosted Style (optional)
    #     # Disable path style visit, useful with non-AWS S3-compatible object stores
    #     # which only support virtual hosted style
    #     force_virtualhosted_style: false
    #     # Debug (optional)
    #     # Enables detailed request/response dump for each S3 operation
    #     debug: false

# Swift Endpoint Support
#
# aptly can publish a repository directly to OpenStack Swift.
# Each endpoint has name and associated settings.
#
# In order to publish to Swift, specify endpoint as `swift:endpoint-name:` before
# publishing prefix on the command line, e.g.:
#
#   `aptly publish snapshot jessie-main swift:test:`
#
swift_publish_endpoints:
    # # Endpoint Name
    # test:
    #     # Container Name
    #     container: taylor1
    #     # Prefix (optional)
    #     # Publish under specified prefix in the container, defaults to no prefix (container root)
    #     prefix: ""
    #     # Credentials (optional)
    #     # OpenStack credentials to access Keystone. If not supplied, environment variables `OS_USERNAME` and `OS_PASSWORD` are used
    #     username: ""
    #     password: ""
    #     # Domain (optional)
    #     # OpenStack domain
    #     domain: ""
    #     domain_id: ""
    #     # Tenant (optional)
    #     # OpenStack tenant (in order to use v2 authentication)
    #     tenant: ""
    #     tenant_id: ""
    #     tenant_domain: ""
    #     tenant_domain_id: ""
    #     # Auth URL (optional)
    #     # Full url of Keystone server (including port, and version).
    #     # Example `http://identity.example.com:5000/v2.0`
    #     auth_url: ""

# Azure Endpoint Support
#
# aptly can be configured to publish repositories directly to Microsoft Azure Blob
# Storage. First, publishing endpoints should be described in the aptly
# configuration file. Each endpoint has its name and associated settings.
azure_publish_endpoints:
    # # Endpoint Name
    # test:
    #     # Container Name
    #     container: container1
    #     # Prefix (optional)
    #     # Publishing under specified prefix in the container, defaults to no prefix (container root)
    #     prefix: ""
    #     # Credentials
    #     # Azure storage account access key to access blob storage
    #     account_name: ""
    #     account_key: ""
    #     # Endpoint URL
    #     # See: Azure documentation https://docs.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string
    #     # defaults to "https://<accountName>.blob.core.windows.net"
    #     endpoint: ""

# Package Pool
#
# Location for storing downloaded packages
# Type must be one of:
# * local
# * azure
packagepool_storage:
    # Local Pool
    type: local
    # Local Pool Path
    # empty path defaults to `rootDir`/pool
    path:

    # # Azure Azure Blob Storage Pool
    # type: azure
    # # Container Name
    # container: pool1
    # # Prefix (optional)
    # # Publishing under specified prefix in the container, defaults to no prefix (container root)
    # prefix: ""
    # # Credentials
    # # Azure storage account access key to access blob storage
    # account_name: ""
    # account_key: ""
    # # Endpoint URL
    # # See: Azure documentation https://docs.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string
    # # defaults to "https://<accountName>.blob.core.windows.net"
    # endpoint: ""

