Skip to content
Snippets Groups Projects
Commit 70375746 authored by Julian Helwig's avatar Julian Helwig
Browse files

Initial commit [skip ci]

parents
No related branches found
No related tags found
No related merge requests found
Showing
with 311 additions and 0 deletions
# Attribution
This project uses the following tools and technologies:
- [GitLab CE - MIT](https://gitlab.com/gitlab-org/gitlab)
- [OpenToFu](https://opentofu.org/)
- [OpenSearch](https://github.com/opensearch-project/OpenSearch)
- [Keycloak](https://github.com/keycloak/keycloak)
- [Bun](https://bun.sh/)
- [Vue](https://vuejs.org/)
- [Vite](https://vite.dev/)
- [Spring Boot](https://spring.io/guides/gs/spring-boot)
- [Docker](https://www.docker.com/)
- [Nginx](http://nginx.org/en/index.html)
- [Postgres](https://www.postgresql.org/)
# Attribution
This project uses the following tools and technologies:
- [GitLab CE - MIT](https://gitlab.com/gitlab-org/gitlab)
- [OpenToFu](https://opentofu.org/)
- [OpenSearch](https://github.com/opensearch-project/OpenSearch)
- [Keycloak](https://github.com/keycloak/keycloak)
- [Bun](https://bun.sh/)
- [Vue](https://vuejs.org/)
- [Vite](https://vite.dev/)
- [Spring Boot](https://spring.io/guides/gs/spring-boot)
- [Docker](https://www.docker.com/)
- [Nginx](http://nginx.org/en/index.html)
- [Postgres](https://www.postgresql.org/)
# Changelog
All notable changes to this project will be documented in this file.
<!-- ## [0.0.1] - YYYY-MM-DD
### Added
- Initial release (version 0.0.1) of this project. -->
# Contributor Covenant Code of Conduct
## Our Pledge
We pledge to make participation in our project a harassment-free experience for everyone.
## Our Standards
- Use welcoming and inclusive language.
- Respect different viewpoints and experiences.
- Accept constructive criticism gracefully.
## Enforcement
Instances of abusive behavior may be reported to the project team at [contribution@hjhp.io](mailto:contribution@hjhp.io).
# Contributing to this project
Thank you for your interest in contributing! Here are some guidelines to help you get started.
## How to Contribute
- **Reporting Bugs**
- Check if the issue has already been reported.
- Open a new issue with detailed information.
- **Suggesting Enhancements**
- Discuss your ideas on the issues page.
- Be clear and concise in your suggestions.
- **Submitting Pull/Merge Requests**
- Fork the repository.
- Create a new branch for your feature or fix (preferably with name close to feature/[issue-number]-shortDescriptionOfIssue if possible).
- Ensure your code follows the project's coding standards.
- Submit a pull/merge request with a clear description.
## Code Style
- Use meaningful variable and function names.
- Write comments where necessary.
- Follow the existing code formatting.
## Communication
- Be respectful and professional.
- Provide constructive feedback.
- Be open to discussions and suggestions.
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M359 463.999V53.999" stroke="black" stroke-width="20" stroke-linecap="round"/>
<path d="M146 37L358.648 454.346" stroke="black" stroke-width="20" stroke-linecap="round"/>
<path d="M148 462L148 34" stroke="black" stroke-width="20" stroke-linecap="round"/>
<path d="M359 447.001V37.001" stroke="black" stroke-width="20" stroke-linecap="round"/>
<path d="M150 44.999L357.928 453.08" stroke="black" stroke-width="20" stroke-linecap="round"/>
<path d="M148 461.999V37.999" stroke="black" stroke-width="20" stroke-linecap="round"/>
<path d="M36.0001 141L147.157 446.4" stroke="black" stroke-width="20" stroke-linecap="round"/>
<line x1="359" y1="464" x2="359" y2="38" stroke="black" stroke-width="20" stroke-linecap="round"/>
<line x1="368" y1="244.498" x2="480.034" y2="244.498" stroke="black" stroke-width="20" stroke-linecap="round"/>
<path d="M148 462L148 37" stroke="black" stroke-width="20" stroke-linecap="round"/>
<path d="M150 45L357.928 453.081" stroke="black" stroke-width="20" stroke-linecap="round"/>
<path d="M149 321H254" stroke="black" stroke-width="20" stroke-linecap="round"/>
<path d="M148 462L148 40" stroke="black" stroke-width="20" stroke-linecap="round"/>
<path d="M38 147L148.053 449.369" stroke="black" stroke-width="20" stroke-linecap="round"/>
<circle cx="250" cy="250" r="240" stroke="black" stroke-width="20"/>
</svg>
IMGs/OwnLab/OwnLab-Logo-1_V2024.11.28.png

153 KiB

---
name: Bug Report
about: Report a bug to help us improve
title: '[Bug]: '
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Environment**
- OS: [e.g., Windows 10, macOS Catalina]
- Browser [e.g., Chrome, Safari]
- Version [e.g., 22]
**Additional context**
Add any other context about the problem here.
---
name: Feature Request
about: Suggest an idea for this project
title: '[Feature]: '
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is.
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
# Pull or Merge Request Template
## Description
Please include a summary of the changes and the related issue. List any dependencies required for this change.
Fixes #(issue number)
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Other (please describe):
## Checklist
- [ ] My code follows the style guidelines of this project.
- [ ] I have performed a self-review of my code.
- [ ] I have commented my code where appropriate.
LICENSE 0 → 100644
MIT License
Copyright (c) 2024 HJHP
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Parent project: [OwnLab](https://github.com/orgs/HJHPio/projects/2)
![OwnLabLogo](./IMGs/OwnLab/OwnLab-Logo-1_V2024.11.28.png)
# POGSearch
POGSearch began as a focused solution for indexing repositories from private GitLab instances, enabling comprehensive text searches across multiple repositories, branches, and commits. This approach allows users to find specific code snippets with a single query, eliminating the need to manually search each project. As the project has evolved, it has expanded to indexing also GitHub repositories.
## Quick Setup Guide (work in progress)
<!-- TODO: Update with Confizard integration and utility container for Terraform automation -->
The source code is currently being audited to provide simple deployment and maintenance options using OpenTofu (an open-source fork of Terraform).
## Description
Project capabilities and used technologies:
- **Keycloak Authentication**: Ensures secure access, requiring successful login for user participation.
- **Vue.js Frontend**: A minimalist interface offering robust search functionalities and administrative tools.
- **Admin Tools**:
- Create roles with designated index patterns to control user access levels to specific data sets.
- Add users and assign roles for controlled access.
- Import repositories using repository links.
- **Researcher Tools**:
- Conduct full-text searches with customized index patterns and queries.
- Direct links to files within search results for quick access.
- **Docker Integration**: The entire system is encapsulated within a Docker Compose stack for seamless deployment and scalability.
- **Java Spring Boot API**: Facilitates backend operations, enhancing user interaction and data management.
- **OpenSearch**: Powers the search engine, offering scalable and effective search capabilities across vast datasets.
- **Bulk Import**: Admins can index multiple repositories at once by providing an API URL, for example, to request projects within a group from GitLab, along with an access token if the group is private.
- **Scheduled Updates**: Admins can schedule updates for indices.
## Video Preview
[![POGSearch Video Preview](https://github.com/Nailu776/POGSearch/assets/85428822/9f7a4414-246e-40fb-93ef-57500ff1ae9c)](https://drive.google.com/file/d/1Oun37QBJsSNsG4jkFyimEzPp0uTqweAJ/view?usp=sharing)
## Roadmap
[ROADMAP.md](./ROADMAP.md) file includes upcoming features and future plans.
## Changelog
[CHANGELOG.md](./CHANGELOG.md) file includes project changes in each release.
## Support
Everyone is welcome to submit an issue ticket on either GitHub or GitLab (depending on which platform this mirror of the project is hosted). Submitted issues will be automatically reviewed, and the main developer will be notified.
If you prefer private support (e.g., if you do not wish to share logs publicly), you can contact the project main developer via email at [support@hjhp.io](mailto:support@hjhp.io).
## Security
If you identify any security problems, please contact us immediately with the necessary details via email at [security@hjhp.io](mailto:security@hjhp.io).
Please note that the email could end up in the spam folder. If you do not receive a timely response, please try emailing again.
If the detected vulnerability is critical and the response to emails is not fast enough, please create an issue ticket to inform others and mitigate potential risks.
For more information please refer to [SECURITY.md](./SECURITY.md) file.
## Contributing
Everyone is welcome to contribute via GitHub pull requests or GitLab merge requests.
After reviewing and merging into the respective branches (*github-main* / *gitlab-main*), the final version of the software will be merged into the main branch on the private Git instance, and then all existing mirrors will be updated.
Instructions on how to contribute can be found in [CONTRIBUTING.md](./CONTRIBUTING.md) file.
## Attribution
This project is maintained by its contributors.
The main tools and technologies used are listed in the [ATTRIBUTION-manual.md](./ATTRIBUTION-manual.md) file.
Automatically detected dependencies and their acknowledgments are listed in the [ATTRIBUTION.md](./ATTRIBUTION.md). file.
## License
*TL;DR:* This project is licensed under the MIT License.
Everyone is welcome to fork and use it for private and commercial purposes.
Full license can be found in [LICENSE](./LICENSE) file.
## Project status
The project is in its initial state.
The scope and targets may change after discussions in issues.
Description:
POGSearch - Platform for Omni Git Search. An open-source solution for searching through Git repositories across entire Git server instances without the need to switch branches or repositories.
Tags/Labels:
repository-indexing; git; opensearch; opentofu; terraform; infrastructure-as-code;
Mirrors list:
- https://github.com/HJHPio/POGSearch
- https://gitlab.com/HJHPio/POGSearch
- https://github.com/Nailu776/POGSearch
Parent project: [OwnLab](https://github.com/orgs/HJHPio/projects/2)
![OwnLabLogo](./IMGs/OwnLab/OwnLab-Logo-1_V2024.11.28.png)
- Review project components to ensure naming consistency and code maintainability, then publish them.
- Remove the private backup containers repository and publish containers to DockerHub.
- Export Keycloak with the custom theme to a common repository.
- Add instructions for deploying it using a simple docker-compose setup with the --scale feature.
- Add OpenTofu infrastructure configuration.
- Integrate with Confizard for easier deployment and provide quick setup instructions.
- Add authentication integration with GitLab to fetch user roles based on repository permissions.
- Enable indexing of commit messages.
- Implement functionality to save search settings, such as index patterns and instant search preferences.
- Add internationalization (i18n) support.
- Fine-tune indexes generation and query optimization.
- Enable selective updates (update indexes based on modifications and new commits, avoiding full reindexing).
- Enable auto-indexing (integrate with GitLab for automatic indexing in response to repository changes via pipelines).
\ No newline at end of file
# Security Policy
## Reporting a Vulnerability
If you discover a security vulnerability, please email [security@hjhp.io](mailto:security@hjhp.io) with the details. We appreciate your efforts to make our project secure.
FROM registry.access.redhat.com/ubi9 AS ubi-micro-build
RUN mkdir -p /mnt/rootfs
RUN dnf install --installroot /mnt/rootfs curl --releasever 9 --setopt install_weak_deps=false --nodocs -y && \
dnf --installroot /mnt/rootfs clean all && \
rpm --root /mnt/rootfs -e --nodeps setup
FROM keycloak/keycloak:20.0.0-0
COPY --from=ubi-micro-build /mnt/rootfs /
COPY themes/hjhp-keycloak-theme /opt/keycloak/themes/hjhp-keycloak-theme
ADD import /opt/keycloak/data/import
ENV KEYCLOAK_IMPORT=/opt/keycloak/data/import/pogs-realm.json
COPY third-party-notice/* .
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment