https://github.com/walshydev/maverino
Small OSS Maven repository to be self-hosted.
https://github.com/walshydev/maverino
Last synced: 2 months ago
JSON representation
Small OSS Maven repository to be self-hosted.
- Host: GitHub
- URL: https://github.com/walshydev/maverino
- Owner: WalshyDev
- License: mit
- Created: 2020-05-26T10:31:51.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-14T20:43:47.000Z (over 2 years ago)
- Last Synced: 2025-01-01T13:43:28.758Z (4 months ago)
- Language: Java
- Size: 13.7 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Mavenerino
Maverino is a free to use Open-Source Software which allows people to easily host Maven repositories. Hosting private projects/GitHub repositories usually costs or is very limited on most others out there. Due to that, I created my own!
## Features
* Sub-repos - Allows for creating things like a /public/, /private/ or even like /software/ and /tools/
* Authentication - Don't worry about others being able to upload packages as authentication is built in! The config will even have a randomly generated key on the first run. Never will there be a default nonsecure key.
* Optional IP Whitelist - Only allow specific people to use the repository. You can limit this to yourself, your offices or whatever you'd like!
* Free! - Free to use, unlimited packages, no limits! As long as you have a server (Even a $2.50 VPS from like DigitalOcean or Vultr) there's no cost to you!!
* No limitations! - Any size, any amount, whatever you want!## Configuration
Where the jar file is, there will be a `config.yml` generated. This is where you will configure things like the port, expiry time, repo ID, name, IP Whitelisting and the repos you'd like.All `AUTH_KEY`s will be replaced by a randomly generated 40 character long string.
Here is an example config:
```yaml
# The port for this web-server to run on
port: 8888
# Expiry time for the files in seconds (Default is 10 minutes)
expiryTime: 600# The info displayed when a user goes to your repo in the browser
repoName: 'Example Repo'
repoId: 'example-repo'
displayedUrl: 'https://repo.example.com'# Allow requests from only specific IP addresses. This supports IPv4 and IPv6!
ipWhitelist:
enabled: false
ips:
- 'localhost'
- '0:0:0:0:0:0:0:1'# The available repos
repos:
# An internal ID
public:
# The path of where this is served. For example: "/" would be https://repo.walshy.dev/
# "/public/" would be https://repo.walshy.dev/public/
path: '/'
# The auth key needed to write packages to the repo.
# If you wish to have no auth key you can remove this or set it to an empty string.
# This key will be randomly generated on first run
writeAuth: 'AUTH_KEY'
```## Security
### IP Whitelist
You can enable IP Whitelisting and specify which IPs (IPv4 and IPv6 supported) are allowed to use the repository.
Example config:
```yaml
ipWhitelist:
enabled: true
ips:
- 'localhost'
- '0:0:0:0:0:0:0:1'
- '1.1.1.1'
```This would allow people on that server (o)
### Authentication
By default there's write authentication required. It is **highly** recommended to have at least write authentication!To configure your Maven simply add this to your `~/.m2/settings.xml`
```
${REPO_ID}
${WRITE_KEY}
```
Obviously specifying your own repo ID and write key which can be configured in your `config.yml`