mirror of
https://github.com/johndoe6345789/goodpackagerepo.git
synced 2026-04-24 13:54:59 +00:00
fb24eba5875cc325ac02054140d4531d92a1e850
Bumps the pip group with 2 updates in the /backend directory: [flask-cors](https://github.com/corydolphin/flask-cors) and [werkzeug](https://github.com/pallets/werkzeug). Updates `flask-cors` from 4.0.0 to 6.0.0 - [Release notes](https://github.com/corydolphin/flask-cors/releases) - [Changelog](https://github.com/corydolphin/flask-cors/blob/main/CHANGELOG.md) - [Commits](https://github.com/corydolphin/flask-cors/compare/4.0.0...6.0.0) Updates `werkzeug` from 3.0.1 to 3.1.4 - [Release notes](https://github.com/pallets/werkzeug/releases) - [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/werkzeug/compare/3.0.1...3.1.4) --- updated-dependencies: - dependency-name: flask-cors dependency-version: 6.0.0 dependency-type: direct:production dependency-group: pip - dependency-name: werkzeug dependency-version: 3.1.4 dependency-type: direct:production dependency-group: pip ... Signed-off-by: dependabot[bot] <support@github.com>
goodpackagerepo
World's first good package repository - A schema-driven, secure, and fast artifact storage system.
Features
- 🔒 Secure by Design: Content-addressed storage with SHA256 verification
- ⚡ Lightning Fast: Built-in caching and intelligent indexing
- 📋 Schema-Driven: Declarative configuration with automatic validation
- 🔐 Authentication: Simple admin login with password management
- 🐳 Docker Ready: Full Docker and docker-compose support
- 📦 GHCR Support: Automated builds and publishing to GitHub Container Registry
- 🚀 CapRover Ready: Easy deployment with CapRover PaaS
Quick Start
Using Docker Compose
git clone https://github.com/johndoe6345789/goodpackagerepo.git
cd goodpackagerepo
docker-compose up -d
The frontend will be available at http://localhost:3000 and the backend API at http://localhost:5000.
Default credentials: admin / admin (change after first login!)
Manual Setup
Backend (Flask)
cd backend
pip install -r requirements.txt
export DATA_DIR=/tmp/data
export JWT_SECRET=your-secret-key
python app.py
Frontend (Next.js)
cd frontend
npm install
npm run dev
Documentation
Complete documentation is available at /docs when running the application, including:
- Getting Started Guide
- CapRover Deployment Instructions
- API Usage Examples
- Schema Configuration
Testing
E2E Tests (Playwright)
cd tests
npm install
npx playwright install
npm test
See tests/README.md for more testing options.
Deployment
CapRover
See the full CapRover setup guide in the documentation at /docs#caprover-setup.
Quick summary:
- Create two apps in CapRover:
goodrepo-backendandgoodrepo-frontend - Deploy from GitHub using the respective
captain-definitionfiles - Set environment variables
- Enable HTTPS
Docker Registries
Images are automatically built and pushed to GitHub Container Registry (GHCR) on push to main:
- Backend:
ghcr.io/johndoe6345789/goodpackagerepo/backend:latest - Frontend:
ghcr.io/johndoe6345789/goodpackagerepo/frontend:latest
Architecture
- Backend: Flask-based Python API implementing the schema.json specification
- Frontend: Next.js/React application with custom Material Design SCSS
- Storage: SQLite for user auth, filesystem for blobs, in-memory for metadata
- Authentication: JWT-based with bcrypt password hashing
API Endpoints
Authentication
POST /auth/login- Login and get JWT tokenPOST /auth/change-password- Change passwordGET /auth/me- Get current user info
Package Management
PUT /v1/{namespace}/{name}/{version}/{variant}/blob- Publish packageGET /v1/{namespace}/{name}/{version}/{variant}/blob- Download packageGET /v1/{namespace}/{name}/latest- Get latest versionGET /v1/{namespace}/{name}/versions- List all versionsPUT /v1/{namespace}/{name}/tags/{tag}- Set tag
Schema Configuration
The repository behavior is defined by schema.json, which includes:
- Entities: Data models with validation rules
- Storage: Blob stores, KV stores, document schemas
- Indexes: Optimized package lookup
- Auth: JWT authentication with scope-based permissions
- API Routes: Declarative pipeline-based endpoints
- Caching: Response and blob caching policies
- Replication: Event sourcing for multi-region sync
- GC: Automatic garbage collection
License
See LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Languages
Python
59.2%
JavaScript
30.3%
SCSS
9.9%
Dockerfile
0.6%