Sign inSign up

capcom6/gomvn

By capcom6

Updated over 2 years ago

Self-hosted private maven repository.

Image
0

1.2K

capcom6/gomvn repository overview

GoMVN

A lightweight self-hosted repository manager for your private Maven artifacts.

Installation

Use docker to install this tool. Image is available at Docker HUB.

For better accesibility, map these docker volumes:

PathDescription
/app/dataapp data for persistency
/app/config.ymlconfiguration from outside of container, copy default config
Configuration

You can use config.yml to configure the service. Default config.yml is located in the same directory as the executable. To specify a different config file, use --config /path/to/config.yml.

Available configuration options:

PathDescription
namename of the repository
debugenable debug output
permissionsdefault permissions for the repository
permissions.indexanonymous access to index page
permissions.viewanonymous access to read artifacts
permissions.deployanonymous access to deploy artifacts
serverhttp server configuration
server.portport of the http server
server.hosthost of the http server
databasedatabase configuration
database.driverdatabase driver to use (sqlite, mysql, postgres)
database.dsndatabase dsn, see https://gorm.io/docs/connecting_to_the_database.html
repositorylist of available repositories

User Guide

On first run, admin account and his token is generated and prited into console.

You will need this to access management api or local admin pages (http://my-private-repository.example.com/admin/), which is used to set user access.

If you don't have more users, you can use already created admin accout to deploy and access your maven artifacts.

How to create java library

Ensure that your build.gradle file contains configuration by this example:

plugins {
    id 'maven-publish'
    id 'java'
}

publishing {
    repositories {
        maven {
            def releasesRepoUrl = "http://my-private-repository.example.com/release"
            def snapshotsRepoUrl = "http://my-private-repository.example.com/snapshot"
            name = 'mlj'
            url = project.version.endsWith('RELEASE') ? releasesRepoUrl : snapshotsRepoUrl
            credentials {
                username 'PUT HERE USERNAME'
                password 'PUT HERE TOKEN'
            }
        }
    }
    publications {
        maven(MavenPublication) {
            groupId = 'com.example'
            artifactId = 'library'
            version = '1.0.0.RELEASE'

            from components.java
        }
    }
}
How to create Android library

Ensure that your build.gradle file contains configuration by this example:

plugins {
    id 'maven-publish'
}

afterEvaluate {
    publishing {
        repositories {
            maven {
                def releasesRepoUrl = "http://my-private-repository.example.com/release"
                def snapshotsRepoUrl = "http://my-private-repository.example.com/snapshot"
                name = 'mlj'
                url = project.version.endsWith('RELEASE') ? releasesRepoUrl : snapshotsRepoUrl
                credentials {
                    username 'PUT HERE USERNAME'
                    password 'PUT HERE TOKEN'
                }
            }
        }
        publications {
            maven(MavenPublication) {
                // Applies the component for the release build variant.
                from components.release

                groupId = 'com.example'
                artifactId = 'library'
                version = '1.0.0.RELEASE'
            }
        }
    }
}
How to use your private maven repository

Append to your build.gradle:

repositories {
    mavenCentral()
    maven {
        url "http://my-private-repository.example.com/release"
        credentials {
            username project.mljMavenUsername
            password project.mljMavenPassword
        }
    }
}

dependencies {
    implementation "com.example:library:1.0.0.RELEASE"
}

Tag summary

Content type

Image

Digest

sha256:8ec7369c0

Size

14.7 MB

Last updated

over 2 years ago

docker pull capcom6/gomvn