73c6477b7e
Previously, we used brackets to denote the tier badges, but this made Kramdown, the docs site Markdown renderer, show many warnings when building the site. This is now fixed by using parentheses instead of square brackets. This was caused by [PREMIUM] looking like a link to Kramdown, which couldn't find a URL there. See: - https://gitlab.com/gitlab-com/gitlab-docs/merge_requests/484 - https://gitlab.com/gitlab-org/gitlab-ce/issues/63800
150 lines
6 KiB
Markdown
150 lines
6 KiB
Markdown
# GitLab Dependency Proxy administration **(PREMIUM ONLY)**
|
|
|
|
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/issues/7934) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.11.
|
|
|
|
GitLab can be utilized as a dependency proxy for a variety of common package managers.
|
|
|
|
This is the administration documentation. If you want to learn how to use the
|
|
dependency proxies, see the [user guide](../user/group/dependency_proxy/index.md).
|
|
|
|
## Enabling the Dependency Proxy feature
|
|
|
|
NOTE: **Note:**
|
|
Dependency proxy requires the Puma web server to be enabled.
|
|
Puma support is EXPERIMENTAL at this time.
|
|
|
|
To enable the Dependency proxy feature:
|
|
|
|
**Omnibus GitLab installations**
|
|
|
|
1. Edit `/etc/gitlab/gitlab.rb` and add the following line:
|
|
|
|
```ruby
|
|
gitlab_rails['dependency_proxy_enabled'] = true
|
|
```
|
|
|
|
1. Save the file and [reconfigure GitLab][] for the changes to take effect.
|
|
1. Enable the [Puma web server](https://docs.gitlab.com/omnibus/settings/puma.html).
|
|
|
|
**Installations from source**
|
|
|
|
1. After the installation is complete, you will have to configure the `dependency_proxy`
|
|
section in `config/gitlab.yml`. Set to `true` to enable it:
|
|
|
|
```yaml
|
|
dependency_proxy:
|
|
enabled: true
|
|
```
|
|
|
|
1. [Restart GitLab] for the changes to take effect.
|
|
1. Enable the [Puma web server](../install/installation.md#using-puma).
|
|
|
|
## Changing the storage path
|
|
|
|
By default, the dependency proxy files are stored locally, but you can change the default
|
|
local location or even use object storage.
|
|
|
|
### Changing the local storage path
|
|
|
|
The dependency proxy files for Omnibus GitLab installations are stored under
|
|
`/var/opt/gitlab/gitlab-rails/shared/dependency_proxy/` and for source
|
|
installations under `shared/dependency_proxy/` (relative to the git home directory).
|
|
To change the local storage path:
|
|
|
|
**Omnibus GitLab installations**
|
|
|
|
1. Edit `/etc/gitlab/gitlab.rb` and add the following line:
|
|
|
|
```ruby
|
|
gitlab_rails['dependency_proxy_storage_path'] = "/mnt/dependency_proxy"
|
|
```
|
|
|
|
1. Save the file and [reconfigure GitLab][] for the changes to take effect.
|
|
|
|
**Installations from source**
|
|
|
|
1. Edit the `dependency_proxy` section in `config/gitlab.yml`:
|
|
|
|
```yaml
|
|
dependency_proxy:
|
|
enabled: true
|
|
storage_path: shared/dependency_proxy
|
|
```
|
|
1. [Restart GitLab] for the changes to take effect.
|
|
|
|
### Using object storage
|
|
|
|
Instead of relying on the local storage, you can use an object storage to
|
|
upload the blobs of the dependency proxy:
|
|
|
|
**Omnibus GitLab installations**
|
|
|
|
1. Edit `/etc/gitlab/gitlab.rb` and add the following lines (uncomment where
|
|
necessary):
|
|
|
|
```ruby
|
|
gitlab_rails['dependency_proxy_enabled'] = true
|
|
gitlab_rails['dependency_proxy_storage_path'] = "/var/opt/gitlab/gitlab-rails/shared/dependency_proxy"
|
|
gitlab_rails['dependency_proxy_object_store_enabled'] = true
|
|
gitlab_rails['dependency_proxy_object_store_remote_directory'] = "dependency_proxy" # The bucket name.
|
|
gitlab_rails['dependency_proxy_object_store_direct_upload'] = false # Use Object Storage directly for uploads instead of background uploads if enabled (Default: false).
|
|
gitlab_rails['dependency_proxy_object_store_background_upload'] = true # Temporary option to limit automatic upload (Default: true).
|
|
gitlab_rails['dependency_proxy_object_store_proxy_download'] = false # Passthrough all downloads via GitLab instead of using Redirects to Object Storage.
|
|
gitlab_rails['dependency_proxy_object_store_connection'] = {
|
|
##
|
|
## If the provider is AWS S3, uncomment the following
|
|
##
|
|
#'provider' => 'AWS',
|
|
#'region' => 'eu-west-1',
|
|
#'aws_access_key_id' => 'AWS_ACCESS_KEY_ID',
|
|
#'aws_secret_access_key' => 'AWS_SECRET_ACCESS_KEY',
|
|
##
|
|
## If the provider is other than AWS (an S3-compatible one), uncomment the following
|
|
##
|
|
#'host' => 's3.amazonaws.com',
|
|
#'aws_signature_version' => 4 # For creation of signed URLs. Set to 2 if provider does not support v4.
|
|
#'endpoint' => 'https://s3.amazonaws.com' # Useful for S3-compliant services such as DigitalOcean Spaces.
|
|
#'path_style' => false # If true, use 'host/bucket_name/object' instead of 'bucket_name.host/object'.
|
|
}
|
|
```
|
|
|
|
1. Save the file and [reconfigure GitLab][] for the changes to take effect.
|
|
|
|
**Installations from source**
|
|
|
|
1. Edit the `dependency_proxy` section in `config/gitlab.yml` (uncomment where necessary):
|
|
|
|
```yaml
|
|
dependency_proxy:
|
|
enabled: true
|
|
##
|
|
## The location where build dependency_proxy are stored (default: shared/dependency_proxy).
|
|
##
|
|
#storage_path: shared/dependency_proxy
|
|
object_store:
|
|
enabled: false
|
|
remote_directory: dependency_proxy # The bucket name.
|
|
#direct_upload: false # Use Object Storage directly for uploads instead of background uploads if enabled (Default: false).
|
|
#background_upload: true # Temporary option to limit automatic upload (Default: true).
|
|
#proxy_download: false # Passthrough all downloads via GitLab instead of using Redirects to Object Storage.
|
|
connection:
|
|
##
|
|
## If the provider is AWS S3, uncomment the following
|
|
##
|
|
#provider: AWS
|
|
#region: us-east-1
|
|
#aws_access_key_id: AWS_ACCESS_KEY_ID
|
|
#aws_secret_access_key: AWS_SECRET_ACCESS_KEY
|
|
##
|
|
## If the provider is other than AWS (an S3-compatible one), uncomment the following
|
|
##
|
|
#host: 's3.amazonaws.com' # default: s3.amazonaws.com.
|
|
#aws_signature_version: 4 # For creation of signed URLs. Set to 2 if provider does not support v4.
|
|
#endpoint: 'https://s3.amazonaws.com' # Useful for S3-compliant services such as DigitalOcean Spaces.
|
|
#path_style: false # If true, use 'host/bucket_name/object' instead of 'bucket_name.host/object'.
|
|
```
|
|
|
|
1. [Restart GitLab] for the changes to take effect.
|
|
|
|
[reconfigure gitlab]: restart_gitlab.md#omnibus-gitlab-reconfigure "How to reconfigure Omnibus GitLab"
|
|
[restart gitlab]: restart_gitlab.md#omnibus-gitlab-reconfigure "How to reconfigure Omnibus GitLab"
|