A comprehensive, open-source toolkit for Google Workspace administrators with tools for user management, group synchronization, and attribute injection.
🚀 Features automatic updates • 🌍 Multi-language support • 🐳 Docker-ready • 🔒 Branch-protected
Extract all user accounts with email aliases from Google Workspace and export to CSV format.
Output Format:
- Current Email
- Alias 1
- Alias 2
- Alias 3
- (Additional aliases as needed)
- English
- Spanish (Español)
- Portuguese (Português)
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000cd frontend
npm install
npm run dev- Go to Google Cloud Console
- Create a new project or select existing one
- Enable the Admin SDK API
- Create OAuth 2.0 credentials (Desktop app)
- Download the credentials JSON file
- Upload it through the application interface
Docker deployment includes automatic updates via Watchtower - you'll always have the latest version!
# Pull and run pre-built image
docker-compose up -d
# Access the application
# UI + API: http://localhost:8000What's included:
- ✅ Single unified image (frontend + backend) from GitHub Container Registry
- ✅ Automatic updates (checks daily for new versions)
- ✅ Auto-cleanup of old images
- ✅ No manual updates needed!
- ✅ Access at http://localhost:8000 (both UI and API)
Manual update (if needed):
docker-compose pull
docker-compose up -dFor local development (build from source):
docker-compose -f docker-compose.dev.yml upGWorkspace-toolbox/
├── backend/ # FastAPI Python backend
├── frontend/ # React + Vite frontend
├── docker-compose.yml
└── README.md
Once running, access the interactive API documentation at:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- Never commit
credentials.jsonortoken.jsonfiles - Store sensitive credentials securely
- Use environment variables for configuration
- The application runs locally to maintain credential security
We welcome contributions from the community! 🎉
Open an issue with details about the problem.
Submit a feature request or start a discussion.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request
Note: The main branch is protected and requires:
- ✅ Pull Request review and approval
- ✅ CI/CD checks to pass (Docker builds)
- ✅ No direct pushes allowed
See CONTRIBUTING.md for detailed guidelines.
This project uses GitHub Actions for continuous integration:
- ✅ Automatic Docker image builds on every push to
main - ✅ Images published to GitHub Container Registry
- ✅ Watchtower automatically updates running instances
- ✅ Branch protection ensures code quality
View builds: GitHub Actions
MIT License - see LICENSE for details
Made with ❤️ for Google Workspace administrators