From f79c3f766215afc0130cd06aa0be6d3d3606435e Mon Sep 17 00:00:00 2001 From: Sindre Stephansen Date: Tue, 14 Mar 2023 10:03:43 +0100 Subject: [PATCH] Update reposilite --- docker-compose.yml | 9 ++-- repo/reposilite.cdn | 80 -------------------------------- repo/reposilite.json | 107 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 112 insertions(+), 84 deletions(-) delete mode 100644 repo/reposilite.cdn create mode 100644 repo/reposilite.json diff --git a/docker-compose.yml b/docker-compose.yml index f4d4ee7..b60fd6b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,12 +2,13 @@ version: '3.9' services: repo: - image: dzikoysk/reposilite:3.0.0-alpha.23 - user: ${USER_ID}:${GROUP_ID} + image: dzikoysk/reposilite:3.4.0 environment: - REPOSILITE_OPTS: "--token admin:secret --shared-configuration=/reposilite.cdn --shared-configuration-mode=copy" + PGID: ${GROUP_ID} + PUID: ${USER_ID} + REPOSILITE_OPTS: "--token admin:secret --shared-configuration=/reposilite.json --port 80" volumes: - - ./repo/reposilite.cdn:/reposilite.cdn + - ./repo/reposilite.json:/reposilite.json - ./data:/app/data # Network added in docker-compose.override.yml networks: diff --git a/repo/reposilite.cdn b/repo/reposilite.cdn deleted file mode 100644 index 406fe0d..0000000 --- a/repo/reposilite.cdn +++ /dev/null @@ -1,80 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # -# Reposilite :: Shared # -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # - -# Repository id used in Maven repository configuration -id: reposilite-repository -# Repository title -title: Maven Mirror -# Repository description -description: Maven Mirror -# Link to organization's website -organizationWebsite: https://reposilite.com -# Link to organization's logo -organizationLogo: https://avatars.githubusercontent.com/u/88636591 -# The Internet Content Provider License (also known as Bei'An) -# Web services in China require ICP license, a permit issued by the Chinese government to permit China-based websites to operate in China. -# In order to fulfill the conditions, you should apply for ICP license from your service provider and fill in this parameter. -icpLicense: "" -# Enable default frontend with dashboard -frontend: true -# Enable Swagger (/swagger-docs) and Swagger UI (/swagger) -swagger: false -# Custom base path -basePath: / - -# List of supported Maven repositories -repositories { - releases { - visibility: PUBLIC - redeployment: false - preserved: -1 - storageProvider: fs --quota 100% - proxied: [ - https://repo.maven.apache.org/maven2 --store --connectTimeout=3 --readTimeout=15 - https://repo1.maven.org/maven2 --store --connectTimeout=3 --readTimeout=15 - https://oss.sonatype.org/content/repositories/snapshots --store --connectTimeout=3 --readTimeout=15 - https://packages.confluent.io/maven/ --store --connectTimeout=3 --readTimeout=15 - https://registry.quarkus.io/maven --store --connectTimeout=3 --readTimeout=15 - https://plugins.gradle.org/m2/ --store --connectTimeout=3 --readTimeout=15 - ] - } -} - -# Statistics module configuration -statistics { - # How often Reposilite should divide recorded requests into separated groups. - # With higher precision you can get more detailed timestamps, but it'll increase database size. - # It's not that important for small repos with low traffic, but public instances should not use daily interval. - # Available modes: daily, weekly, monthly, yearly - resolvedRequestsInterval: monthly -} - -# LDAP configuration -ldap { - # LDAP Authenticator is enabled - enabled: false - # LDAP server address - hostname: ldap.domain.com - # LDAP server port - port: 389 - # Base DN with users - baseDn: dc=company,dc=com - # User used to perform searches in LDAP server (requires permissions to read all LDAP entries) - searchUserDn: cn=reposilite,ou=admins,dc=domain,dc=com - # Search user's password - searchUserPassword: reposilite-admin-secret - # Attribute in LDAP that represents unique username used to create access token - userAttribute: cn - # LDAP user filter - userFilter: (&(objectClass=person)(ou=Maven Users)) - # Should the created through LDAP access token be TEMPORARY or PERSISTENT - userType: PERSISTENT -} - -# Any kind of proxy services change real ip. -# The origin ip should be available in one of the headers. -# Nginx: X-Forwarded-For -# Cloudflare: CF-Connecting-IP -# Popular: X-Real-IP -forwardedIp: X-Forwarded-For diff --git a/repo/reposilite.json b/repo/reposilite.json new file mode 100644 index 0000000..16406ae --- /dev/null +++ b/repo/reposilite.json @@ -0,0 +1,107 @@ +{ + "authentication": { + "ldap": { + "enabled": false, + "hostname": "ldap.domain.com", + "port": 389, + "baseDn": "dc=company,dc=com", + "searchUserDn": "cn=reposilite,ou=admins,dc=domain,dc=com", + "searchUserPassword": "reposilite-admin-secret", + "userAttribute": "cn", + "userFilter": "(&(objectClass=person)(ou=Maven Users))", + "userType": "PERSISTENT" + } + }, + "frontend": { + "id": "reposilite-repository", + "title": "Reposilite Repository", + "description": "Public Maven repository hosted through the Reposilite", + "organizationWebsite": "https://reposilite.com", + "organizationLogo": "https://avatars.githubusercontent.com/u/88636591", + "icpLicense": "" + }, + "statistics": { + "enabled": true, + "resolvedRequestsInterval": "MONTHLY" + }, + "web": { + "forwardedIp": "X-Forwarded-For" + }, + "maven": { + "repositories": [ + { + "id": "releases", + "visibility": "PUBLIC", + "storageProvider": { + "type": "fs", + "quota": "100%", + "mount": "" + }, + "redeployment": false, + "preserveSnapshots": false, + "proxied": [ + { + "reference": "https://repo.maven.apache.org/maven2", + "store": true, + "connectTimeout": 3, + "readTimeout": 12 + }, + { + "reference": "https://repo1.maven.org/maven2", + "store": true, + "connectTimeout": 3, + "readTimeout": 15 + }, + { + "reference": "https://oss.sonatype.org/content/repositories/snapshots", + "store": true, + "connectTimeout": 3, + "readTimeout": 15 + }, + { + "reference": "https://packages.confluent.io/maven/", + "store": true, + "connectTimeout": 3, + "readTimeout": 15 + }, + { + "reference": "https://registry.quarkus.io/maven", + "store": true, + "connectTimeout": 3, + "readTimeout": 15 + }, + { + "reference": "https://plugins.gradle.org/m2/", + "store": true, + "connectTimeout": 3, + "readTimeout": 15 + } + ] + }, + { + "id": "snapshots", + "visibility": "PUBLIC", + "storageProvider": { + "type": "fs", + "quota": "100%", + "mount": "" + }, + "redeployment": false, + "preserveSnapshots": false, + "proxied": [] + }, + { + "id": "private", + "visibility": "PRIVATE", + "storageProvider": { + "type": "fs", + "quota": "100%", + "mount": "" + }, + "redeployment": false, + "preserveSnapshots": false, + "proxied": [] + } + ] + } +}