https://github.com/nathanfallet/pkg
An open source maven/npm/pypi package manager.
https://github.com/nathanfallet/pkg
gradle kotlin maven npm pypi
Last synced: about 1 month ago
JSON representation
An open source maven/npm/pypi package manager.
- Host: GitHub
- URL: https://github.com/nathanfallet/pkg
- Owner: nathanfallet
- License: apache-2.0
- Created: 2025-05-19T20:16:32.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-05-04T22:53:40.000Z (about 1 month ago)
- Last Synced: 2026-05-04T23:29:00.781Z (about 1 month ago)
- Topics: gradle, kotlin, maven, npm, pypi
- Language: Kotlin
- Homepage:
- Size: 253 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# pkg
[](LICENSE)
[]()
[]()
[]()
[](https://codecov.io/gh/guimauvedigital/pkg)
An open source maven/npm/pypi package manager.
> Warning: This is a work in progress and not ready for production use.
## Motivation
We wanted to publish our packages to import them between our projects easily. But we also wanted them to be private and
not available to the public. Since GitHub does not support python packages, other solutions were very costly, and we
love to make open source software, we decided to create our own package manager!
## Use in your code
### Gradle
Using the Gradle plugin:
```kotlin
plugins {
id("digital.guimauve.pkg") version "0.1.3"
}
repositories {
pkg(project) // Default https://pkg.guimauve.digital/maven2 repository
pkg(project, url = "...") // Custom repository URL
}
```
Note: If you run this repository locally, you need to add `isAllowInsecureProtocol = true` to allow http.
### npm
In your `.npmrc`:
```ini
@organization-name:registry=https://pkg.guimauve.digital/npm/
```
### pypi
In your `pip.conf` (to download packages):
```ini
[global]
extra-index-url = https://pkg.guimauve.digital/pypi/simple
```
In your `~/.pypirc` (to publish packages):
```ini
[guimauve-digital]
repository = https://pkg.guimauve.digital/pypi/
```
## Deploy your instance
The easiest way to deploy an instance is using Helm on Kubernetes.
Create a `values.yaml` file with the following content (replace with the desired values):
```yaml
replicaCount: 2
ingress:
hosts:
- host: pkg.guimauve.digital
paths:
- path: /
pathType: ImplementationSpecific
tls:
- secretName: guimauvedigital-tls
hosts:
- pkg.guimauve.digital
jwt:
secret: 'secret'
s3:
id: ''
key: ''
region: 'eu-west-3'
name: 'guimauve-pkg'
```
And then, install it:
```bash
helm install pkg path-to-repo/helm/pkg -f values.yaml
```
And you can access it with the chosen domain!