@synapta/skills 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +11 -4
- package/package.json +3 -4
- package/skills/ATTRIBUTION.md +80 -0
- package/skills/accessibility-audit/SKILL.md +325 -0
- package/skills/accessibility-audit/reference/wcag-checklist.md +103 -0
- package/skills/apns-notifier/SKILL.md +86 -0
- package/skills/approval-policy-enforcer/SKILL.md +66 -0
- package/skills/apps-sdk-builder/LICENSE.txt +201 -0
- package/skills/apps-sdk-builder/SKILL.md +328 -0
- package/skills/apps-sdk-builder/agents/openai.yaml +13 -0
- package/skills/apps-sdk-builder/references/app-archetypes.md +132 -0
- package/skills/apps-sdk-builder/references/apps-sdk-docs-workflow.md +135 -0
- package/skills/apps-sdk-builder/references/interactive-state-sync-patterns.md +113 -0
- package/skills/apps-sdk-builder/references/repo-contract-and-validation.md +93 -0
- package/skills/apps-sdk-builder/references/search-fetch-standard.md +67 -0
- package/skills/apps-sdk-builder/references/upstream-example-workflow.md +79 -0
- package/skills/apps-sdk-builder/references/window-openai-patterns.md +79 -0
- package/skills/apps-sdk-builder/scripts/scaffold_node_ext_apps.mjs +606 -0
- package/skills/architecture-selector/SKILL.md +64 -0
- package/skills/backlog-planner/SKILL.md +68 -0
- package/skills/carplay-entitlement-checker/SKILL.md +82 -0
- package/skills/concept-deepener/SKILL.md +86 -0
- package/skills/concept-discovery/SKILL.md +517 -0
- package/skills/concept-discovery/assets/sample-analysis.json +81 -0
- package/skills/concept-discovery/expected_outputs/sample-enum-dictionary.md +25 -0
- package/skills/concept-discovery/expected_outputs/sample-page-user-list.md +83 -0
- package/skills/concept-discovery/expected_outputs/sample-prd-readme.md +43 -0
- package/skills/concept-discovery/references/framework-patterns.md +228 -0
- package/skills/concept-discovery/references/prd-quality-checklist.md +65 -0
- package/skills/concept-discovery/scripts/codebase_analyzer.py +732 -0
- package/skills/concept-discovery/scripts/prd_scaffolder.py +435 -0
- package/skills/dast-zap/SKILL.md +453 -0
- package/skills/dast-zap/assets/.gitkeep +9 -0
- package/skills/dast-zap/assets/github_action.yml +207 -0
- package/skills/dast-zap/assets/gitlab_ci.yml +226 -0
- package/skills/dast-zap/assets/zap_automation.yaml +196 -0
- package/skills/dast-zap/assets/zap_context.xml +192 -0
- package/skills/dast-zap/references/EXAMPLE.md +40 -0
- package/skills/dast-zap/references/api_testing_guide.md +475 -0
- package/skills/dast-zap/references/authentication_guide.md +431 -0
- package/skills/dast-zap/references/false_positive_handling.md +427 -0
- package/skills/dast-zap/references/owasp_mapping.md +255 -0
- package/skills/dep-sbom-scan/SKILL.md +466 -0
- package/skills/deploy-cloudflare/SKILL.md +930 -0
- package/skills/deploy-docker/SKILL.md +55 -0
- package/skills/deploy-fly/SKILL.md +228 -0
- package/skills/deploy-k8s/SKILL.md +108 -0
- package/skills/deploy-k8s/assets/logo.png +0 -0
- package/skills/deploy-k8s/docs/README.md +29 -0
- package/skills/deploy-k8s/docs/SUMMARY.md +56 -0
- package/skills/deploy-k8s/docs/advanced/token-efficiency.md +61 -0
- package/skills/deploy-k8s/docs/architecture/multi-tenancy.md +96 -0
- package/skills/deploy-k8s/docs/architecture/storage-and-state.md +102 -0
- package/skills/deploy-k8s/docs/architecture/workload-patterns.md +87 -0
- package/skills/deploy-k8s/docs/book.json +16 -0
- package/skills/deploy-k8s/docs/community/changelog.md +34 -0
- package/skills/deploy-k8s/docs/community/contributing.md +67 -0
- package/skills/deploy-k8s/docs/core-concepts/failure-modes.md +153 -0
- package/skills/deploy-k8s/docs/core-concepts/philosophy.md +83 -0
- package/skills/deploy-k8s/docs/core-concepts/workflow.md +124 -0
- package/skills/deploy-k8s/docs/examples/bad-patterns.md +47 -0
- package/skills/deploy-k8s/docs/examples/do-dont-checklist.md +37 -0
- package/skills/deploy-k8s/docs/examples/good-patterns.md +49 -0
- package/skills/deploy-k8s/docs/failure-modes/api-drift.md +104 -0
- package/skills/deploy-k8s/docs/failure-modes/fragile-rollouts.md +99 -0
- package/skills/deploy-k8s/docs/failure-modes/insecure-workload-defaults.md +80 -0
- package/skills/deploy-k8s/docs/failure-modes/network-exposure.md +98 -0
- package/skills/deploy-k8s/docs/failure-modes/privilege-sprawl.md +91 -0
- package/skills/deploy-k8s/docs/failure-modes/resource-starvation.md +85 -0
- package/skills/deploy-k8s/docs/getting-started/installation.md +152 -0
- package/skills/deploy-k8s/docs/getting-started/quick-start.md +115 -0
- package/skills/deploy-k8s/docs/guides/helm-patterns.md +71 -0
- package/skills/deploy-k8s/docs/guides/kustomize-patterns.md +65 -0
- package/skills/deploy-k8s/docs/guides/observability.md +67 -0
- package/skills/deploy-k8s/docs/guides/security-hardening.md +59 -0
- package/skills/deploy-k8s/docs/guides/validation-and-policy.md +66 -0
- package/skills/deploy-k8s/docs/integrations/mcp-integration.md +52 -0
- package/skills/deploy-k8s/docs/package-lock.json +2892 -0
- package/skills/deploy-k8s/docs/package.json +13 -0
- package/skills/deploy-k8s/references/api-drift.md +298 -0
- package/skills/deploy-k8s/references/conditional/aks-patterns.md +70 -0
- package/skills/deploy-k8s/references/conditional/eks-patterns.md +79 -0
- package/skills/deploy-k8s/references/conditional/gitops-controllers.md +71 -0
- package/skills/deploy-k8s/references/conditional/gke-patterns.md +74 -0
- package/skills/deploy-k8s/references/conditional/observability-stacks.md +80 -0
- package/skills/deploy-k8s/references/conditional/openshift-patterns.md +67 -0
- package/skills/deploy-k8s/references/daemonset-operator-patterns.md +155 -0
- package/skills/deploy-k8s/references/deployment-patterns.md +146 -0
- package/skills/deploy-k8s/references/do-dont-patterns.md +87 -0
- package/skills/deploy-k8s/references/examples-bad.md +282 -0
- package/skills/deploy-k8s/references/examples-good.md +440 -0
- package/skills/deploy-k8s/references/fragile-rollouts.md +303 -0
- package/skills/deploy-k8s/references/helm-patterns.md +203 -0
- package/skills/deploy-k8s/references/insecure-workload-defaults.md +300 -0
- package/skills/deploy-k8s/references/job-patterns.md +120 -0
- package/skills/deploy-k8s/references/kustomize-patterns.md +239 -0
- package/skills/deploy-k8s/references/multi-tenancy.md +343 -0
- package/skills/deploy-k8s/references/network-exposure.md +481 -0
- package/skills/deploy-k8s/references/observability.md +302 -0
- package/skills/deploy-k8s/references/privilege-sprawl.md +273 -0
- package/skills/deploy-k8s/references/resource-starvation.md +374 -0
- package/skills/deploy-k8s/references/security-hardening.md +209 -0
- package/skills/deploy-k8s/references/stateful-patterns.md +130 -0
- package/skills/deploy-k8s/references/storage-and-state.md +330 -0
- package/skills/deploy-k8s/references/validation-and-policy.md +242 -0
- package/skills/deploy-railway/SKILL.md +235 -0
- package/skills/deploy-railway/references/analyze-db-mongo.md +84 -0
- package/skills/deploy-railway/references/analyze-db-mysql.md +254 -0
- package/skills/deploy-railway/references/analyze-db-postgres.md +479 -0
- package/skills/deploy-railway/references/analyze-db-redis.md +208 -0
- package/skills/deploy-railway/references/analyze-db.md +344 -0
- package/skills/deploy-railway/references/configure.md +309 -0
- package/skills/deploy-railway/references/deploy.md +195 -0
- package/skills/deploy-railway/references/operate.md +214 -0
- package/skills/deploy-railway/references/request.md +248 -0
- package/skills/deploy-railway/references/setup.md +312 -0
- package/skills/deploy-railway/scripts/analyze-mongo.py +1549 -0
- package/skills/deploy-railway/scripts/analyze-mysql.py +1195 -0
- package/skills/deploy-railway/scripts/analyze-postgres.py +3058 -0
- package/skills/deploy-railway/scripts/analyze-redis.py +1090 -0
- package/skills/deploy-railway/scripts/dal.py +671 -0
- package/skills/deploy-railway/scripts/enable-pg-stats.py +170 -0
- package/skills/deploy-railway/scripts/pg-extensions.py +370 -0
- package/skills/deploy-railway/scripts/railway-api.sh +52 -0
- package/skills/deploy-ssh/SKILL.md +91 -0
- package/skills/deploy-vercel/SKILL.md +304 -0
- package/skills/deploy-vercel/resources/deploy-codex.sh +301 -0
- package/skills/deploy-vercel/resources/deploy.sh +301 -0
- package/skills/docs-runbooks/SKILL.md +399 -0
- package/skills/drive-status-renderer/SKILL.md +62 -0
- package/skills/iac-scan/SKILL.md +680 -0
- package/skills/iac-scan/assets/.gitkeep +9 -0
- package/skills/iac-scan/assets/checkov_config.yaml +94 -0
- package/skills/iac-scan/assets/github_actions.yml +199 -0
- package/skills/iac-scan/assets/gitlab_ci.yml +218 -0
- package/skills/iac-scan/assets/pre_commit_config.yaml +92 -0
- package/skills/iac-scan/references/EXAMPLE.md +40 -0
- package/skills/iac-scan/references/compliance_mapping.md +237 -0
- package/skills/iac-scan/references/custom_policies.md +460 -0
- package/skills/iac-scan/references/suppression_guide.md +431 -0
- package/skills/incident-briefing/SKILL.md +66 -0
- package/skills/incident-triage/SKILL.md +481 -0
- package/{LICENSE → skills/mcp-builder/LICENSE.txt} +15 -14
- package/skills/mcp-builder/SKILL.md +244 -0
- package/skills/mcp-builder/reference/evaluation.md +602 -0
- package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/skills/mcp-builder/scripts/connections.py +151 -0
- package/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/skills/mobile-pairing/SKILL.md +52 -0
- package/skills/ops-sre/SKILL.md +297 -0
- package/skills/playwright-qa/LICENSE.txt +201 -0
- package/skills/playwright-qa/NOTICE.txt +14 -0
- package/skills/playwright-qa/SKILL.md +156 -0
- package/skills/playwright-qa/agents/openai.yaml +6 -0
- package/skills/playwright-qa/assets/playwright-small.svg +3 -0
- package/skills/playwright-qa/assets/playwright.png +0 -0
- package/skills/playwright-qa/references/cli.md +116 -0
- package/skills/playwright-qa/references/workflows.md +95 -0
- package/skills/playwright-qa/scripts/playwright_cli.sh +25 -0
- package/skills/release-publish/SKILL.md +85 -0
- package/skills/repo-bootstrap/SKILL.md +92 -0
- package/skills/repo-bootstrap/assets/example-workflows/validate-agents.yml +89 -0
- package/skills/repo-bootstrap/assets/root-thin.md +141 -0
- package/skills/repo-bootstrap/assets/root-verbose.md +149 -0
- package/skills/repo-bootstrap/assets/scoped/backend-go.md +107 -0
- package/skills/repo-bootstrap/assets/scoped/backend-php.md +94 -0
- package/skills/repo-bootstrap/assets/scoped/backend-python.md +84 -0
- package/skills/repo-bootstrap/assets/scoped/backend-typescript.md +89 -0
- package/skills/repo-bootstrap/assets/scoped/claude-code-skill.md +101 -0
- package/skills/repo-bootstrap/assets/scoped/cli.md +83 -0
- package/skills/repo-bootstrap/assets/scoped/concourse.md +196 -0
- package/skills/repo-bootstrap/assets/scoped/ddev.md +68 -0
- package/skills/repo-bootstrap/assets/scoped/docker.md +160 -0
- package/skills/repo-bootstrap/assets/scoped/documentation.md +98 -0
- package/skills/repo-bootstrap/assets/scoped/examples.md +96 -0
- package/skills/repo-bootstrap/assets/scoped/frontend-typescript.md +88 -0
- package/skills/repo-bootstrap/assets/scoped/github-actions.md +174 -0
- package/skills/repo-bootstrap/assets/scoped/gitlab-ci.md +174 -0
- package/skills/repo-bootstrap/assets/scoped/oro-bundle.md +209 -0
- package/skills/repo-bootstrap/assets/scoped/oro-project.md +170 -0
- package/skills/repo-bootstrap/assets/scoped/python-modern.md +170 -0
- package/skills/repo-bootstrap/assets/scoped/resources.md +96 -0
- package/skills/repo-bootstrap/assets/scoped/skill-repo.md +139 -0
- package/skills/repo-bootstrap/assets/scoped/symfony.md +168 -0
- package/skills/repo-bootstrap/assets/scoped/testing.md +87 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-docs.md +103 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-extension.md +133 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-project.md +137 -0
- package/skills/repo-bootstrap/assets/scoped/typo3-testing.md +80 -0
- package/skills/repo-bootstrap/checkpoints.yaml +279 -0
- package/skills/repo-bootstrap/evals/evals.json +385 -0
- package/skills/repo-bootstrap/references/ai-contribution-guidelines.md +63 -0
- package/skills/repo-bootstrap/references/ai-tool-compatibility.md +223 -0
- package/skills/repo-bootstrap/references/directory-coverage.md +82 -0
- package/skills/repo-bootstrap/references/examples/coding-agent-cli/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/coding-agent-cli/go.mod +3 -0
- package/skills/repo-bootstrap/references/examples/coding-agent-cli/scripts-AGENTS.md +389 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/.env.example +13 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/AGENTS.md +91 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/package.json +33 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/pnpm-lock.yaml +3 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/AGENTS.md +91 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/config.ts +28 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/controllers/userController.ts +74 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/index.ts +26 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/errorHandler.ts +45 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/requestLogger.ts +18 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/health.ts +18 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/users.ts +13 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/errors.ts +40 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/logger.ts +14 -0
- package/skills/repo-bootstrap/references/examples/express-api-ts/tsconfig.json +24 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/.env.example +19 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/AGENTS.md +92 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/pyproject.toml +88 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/AGENTS.md +85 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/__init__.py +3 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/config.py +49 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/main.py +66 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/__init__.py +13 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/item.py +43 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/user.py +40 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/__init__.py +5 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/health.py +20 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/items.py +61 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/users.py +55 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/__init__.py +6 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/item_service.py +77 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/user_service.py +69 -0
- package/skills/repo-bootstrap/references/examples/fastapi-app/uv.lock +4 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/.scopes +3 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/AGENTS.md +86 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/package.json +20 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/src/App.tsx +5 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/cmd/api/main.go +7 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/go.mod +2 -0
- package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/main.go +7 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/.scopes +3 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/AGENTS.md +89 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/go.mod +2 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/AGENTS.md +90 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/package.json +17 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/App.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Button.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Footer.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Header.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Sidebar.tsx +1 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/main.go +7 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package-lock.json +0 -0
- package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package.json +12 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/go.mod +3 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-AGENTS.md +371 -0
- package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-web-AGENTS.md +448 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/.scopes +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/AGENTS.md +91 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/composer.json +8 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/package.json +15 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/pnpm-lock.yaml +0 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/src/Controller.php +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/AGENTS.md +92 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/package.json +26 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/App.tsx +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Button.tsx +10 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Footer.tsx +9 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Header.tsx +9 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/main.tsx +3 -0
- package/skills/repo-bootstrap/references/examples/php-with-frontend/web/tsconfig.json +13 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/AGENTS.md +75 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/package.json +7 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/package.json +11 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/src/index.ts +11 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-lock.yaml +42 -0
- package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-workspace.yaml +2 -0
- package/skills/repo-bootstrap/references/examples/simple-ldap-go/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/simple-ldap-go/examples-AGENTS.md +45 -0
- package/skills/repo-bootstrap/references/examples/simple-ldap-go/go.mod +3 -0
- package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/AGENTS.md +70 -0
- package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md +392 -0
- package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/composer.json +8 -0
- package/skills/repo-bootstrap/references/feedback-memory-schema.md +135 -0
- package/skills/repo-bootstrap/references/git-hooks-setup.md +79 -0
- package/skills/repo-bootstrap/references/output-structure.md +124 -0
- package/skills/repo-bootstrap/references/scripts-guide.md +175 -0
- package/skills/repo-bootstrap/references/verification-guide.md +137 -0
- package/skills/repo-bootstrap/scripts/analyze-git-history.sh +315 -0
- package/skills/repo-bootstrap/scripts/check-freshness.sh +230 -0
- package/skills/repo-bootstrap/scripts/detect-golden-samples.sh +161 -0
- package/skills/repo-bootstrap/scripts/detect-heuristics.sh +93 -0
- package/skills/repo-bootstrap/scripts/detect-project.sh +486 -0
- package/skills/repo-bootstrap/scripts/detect-scopes.sh +330 -0
- package/skills/repo-bootstrap/scripts/detect-utilities.sh +133 -0
- package/skills/repo-bootstrap/scripts/extract-adrs.sh +194 -0
- package/skills/repo-bootstrap/scripts/extract-agent-configs.sh +331 -0
- package/skills/repo-bootstrap/scripts/extract-architecture-rules.sh +522 -0
- package/skills/repo-bootstrap/scripts/extract-ci-commands.sh +385 -0
- package/skills/repo-bootstrap/scripts/extract-ci-rules.sh +384 -0
- package/skills/repo-bootstrap/scripts/extract-commands.sh +358 -0
- package/skills/repo-bootstrap/scripts/extract-documentation.sh +308 -0
- package/skills/repo-bootstrap/scripts/extract-github-rulesets.sh +96 -0
- package/skills/repo-bootstrap/scripts/extract-github-settings.sh +88 -0
- package/skills/repo-bootstrap/scripts/extract-ide-settings.sh +228 -0
- package/skills/repo-bootstrap/scripts/extract-platform-files.sh +290 -0
- package/skills/repo-bootstrap/scripts/extract-quality-configs.sh +442 -0
- package/skills/repo-bootstrap/scripts/generate-agents.sh +2424 -0
- package/skills/repo-bootstrap/scripts/generate-file-map.sh +153 -0
- package/skills/repo-bootstrap/scripts/lib/config-root.sh +211 -0
- package/skills/repo-bootstrap/scripts/lib/summary.sh +244 -0
- package/skills/repo-bootstrap/scripts/lib/template.sh +397 -0
- package/skills/repo-bootstrap/scripts/validate-structure.sh +324 -0
- package/skills/repo-bootstrap/scripts/verify-commands.sh +615 -0
- package/skills/repo-bootstrap/scripts/verify-content.sh +302 -0
- package/skills/schema-api-contracts/SKILL.md +56 -0
- package/skills/secret-hygiene/SKILL.md +511 -0
- package/skills/secret-hygiene/assets/.gitkeep +9 -0
- package/skills/secret-hygiene/assets/config-balanced.toml +81 -0
- package/skills/secret-hygiene/assets/config-custom.toml +178 -0
- package/skills/secret-hygiene/assets/config-strict.toml +48 -0
- package/skills/secret-hygiene/assets/github-action.yml +181 -0
- package/skills/secret-hygiene/assets/gitlab-ci.yml +257 -0
- package/skills/secret-hygiene/assets/precommit-config.yaml +70 -0
- package/skills/secret-hygiene/references/EXAMPLE.md +40 -0
- package/skills/secret-hygiene/references/compliance_mapping.md +538 -0
- package/skills/secret-hygiene/references/detection_rules.md +276 -0
- package/skills/secret-hygiene/references/false_positives.md +598 -0
- package/skills/secret-hygiene/references/remediation_guide.md +530 -0
- package/skills/stack-selector/SKILL.md +56 -0
- package/skills/telegram-control/SKILL.md +110 -0
- package/skills/telegram-control/references/architecture.md +184 -0
- package/skills/telegram-control/references/convex.md +173 -0
- package/skills/telegram-control/references/error_handling.md +212 -0
- package/skills/telegram-control/references/initial_setup.md +165 -0
- package/skills/telegram-control/references/telegram_api.md +156 -0
- package/skills/telegram-control/scripts/cancel_message.ts +53 -0
- package/skills/telegram-control/scripts/list_scheduled.ts +103 -0
- package/skills/telegram-control/scripts/logger.ts +121 -0
- package/skills/telegram-control/scripts/proxy-util.ts +11 -0
- package/skills/telegram-control/scripts/schedule_message.ts +216 -0
- package/skills/telegram-control/scripts/send_message.ts +115 -0
- package/skills/telegram-control/scripts/setup.ts +185 -0
- package/skills/telegram-control/scripts/types.ts +75 -0
- package/skills/telegram-control/scripts/view_history.ts +74 -0
- package/skills/test-strategy/SKILL.md +352 -0
- package/skills/threat-model/SKILL.md +303 -0
- package/skills/threat-model/examples/example-output.md +196 -0
- package/skills/threat-model/template.md +96 -0
- package/skills/ts-lint/SKILL.md +80 -0
- package/skills/ui-flow/SKILL.md +668 -0
- package/skills/voice-command-router/SKILL.md +51 -0
- package/skills/widget-live-activity-sync/SKILL.md +66 -0
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
# Configure
|
|
2
|
+
|
|
3
|
+
Manage environments, variables, service config, domains, and networking.
|
|
4
|
+
|
|
5
|
+
## Environments
|
|
6
|
+
|
|
7
|
+
### List and switch
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
railway environment list --json
|
|
11
|
+
railway environment list --ephemeral --json # only PR environments
|
|
12
|
+
railway environment list --no-ephemeral --json # hide PR environments
|
|
13
|
+
railway environment link <environment> # switch active environment
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Create
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
railway environment new <name>
|
|
20
|
+
railway environment new <name> --duplicate <source-environment> # clone config from existing
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Duplicating copies all service configurations and variables from the source environment.
|
|
24
|
+
|
|
25
|
+
## Variables
|
|
26
|
+
|
|
27
|
+
### Read, set, and delete
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
railway variable list --service <service> --environment <env> --json
|
|
31
|
+
railway variable set KEY=value --service <service> --environment <env>
|
|
32
|
+
railway variable delete KEY --service <service> --environment <env>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Variable changes trigger a redeployment by default. This is usually the desired behavior, since the service picks up the values on restart. Use `--skip-deploys` only when you plan to redeploy or restart separately.
|
|
36
|
+
|
|
37
|
+
### Set sensitive values
|
|
38
|
+
|
|
39
|
+
Use stdin for secrets or values that shouldn't appear in shell history:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
printf "%s" "$SECRET_VALUE" | railway variable set API_KEY --stdin --service <service>
|
|
43
|
+
railway variable set FEATURE_FLAG=true --service <service> --skip-deploys
|
|
44
|
+
railway variable set API_URL=https://api.example.com --project <project-id> --environment <env> --service <service>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Template syntax
|
|
48
|
+
|
|
49
|
+
Railway supports interpolation between services and shared variables:
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
${{KEY}} # same-service variable
|
|
53
|
+
${{shared.API_KEY}} # shared variable
|
|
54
|
+
${{postgres.DATABASE_URL}} # variable from another service
|
|
55
|
+
${{api.RAILWAY_PRIVATE_DOMAIN}} # another service's private domain
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Wiring example, a frontend connecting to a backend over private networking:
|
|
59
|
+
|
|
60
|
+
```text
|
|
61
|
+
BACKEND_URL=http://${{api.RAILWAY_PRIVATE_DOMAIN}}:${{api.PORT}}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Wiring services together
|
|
65
|
+
|
|
66
|
+
Each managed database creates connection variables automatically. Reference them from other services using template syntax:
|
|
67
|
+
|
|
68
|
+
| Database | Variable reference |
|
|
69
|
+
|---|---|
|
|
70
|
+
| Postgres | `${{Postgres.DATABASE_URL}}` |
|
|
71
|
+
| Redis | `${{Redis.REDIS_URL}}` |
|
|
72
|
+
| MySQL | `${{MySQL.MYSQL_URL}}` |
|
|
73
|
+
| MongoDB | `${{MongoDB.MONGO_URL}}` |
|
|
74
|
+
|
|
75
|
+
Service names in references are case-sensitive and must match the service name exactly as it appears in the project.
|
|
76
|
+
|
|
77
|
+
**Public vs private networking decision:**
|
|
78
|
+
|
|
79
|
+
| Traffic path | Use |
|
|
80
|
+
|---|---|
|
|
81
|
+
| Browser → API | Public domain |
|
|
82
|
+
| Service → Service | Private domain (`RAILWAY_PRIVATE_DOMAIN`) |
|
|
83
|
+
| Service → Database | Private (automatic, uses internal DNS) |
|
|
84
|
+
|
|
85
|
+
**Frontend apps cannot use private networking.** Frontends run in the user's browser, not on Railway's network. They cannot reach `RAILWAY_PRIVATE_DOMAIN` or internal database URLs. Options:
|
|
86
|
+
|
|
87
|
+
1. **Backend proxy** (recommended): frontend calls a backend API on a public domain, backend connects to the database over the private network.
|
|
88
|
+
2. **Public database URL**: use the public connection variable (for example, `${{Postgres.DATABASE_PUBLIC_URL}}`). This requires a TCP proxy on the database service and exposes the database to the internet. Use this only for development or low-sensitivity data.
|
|
89
|
+
|
|
90
|
+
### Railway-provided variables
|
|
91
|
+
|
|
92
|
+
These are set automatically at runtime. Availability depends on resource configuration.
|
|
93
|
+
|
|
94
|
+
**Networking:**
|
|
95
|
+
|
|
96
|
+
| Variable | Available when |
|
|
97
|
+
|---|---|
|
|
98
|
+
| `RAILWAY_PUBLIC_DOMAIN` | Public domain is configured |
|
|
99
|
+
| `RAILWAY_PRIVATE_DOMAIN` | Always (internal DNS for service-to-service traffic) |
|
|
100
|
+
| `RAILWAY_TCP_PROXY_DOMAIN` | TCP proxy is enabled |
|
|
101
|
+
| `RAILWAY_TCP_PROXY_PORT` | TCP proxy is enabled |
|
|
102
|
+
|
|
103
|
+
**Context:**
|
|
104
|
+
|
|
105
|
+
| Variable | Available when |
|
|
106
|
+
|---|---|
|
|
107
|
+
| `RAILWAY_PROJECT_ID` | Always |
|
|
108
|
+
| `RAILWAY_ENVIRONMENT_ID` | Always |
|
|
109
|
+
| `RAILWAY_ENVIRONMENT_NAME` | Always |
|
|
110
|
+
| `RAILWAY_SERVICE_ID` | Always |
|
|
111
|
+
| `RAILWAY_SERVICE_NAME` | Always |
|
|
112
|
+
| `RAILWAY_DEPLOYMENT_ID` | Always |
|
|
113
|
+
| `RAILWAY_REPLICA_ID` | Replicas configured |
|
|
114
|
+
| `RAILWAY_REPLICA_REGION` | Multi-region configured |
|
|
115
|
+
|
|
116
|
+
**Git (present when deployed from a linked repo):**
|
|
117
|
+
|
|
118
|
+
| Variable | Description |
|
|
119
|
+
|---|---|
|
|
120
|
+
| `RAILWAY_GIT_COMMIT_SHA` | Full commit hash of the deployed revision |
|
|
121
|
+
| `RAILWAY_GIT_AUTHOR` | Commit author name |
|
|
122
|
+
| `RAILWAY_GIT_COMMIT_MESSAGE` | First line of the commit message |
|
|
123
|
+
| `RAILWAY_GIT_BRANCH` | Branch that triggered the deploy |
|
|
124
|
+
|
|
125
|
+
**Storage (present when a volume is attached):**
|
|
126
|
+
|
|
127
|
+
| Variable | Description |
|
|
128
|
+
|---|---|
|
|
129
|
+
| `RAILWAY_VOLUME_MOUNT_PATH` | Filesystem path where the volume is mounted |
|
|
130
|
+
| `RAILWAY_VOLUME_NAME` | Name of the attached volume |
|
|
131
|
+
|
|
132
|
+
Sealed variables are write-only. Their values don't appear in CLI output.
|
|
133
|
+
|
|
134
|
+
## Service config
|
|
135
|
+
|
|
136
|
+
Service configuration controls source, build, deploy, and networking settings. There are two ways to mutate it.
|
|
137
|
+
|
|
138
|
+
### Dot-path patch
|
|
139
|
+
|
|
140
|
+
For single-field changes:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
railway environment edit --service-config <service> deploy.startCommand "npm start"
|
|
144
|
+
railway environment edit --service-config <service> build.buildCommand "npm run build"
|
|
145
|
+
railway environment edit --service-config <service> source.rootDirectory "/apps/api"
|
|
146
|
+
railway environment edit --service-config <service> deploy.numReplicas 2
|
|
147
|
+
railway environment edit --project <project-id> --environment production --service-config <service> deploy.startCommand "npm start"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### JSON patch
|
|
151
|
+
|
|
152
|
+
For multi-field changes or complex structures:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
railway environment edit --json <<'JSON'
|
|
156
|
+
{"services":{"<service-id>":{"build":{"buildCommand":"npm run build"},"deploy":{"startCommand":"npm start"}}}}
|
|
157
|
+
JSON
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Resolve exact service IDs from `railway service list --json` before constructing JSON patches. Using names in the JSON payload doesn't work.
|
|
161
|
+
|
|
162
|
+
### Stage config changes
|
|
163
|
+
|
|
164
|
+
Stage changes when the user wants to review config before committing it:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
railway environment edit --service-config <service> build.buildCommand "npm run build" --stage
|
|
168
|
+
railway environment edit --service-config <service> deploy.startCommand "npm start" --message "Set production start command"
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Use `--stage` only when the user requests staged config changes. Use regular edits for immediate mutations.
|
|
172
|
+
|
|
173
|
+
### Config schema (typed paths)
|
|
174
|
+
|
|
175
|
+
Include only keys you're changing. The full shape:
|
|
176
|
+
|
|
177
|
+
**Source**: `source.image` (string), `source.repo` (string), `source.branch` (string), `source.rootDirectory` (string), `source.checkSuites` (boolean), `source.commitSha` (string), `source.autoUpdates.type` (string: `disabled`, `patch`, `minor`)
|
|
178
|
+
|
|
179
|
+
**Build**: `build.builder` (string: `RAILPACK`, `NIXPACKS`, `DOCKERFILE`), `build.buildCommand` (string), `build.dockerfilePath` (string), `build.watchPatterns` (string array), `build.nixpacksConfigPath` (string)
|
|
180
|
+
|
|
181
|
+
**Deploy**: `deploy.startCommand` (string), `deploy.preDeployCommand` (string), `deploy.healthcheckPath` (string), `deploy.healthcheckTimeout` (integer), `deploy.numReplicas` (integer), `deploy.restartPolicyType` (string: `ON_FAILURE`, `ALWAYS`, `NEVER`), `deploy.restartPolicyMaxRetries` (integer), `deploy.sleepApplication` (boolean), `deploy.cronSchedule` (string), `deploy.multiRegionConfig` (object)
|
|
182
|
+
|
|
183
|
+
**Multi-region config** structure for `deploy.multiRegionConfig`:
|
|
184
|
+
|
|
185
|
+
```json
|
|
186
|
+
{ "us-west2": { "numReplicas": 2 }, "europe-west4-drams3a": { "numReplicas": 1 } }
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
| Region identifier | Location |
|
|
190
|
+
|---|---|
|
|
191
|
+
| `us-west2` | US West (Oregon) |
|
|
192
|
+
| `us-east4-eqdc4a` | US East (Virginia) |
|
|
193
|
+
| `europe-west4-drams3a` | Europe (Netherlands) |
|
|
194
|
+
| `asia-southeast1-eqsg3a` | Asia (Singapore) |
|
|
195
|
+
|
|
196
|
+
Natural language mapping: "add replicas in Europe" → `europe-west4-drams3a`, "US East" → `us-east4-eqdc4a`. When the user doesn't specify a region, query current config first with `railway environment config --json` to see existing region assignments before modifying.
|
|
197
|
+
|
|
198
|
+
**Variables**: `variables.<KEY>.value` (string), `variables.<KEY>.isOptional` (boolean), `variables.<KEY>.isSealed` (boolean). Delete a variable by setting it to `null`.
|
|
199
|
+
|
|
200
|
+
**Lifecycle**: `isDeleted` (boolean) removes the service. `isCreated` (boolean) marks as new. Prefer `railway service delete` for normal service deletion.
|
|
201
|
+
|
|
202
|
+
**Storage**: `volumeMounts.<volume-id>.mountPath` (string), `volumes.<volume-id>.isDeleted` (boolean)
|
|
203
|
+
|
|
204
|
+
**Buckets**: `buckets.<bucket-id>.region` (string: `sjc`, `iad`, `ams`, `sin`), `buckets.<bucket-id>.isCreated` (boolean), `buckets.<bucket-id>.isDeleted` (boolean). Buckets are created at the project level via `railway bucket create` and deployed to environments via config patches. The CLI handles this automatically, so use `railway bucket` commands
|
|
205
|
+
|
|
206
|
+
### Shared variables and project-level config
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
railway environment edit --json <<'JSON'
|
|
210
|
+
{"sharedVariables":{"API_BASE":{"value":"https://example.com"}}}
|
|
211
|
+
JSON
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Shared variables are accessible from any service via `${{shared.KEY}}`.
|
|
215
|
+
|
|
216
|
+
### Read config
|
|
217
|
+
|
|
218
|
+
Always inspect before mutating. Config patches merge, so you need to know the state to avoid overwriting fields unintentionally:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
railway environment config --json
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Verify after mutation to confirm the change took effect:
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
railway environment config --json
|
|
228
|
+
railway service list --json
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Domains
|
|
232
|
+
|
|
233
|
+
### Railway domain
|
|
234
|
+
|
|
235
|
+
One Railway-provided domain per service, generated automatically:
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
railway domain --service <service> --json
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Custom domain
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
railway domain example.com --service <service> --json
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
This returns the DNS records you need to configure at your DNS provider. Multiple custom domains per service are supported.
|
|
248
|
+
|
|
249
|
+
### Target port
|
|
250
|
+
|
|
251
|
+
If the service listens on a non-default port:
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
railway domain example.com --service <service> --port 8080 --json
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Private networking
|
|
258
|
+
|
|
259
|
+
For service-to-service traffic within a project, use private domain references instead of public URLs. This avoids egress and is faster:
|
|
260
|
+
|
|
261
|
+
```text
|
|
262
|
+
BACKEND_URL=http://${{api.RAILWAY_PRIVATE_DOMAIN}}:${{api.PORT}}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Read current domains
|
|
266
|
+
|
|
267
|
+
Domain configuration lives in `config.services.<service-id>.networking` under `serviceDomains` (Railway-provided) and `customDomains`. Inspect with:
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
railway environment config --json
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Remove a domain
|
|
274
|
+
|
|
275
|
+
Remove domains via JSON config patch by setting the domain ID to `null`:
|
|
276
|
+
|
|
277
|
+
**Remove a custom domain:**
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
railway environment edit --json <<'JSON'
|
|
281
|
+
{"services":{"<service-id>":{"networking":{"customDomains":{"<domain-id>":null}}}}}
|
|
282
|
+
JSON
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
**Remove a Railway-provided domain:**
|
|
286
|
+
|
|
287
|
+
```bash
|
|
288
|
+
railway environment edit --json <<'JSON'
|
|
289
|
+
{"services":{"<service-id>":{"networking":{"serviceDomains":{"<domain-id>":null}}}}}
|
|
290
|
+
JSON
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
Get the domain IDs from `railway environment config --json` under the service's `networking` object.
|
|
294
|
+
|
|
295
|
+
## Troubleshoot configuration
|
|
296
|
+
|
|
297
|
+
- **Invalid dot-path**: check field names and types in the config schema section above
|
|
298
|
+
- **Wrong service key in JSON patch**: resolve service IDs from `railway service list --json`
|
|
299
|
+
- **Variable change didn't take effect**: verify with `railway variable list`, changes trigger redeploy by default
|
|
300
|
+
- **Domain returns errors**: verify the service has a healthy deployment and the target port is correct
|
|
301
|
+
- **DNS propagation delay**: custom domains take time to propagate, this is normal
|
|
302
|
+
- **Cloudflare proxy issues**: align SSL/TLS mode per Railway's domain guidance
|
|
303
|
+
- **Private networking failing**: verify the service is listening on the referenced port and that the private domain variable reference is correct
|
|
304
|
+
- **Multi-region patch ignored**: verify region names match the exact identifiers (`us-west2`, `us-east4-eqdc4a`, `europe-west4-drams3a`, `asia-southeast1-eqsg3a`)
|
|
305
|
+
|
|
306
|
+
## Validated against
|
|
307
|
+
|
|
308
|
+
- Docs: [environment.md](https://docs.railway.com/cli/environment), [variable.md](https://docs.railway.com/cli/variable), [variables.md](https://docs.railway.com/variables), [domains.md](https://docs.railway.com/networking/domains), [public-networking.md](https://docs.railway.com/networking/public-networking), [private-networking.md](https://docs.railway.com/networking/private-networking)
|
|
309
|
+
- CLI source: [environment/mod.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/environment/mod.rs), [environment/edit.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/environment/edit.rs), [variable.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/variable.rs), [domain.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/domain.rs), [controllers/config/patch.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/controllers/config/patch.rs)
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# Deploy
|
|
2
|
+
|
|
3
|
+
Ship code, manage releases, and configure builds.
|
|
4
|
+
|
|
5
|
+
## Deploy code
|
|
6
|
+
|
|
7
|
+
### Standard deploy
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
railway up --detach -m "<release summary>"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
`--detach` returns immediately instead of streaming build logs. Without it, the deploy blocks execution until the build finishes. Always include `-m` with a release summary for auditability.
|
|
14
|
+
|
|
15
|
+
### Watch the build
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
railway up --ci -m "<release summary>"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
`--ci` streams build logs and exits when the build completes. Use this when the user wants to see build output or when you need to triage build failures immediately.
|
|
22
|
+
|
|
23
|
+
### Targeted deploy
|
|
24
|
+
|
|
25
|
+
When multiple services exist, target explicitly:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
railway up --service <service> --environment <environment> --detach -m "<summary>"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Deploy to an unlinked project
|
|
32
|
+
|
|
33
|
+
For CI or cross-project deploys where the directory isn't linked:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
railway up --project <project-id> --environment <environment> --detach -m "<summary>"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`--project` requires `--environment`. Railway needs both to resolve context.
|
|
40
|
+
|
|
41
|
+
## Manage releases
|
|
42
|
+
|
|
43
|
+
### Redeploy and restart
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
railway redeploy --service <service> --yes # redeploy the latest deployment
|
|
47
|
+
railway redeploy --service <service> --from-source --yes # pull latest commit or image
|
|
48
|
+
railway restart --service <service> --yes # restart without rebuilding
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Redeploy recreates the latest deployment without uploading local code. Use `--from-source` when the service is linked to a repo or image and you need Railway to pull the latest configured source. Restart only restarts the running container. Use restart when the code hasn't changed but the service needs a fresh process.
|
|
52
|
+
|
|
53
|
+
### Remove latest deployment
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
railway down --service <service> --yes
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
This removes the latest successful deployment but doesn't delete the service. To delete a service entirely, use `railway service delete`.
|
|
60
|
+
|
|
61
|
+
### Delete a service
|
|
62
|
+
|
|
63
|
+
Use service deletion when the user wants to remove the service itself:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
railway service delete --service <service> --environment <environment> --yes --json
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Deleting a service is destructive. Confirm the target service and environment before running it.
|
|
70
|
+
|
|
71
|
+
## Deployment history and logs
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
railway deployment list --service <service> --limit 20 --json
|
|
75
|
+
railway logs --service <service> --lines 200 --json # runtime logs
|
|
76
|
+
railway logs --service <service> --build --lines 200 --json # build logs
|
|
77
|
+
railway logs --latest --lines 200 --json # latest deployment
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
In an interactive terminal, `railway logs` streams indefinitely when no bounding flags are given. Always use `--lines`, `--since`, or `--until` to get a bounded fetch for agent workflows.
|
|
81
|
+
|
|
82
|
+
## Build configuration
|
|
83
|
+
|
|
84
|
+
Railway uses Railpack as the default builder. It detects language and framework from repo contents and assembles a build plan automatically.
|
|
85
|
+
|
|
86
|
+
### Builder selection
|
|
87
|
+
|
|
88
|
+
Three builder options, set via service config:
|
|
89
|
+
|
|
90
|
+
- **RAILPACK** auto-detects language and framework, builds from source (default)
|
|
91
|
+
- **NIXPACKS** is the legacy builder. Use RAILPACK instead.
|
|
92
|
+
- **DOCKERFILE** uses a Dockerfile you provide
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
railway environment edit --service-config <service> build.builder RAILPACK
|
|
96
|
+
railway environment edit --service-config <service> build.builder DOCKERFILE
|
|
97
|
+
railway environment edit --service-config <service> build.dockerfilePath "docker/Dockerfile.prod"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Build and start commands
|
|
101
|
+
|
|
102
|
+
Override when auto-detection gets it wrong:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
railway environment edit --service-config <service> build.buildCommand "npm run build"
|
|
106
|
+
railway environment edit --service-config <service> deploy.startCommand "npm start"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Common reasons to override: wrong package manager detected, multiple build targets in a monorepo, framework-specific output paths.
|
|
110
|
+
|
|
111
|
+
### Railpack environment variables
|
|
112
|
+
|
|
113
|
+
Control Railpack behavior by setting these as service variables:
|
|
114
|
+
|
|
115
|
+
| Variable | Purpose |
|
|
116
|
+
|---|---|
|
|
117
|
+
| `RAILPACK_NODE_VERSION` | Pin Node.js version (e.g., `20`, `22.1.0`) |
|
|
118
|
+
| `RAILPACK_PYTHON_VERSION` | Pin Python version (e.g., `3.12`) |
|
|
119
|
+
| `RAILPACK_GO_BIN` | Go binary name to build |
|
|
120
|
+
| `RAILPACK_STATIC_FILE_ROOT` | Directory for static site output (e.g., `dist`, `build`) |
|
|
121
|
+
| `RAILPACK_SPA_OUTPUT_DIR` | SPA output directory with client-side routing support |
|
|
122
|
+
| `RAILPACK_PACKAGES` | Additional system packages for the build |
|
|
123
|
+
| `RAILPACK_BUILD_APT_PACKAGES` | Apt packages available during build only |
|
|
124
|
+
| `RAILPACK_DEPLOY_APT_PACKAGES` | Apt packages available at runtime only |
|
|
125
|
+
|
|
126
|
+
For full Railpack documentation including language-specific detection, config files, and framework support: https://railpack.com/llms.txt
|
|
127
|
+
|
|
128
|
+
### Static sites
|
|
129
|
+
|
|
130
|
+
Railpack detects static sites from `Staticfile`, `index.html`, or `RAILPACK_STATIC_FILE_ROOT` and serves them with a built-in static file server. If the build outputs to a non-standard directory (for example, `dist/`, `build/`), set `RAILPACK_STATIC_FILE_ROOT` as a variable so Railpack knows where to find the output.
|
|
131
|
+
|
|
132
|
+
## Monorepo patterns
|
|
133
|
+
|
|
134
|
+
### Isolated monorepo
|
|
135
|
+
|
|
136
|
+
When services don't share code, isolate each with its own root directory:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
railway environment edit --service-config <service> source.rootDirectory "/packages/api"
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Each service sees only its subdirectory. This approach is clean but breaks if services import from shared packages.
|
|
143
|
+
|
|
144
|
+
### Shared monorepo
|
|
145
|
+
|
|
146
|
+
When services depend on shared packages or root-level workspace config, keep the full repo context and scope via build/start commands instead:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# pnpm workspaces
|
|
150
|
+
railway environment edit --service-config <service> build.buildCommand "pnpm --filter api build"
|
|
151
|
+
railway environment edit --service-config <service> deploy.startCommand "pnpm --filter api start"
|
|
152
|
+
|
|
153
|
+
# yarn workspaces
|
|
154
|
+
railway environment edit --service-config <service> build.buildCommand "yarn workspace api build"
|
|
155
|
+
railway environment edit --service-config <service> deploy.startCommand "yarn workspace api start"
|
|
156
|
+
|
|
157
|
+
# bun workspaces
|
|
158
|
+
railway environment edit --service-config <service> build.buildCommand "bun run --filter api build"
|
|
159
|
+
railway environment edit --service-config <service> deploy.startCommand "bun run --filter api start"
|
|
160
|
+
|
|
161
|
+
# turborepo (works with any package manager)
|
|
162
|
+
railway environment edit --service-config <service> build.buildCommand "npx turbo run build --filter=api"
|
|
163
|
+
railway environment edit --service-config <service> deploy.startCommand "npx turbo run start --filter=api"
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Don't set a restrictive `rootDirectory` in this case. The build needs access to the workspace root.
|
|
167
|
+
|
|
168
|
+
### Watch paths
|
|
169
|
+
|
|
170
|
+
Prevent unrelated package changes from redeploying every service:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
railway environment edit --service-config <service> build.watchPatterns '["packages/api/**","packages/shared/**"]'
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Common monorepo pitfalls
|
|
177
|
+
|
|
178
|
+
- **Using `rootDirectory` with shared imports**: if service A imports from `packages/shared/`, setting `rootDirectory: "/packages/a"` hides the shared code. Use the shared monorepo pattern instead.
|
|
179
|
+
- **Forgetting watch paths**: without watch paths, every push redeploys all services, even when only one package changed.
|
|
180
|
+
- **Wrong filter target**: `pnpm --filter api` uses the `name` field in each package's `package.json`, not the directory name. Verify the package name matches.
|
|
181
|
+
|
|
182
|
+
## Troubleshoot deploys
|
|
183
|
+
|
|
184
|
+
- **No project/service context**: run `railway link` or pass `--project` with `--environment`
|
|
185
|
+
- **Build fails before compile**: check dependency graph, lockfiles, and whether the right builder is selected
|
|
186
|
+
- **Build succeeds but app crashes**: verify start command and required runtime variables
|
|
187
|
+
- **Wrong files in build**: check root directory and watch patterns
|
|
188
|
+
- **`railway down` treated as delete**: `down` only removes the latest deployment. For service deletion, use `railway service delete`
|
|
189
|
+
- **Wrong Node/Python version detected**: set `RAILPACK_NODE_VERSION` or `RAILPACK_PYTHON_VERSION` as a service variable to pin the version
|
|
190
|
+
- **Missing system package at runtime**: add the package to `RAILPACK_DEPLOY_APT_PACKAGES`
|
|
191
|
+
|
|
192
|
+
## Validated against
|
|
193
|
+
|
|
194
|
+
- Docs: [up.md](https://docs.railway.com/cli/up), [deploying.md](https://docs.railway.com/cli/deploying), [deployment.md](https://docs.railway.com/cli/deployment), [redeploy.md](https://docs.railway.com/cli/redeploy), [service.md](https://docs.railway.com/cli/service), [down.md](https://docs.railway.com/cli/down), [railpack.md](https://docs.railway.com/builds/railpack), [monorepo.md](https://docs.railway.com/deployments/monorepo)
|
|
195
|
+
- CLI source: [up.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/up.rs), [deployment.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/deployment.rs), [down.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/down.rs), [redeploy.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/redeploy.rs), [restart.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/restart.rs), [service.rs](https://github.com/railwayapp/cli/blob/v4.58.0/src/commands/service.rs)
|