Skip to content

Bethibande/Arcae

Repository files navigation

Arcae

A self-hosted software repository.

dashboard

Warning

This project is in early development, please use it with caution. Bugs should be expected. Performance is also still a work-in-progress.

Quick links

Features

  • Maven repository support
  • Docker/OCI repository support
  • Kubernetes gateway API - Automatic HTTPRoute configuration support for OCI repositories
  • Open ID Connect - Link external accounts for easy sign ins
  • Cleanup policies
  • Mirroring of remote repositories
  • User permissions for repository access
  • Access tokens for deploying and accessing artifacts

Requirements

This section lists all requirements that need to be met in order to run the repository application itself. Additional software (such as PostgreSQL, Elasticsearch and more) is required and will impose its own set of requirements that need to be met.

Hardware

Two CPU cores and 150 MB of Memory is recommended for small scale deployments. For reference, the containers of the live deployment each consume around 58 MB to 101 MB of memory total.

Note

The JAVA_OPTIONS environment variable is used to limit the heap size. A value of -Xmx100m will limit the heap to 100 MB. At least 30 to 60 MB of additional memory is recommended to avoid out-of-memory errors. This memory is needed to store the binary and additional data such as network buffers.

A fully self-hosted setup including PostgreSQl, Elasticsearch and Minio (S3) will require at least 1.5 GB of memory. Most of this memory (over 1 GB) is used by Elasticsearch, in the future Elasticsearch may become optional.

Software

  • Linux
    Tested on Debian 12 and 13
  • Docker or Kubernetes
    Kubernetes should be reasonably up to date in order for cloud-native features, such as service discovery and the Gateway API support, to work.
  • PostgreSQL
    Tested on version 16.3
  • Elasticsearch
    Version 8.13.4, this is a hard constraint due to the way that the Elasticsearch client and the native-image builds work. As such you will most likely need to self-host this. A basic instance will require at least 1 GB of memory.
  • S3 compatible storage
    Must support multipart upload, multipart copy operations and ranged get operations.

Installation

Docker

To get started using docker, download the example docker-compose.yaml and run

docker compose up -d

Note

This docker compose file is only meant to serve as an example. It is not meant for production use. Credentials should be changed and stored securely, and readiness-probes are missing.

Wait for the repository to be ready (it may crash and restart a few times until elasticsearch and postgresql are online). And then navigate to http://localhost:8080/setup to create your admin user.

Kubernetes / Helm

To get started using Kubernetes, pull the chart. Please note that this chart does not contain any PostgreSQL, Elasticsearch or S3 deployments. You can find the values.yaml file here.

# Add the repository
helm repo add arcae https://helm.bethibande.com/repo/bethibande/arcae/

# Pull the chart
helm pull arcae/arcae --version 0.1.0

Screenshots

Dashboard Artifact browser
dashboard view artifact browser
Version listing Repository settings
artifact version listing general repository settings
Access Tokens Jobs
access token view system jobs view

About

Self hosted Maven & Docker repository

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages