A comprehensive Backstage.io platform designed for DevOps teams, featuring automated GitHub repository access management, catalog-driven development workflows, and integrated authentication systems.
- Service Catalog: Centralized repository and service discovery
- Scaffolder: Template-based project scaffolding
- Search: Full-text search across services, documentation, and APIs
- Automated Access Control: Self-service GitHub repository access requests
- Permission Management: Grant/update read, write, or admin permissions
- GitHub App Integration: Secure authentication using GitHub Apps
- Organization-wide Coverage: Manage access across RGT-DevOps organization
- Multi-Provider Support: GitHub OAuth and Google OAuth integration
- Session Management: Secure user session handling
- AWS Integration: Deploy and manage services
- Notifications & Signals: Real-time updates and alerts
- Custom Plugins: Extensible plugin architecture
- Frontend: React, TypeScript, Material-UI
- Backend: Node.js, Express, TypeScript
- Database: PostgreSQL
- Authentication: GitHub OAuth, Google OAuth
- GitHub Integration: GitHub Apps, Octokit
- Documentation: TechDocs with Docker-based generation
- Containerization: Docker support for deployment
- Node.js 20 or 22
- PostgreSQL
- GitHub App (for repository access management)
- Docker (for TechDocs generation)
-
Clone the repository
git clone https://github.com/Terre8055/teamdeck.git cd teamdeck -
Install dependencies
yarn install
-
Set up environment variables
cp .env.example .env # Edit .env with your configuration -
Configure GitHub App
- Create a GitHub App in your organization
- Install it on the RGT-DevOps organization
- Update credentials in
github-app-*-credentials.yamlfiles
-
Start the development server
yarn start
The application will be available at:
- Frontend: http://localhost:3000
- Backend: http://localhost:7007
Create a .env file with the following variables:
# GitHub Integration
GITHUB_INTEGRATION_TOKEN=your_github_token
GITHUB_CLIENT_ID=your_github_oauth_client_id
GITHUB_CLIENT_SECRET=your_github_oauth_client_secret
GITHUB_INSTALLATION_ID=your_github_app_installation_id
# Google OAuth
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# Database
DATABASE_PASSWORD=your_postgres_password
# Session
AUTH_SESSION_SECRET=your_session_secret-
Create a GitHub App with the following permissions:
- Repository permissions:
- Contents: Read
- Metadata: Read
- Administration: Write (required for collaborator management)
- Subscribe to events: Repository events
- Repository permissions:
-
Install the GitHub App on your organization
-
Update the credential files with your app details
The platform includes a custom GitHub Access Management feature that allows users to:
- Request Repository Access: Submit access requests through the UI
- Manage Permissions: Grant read, write, or admin access levels
- Track Changes: View permission history and updates
- Organization Integration: Works with RGT-DevOps GitHub organization
- Navigate to the "RGT GitHub Access Management" page
- Select the project group and specific repository
- Enter the GitHub username and desired access level
- Submit the request - access is granted automatically via GitHub App
yarn testyarn build:allyarn lint- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
For support and questions:
- Create an issue in this repository
- Contact the RGT DevOps team
- Check the Backstage.io community
Current version: 1.0.0
Built with ❤️ by the RGT DevOps Team using Backstage.io