CI Pipeline:
Backend:
Collect:
Sync:
Frontend:
Proxy:
Web application providing centralized authentication and management using Logto as an Identity Provider with simple Role-Based Access Control.
- frontend/ - Vue.js application for UI
- backend/ - Go REST API with Logto JWT authentication and RBAC
- collect/ - Go REST API with Redis queues to handle inventories
- sync/ - CLI tool for RBAC configuration synchronization
- proxy/ - nginx configuration as load balancer
- Development: Go 1.21+ (backend requires 1.23+), Make
- External: Logto instance with M2M app and Management API permissions
- Deploy: Render account with GitHub integration
- Frontend Development: frontend/README.md - Vue.js setup and environment configuration
- Backend Development: backend/README.md - Backend setup and environment configuration
- Collect Development: collect/README.md - Collect setup and environment configuration
- RBAC Management: sync/README.md - Use
sync init
for complete setup - Production Deploy: Use
./deploy.sh
for automated deployment
- Trigger: Every commit to
main
branch - Auto-deploy: Immediate deployment via Render
- PR Previews: Temporary environments for pull requests
- Trigger: Manual deployment via
./deploy.sh
script - Auto-Deploy: Render automatically deploys when
render.yaml
is updated - Manual Control: Deploy only when explicitly triggered
- Security: Private services (Backend, Collect, Frontend) only accessible through Proxy
See individual component documentation for setup:
- Fronted: frontend/README.md - Environment variables and setup for frontend
- Backend: backend/README.md - Environment variables and setup for backend
- Collect: collect/README.md - Environment variables and setup for collect
- sync CLI: sync/README.md - Use
sync init
to generate all required variables - proxy: proxy/README.md - nginx configuration and setup for load balancer
- Environment Variables: Configured in Render dashboard
- Service Configuration: Defined in
render.yaml
- Deployment: Use
./deploy.sh
script for automated deployment
- frontend - UI setup, environment variables, and pages
- backend - Server setup, environment variables, and authorization architecture
- backend API - Complete API reference with authentication
- collect - Server setup, environment variables and inventory structure
- sync CLI - RBAC configuration and
sync init
setup - deploy script - Production deployment script for Render
- proxy - Production load balancer configuration with nginx
- DESIGN.md - Architecture decisions and design patterns
Live Documentation: https://bump.sh/nethesis/doc/my - auto-updated on every commit.
git commit -m "feat: new feature"
git push origin main # β qa.my.nethesis.it updates
git checkout -b feature/new-feature
git push origin feature/new-feature # β Create PR
# β my-proxy-qa-pr-123.onrender.com created
# Automated release with quality checks
./release.sh patch # β 0.0.5 β 0.0.6 (bug fixes)
./release.sh minor # β 0.0.5 β 0.1.0 (new features)
./release.sh major # β 0.0.5 β 1.0.0 (breaking changes)
# β Runs tests, formatting, linting β Creates tag β Pushes to GitHub
The release script will:
- Run all quality checks (formatting, linting, tests)
- Bump version in all files
- Create git commit and tag
- Push to GitHub
- Trigger GitHub Actions to build and publish Docker images
# Standard deployment with image verification
./deploy.sh
# Fast deployment without image verification (less safe but faster)
./deploy.sh --skip-verify
# Show help
./deploy.sh --help
The deployment script will:
- Get the latest git tag automatically
- Show the tag and ask for confirmation
- Verify Docker images exist on ghcr.io (unless
--skip-verify
) - Update
render.yaml
with new image tags - Commit changes with your git user info
- Push to main branch
- Render automatically deploys the updated services
Example output:
βΉοΈ Latest git tag: v0.1.5
Do you want to deploy v0.1.5 to production? [y/N] y
β
All Docker images verified successfully
β
render.yaml updated successfully
β
Changes committed and pushed to main branch
β
Deployment initiated successfully!
- Follow existing code patterns and conventions
- Pre-commit: Run
make pre-commit
in both directories - Test RBAC changes with
--dry-run
before applying - Ensure CI tests pass before submitting PRs
See LICENSE file for details.