// vim: : filetype=json // json configuration file with comments // validate with: sed '/\/\//d' aptly.conf | json_pp { // General /////////// // Aptly storage directory // Directory for storing: // - downloaded packages (`rootDir`/pool) // - database (`rootDir`/db) // - published repositories (`rootDir`/public) "rootDir": "~/.aptly", // Number of attempts to open database if it's locked by other instance // * -1 (no retry) "databaseOpenAttempts": -1, // Log Level // * debug // * info // * warning // * error "logLevel": "info", // Log Format // * default (text) // * json "logFormat": "default", // Default Architectures // empty array defaults to all available 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, // Log additional details while resolving dependencies (useful for debugging) "dependencyVerboseResolve": false, // Specifies paramaters for short PPA url expansion // empty defaults to output of `lsb_release` command "ppaDistributorID": "ubuntu", // Codename for short PPA url expansion "ppaCodename": "", // 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, // Aptly Server //////////////// // Serve published repos as well as API "serveInAPIMode": false, // Enable metrics for Prometheus client "enableMetricsEndpoint": false, // Enable API documentation on /docs "enableSwaggerEndpoint": false, // OBSOLETE: use via url param ?_async=true "AsyncAPI": false, // Database //////////// // Database backend // Type must be one of: // * leveldb (default) // * etcd "databaseBackend": { // LevelDB "type": "leveldb", // Path to leveldb files // empty dbPath defaults to `rootDir`/db "dbPath": "" // // etcd // "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 "downloadConcurrency": 4, // Limit in kbytes/sec on download speed while mirroring remote repositories "downloadSpeedLimit": 0, // Number of retries for download attempts "downloadRetries": 0, // Download source packages per default "downloadSourcePackages": false, // Signing /////////// // GPG Provider // * "internal" (Go internal implementation) // * "gpg" (External `gpg` utility) "gpgProvider": "gpg", // Disable signing of published repositories "gpgDisableSign": false, // Disable signature verification of remote repositories "gpgDisableVerify": false, // Publishing ////////////// // Do not publish Contents files "skipContentsPublishing": false, // Do not create bz2 files "skipBz2Publishing": 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` // "FileSystemPublishEndpoints": { // // Endpoint Name // "test1": { // // Directory for publishing // "rootDir": "/opt/srv/aptly_public", // // // File Link Method for linking files from the internal pool to the published directory // // * hardlink // // * symlink // // * copy // "linkMethod": "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) // "verifyMethod": "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:` // "S3PublishEndpoints": { // // Endpoint Name // "test": { // // // Amazon region for S3 bucket // "region": "us-east-1", // // // Bucket name // "bucket": "test-bucket", // // // 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": "", // // // Prefix (optional) // // publishing under specified prefix in the bucket, defaults to // // no prefix (bucket root) // "prefix": "", // // // Default ACLs (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. // "acl": "private", // // // Credentials (optional) // // Amazon credentials to access S3 bucket. If not supplied, // // environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` // // are used. // "awsAccessKeyID": "", // "awsSecretAccessKey": "", // // // Storage Class (optional) // // Amazon S3 storage class, defaults to `STANDARD`. Other values // // available: `REDUCED_REDUNDANCY` (lower price, lower redundancy) // "storageClass": "STANDARD", // // // Encryption Method (optional) // // Server-side encryption method, defaults to none. Currently // // the only available encryption method is `AES256` // "encryptionMethod": "none", // // // 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) // "plusWorkaround": 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) // "disableMultiDel": false, // // // ForceSig2 (optional) // // Disable Signature V4 support, useful with non-AWS S3-compatible object stores // // which do not support SigV4, shouldn't be enabled for AWS // "forceSigV2": false, // // // ForceVirtualHostedStyle (optional) // // Disable path style visit, useful with non-AWS S3-compatible object stores // // which only support virtual hosted style // "forceVirtualHostedStyle": false, // // // Debug (optional) // // Enables detailed request/response dump for each S3 operation // "debug": false // } }, // 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. // // 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": { // // Endpoint Name // "test": { // // // Container Name // "container": "container1", // // // 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 // "osname": "", // "password": "", // // Tenant (optional) // // OpenStack tenant name and id (in order to use v2 authentication) // "tenant": "", // "tenantid": "", // // Auth URL (optional) // // Full url of Keystone server (including port, and version). // // Example `http://identity.example.com:5000/v2.0` // "authurl": "" // } }, // 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. "AzurePublishEndpoints": { // // 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 // "accountName": "", // "accountKey": "", // // // Endpoint URL // // See: Azure documentation https://docs.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string // // defaults to "https://.blob.core.windows.net" // "endpoint": "" // } }, // Package Pool // Location for storing downloaded packages // Type must be one of: // * local // * azure "packagePoolStorage": { // Local Pool "type": "local", // Local Pool Path // empty path defaults to `rootDir`/pool "path": "" // // Azure Azure Blob Storage Pool // "type": "azure", // "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 // "accountName": "", // "accountKey": "", // // // Endpoint URL // // See: Azure documentation https://docs.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string // // defaults to "https://.blob.core.windows.net" // "endpoint": "" // } } // End of config }