Binary Artifact Management Tool
The fastest way to start using Artipie is via Docker:
docker run --rm --name artipie -p 8080:8080 --user=artipie:artipie artipie/artipie:latest
It'll start a new Docker container with latest Artipie image. A new image generates default server config if not found at
/etc/artipie/artipie.yml, prints initial credentials to console and prints a link to the dashboard. If started on localhost with command above, the dashboard URI is http://localhost:8080/dashboard/artipie.
To create a new artifact repository: 1. Go to the dashboard 2. Enter the name of a new repository, choose a type, and click button "Add" 3. Artipie generates standard configuration for this kind of repository, and asks for review or edit. You can ignore this step for now. 4. Below the repository configuration, the page will have a simple configuration for your client, and usage examples, e.g. the code for
pom.xmlfor Maven repository.
Default server configuration refers to
/var/artipie/reposto look up for repository configurations. You may want to mount local configurations here to edit it manually by adding
docker runmount option:
-v :/var/artipie/repo, where is you local config directory.
2020:2021, to change it correctly use
chown -R 2020:2021.
More examples are here.
We recommend you read the "Architecture" section in our White Paper to fully understand how Artipie is designed.
For now, we support two storage types: file system and S3 storages. To configure file system storage it is enough to set the path where Artipie will store all the items:
storage: type: fs path: /urs/local/aripie/data
S3 storage configuration requires specifying
yaml storage: type: s3 bucket: my-bucket region: my-region # optional endpoint: https://my-s3-provider.com # optional credentials: type: basic accessKeyId: xxx secretAccessKey: xxx
Storages can be configured for each repository individually in repo configuration yaml or in the
_storages.yamlfile along with aliases:
storages: default: type: fs path: ./.storage/data
defaultstorage alias can be used to configure a repository:
repo: type: maven storage: default
Permissions for repository operations can be granted in the repo configuration file:
yaml repo: ... permissions: jane: - read - write admin: - "*" /readers: - read
All repositories support
writeoperations, other specific permissions may be supported in certain repository types.
Group names should start with
/, is the example above
readoperation is granted for
readersgroup and every user within the group can read from the repository, user named
janeis allowed to
write. We also support asterisk wildcard for "any operation" or "any user", user
adminin the example can perform any operation in the repository.
permissionssection is absent in repo config, then any supported operation is allowed for everyone, empty
permissionssection restricts any operations for anyone.
You may want to run Artipie for your company, which has a few teams. Each team may want to have its own repository. To do this, you create a global configuration file
meta: layout: org storage: type: fs path: /tmp/artipie/data/my-docker credentials: type: file path: _credentials.yml
typeis set to
file, another YAML file is required in the storage, with a list of users who will be allowed to create repos (
typeis password format,
sha256types are supported):
credentials: jane: type: plain pass: qwerty email: [email protected] # Optional john: type: sha256 pass: xxxxxxxxxxxxxxxxxxxxxxx groups: # Optional - readers - dev-leads
Users can be assigned to some groups, all repository permissions granted to the group are applied to the users participating in this group.
typeis set to
env, the following environment variables are expected:
ARTIPIE_USER_PASS. For example, you start Docker container with the
docker run -d -v /var/artipie:/var/artipie` -p 80:80 \ -e ARTIPIE_USER_NAME=artipie -e ARTIPIE_USER_PASS=qwerty \ artipie/artipie:latest
Artipie repositories may run on separate ports if configured. This feature may be especially useful for Docker repository, as it's API is not well suited to serve multiple repositories on single port.
To run repository on its own port
portparameter should be specified in repository configuration YAML as follows:
repo: type: port: 54321 ...
NOTE: Artipie scans repositories for port configuration only on start, so server requires restart in order to apply changes made in runtime.
You may enable some basic metrics collecting and periodic publishing to application log by adding
metasection of global configuration file
meta: metrics: type: log # Metrics type, for now only `log` type is supported interval: 5 # Publishing interval in seconds, default value is 5
Artipie provides a set of APIs to manage repositories and users. The current APIs are fully documented here.
You may want configure it via environment variables:
SSL_TRUSTALL- trust all unknown certificates
To configure repository config files location, add to the global configuration file
yaml meta: repo_configs: configsLocation is the storage key relatively to the main storage, or, in file system storage terms, subdirectory where repo configs are located relatively to the storage.
Thanks to FreePik for the logo.