{"id":43741177,"url":"https://github.com/nazarli-shabnam/devkit","last_synced_at":"2026-03-05T08:11:13.056Z","repository":{"id":336209374,"uuid":"1144522061","full_name":"nazarli-shabnam/devkit","owner":"nazarli-shabnam","description":"CLI to set up local dev environments from a single config: dependencies, DB migrations, seed, and docker-compose generation. Add .dev-env.yml and run devkit setup.","archived":false,"fork":false,"pushed_at":"2026-02-03T18:19:46.000Z","size":85,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-03T22:10:07.884Z","etag":null,"topics":["cli","devops","docker","dx","nodejs","project-setup"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nazarli-shabnam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-28T19:03:56.000Z","updated_at":"2026-02-03T09:15:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nazarli-shabnam/devkit","commit_stats":null,"previous_names":["nazarli-shabnam/devkit"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/nazarli-shabnam/devkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazarli-shabnam%2Fdevkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazarli-shabnam%2Fdevkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazarli-shabnam%2Fdevkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazarli-shabnam%2Fdevkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nazarli-shabnam","download_url":"https://codeload.github.com/nazarli-shabnam/devkit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nazarli-shabnam%2Fdevkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29121678,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T10:47:47.471Z","status":"ssl_error","status_checked_at":"2026-02-05T10:45:08.119Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","devops","docker","dx","nodejs","project-setup"],"created_at":"2026-02-05T12:00:16.458Z","updated_at":"2026-02-05T12:00:18.780Z","avatar_url":"https://github.com/nazarli-shabnam.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# envkit\n\nA CLI for local development environments: one-command setup, environment snapshots, and Docker Compose generation from a single config file.\n\n**Requires:** Node.js \u003e= 16\n\n## What it does\n\n- **Setup** — Reads your project’s `.dev-env.yml`, installs dependencies, runs database migrations and seed commands.\n- **Generate** — Produces `docker-compose.yml` from the same config (databases, services, network).\n- **Snapshots** — Save and list copies of your current config under `.devkit/snapshots/\u003cname\u003e/` for later restore.\n- **Share** — Export sanitized config (no secrets) or import a shared config file.\n\nConfig is one YAML file plus optional `.env` for secrets; you reference variables with `${VAR_NAME}`. The CLI finds the project root from the current directory (looks for `.dev-env.yml` or `package.json`).\n\n## Install\n\n```bash\nnpm install -g dev-env-kit\n```\n\nOr run without installing: `npx dev-env-kit \u003ccommand\u003e`\n\n## How to use\n\n### 1. Configure your project\n\nIn your project root, add a `.dev-env.yml` that describes your dev environment (dependencies, databases, services). Copy the example file to `.dev-env.yml`, then edit:\n\n```bash\ncp .dev-env.example.yml .dev-env.yml\n```\n\nSee [.dev-env.example.yml](./.dev-env.example.yml) for all options. Put secrets in a `.env` file and reference them in the config with `${VAR_NAME}`.\n\n### 2. Set up the environment\n\nFrom the project root (or any subdirectory):\n\n```bash\nenvkit setup\n```\n\nThis installs dependencies, runs database migrations, and runs seed commands according to your config. Options:\n\n| Option        | Description                          |\n|---------------|--------------------------------------|\n| `--skip-deps` | Skip installing dependencies         |\n| `--skip-db`   | Skip database migrations and seed    |\n| `--dry-run`   | Show what would run, without running |\n\n### 3. Generate Docker Compose\n\nTo create a `docker-compose.yml` from your `.dev-env.yml` (when `docker.enabled` is true):\n\n```bash\nenvkit generate\n```\n\nUse `-o \u003cfile\u003e` to write to a different file, e.g. `envkit generate -o docker-compose.dev.yml`.\n\n### 4. Snapshots\n\nSave the current config and metadata under `.devkit/snapshots/\u003cname\u003e/`:\n\n```bash\nenvkit snapshot create [name]\n```\n\nIf you omit `name`, a timestamped name is used. List snapshots:\n\n```bash\nenvkit snapshot list\n```\n\nRestore a snapshot to `.dev-env.yml`: `envkit snapshot restore \u003cname\u003e`.\n\n### 5. Share (export / import)\n\nExport a sanitized copy of your config (passwords and secrets replaced with placeholders like `${DB_PASSWORD}`):\n\n```bash\nenvkit share export\n```\n\nWrites to `dev-env.shared.yml` by default. Use `-o \u003cfile\u003e` to choose another path.\n\nImport a shared config file into your project (validates and writes to `.dev-env.yml` by default):\n\n```bash\nenvkit share import path/to/dev-env.shared.yml\n```\n\nUse `-o \u003cfile\u003e` to write to a different path.\n\n### 6. Global options\n\n- `-v, --verbose` — more log output  \n- `-q, --quiet` — less output  \n\nExample: `envkit -q setup`\n\n### Quick reference\n\n| Command                      | Description                              |\n|-----------------------------|------------------------------------------|\n| `envkit setup`               | Install deps, run migrations \u0026 seed     |\n| `envkit generate`            | Generate docker-compose from config     |\n| `envkit snapshot create [name]` | Save current config to a snapshot  |\n| `envkit snapshot list`       | List snapshots                           |\n| `envkit snapshot restore \u003cname\u003e`  | Restore a snapshot to .dev-env.yml |\n| `envkit share export`          | Export sanitized config (-o file)  |\n| `envkit share import \u003cfile\u003e`   | Import shared config (-o file)     |\n\nUse `envkit --help` or `envkit \u003ccommand\u003e --help` for details.\n\n## Testing\n\n```bash\nnpm install\nnpm test\n```\n\nOptional: `npm test -- --coverage` for a coverage report.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnazarli-shabnam%2Fdevkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnazarli-shabnam%2Fdevkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnazarli-shabnam%2Fdevkit/lists"}