All Projects → sonatype-nexus-community → nexus-blobstore-google-cloud

sonatype-nexus-community / nexus-blobstore-google-cloud

Licence: EPL-1.0 license
Nexus Repository Manager Blobstore backed by Google Cloud Storage

Programming Languages

java
68154 projects - #9 most used programming language
groovy
2714 projects

Projects that are alternatives of or similar to nexus-blobstore-google-cloud

FireFiles
Powerful Android File Manager for everything that runs on Android OS (Android TV, Android Watch, Mobile, etc)
Stars: ✭ 37 (+5.71%)
Mutual labels:  manager, nexus
github-pinner
📌 Pin and embed github repositories or profiles on your own website easily
Stars: ✭ 62 (+77.14%)
Mutual labels:  repository
Odin
manage model revisions with ease
Stars: ✭ 60 (+71.43%)
Mutual labels:  manager
neptune-client
📒 Experiment tracking tool and model registry
Stars: ✭ 348 (+894.29%)
Mutual labels:  repository
repository
🏭 Reusable repository interface
Stars: ✭ 29 (-17.14%)
Mutual labels:  repository
nexus-vagrant
Vagrant Environment for a Nexus Repository OSS service
Stars: ✭ 19 (-45.71%)
Mutual labels:  nexus
UrlManager
Javascript class for getting and setting url parameters
Stars: ✭ 15 (-57.14%)
Mutual labels:  manager
mate-tweak
Tweak tool for the MATE Desktop
Stars: ✭ 57 (+62.86%)
Mutual labels:  manager
mmwm
Modern Minimalistic Window Manager
Stars: ✭ 45 (+28.57%)
Mutual labels:  manager
Temps
λ A selfhostable serverless function runtime. Inspired by zeit now.
Stars: ✭ 15 (-57.14%)
Mutual labels:  repository
laravel-repository-pattern
Files autogenerator for repositorry pattern
Stars: ✭ 46 (+31.43%)
Mutual labels:  repository
maven-artifacts-uploader
command line tool for uploading directory of maven artifacts to nexus 3.x repository
Stars: ✭ 30 (-14.29%)
Mutual labels:  nexus
xbox360-controller-manager
Turn OFF your wireless xbox 360 controller on PC and see the battery status of the connected controllers.
Stars: ✭ 38 (+8.57%)
Mutual labels:  manager
slim-doctrine
Slim-Doctrine managers integration
Stars: ✭ 16 (-54.29%)
Mutual labels:  manager
Tagos
A Gui To Manage Tags
Stars: ✭ 15 (-57.14%)
Mutual labels:  manager
TableStorage.Abstractions.POCO
Builds on top of TableStorage.Abstractions (a repository wrapper over Azure Table Storage) such that objects to be serialized to and from Azure Table Storage are Plain Old CLR Objects (POCO) rather than TableEntities.
Stars: ✭ 20 (-42.86%)
Mutual labels:  repository
wfm
原生PHP在线文件管理器,原生PHP在线文件编辑器,php在线文档管理
Stars: ✭ 17 (-51.43%)
Mutual labels:  manager
react-file-manager
A file manager built in ReactJs
Stars: ✭ 40 (+14.29%)
Mutual labels:  manager
socya old
Open-Source membership management software for associations. Association Management System (AMS) or Membership software. 🇫🇷 Logiciel de gestion d'adhérents pour associations Open-Source. Association Management System (AMS) or Membership software.
Stars: ✭ 14 (-60%)
Mutual labels:  manager
workbench
A hierarchical environment manager for bash, written in bash.
Stars: ✭ 17 (-51.43%)
Mutual labels:  manager

Nexus Repository Google Cloud Storage Blobstore

CircleCI Build Status Maven Central Join the chat at https://gitter.im/sonatype/nexus-developers

This project adds Google Cloud Object Storage backed blobstores to Sonatype Nexus Repository 3 and later. It allows Nexus Repository to store the components and assets in Google Cloud instead of a local filesystem.

This plugin also uses Google Firestore in Datastore mode to store some metadata about the blobstore. The plugin prioritizes using Small Operations, which have no financial cost, but do use some limited paid operations (read, write, delete) in a cost effective manner.

Which Version do I use?

For the best experience, you should upgrade your Nexus Repository Manager and Google Cloud Blobstore plugin to the latest versions.

  1. Navigate to https://search.maven.org/artifact/org.sonatype.nexus.plugins/nexus-blobstore-google-cloud
  2. Select the version that matches your Nexus Repository Manager version. Example: 0.39 of the plugin is intended for Repository Manager 3.39, 0.38 for 3.38, etc.
  3. Download the corresponding kar archive.

Deploying the Plugin

Google Cloud Services and IAM Roles

This plugin uses the following Google Cloud Platform services:

Firestore usage is exclusively in Datastore mode; you must configure the project for your Repository Manager deployment to use "Firestore in Datastore mode".

To use this plugin (or execute the integration tests), you will need a service account with the following scopes:

Optionally, add the following for Cloud Logging:

The blobstore will create the storage bucket with the 'Multi-Regional' storage class.

Google Cloud Storage Authentication

Per the Google Cloud documentation:

  1. Generate a JSON Service Account key
  2. Store this file on the filesystem with appropriate permissions for the user running Nexus to read it.
  3. (optional, but recommended) Set the GOOGLE_APPLICATION_CREDENTIALS environment variable for the user running Nexus:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/my/key.json

Installing

After downloading the kar from Maven Central (links above), copy the kar file to the deploy directory in your Nexus Repository Manager install:

cp nexus-blobstore-google-cloud-*-bundle.kar /path/to/your/nxrm3/install/deploy

Configuration

A restart of Nexus Repository Manager is required to complete the installation process.

Log in as admin and create a new blobstore, selecting 'Google Cloud Storage' as the type.

If you did not set the environment variable in Step 3 above, specify the absolute path to the JSON Service Account key file.

Contributing to Plugin Development

Contribution Guidelines

Go read our contribution guidelines to get a bit more familiar with how we would like things to flow.

Requirements

Also, there is a good amount of information available at Bundle Development Overview

Building from Source

To build the project and generate the bundle use Maven:

mvn clean package

Optional: review the additional documentation to configure and run integration tests.

A docker-compose file is provided to ease setting up a local NXRM instance to test.

  1. docker swarm init
  2. docker volume create nexus3-data
  3. docker secret create google_application_credentials /path/to/your/google/iam/key.json
  4. docker-compose up

You can also use the docker-compose file with docker service, like so:

docker stack deploy -c docker-compose.yml sonatype

(Using docker stack assumes you've built the container with docker build -t nexus3-google . or run docker-compose up at least once).

Last manual option: you can install the local development build in any NXRM install with:

cp target/*-bundle.kar /path/to/your/nxrm3/install/deploy

The Fine Print

It is worth noting that this is NOT SUPPORTED by Sonatype, and is a contribution of ours to the open source community (read: you!)

Remember:

  • Use this contribution at the risk tolerance that you have
  • Do NOT file Sonatype support tickets related to Google Cloud support
  • DO file issues here on GitHub, so that the community can pitch in

Phew, that was easier than I thought. Last but not least of all:

Have fun creating and using this plugin and the Nexus platform, we are glad to have you here!

Getting help

Looking to contribute to our code but need some help? There's a few ways to get information:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].