Skip to content

Commit

Permalink
document aptly.conf
Browse files Browse the repository at this point in the history
  • Loading branch information
neolynx committed Oct 4, 2024
1 parent 4ef4eb3 commit 80c1b51
Showing 1 changed file with 229 additions and 19 deletions.
248 changes: 229 additions & 19 deletions debian/aptly.conf
Original file line number Diff line number Diff line change
@@ -1,38 +1,248 @@
// vim: : filetype=json
{

// General
///////////

// Aptly storage directory
// - downloaded packages (`rootDir`/pool)
// - database (`rootDir`/db)
// - published repositories (`rootDir`/public)
"rootDir": "~/.aptly",

// number of attempts to open DB if it's locked by other instance; can be overridden with option `-db-open-attempts`
"databaseOpenAttempts": -1,

//
"AsyncAPI": false,

//
"enableMetricsEndpoint": false,

// Enable API documentation on /docs
"enableSwaggerEndpoint": false,

//
"logLevel": "info",

//
"logFormat": "default",

//
"serveInAPIMode": false,

// 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
"skipLegacyPool": true,

// Database
////////////

//
"databaseBackend": {
//
"type": "",
//
"url": "",
//
"dbPath": ""
//
},

// Mirroring
/////////////

// downloader to use
// - "default" (normal downloader)
// - "grab" (more robust)
"downloader": "default",

// number of parallel download threads to use when downloading packages
"downloadConcurrency": 4,

// limit in kbytes/sec on download speed while mirroring remote repositories
"downloadSpeedLimit": 0,

// number of retries for download attempts
"downloadRetries": 0,
"downloader": "default",
"databaseOpenAttempts": -1,

// download source packages per default
"downloadSourcePackages": false,


// list of architectures to process; if left empty defaults to all available architectures; can be overridden with option `-architectures`
"architectures": [],

// follow contents of `Suggests:` field when processing dependencies for the package
"dependencyFollowSuggests": false,

// follow contents of `Recommends:` field when processing dependencies for the package
"dependencyFollowRecommends": false,

// when dependency looks like `package-a | package-b`, follow both variants always
"dependencyFollowAllVariants": false,

// follow dependency from binary package to source package
"dependencyFollowSource": false,

// print additional details while resolving dependencies (useful for debugging)
"dependencyVerboseResolve": false,

// Signing
///////////

// gpg provider to use:
// - "internal" (Go internal implementation)
// - 'gpg" (external `gpg` utility, uses GnuPG 1.x if available or GnuPG 2.x otherwise)
"gpgProvider": "gpg",

// don't sign published repositories with gpg(1), also can be disabled on per-repo basis using `-skip-signing` flag when publishing
"gpgDisableSign": false,

// don't verify remote mirrors with gpg(1), also can be disabled on per-mirror basis using `-ignore-signatures` flag when creating and updating mirrors
"gpgDisableVerify": false,
"gpgProvider": "gpg",
"downloadSourcePackages": false,
"skipLegacyPool": true,


// PPA
///////

// specifies paramaters for short PPA url expansion, if left blank they default to output of `lsb_release` command
"ppaDistributorID": "ubuntu",

// cwcodename for short PPA url expansion
"ppaCodename": "",

//
"skipContentsPublishing": false,

//
"skipBz2Publishing": false,
"FileSystemPublishEndpoints": {},
"S3PublishEndpoints": {},
"SwiftPublishEndpoints": {},
"AzurePublishEndpoints": {},
"AsyncAPI": false,
"enableMetricsEndpoint": false,
"logLevel": "info",
"logFormat": "default",
"serveInAPIMode": false,
"databaseBackend": {
"type": "",
"url": "",
"dbPath": ""

// Storage Endpoints
/////////////////////

// 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:
//
// * `rootDir`:
// The publish directory, e.g., `/opt/srv/aptly_public`.
// * `linkMethod`:
// This is one of `hardlink`, `symlink` or `copy`. It specifies how aptly links the
// files from the internal pool to the published directory.
// If not specified, empty or wrong, this defaults to `hardlink`.
// * `verifyMethod`:
// This is used only when setting the `linkMethod` to `copy`. Possible values are
// `md5` and `size`. It specifies how aptly compares existing links from the
// internal pool to the published directory. The `size` method compares only the
// file sizes, whereas the `md5` method calculates the md5 checksum of the found
// file and compares it to the desired one.
// If not specified, empty or wrong, this defaults to `md5`.
//
// 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`
"FileSystemPublishEndpoints": {
},

// S3 Endpoint Support
//
// cloud storage). First, publishing
// endpoints should be described in aptly configuration file. Each endpoint has name
// and associated settings:
//
// * `region`:
// Amazon region for S3 bucket (e.g. `us-east-1`)
// * `bucket`:
// bucket name
// * `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)
// * `prefix`:
// (optional) do publishing under specified prefix in the bucket, defaults to
// no prefix (bucket root)
// * `acl`:
// (optional) assign ACL to published files (one of the canned ACLs in Amazon
// terminology). Useful values: `private` (default), `public-read` (public
// repository) or `none` (don't set ACL). Public repositories could be consumed by `apt` using
// HTTP endpoint (Amazon bucket should be configured for "website hosting"),
// for private repositories special apt S3 transport is required.
// * `awsAccessKeyID`, `awsSecretAccessKey`:
// (optional) Amazon credentials to access S3 bucket. If not supplied,
// environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`
// are used.
// * `storageClass`:
// (optional) Amazon S3 storage class, defaults to `STANDARD`. Other values
// available: `REDUCED_REDUNDANCY` (lower price, lower redundancy)
// * `encryptionMethod`:
// (optional) server-side encryption method, defaults to none. Currently
// the only available encryption method is `AES256`
// * `plusWorkaround`:
// (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)
// * `disableMultiDel`:
// (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)
// * `forceSigV2`:
// (optional) disable Signature V4 support, useful with non-AWS S3-compatible object stores
// which do not support SigV4, shouldn't be enabled for AWS
// * `forceVirtualHostedStyle`:
// (optional) disable path style visit, useful with non-AWS S3-compatible object stores
// which only support virtual hosted style
// * `debug`:
// (optional) enables detailed request/response dump for each S3 operation
//
// 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:`
"S3PublishEndpoints": {
},

// Swift Endpoint Support
//
// aptly could be configured to publish repository directly to OpenStack Swift. First,
// publishing endpoints should be described in aptly configuration file. Each endpoint
// has name and associated settings:
//
// * `container`:
// container name
// * `prefix`:
// (optional) do publishing under specified prefix in the container, defaults to
// no prefix (container root)
// * `osname`, `password`:
// (optional) OpenStack credentials to access Keystone. If not supplied,
// environment variables `OS_USERNAME` and `OS_PASSWORD` are used.
// * `tenant`, `tenantid`:
// (optional) OpenStack tenant name and id (in order to use v2 authentication).
// * `authurl`:
// (optional) the full url of Keystone server (including port, and version).
// example `http://identity.example.com:5000/v2.0`
//
// 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:`
"SwiftPublishEndpoints": {
},
"enableSwaggerEndpoint": false

// Azure Endpoint Support
//
"AzurePublishEndpoints": {
}

}

0 comments on commit 80c1b51

Please sign in to comment.