9d1a37e248
Build and Push Docker Images / detect-changes (push) Successful in 10s
Build and Push Docker Images / build-auth-api (push) Successful in 58s
Build and Push Docker Images / build-employee-api (push) Successful in 58s
Build and Push Docker Images / build-transit-api (push) Successful in 59s
Build and Push Docker Images / build-error-log-api (push) Successful in 1m8s
Build and Push Docker Images / build-admin-ui (push) Successful in 1m14s
Build and Push Docker Images / deploy-test-node (push) Successful in 5s
3.9 KiB
3.9 KiB
Security: Private Files Exclusion
This document explains which files are kept private and why.
Files Excluded from Git & Docker
Deployment Documentation (Private)
ADMIN_DEPLOYMENT_SUMMARY.md- Internal deployment status and setup detailsCI_CD_PORTAINER_GUIDE.md- Private CI/CD and Portainer configurationDEPLOYMENT.md- Deployment procedures and configuration guidanceGETTING_STARTED.md- Internal setup instructionsINTERNAL_*.md- Any file prefixed with INTERNAL_ (pattern-based exclusion)SETUP_*.md- Any file prefixed with SETUP_ (pattern-based exclusion)DEPLOY_*.md- Any file prefixed with DEPLOY_ (pattern-based exclusion)
Custom Instruction Files (Private)
.instructions.md- GitHub Copilot custom instructions.prompt.md- Custom prompt templates.agent.md- Custom agent definitionsSKILL.md- Custom skill definitionscopilot-instructions.md- Extended Copilot instructionsAGENTS.md- Agent configuration
These are kept private to prevent exposure of:
- Development workflow details
- Copilot customization strategies
- Internal coding guidelines and preferences
- Prompt engineering techniques
Private Scripts
scripts/private/- Directory for private deployment scriptsscripts/*.local.*- Local-specific script configurations
Files Included in Public Repo
Public Documentation
README.md- Main project documentationDOCKER_README.md- Docker usage documentationadmin_ui/README.md- Admin UI documentationadmin_ui/SCHEDULE_API.md- Public API documentationtransit_api/README.md- API documentationdeprecated/README.md- Legacy Flutter bus terminal documentation kept for historical reference
Configuration
.env.example- Environment variable template (no secrets).gitignore- Git exclusion rules.dockerignore- Docker build exclusion rulesdocker-compose.yml- Service compositionDockerfilefiles - Container definitions
Code & Configuration
- All source code in
auth_api/,transit_api/,employee_api/,admin_ui/, and the legacydeprecated/app package.jsonfiles (no secrets, only dependencies)- GitHub Actions workflows in
.github/workflows/
Environment Variables - NEVER Commit
Always keep the following OUT of git:
.env- Local environment variables (in.gitignore)- Database credentials
- JWT secrets
- API keys and tokens
- Private configuration files
Use .env.example as a template and create local .env files for development.
Docker Build Security
All .dockerignore files (root and per-service) ensure that:
- Sensitive documentation never enters Docker images
- Private scripts and configs are excluded from builds
- Only necessary source code and dependencies are included
- Build artifacts don't leak internal information
GitHub Actions Security
The CI/CD workflow in .github/workflows/docker-build.yml:
- Only builds from specific service directories (auth_api, transit_api, etc.)
- Respects
.dockerignorerules - Uses GitHub secrets for credentials (never hardcoded)
- Does not include workspace documentation in pushed images
Best Practices
- Before committing: Check that
.envis in.gitignoreand local files are not staged - Before building Docker: Verify
.dockerignorefiles exclude private docs - Before pushing images: Confirm no sensitive data is present (
docker inspect --format=...) - Deployment: Always use environment variables or secrets managers, never embed credentials
- Documentation: Keep public docs in
*.mdfiles, private docs in separately excluded files
Adding New Private Files
To keep new private files out of the repo and Docker:
-
Add pattern to
.gitignore:MYFILE_*.md new_private_thing.* -
Add pattern to
.dockerignore(root and per-service):/MYFILE_*.md /new_private_thing.* -
Verify with:
git check-ignore -v MYFILE_something.md