Skip to content

Commit b067e1d

Browse files
committed
Initial release: Firebase DevOps Toolkit v0.1.0 (Beta)
Enterprise-grade Firebase DevOps toolkit with 80+ production-ready scripts for local development, team collaboration, and deployment automation. ⚠️ Beta Release - Feedback welcome! Key Features: - Local Development: Emulator management, Pub/Sub topics, resource monitoring - Deployment: Multi-environment, selective deploy, function versioning - Team Collaboration: Secure emulator sharing with 3 security levels • Basic sharing (ngrok tunnels) • Secure sharing (password protected) • Enterprise (HTTPS + auth tokens + rate limiting) - Database: Firestore cleanup, schema inference, data backup/restore - Testing: Function testing, health checks, auth validation - Mobile Access: Share emulators securely with mobile devices Includes: - Starter project template for quick onboarding - Comprehensive documentation - Project structure guide - Contributing guidelines By SolidKey AB - https://solidkey.se
0 parents  commit b067e1d

File tree

98 files changed

+18766
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+18766
-0
lines changed

.env.example

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# Firebase Scripts Configuration Template
2+
# Copy this file to .env and configure for your project
3+
4+
# ==============================================
5+
# CORE FIREBASE CONFIGURATION
6+
# ==============================================
7+
8+
# Your Firebase project ID (REQUIRED)
9+
FIREBASE_PROJECT_ID=your-project-id
10+
11+
# Firebase project ID for development/testing
12+
FIREBASE_DEV_PROJECT_ID=your-dev-project-id
13+
14+
# Firebase region (e.g., us-central1, europe-west1)
15+
FIREBASE_REGION=us-central1
16+
17+
# ==============================================
18+
# NETWORK CONFIGURATION
19+
# ==============================================
20+
21+
# Local network IP address for mobile access
22+
# Get this with: ip route get 1.1.1.1 | grep -oP 'src \K\S+'
23+
# On macOS: ipconfig getifaddr en0
24+
LOCAL_NETWORK_IP=192.168.1.100
25+
26+
# Alternative IP for mobile access (if different)
27+
MOBILE_ACCESS_IP=
28+
29+
# ==============================================
30+
# PORT CONFIGURATION
31+
# ==============================================
32+
33+
# HTTPS wrapper port
34+
HTTPS_PORT=8443
35+
36+
# HTTP proxy port
37+
HTTP_PORT=8080
38+
39+
# Firebase Emulator Ports
40+
EMULATOR_UI_PORT=4002
41+
EMULATOR_FUNCTIONS_PORT=5002
42+
EMULATOR_FIRESTORE_PORT=8085
43+
EMULATOR_AUTH_PORT=9100
44+
EMULATOR_HOSTING_PORT=5005
45+
46+
# Your frontend/console port
47+
FRONTEND_PORT=3000
48+
49+
# ==============================================
50+
# SERVICE CONFIGURATION
51+
# ==============================================
52+
53+
# Your company/organization name
54+
COMPANY_NAME=YourCompany
55+
56+
# Frontend/console application name
57+
FRONTEND_NAME=Console
58+
59+
# Application name for display
60+
APP_NAME=Firebase Development Tools
61+
62+
# ==============================================
63+
# SSL CERTIFICATE CONFIGURATION
64+
# ==============================================
65+
66+
# Directory for SSL certificates (relative to project root)
67+
CERT_DIR=.certs
68+
69+
# Certificate validity in days
70+
CERT_VALIDITY_DAYS=365
71+
72+
# ==============================================
73+
# SECURITY CONFIGURATION
74+
# ==============================================
75+
76+
# Rate limiting: requests per window
77+
RATE_LIMIT_MAX=20
78+
79+
# Rate limiting: window in milliseconds
80+
RATE_LIMIT_WINDOW=10000
81+
82+
# Session timeout in milliseconds (1 hour default)
83+
SESSION_TIMEOUT=3600000
84+
85+
# ==============================================
86+
# DEVELOPMENT CONFIGURATION
87+
# ==============================================
88+
89+
# Project root directory (auto-detected if not set)
90+
PROJECT_ROOT=
91+
92+
# Log level (error, warn, info, debug)
93+
LOG_LEVEL=info
94+
95+
# Enable debug mode
96+
DEBUG=false

