# Deploy and Host Nexus Repository on Sealos Sonatype Nexus Repository is a universal artifact repository manager for software packages and binaries. This template deploys Nexus Repository as a stateful service with persistent storage and managed ingress on Sealos Cloud. ![Nexus Repository](images/nexus.png) ## About Hosting Nexus Repository Nexus Repository centralizes package management for development teams. It can host private artifacts, proxy upstream repositories, and provide a controlled distribution layer for internal builds and releases. This Sealos template deploys Nexus as a single StatefulSet backed by a persistent volume (`/nexus-data`). Sealos also provisions HTTPS ingress, public access URL, and lifecycle management through Canvas. ## Common Use Cases - **Private Artifact Hosting**: Store internal Maven, npm, Docker, NuGet, and PyPI artifacts. - **Repository Proxy and Caching**: Cache external repositories to speed up builds and reduce network dependency. - **CI/CD Artifact Management**: Use Nexus as a central artifact source/sink in build and release pipelines. - **Dependency Governance**: Control approved dependencies and improve supply chain visibility. ## Dependencies for Nexus Repository Hosting The Sealos template includes all required runtime dependencies for Nexus Repository: - Nexus application container (`sonatype/nexus3:3.92.3`) - Persistent storage for `/nexus-data` - Kubernetes Service and HTTPS Ingress ### Deployment Dependencies - [Nexus Repository Product Page](https://www.sonatype.com/products/sonatype-nexus-repository) - [Nexus Public Source Repository](https://github.com/sonatype/nexus-public) - [Sonatype Community](https://community.sonatype.com/) - [Nexus Documentation](https://help.sonatype.com/en/nexus-repository-manager.html) ### Implementation Details **Architecture Components:** This template deploys the following components: - **Nexus StatefulSet**: Main repository service exposed on container port `8081` - **Persistent Volume Claim**: `1Gi` storage for Nexus data at `/nexus-data` - **Service**: Internal cluster access for the Nexus HTTP endpoint - **Ingress (NGINX)**: Public HTTPS access via Sealos-managed domain and certificate - **App Resource**: Launch entry in Sealos with the generated public URL **Configuration:** - The template uses a single-node deployment for simple operations and evaluation environments. - Resource limits and probes are preconfigured for stable cold startup and runtime health checks. - The template reserves `100m` CPU / `200Mi` memory requests and `2` CPU / `2G` memory limits for Nexus, with a `1Gi` persistent volume. - Data persists across pod restarts through the mounted persistent volume. **License Information:** Nexus Repository Core is provided by Sonatype and distributed under the Eclipse Public License v1.0. ## Why Deploy Nexus Repository on Sealos? Sealos is an AI-assisted Cloud Operating System built on Kubernetes that unifies development and production operations. By deploying Nexus on Sealos, you get: - **One-Click Deployment**: Start Nexus without writing Kubernetes manifests manually. - **Managed HTTPS Access**: Get a public domain and TLS certificate automatically. - **Easy Customization**: Adjust resources and runtime settings through AI dialog or resource cards. - **Persistent Storage Included**: Keep repository and metadata data durable across restarts. - **Kubernetes Reliability Without Complexity**: Use Kubernetes-native runtime features without daily cluster maintenance. - **Pay-as-You-Go Efficiency**: Optimize cost by tuning resources to your actual usage. ## Deployment Guide 1. Open the [Nexus template](https://sealos.io/products/app-store/nexus) and click **Deploy Now**. 2. Configure deployment parameters in the popup dialog, then submit. 3. Wait for deployment to complete (typically 3-5 minutes). After deployment, you will be redirected to Canvas. For later changes, describe your requirements in the AI dialog or click resource cards to edit settings. 4. Access Nexus from the generated application URL in Sealos. ## Initial Login and Admin Password - Default username: `admin` - Initial password is generated by Nexus and stored in `/nexus-data/admin.password` To retrieve the initial password in Sealos: 1. Open the app detail page after deployment. 2. Wait until the workload is `running`, then open pod logs. 3. Confirm startup by finding `Started Sonatype Nexus OSS` in logs. 4. Open **File Manager** for the Nexus pod. 5. Download `/nexus-data/admin.password` and use its content as the login password. 6. After the first login, follow the Nexus setup wizard to change the admin password and decide whether anonymous access should stay enabled. ## Configuration After deployment, you can manage Nexus through: - **AI Dialog**: Describe required changes (resources, scaling, or configuration updates). - **Resource Cards**: Open StatefulSet/Service/Ingress cards in Canvas for direct editing. - **Nexus Admin UI**: Complete initial setup and configure repositories, roles, and policies. ## Scaling To scale Nexus resources: 1. Open the deployment Canvas. 2. Click the Nexus StatefulSet resource card. 3. Adjust CPU/Memory requests and limits. 4. Apply the changes in the dialog. ## Troubleshooting ### Common Issues **Issue: Cannot log in with `admin`** - Cause: Initial password not retrieved from the correct file path. - Solution: Download `/nexus-data/admin.password` from the Nexus pod file manager and retry. **Issue: Nexus startup is slow** - Cause: First startup may take longer while initializing storage and internal components. - Solution: Wait until logs show `Started Sonatype Nexus OSS` before attempting login. ### Getting Help - [Nexus Documentation](https://help.sonatype.com/en/nexus-repository-manager.html) - [GitHub Issues](https://github.com/sonatype/nexus-public/issues) - [Sonatype Community](https://community.sonatype.com/) - [Sealos Discord](https://discord.gg/wdUn538zVP) ## Additional Resources - [Nexus Public Repository](https://github.com/sonatype/nexus-public) - [Nexus Community Edition Overview](https://www.sonatype.com/products/nexus-community-edition) - [Sealos App Store](https://sealos.io/products/app-store) ## License This Sealos template is provided under the repository's applicable open source terms. Nexus Repository Core itself is licensed under the Eclipse Public License v1.0.