Artipie is a binary artifact management tool, similar to Artifactory, Nexus, Archiva, ProGet, and many others. The following set of features makes Artipie unique among all others:
- It is open source (MIT license)
- It is horizontally scalable, you can add servers easily
- It is written in reactive Java (using Vert.x)
- It supports Maven, Docker, Rubygems, Go, Helm, Npm, NuGet, Composer, Pip, Rpm, Debian, Anaconda and others
- It can host the data in the file system, Amazon S3 or in a storage defined by user
Learn more about Artipie in our Wiki.
Publications about Artipie:
- An Easy Way to Get Your Own Binary Repository
- Private Remote Maven Repository With Artipie
- Deployment of NPM Repositories with Artipie
- How I use Artipie, a PyPI repo
- Готовим приватные репозитории с помощью Artipie
Artipie is distributed as Docker container and as fat jar
. The jar
file can be downloaded on the
GitHub release page and here is a
Wiki page describing how to start it.
The fastest way to start Artipie is by using Docker container. First, make sure you have already installed Docker Engine.
Then, open command line and instruct Docker Engine to run Artipie container:
docker run -it -p 8080:8080 -p 8086:8086 artipie/artipie:latest
It'll start a new Docker container with latest Artipie version, the command includes mapping of two
ports: on port 8080
repositories are served and on port 8086
Artipie Rest API and Swagger
documentation is provided.
A new image generate default configuration, prints a list of running repositories, test
credentials and a link to the Swagger documentation to console. To check
existing repositories using Artipie Rest API:
- go to Swagger documentation page
http://localhost:8086/api/index.html
, choose "Auth token" in "Select a definition" list, - generate and copy authentication token for user
artipie/artipie
, - switch to "Repositories" definition, press "Authorize" button and paste the token
- then perform
GET /api/v1/repository/list
request. Response should be a json list with three default repositories:
[
"my-bin",
"my-docker",
"my-maven"
]
Artipie server side (repositories) is served on 8080
port and is available on URI
http://localhost:8080/{reponame}
, where {reponame}
is the name of the repository.
Let's put some text data into binary repository:
curl -X PUT -d 'Hello world!' http://localhost:8080/my-bin/test.txt
With this request we added file test.txt
containing text "Hello world!" into repository. Let's check
it's really there:
curl -X GET http://localhost:8080/my-bin/test.txt
"Hello world!" should be printed in console.
To dive in deeper into Artipie configuration, features, explore repositories and storages settings, please, address our Wiki.
Default server configuration in Docker Container refers to /var/artipie/repo
to look up for
repository configurations. You may want to mount local configurations <your-local-config-dir>
to /var/artipie/repo
to check and edit it manually.
Important: for provided Artipie docker containers
<your-local-config-dir>
should have directory ownership set to2021:2020
. To change it correctly usesudo chown -R 2021:2020 <your-local-config-dir>
.
If you have any question or suggestions, do not hesitate to create an issue or contact us in
Telegram.
Artipie roadmap.
Fork repository, make changes, send us a pull request. We will review
your changes and apply them to the master
branch shortly, provided
they don't violate our quality standards. To avoid frustration, before
sending us your pull request please run full Maven build:
$ mvn clean install
To avoid build errors use Maven 3.2+ and please read contributing rules.
Thanks to FreePik for the logo.
Artipie service is released in several formats:
- docker image in DockerHub
- docker image based on Ubuntu
- jar archive with dependencies in GitHub release page (example)
- asto modules, artipie-core, http-client, vertx-server and each adapter are released as jars into Maven central
All these distributions are created by GitHub workflows. To
publish release, push tag starting with v
into this repository masted branch:
git tag v1.2.0
git push --tags origin