.gcloudignore

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# This file specifies files that are *not* uploaded to Google Cloud
2+
# using gcloud. It follows the same syntax as .gitignore, with the addition of
3+
# "#!include" directives (which insert the entries of the given .gitignore-style
4+
# file at that point).
5+
#
6+
# For more information, run:
7+
# $ gcloud topic gcloudignore
8+
#
9+
.gcloudignore
10+
# If you would like to upload your .git directory, .gitignore file or files
11+
# from your .gitignore file, remove the corresponding line
12+
# below:
13+
.git
14+
.gitignore
15+
16+
node_modules
17+
#!include:.gitignore
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
name: Bug Report
3+
about: Report a bug to help us improve
4+
title: '[BUG] '
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Bug Description
10+
A clear and concise description of what the bug is.
11+
12+
## Steps to Reproduce
13+
1. Run command '...'
14+
2. With options '...'
15+
3. See error
16+
17+
## Expected Behavior
18+
What you expected to happen.
19+
20+
## Actual Behavior
21+
What actually happened.
22+
23+
## Error Output
24+
```
25+
Paste any error messages or logs here
26+
```
27+
28+
## Environment
29+
- **OS**: [e.g., macOS 14.0, Ubuntu 22.04, Windows 11 WSL]
30+
- **Node.js version**: [e.g., 18.17.0]
31+
- **Firebase CLI version**: [e.g., 13.0.0]
32+
- **Toolkit version**: [e.g., 1.0.0]
33+
- **Shell**: [e.g., bash 5.1, zsh 5.9]
34+
35+
## Additional Context
36+
Add any other context about the problem here.
37+
38+
## Possible Solution
39+
If you have an idea of what might fix this, please share!
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
name: Feature Request
3+
about: Suggest an idea for this project
4+
title: '[FEATURE] '
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## Problem Statement
10+
A clear description of what problem this feature would solve.
11+
Ex. "I'm always frustrated when..."
12+
13+
## Proposed Solution
14+
Describe the solution you'd like. Be as specific as possible.
15+
16+
## Example Usage
17+
```bash
18+
# How would this feature be used?
19+
./manage.sh your-new-command --option value
20+
```
21+
22+
## Alternative Solutions
23+
Describe any alternative solutions or workarounds you've considered.
24+
25+
## Use Case
26+
Who would benefit from this feature and how?
27+
28+
## Additional Context
29+
Add any other context, screenshots, or examples about the feature request here.
30+
31+
## Would you like to implement this?
32+
- [ ] Yes, I'd like to submit a PR for this feature
33+
- [ ] No, I'm just suggesting the idea

.github/ISSUE_TEMPLATE/question.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Question
3+
about: Ask a question about using the toolkit
4+
title: '[QUESTION] '
5+
labels: question
6+
assignees: ''
7+
---
8+
9+
## Question
10+
What would you like to know?
11+
12+
## Context
13+
What are you trying to accomplish?
14+
15+
## What I've Tried
16+
Describe any solutions you've already attempted.
17+
18+
## Environment
19+
- **OS**: [e.g., macOS, Ubuntu, Windows WSL]
20+
- **Toolkit version**: [e.g., 1.0.0]
21+
22+
## Additional Information
23+
Any other relevant details.

.github/pull_request_template.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
## Description
2+
Brief description of what this PR does.
3+
4+
## Type of Change
5+
- [ ] Bug fix (non-breaking change that fixes an issue)
6+
- [ ] New feature (non-breaking change that adds functionality)
7+
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
8+
- [ ] Documentation update
9+
- [ ] Refactoring (no functional changes)
10+
11+
## Changes Made
12+
- Change 1
13+
- Change 2
14+
- Change 3
15+
16+
## How to Test
17+
1. Step 1
18+
2. Step 2
19+
3. Expected result
20+
21+
## Checklist
22+
- [ ] My code follows the project's style guidelines
23+
- [ ] I have tested my changes locally
24+
- [ ] I have updated the documentation (if applicable)
25+
- [ ] My changes don't break existing functionality
26+
- [ ] I have added comments where necessary
27+
28+
## Related Issues
29+
Fixes #(issue number)
30+
31+
## Screenshots (if applicable)
32+
Add screenshots to help explain your changes.
33+
34+
## Additional Notes
35+
Any additional information reviewers should know.

.gitignore

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# Firebase DevOps Toolkit
2+
# Files that should be ignored by Git
3+
4+
# =============================================================================
5+
# OS Generated Files
6+
# =============================================================================
7+
.DS_Store
8+
.DS_Store?
9+
._*
10+
.Spotlight-V100
11+
.Trashes
12+
ehthumbs.db
13+
Thumbs.db
14+
15+
# =============================================================================
16+
# Editor / IDE
17+
# =============================================================================
18+
.vscode/
19+
.idea/
20+
*.swp
21+
*.swo
22+
*~
23+
24+
# =============================================================================
25+
# Logs
26+
# =============================================================================
27+
*.log
28+
npm-debug.log*
29+
yarn-debug.log*
30+
yarn-error.log*
31+
firebase-debug.log
32+
firestore-debug.log
33+
ui-debug.log
34+
pubsub-debug.log
35+
36+
# =============================================================================
37+
# Dependencies
38+
# =============================================================================
39+
node_modules/
40+
jspm_packages/
41+
.npm
42+
.yarn-integrity
43+
*.tgz
44+
45+
# =============================================================================
46+
# Runtime / Temporary
47+
# =============================================================================
48+
pids/
49+
*.pid
50+
*.seed
51+
*.pid.lock
52+
*.tmp
53+
*.temp
54+
coverage/
55+
56+
# =============================================================================
57+
# Environment & Config (Project-Specific)
58+
# =============================================================================
59+
.env
60+
.env.local
61+
.env.*.local
62+
63+
# Project-specific configs (users create their own from templates)
64+
project-config.sh
65+
project-config-*.sh
66+
local-config.json
67+
.firebaserc
68+
69+
# =============================================================================
70+
# Firebase / GCP Generated
71+
# =============================================================================
72+
.firebase/
73+
.certs/
74+
.emulator-sharing/
75+
emulator-data/
76+
77+
# Generated schema files
78+
firestore-schema-*.json
79+
80+
# =============================================================================
81+
# Build / Deploy Artifacts
82+
# =============================================================================
83+
dist/
84+
build/
85+
.cache/
86+
87+
# =============================================================================
88+
# Archive / Backup (should not be in repo)
89+
# =============================================================================
90+
archive/
91+
backup/
92+
*.backup
93+
*.bak

0 commit comments

Comments
 (0)