4.3 KiB
title | license |
---|---|
Storage settings | CC-BY-SA-4.0 |
The storage for each subsystem is defined in app.ini
. It can either be on disk
(local
) or using a MinIO server (minio
). The default is local
storage, using the following hierarchy under the APP_DATA_PATH
directory:
subsystem | default base path | app.ini sections |
---|---|---|
Attachments | attachments/ | [attachment] |
LFS | lfs/ | [lfs] |
Avatars | avatars/ | [avatar] |
Repository avatars | repo-avatars/ | [repo-avatar] |
Repository archives | repo-archive/ | [repo-archive] |
Packages | packages/ | [packages] |
Actions logs | actions_log/ | [storage.actions_log] |
Actions Artifacts | actions_artifacts/ | [actions.artifacts] |
For instance if APP_DATA_PATH
was /appdata
, the default directory to
store attachments will be /appdata/attachments
.
Overriding the defaults
These defaults can be modified for all subsystems in the [storage]
section. For instance setting:
[storage]
PATH = /mystorage
will change the default for storing attachments to
/mystorage/attachments
. It is also possible to change these settings
for each subsystem in their dedicated section. For instance:
[storage]
PATH = /mystorage
[attachment]
PATH = /otherstorage/attachments
will store attachments in /otherstorage/attachments
while lfs
files will be stored in /mystorage/lfs
.
Storage type
The value of STORAGE_TYPE
can be local
(the default) or minio
. For instance:
[storage]
STORAGE_TYPE = minio
will use minio
for all subsystems (Attachments, LFS, etc.)
instead of storing them on disk. Each storage type has its own
settings, as explained below.
local
storage
There is just one setting when the STORAGE_TYPE
is set to local
,
PATH
. It must be an absolute path and is interpreted as follows.
In the [storage]
section, PATH
is the directory under which the default
base path of each subsystem will be created instead of
APP_DATA_PATH
. For instance, if APP_DATA_PATH
equals /appdata
:
[storage]
STORAGE_TYPE = local
PATH = /mystorage
Will create attachments in /mystorage/attachments
instead of
/appdata/attachments
, LFS files in /mystorage/lfs
instead of
/appdata/lfs
, etc.
In the section dedicated to a subsystem (see the table above), PATH
is the base path under which all files will be stored. For instance:
[storage]
STORAGE_TYPE = local
PATH = /mystorage
[attachment]
STORAGE_TYPE = local
PATH = /otherstorage/attachments
will store attachments in /otherstorage/attachments
while lfs
files will be stored in /mystorage/lfs
.
minio
storage
When the STORAGE_TYPE
is set to minio
, the settings available in
all sections ([storage]
and [XXXX]
) are:
SERVE_DIRECT
: false: Allows the storage driver to redirect to authenticated URLs to serve files directly. Only supported via signed URLs.MINIO_ENDPOINT
: localhost:9000: Minio endpoint to connect.MINIO_ACCESS_KEY_ID
: Minio accessKeyID to connect.MINIO_SECRET_ACCESS_KEY
: Minio secretAccessKey to connect.MINIO_BUCKET
: gitea: Minio bucket to store the data.MINIO_LOCATION
: us-east-1: Minio location to create bucket.MINIO_USE_SSL
: false: Minio enabled ssl.MINIO_INSECURE_SKIP_VERIFY
: false: Minio skip SSL verification.
One setting is only available in the [XXXX]
sections:
MINIO_BASE_PATH
: defaults to thedefault base path
of theXXXX
subsystem (see the table above) and is a relative path within the MinIO bucket defined byMINIO_BUCKET
.
Sections precedence
The sections in which a setting is found have the following priority:
- [XXXX] has precedence
- [storage] is the default
For instance:
[storage]
PATH = /default
[attachment]
PATH = /first
Will set the value of PATH
for attachments to /first
.
Undocumented features
It is strongly recommended to avoid using undocumented features -
such as [storage.attachments]
as an alternative to [attachment]
for instance (the plural is not a typo, it is a unification problem) -
because their behavior is not thoroughly tested and may lead to
unexpected results.