DailyCodeDeploy is an open-source platform that democratizes DevOps. Our mission is to make deployment automation simple and accessible to developers of all levels.
Why it’s exciting:
- Template marketplace: curated, copy-editable pipelines tuned for popular stacks.
- Instant GitHub onboarding: OAuth login pulls your repos so you can clone private code securely.
- Stripe-ready billing: mock mode out-of-the-box, live mode with environment variables.
To help prevent the "cannot lock ref 'HEAD'" error and other git ref issues, the repository includes helper scripts and a pre-commit hook that detects stale git lock files.
-
Install local hooks (recommended):
- Unix/macOS/WSL:
./scripts/setup-hooks.sh - Windows PowerShell (run as user):
powershell -ExecutionPolicy Bypass -File .\scripts\setup-hooks.ps1
These scripts configure
core.hooksPathto.githooksand make the pre-commit hook active for your clone. - Unix/macOS/WSL:
-
Inspect and remove stale lock files:
- Inspect:
./scripts/check-git-locks.shor.\scripts\check-git-locks.ps1 - Remove stale locks (careful):
./scripts/check-git-locks.sh --forceor.\scripts\check-git-locks.ps1 -Force
The scripts will refuse to remove locks if a git process is currently running to avoid corrupting repository state.
- Inspect:
-
CI & automation
-
A weekly GitHub Action (
.github/workflows/check-locks.yml) runs the lock-check script and uploads a small report as an artifact. This helps repository maintainers detect recurring lock issues early. -
The weekly lock-check workflow will automatically create a GitHub issue when lock files are detected. The issue includes the lock-check output and is labeled
lock-checkandauto-created. -
To enable webhook notifications (e.g., Slack, Discord), add a secret named
LOCKS_WEBHOOK_URLin your repository settings. When present, the workflow will POST the lock-check output to that URL.
Notification integrations
- The workflow supports posting notifications to Slack or Discord. To enable, add repository secrets
SLACK_WEBHOOK_URLorDISCORD_WEBHOOK_URLrespectively. - The workflow will also create a GitHub issue and assign the default maintainer (
@AlKhazarof). Adjust the assignee in the workflow if needed.
Note: If the pre-commit hook blocks you, ensure no other git processes are running and run the check scripts to diagnose and remove stale locks safely.
You can also use the provided Makefile on Unix-like systems for convenience:
# Install hooks, check locks, or run smoke tests
make install-hooks
make check-locks
make smoke
A CODEOWNERS file is present to automatically request reviews from maintainers for critical paths (CI, scripts).
-
Create .env from the example: cp backend/.env.example backend/.env
-
Install dependencies: cd /workspaces/daily-code-deploy npm install cd backend && npm install
-
Start the app: node backend/server.js
npm start
-
Open the demo page: http://localhost:5000
-
(Optional) Start the queue worker for pipelines: cd backend && npm run runner
- Install deps:
npm install && cd backend && npm install && cd .. - Install hooks (one-liner):
npm run hooks:setup - Check for stale git locks:
npm run locks:check - Run smoke tests locally (Linux):
npm run smoke:ci
Templates live in backend/data/templates.json. Each entry exposes:
id,name,descriptionrecommendedFortags for quick discoverysteps: shell commands executed in BullMQ worker- optional
envoverrides merged into the job
The frontend fetches /api/pipeline/templates, renders cards, and lets users queue jobs with a single click. Jobs log template metadata so teammates can replay or remix popular flows. Community contributions to backend/data/templates.json are welcome.
- In mock mode (no STRIPE_SECRET_KEY), POST /api/subscribe stores a user in backend/data/users.json.
- List users: GET /api/users
- To enable real Stripe flows: set STRIPE_SECRET_KEY and STRIPE_PRICE_ID in backend/.env and restart.
- Templates endpoint: GET /api/pipeline/templates
curl -s -X POST http://localhost:5000/api/subscribe -H "Content-Type: application/json" -d '{"email":"alice@example.com"}'
curl -s http://localhost:5000/api/users
This starter includes a minimal CI runner using BullMQ + Redis.
-
Start Redis (Docker required for this step): docker run --rm -p 6379:6379 redis:7-alpine
-
Start API and Runner in separate terminals:
npm start
npm --prefix backend run runner
-
Enqueue a demo job (template-aware): curl -s -X POST http://localhost:5000/api/pipeline/run
-H "Content-Type: application/json"
-d '{"templateId":"node-smoke","repoFullName":"OWNER/REPO"}' -
Poll status & logs: curl -s http://localhost:5000/api/pipeline/job/<JOB_ID> curl -s http://localhost:5000/api/pipeline/logs/<JOB_ID>
- docker compose up --build
- Open http://localhost:5000 → click “Run pipeline” or use curl as above.
- If you’re logged in with GitHub (via the landing page → Login with GitHub), enter owner/name and optional branch, then “Run pipeline”. Private repos require stored OAuth token (already saved after login).
- Public repos work without login if the repo is public.
- Jobs now log the template used, making it easy to audit or replay.
- This is a demo runner; it executes shell commands provided by the request. In production, lock this down:
- Only run whitelisted steps defined in per-repo config.
- Sandbox job execution (ephemeral containers, user namespaces).
- Resource limits and timeouts.
- Logs are written to backend/tmp/jobs//log.txt
- Launch community template gallery (PRs welcome in
backend/data/templates.json). - Add GitHub webhooks for push-triggered builds.
- Replace local storage with a durable DB (Postgres/Mongo).
- Implement user dashboards, pipeline history, and billing analytics.
- Introduce referral program, Zapier integration, and weekly digests.
- Provide AI-assisted pipeline authoring and step suggestions.
- If you price at $10/month, to hit $100/day (~$3k/month), you need ~300 paying monthly subscribers. Consider enterprise plans, add-ons, or usage-based billing to increase ARPU and reduce required user count.
Frontend: HTML5, CSS3, Vanilla JavaScript
Backend: Node.js, Express.js
Queue: BullMQ + Redis
Integrations: GitHub API, Stripe
- GitHub issues and PRs are welcome. Add templates via PR to
backend/data/templates.json. - For discussions, use the repository's Issues/Discussions.
🎆 Join Our Mission: Make DevOps simple, accessible, and understandable for everyone! 🚀
DailyCodeDeploy is not just a tool, it's a community of developers creating the future of development automation.