chiark / gitweb /
Merge branch 'tests-fedora' into 'master'
[fdroidserver.git] / examples / config.py
1 #!/usr/bin/env python3
2
3 # Copy this file to config.py, then amend the settings below according to
4 # your system configuration.
5
6 # Custom path to the Android SDK, defaults to $ANDROID_HOME
7 # sdk_path = "$ANDROID_HOME"
8
9 # Custom paths to various versions of the Android NDK, defaults to 'r12b' set
10 # to $ANDROID_NDK. Most users will have the latest at $ANDROID_NDK, which is
11 # used by default. If a version is missing or assigned to None, it is assumed
12 # not installed.
13 # ndk_paths = {
14 #     'r9b': None,
15 #     'r10e': None,
16 #     'r11c': None,
17 #     'r12b': "$ANDROID_NDK",
18 #     'r13b': None,
19 #     'r14b': None,
20 #     'r15c': None,
21 #     'r16': None,
22 # }
23
24 # Path to the Qt SDK. It is of the form "/path/to/Qt5.7.0/5.7"
25 # qt_sdk_path = ""
26
27 # java_paths = {
28 #     '1.8': "/usr/lib/jvm/java-8-openjdk",
29 # }
30
31 # Build tools version to be used
32 # build_tools = "25.0.2"
33
34 # Force all build to use the above version of build -tools, good for testing
35 # builds without having all of the possible build-tools installed.
36 # force_build_tools = True
37
38 # Command or path to binary for running Ant
39 # ant = "ant"
40
41 # Command or path to binary for running maven 3
42 # mvn3 = "mvn"
43
44 # Command or path to binary for running Gradle
45 # gradle = "gradle"
46
47 # Set the maximum age (in days) of an index that a client should accept from
48 # this repo. Setting it to 0 or not setting it at all disables this
49 # functionality. If you do set this to a non-zero value, you need to ensure
50 # that your index is updated much more frequently than the specified interval.
51 # The same policy is applied to the archive repo, if there is one.
52 # repo_maxage = 0
53
54 repo_url = "https://MyFirstFDroidRepo.org/fdroid/repo"
55 repo_name = "My First F-Droid Repo Demo"
56 repo_icon = "fdroid-icon.png"
57 repo_description = """
58 This is a repository of apps to be used with F-Droid. Applications in this
59 repository are either official binaries built by the original application
60 developers, or are binaries built from source by the admin of f-droid.org
61 using the tools on https://gitlab.com/u/fdroid.
62 """
63
64 # As above, but for the archive repo.
65 # archive_older sets the number of versions kept in the main repo, with all
66 # older ones going to the archive. Set it to 0, and there will be no archive
67 # repository, and no need to define the other archive_ values.
68 archive_older = 3
69 archive_url = "https://f-droid.org/archive"
70 archive_name = "My First F-Droid Archive Demo"
71 archive_icon = "fdroid-icon.png"
72 archive_description = """
73 The repository of older versions of applications from the main demo repository.
74 """
75
76 # This allows a specific kind of insecure APK to be included in the
77 # 'repo' section.  Since April 2017, APK signatures that use MD5 are
78 # no longer considered valid, jarsigner and apksigner will return an
79 # error when verifying.  `fdroid update` will move APKs with these
80 # disabled signatures to the archive.  This option stops that
81 # behavior, and lets those APKs stay part of 'repo'.
82 #
83 # allow_disabled_algorithms = True
84
85 # Normally, all apps are collected into a single app repository, like on
86 # https://f-droid.org. For certain situations, it is better to make a repo
87 # that is made up of APKs only from a single app. For example, an automated
88 # build server that publishes nightly builds.
89 # per_app_repos = True
90
91 # `fdroid update` will create a link to the current version of a given app.
92 # This provides a static path to the current APK. To disable the creation of
93 # this link, uncomment this:
94 # make_current_version_link = False
95
96 # By default, the "current version" link will be based on the "Name" of the
97 # app from the metadata. You can change it to use a different field from the
98 # metadata here:
99 # current_version_name_source = 'packageName'
100
101 # Optionally, override home directory for gpg
102 # gpghome = '/home/fdroid/somewhere/else/.gnupg'
103
104 # The ID of a GPG key for making detached signatures for apks. Optional.
105 # gpgkey = '1DBA2E89'
106
107 # The key (from the keystore defined below) to be used for signing the
108 # repository itself. This is the same name you would give to keytool or
109 # jarsigner using -alias. (Not needed in an unsigned repository).
110 # repo_keyalias = "fdroidrepo"
111
112 # Optionally, the public key for the key defined by repo_keyalias above can
113 # be specified here. There is no need to do this, as the public key can and
114 # will be retrieved from the keystore when needed. However, specifying it
115 # manually can allow some processing to take place without access to the
116 # keystore.
117 # repo_pubkey = "..."
118
119 # The keystore to use for release keys when building. This needs to be
120 # somewhere safe and secure, and backed up!  The best way to manage these
121 # sensitive keys is to use a "smartcard" (aka Hardware Security Module). To
122 # configure F-Droid to use a smartcard, set the keystore file using the keyword
123 # "NONE" (i.e. keystore = "NONE"). That makes Java find the keystore on the
124 # smartcard based on 'smartcardoptions' below.
125 # keystore = "~/.local/share/fdroidserver/keystore.jks"
126
127 # You should not need to change these at all, unless you have a very
128 # customized setup for using smartcards in Java with keytool/jarsigner
129 # smartcardoptions = "-storetype PKCS11 -providerName SunPKCS11-OpenSC \
130 #    -providerClass sun.security.pkcs11.SunPKCS11 \
131 #    -providerArg opensc-fdroid.cfg"
132
133 # The password for the keystore (at least 6 characters). If this password is
134 # different than the keypass below, it can be OK to store the password in this
135 # file for real use. But in general, sensitive passwords should not be stored
136 # in text files!
137 # keystorepass = "password1"
138
139 # The password for keys - the same is used for each auto-generated key as well
140 # as for the repository key. You should not normally store this password in a
141 # file since it is a sensitive password.
142 # keypass = "password2"
143
144 # The distinguished name used for all keys.
145 # keydname = "CN=Birdman, OU=Cell, O=Alcatraz, L=Alcatraz, S=California, C=US"
146
147 # Use this to override the auto-generated key aliases with specific ones
148 # for particular applications. Normally, just leave it empty.
149 # keyaliases = {}
150 # keyaliases['com.example.app'] = 'example'
151 # You can also force an app to use the same key alias as another one, using
152 # the @ prefix.
153 # keyaliases['com.example.another.plugin'] = '@com.example.another'
154
155
156 # The full path to the root of the repository. It must be specified in
157 # rsync/ssh format for a remote host/path. This is used for syncing a locally
158 # generated repo to the server that is it hosted on. It must end in the
159 # standard public repo name of "/fdroid", but can be in up to three levels of
160 # sub-directories (i.e. /var/www/packagerepos/fdroid). You can include
161 # multiple servers to sync to by wrapping the whole thing in {} or [], and
162 # including the serverwebroot strings in a comma-separated list.
163 #
164 # serverwebroot = 'user@example:/var/www/fdroid'
165 # serverwebroot = {
166 #     'foo.com:/usr/share/nginx/www/fdroid',
167 #     'bar.info:/var/www/fdroid',
168 #     }
169
170 # The full URL to a git remote repository. You can include
171 # multiple servers to mirror to by wrapping the whole thing in {} or [], and
172 # including the servergitmirrors strings in a comma-separated list.
173 # Servers listed here will also be automatically inserted in the mirrors list.
174 #
175 # servergitmirrors = 'https://github.com/user/repo'
176 # servergitmirrors = {
177 #     'https://github.com/user/repo',
178 #     'https://gitlab.com/user/repo',
179 #     }
180
181 # Any mirrors of this repo, for example all of the servers declared in
182 # serverwebroot and all the servers declared in servergitmirrors,
183 # will automatically be used by the client.  If one
184 # mirror is not working, then the client will try another.  If the
185 # client has Tor enabled, then the client will prefer mirrors with
186 # .onion addresses. This base URL will be used for both the main repo
187 # and the archive, if it is enabled.  So these URLs should end in the
188 # 'fdroid' base of the F-Droid part of the web server like serverwebroot.
189 #
190 # mirrors = (
191 #     'https://foo.bar/fdroid',
192 #     'http://foobarfoobarfoobar.onion/fdroid',
193 # )
194
195 # optionally specify which identity file to use when using rsync or git over SSH
196 #
197 # identity_file = '~/.ssh/fdroid_id_rsa'
198
199
200 # If you are running the repo signing process on a completely offline machine,
201 # which provides the best security, then you can specify a folder to sync the
202 # repo to when running `fdroid server update`. This is most likely going to
203 # be a USB thumb drive, SD Card, or some other kind of removable media. Make
204 # sure it is mounted before running `fdroid server update`. Using the
205 # standard folder called 'fdroid' as the specified folder is recommended, like
206 # with serverwebroot.
207 #
208 # local_copy_dir = '/media/MyUSBThumbDrive/fdroid'
209
210
211 # If you are using local_copy_dir on an offline build/signing server, once the
212 # thumb drive has been plugged into the online machine, it will need to be
213 # synced to the copy on the online machine. To make that happen
214 # automatically, set sync_from_local_copy_dir to True:
215 #
216 # sync_from_local_copy_dir = True
217
218
219 # To upload the repo to an Amazon S3 bucket using `fdroid server update`.
220 # Warning, this deletes and recreates the whole fdroid/ directory each
221 # time. This is based on apache-libcloud, which supports basically all cloud
222 # storage services, so it should be easy to port the fdroid server tools to
223 # any of them.
224 #
225 # awsbucket = 'myawsfdroid'
226 # awsaccesskeyid = 'SEE0CHAITHEIMAUR2USA'
227 # awssecretkey = 'yourverysecretkeywordpassphraserighthere'
228
229
230 # If you want to force 'fdroid server' to use a non-standard serverwebroot
231 #
232 # nonstandardwebroot = False
233
234
235 # If you want to upload the release apk file to androidobservatory.org
236 #
237 # androidobservatory = False
238
239
240 # If you want to upload the release apk file to virustotal.com
241 # You have to enter your profile apikey to enable the upload.
242 #
243 # virustotal_apikey = "virustotal_apikey"
244
245
246 # The build logs can be posted to a mediawiki instance, like on f-droid.org.
247 # wiki_protocol = "http"
248 # wiki_server = "server"
249 # wiki_path = "/wiki/"
250 # wiki_user = "login"
251 # wiki_password = "1234"
252
253 # Keep a log of all generated index files in a git repo to provide a
254 # "binary transparency" log for anyone to check the history of the
255 # binaries that are published.  This is in the form of a "git remote",
256 # which this machine where `fdroid update` is run has already been
257 # configured to allow push access (e.g. ssh key, username/password, etc)
258 # binary_transparency_remote = "git@gitlab.com:fdroid/binary-transparency-log.git"
259
260 # Only set this to true when running a repository where you want to generate
261 # stats, and only then on the master build servers, not a development
262 # machine. If you want to keep the "added" and "last updated" dates for each
263 # app and APK in your repo, then you should enable this.
264 # update_stats = True
265
266 # When used with stats, this is a list of IP addresses that are ignored for
267 # calculation purposes.
268 # stats_ignore = []
269
270 # Server stats logs are retrieved from. Required when update_stats is True.
271 # stats_server = "example.com"
272
273 # User stats logs are retrieved from. Required when update_stats is True.
274 # stats_user = "bob"
275
276 # Use the following to push stats to a Carbon instance:
277 # stats_to_carbon = False
278 # carbon_host = '0.0.0.0'
279 # carbon_port = 2003
280
281 # Set this to true to always use a build server. This saves specifying the
282 # --server option on dedicated secure build server hosts.
283 # build_server_always = True
284
285 # By default, fdroid will use YAML .yml and the custom .txt metadata formats. It
286 # is also possible to have metadata in JSON by adding 'json'.
287 # accepted_formats = ('txt', 'yml')
288
289 # Limit in number of characters that fields can take up
290 # Only the fields listed here are supported, defaults shown
291 # char_limits = {
292 #     'Summary': 80,
293 #     'Description': 4000,
294 # }
295
296 # It is possible for the server operator to specify lists of apps that
297 # must be installed or uninstalled on the client (aka "push installs).
298 # If the user has opted in, or the device is already setup to respond
299 # to these requests, then F-Droid will automatically install/uninstall
300 # the packageNames listed.  This is protected by the same signing key
301 # as the app index metadata.
302 #
303 # install_list = (
304 #     'at.bitfire.davdroid',
305 #     'com.fsck.k9',
306 #     'us.replicant',
307 # )
308 #
309 # uninstall_list = (
310 #     'com.facebook.orca',
311 #     'com.android.vending',
312 # )