{"_id":"@ativie/ramp","_rev":"4-bbe8a156ab4f528a63cf1bd0a552f41c","name":"@ativie/ramp","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@ativie/ramp","version":"0.1.0","keywords":["docker","cli","devtools","containers","node","python","go","rust","java","developer-experience"],"author":{"name":"Ativie Favour","email":"ativiefavour03@gmail.com"},"license":"MIT","_id":"@ativie/ramp@0.1.0","maintainers":[{"name":"ativie","email":"ativiefavour03@gmail.com"}],"homepage":"https://github.com/ativiefavour/ramp#readme","bugs":{"url":"https://github.com/ativiefavour/ramp/issues"},"bin":{"ramp":"bin/ramp.js"},"dist":{"shasum":"f601e09effa8841129381cf4e4abb249b72f8788","tarball":"https://registry.npmjs.org/@ativie/ramp/-/ramp-0.1.0.tgz","fileCount":22,"integrity":"sha512-+WWDEuLdhkqwTqpiYwvPZeLPKrXIASO2EsjaWhWhiN6zLoTL5wRppI2tJfWudRFlhgrmZK1FOsv10uWD/rPuDA==","signatures":[{"sig":"MEQCID7aN6cKQXyMLGVXWBwLLJiintUXWbaIoQIljBqXRJIsAiASsyaVPvcY0JnvkrwTw377jeeUeO72q20/ftCc2FWehw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39258},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"ee49891c3beff84b2c1c8432a7e035c206b35052","scripts":{"dev":"tsx src/index.ts","test":"vitest run","test:watch":"vitest"},"_npmUser":{"name":"ativie","email":"ativiefavour03@gmail.com"},"repository":{"url":"git+https://github.com/ativiefavour/ramp.git","type":"git"},"_npmVersion":"10.9.4","description":"Run any project in Docker with one command. No Dockerfiles, no config.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ora":"^8.0.0","tsx":"^4.0.0","execa":"^8.0.0","dotenv":"^16.0.0","inquirer":"^9.0.0","commander":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","typescript":"^5.0.0","@types/node":"^20.0.0","@types/inquirer":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ramp_0.1.0_1782428832050_0.5776013988887065","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ativie/ramp","version":"0.1.1","keywords":["docker","cli","devtools","containers","node","python","go","rust","java","developer-experience"],"author":{"name":"Ativie Favour","email":"ativiefavour03@gmail.com"},"license":"MIT","_id":"@ativie/ramp@0.1.1","maintainers":[{"name":"ativie","email":"ativiefavour03@gmail.com"}],"homepage":"https://ramp-tszq.onrender.com","bugs":{"url":"https://github.com/vie-tech/ramp_cli/issues"},"bin":{"ramp":"bin/ramp.js"},"dist":{"shasum":"a1c779ec9103eb4287bb38e3a4e2b508d158dd75","tarball":"https://registry.npmjs.org/@ativie/ramp/-/ramp-0.1.1.tgz","fileCount":22,"integrity":"sha512-Pg0TvaxEMCLBkc6BQy/htq0U/Ul5HmabkCylhQyb9wyr4n5suE2RpRg+00MN7D6z6OCKhyZPl4MhSgY5/+HhUQ==","signatures":[{"sig":"MEYCIQDotMpgoz33/doI7zoSsHfrgu+AxD0MTGzYNG6tYWdMaQIhALHj/6TlWoS2VrqJClV4WrTojcdZAfluWBO3VafMuNyh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39391},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"7c0c0b1bc2dc3562c5308eb27213b8f4b42ff21c","scripts":{"dev":"tsx src/index.ts","test":"vitest run","test:watch":"vitest","release:minor":"npm version minor && npm publish --access public","release:patch":"npm version patch && npm publish --access public"},"_npmUser":{"name":"ativie","email":"ativiefavour03@gmail.com"},"repository":{"url":"git+https://github.com/vie-tech/ramp_cli.git","type":"git"},"_npmVersion":"10.9.4","description":"Run any project in Docker with one command. No Dockerfiles, no config.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ora":"^8.0.0","tsx":"^4.0.0","execa":"^8.0.0","dotenv":"^16.0.0","inquirer":"^9.0.0","commander":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","typescript":"^5.0.0","@types/node":"^20.0.0","@types/inquirer":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ramp_0.1.1_1782433299202_0.9883722220377729","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ativie/ramp","version":"0.1.2","keywords":["docker","cli","devtools","containers","node","python","go","rust","java","developer-experience"],"author":{"name":"Ativie Favour","email":"ativiefavour03@gmail.com"},"license":"MIT","_id":"@ativie/ramp@0.1.2","maintainers":[{"name":"ativie","email":"ativiefavour03@gmail.com"}],"homepage":"https://ramp-tszq.onrender.com","bugs":{"url":"https://github.com/vie-tech/ramp_cli/issues"},"bin":{"ramp":"bin/ramp.js"},"dist":{"shasum":"ddde4b985be537840b8923806ef8d1c434cf1f83","tarball":"https://registry.npmjs.org/@ativie/ramp/-/ramp-0.1.2.tgz","fileCount":22,"integrity":"sha512-uJzV8L76kKHjeAql2Ve5IPAp7dfIBzAmqWUI2WnyBr6xp6QWSqHm4D2w2B5mywnPZkHDplDu8XnWywlAxh3meQ==","signatures":[{"sig":"MEUCIFr3Tpzgoo20KCs85L26Enr96YVqhx+mwZs/+vyhJtcKAiEAhb0E7WrBHcb4B5Xe61GhI6WlxqX8zzouXHgtZDZHy90=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39391},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"ace80ca32153f2d518523ac660a04d57f1524dfa","scripts":{"dev":"tsx src/index.ts","test":"vitest run","test:watch":"vitest","release:minor":"npm version minor && npm publish --access public","release:patch":"npm version patch && npm publish --access public"},"_npmUser":{"name":"ativie","email":"ativiefavour03@gmail.com"},"repository":{"url":"git+https://github.com/vie-tech/ramp_cli.git","type":"git"},"_npmVersion":"10.9.4","description":"Run any project in Docker with one command. No Dockerfiles, no config.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ora":"^8.0.0","tsx":"^4.0.0","execa":"^8.0.0","dotenv":"^16.0.0","inquirer":"^9.0.0","commander":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","typescript":"^5.0.0","@types/node":"^20.0.0","@types/inquirer":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ramp_0.1.2_1782435631558_0.9016248950311678","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@ativie/ramp","version":"0.1.3","description":"Run any project in Docker with one command. No Dockerfiles, no config.","author":{"name":"Ativie Favour","email":"ativiefavour03@gmail.com"},"license":"MIT","keywords":["docker","cli","devtools","containers","node","python","go","rust","java","developer-experience"],"repository":{"type":"git","url":"git+https://github.com/vie-tech/ramp_cli.git"},"bugs":{"url":"https://github.com/vie-tech/ramp_cli/issues"},"homepage":"https://ramp-tszq.onrender.com","engines":{"node":">=18.0.0"},"bin":{"ramp":"bin/ramp.js"},"scripts":{"dev":"tsx src/index.ts","test":"vitest run","test:watch":"vitest","release:patch":"npm version patch && npm publish --access public","release:minor":"npm version minor && npm publish --access public"},"dependencies":{"commander":"^12.0.0","dotenv":"^16.0.0","execa":"^8.0.0","inquirer":"^9.0.0","ora":"^8.0.0","tsx":"^4.0.0"},"devDependencies":{"@types/inquirer":"^9.0.0","@types/node":"^20.0.0","typescript":"^5.0.0","vitest":"^4.1.9"},"type":"module","_id":"@ativie/ramp@0.1.3","gitHead":"d7c73f01a8136e3502acf81683102170b67eee7e","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-pY5kZR9OuPThiDfvFhRu/RC2mjOO5Dz29YP3LqaE4vPwXv34MbdFxa43+RwDxpo/0Kggrp5DFodL0blTAppqow==","shasum":"60432a783b9b93190c304899c5b69d0a256ee441","tarball":"https://registry.npmjs.org/@ativie/ramp/-/ramp-0.1.3.tgz","fileCount":22,"unpackedSize":39391,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAr5ItxwU0jM+gWBMOMLh40oCkFfNMvrHYAvnLdzBh4kAiEA0WGgOEh2NDLSXRJhpHx6SztzG54j14EZpuFnMukO+lQ="}]},"_npmUser":{"name":"ativie","email":"ativiefavour03@gmail.com"},"directories":{},"maintainers":[{"name":"ativie","email":"ativiefavour03@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ramp_0.1.3_1782437869044_0.7340255106871312"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-25T23:07:11.907Z","modified":"2026-06-26T01:37:49.276Z","0.1.0":"2026-06-25T23:07:12.209Z","0.1.1":"2026-06-26T00:21:39.395Z","0.1.2":"2026-06-26T01:00:31.703Z","0.1.3":"2026-06-26T01:37:49.189Z"},"bugs":{"url":"https://github.com/vie-tech/ramp_cli/issues"},"author":{"name":"Ativie Favour","email":"ativiefavour03@gmail.com"},"license":"MIT","homepage":"https://ramp-tszq.onrender.com","keywords":["docker","cli","devtools","containers","node","python","go","rust","java","developer-experience"],"repository":{"type":"git","url":"git+https://github.com/vie-tech/ramp_cli.git"},"description":"Run any project in Docker with one command. No Dockerfiles, no config.","maintainers":[{"name":"ativie","email":"ativiefavour03@gmail.com"}],"readme":"# Ramp\n\nRun any project in Docker with one command. No Dockerfiles, no config files, no Docker knowledge required.\n\n```bash\nnpx @ativie/ramp init\nnpx @ativie/ramp start\n```\n\n## Requirements\n\n- [Node.js](https://nodejs.org) 18+\n- [Docker](https://www.docker.com/get-started) (running)\n\n## Install\n\n```bash\nnpm install -g @ativie/ramp\n```\n\nOr run without installing:\n\n```bash\nnpx @ativie/ramp <command>\n```\n\n## Quick start\n\n```bash\ncd your-project\nramp init     # detects your stack, prompts for a database, writes .ramp\nramp start    # builds image, starts DB (if configured), runs your app\n```\n\nYour app is now live at `http://localhost:<port>`.\n\n## Commands\n\n| Command | Description |\n|---|---|\n| `ramp init` | Detect stack, prompt for DB, write `.ramp` config |\n| `ramp start` | Build image, start DB (if configured), start app |\n| `ramp stop` | Stop containers (data is preserved) |\n| `ramp restart` | Stop then start |\n| `ramp logs [db]` | Stream logs — pass `db` to see database logs |\n| `ramp status` | Show running containers and ports |\n| `ramp shell [service]` | Open a shell inside a container |\n| `ramp run <cmd>` | Run a one-off command inside the container |\n| `ramp clean` | Remove containers and networks; optionally delete data volume |\n\n## Supported stacks\n\n| Stack | Auto-detected by |\n|---|---|\n| Node.js | `package.json` |\n| Python | `requirements.txt` / `pyproject.toml` |\n| Go | `go.mod` |\n| Rust | `Cargo.toml` |\n| Java (Maven) | `pom.xml` |\n| Java (Gradle) | `build.gradle` / `build.gradle.kts` |\n\n## Database support\n\n`ramp init` will ask if you want a database. Supported: **PostgreSQL**, **MySQL**, **MongoDB**, **Redis**.\n\nThe DB container starts automatically with `ramp start`, gets its own named volume (data survives restarts), and the correct connection env vars are injected into your app — nothing to configure.\n\n| DB | Env var injected (non-Java) | Env var injected (Spring Boot) |\n|---|---|---|\n| postgres | `DATABASE_URL` | `SPRING_DATASOURCE_URL/USERNAME/PASSWORD` |\n| mysql | `DATABASE_URL` | `SPRING_DATASOURCE_URL/USERNAME/PASSWORD` |\n| mongodb | `MONGODB_URI`, `MONGO_URL` | `SPRING_DATA_MONGODB_URI` |\n| redis | `REDIS_URL` | `SPRING_DATA_REDIS_HOST/PORT` |\n\n## Config file (`.ramp`)\n\n`ramp init` writes this file. You can edit it freely:\n\n```env\nSTACK=node\nPORT=3000\n\n# Database (optional)\nDB=postgres\nDB_NAME=myapp\nDB_USER=ramp\nDB_PASSWORD=ramp\n```\n\nEvery `ramp start` regenerates the `Dockerfile` from your `.ramp` — any change is picked up instantly.\n\n## Port conflicts\n\nIf the configured port is busy, `ramp start` offers to switch automatically:\n\n```\nPort 3000 is already in use. What would you like to do?\n❯ Switch to port 3001 (suggested)\n  Enter a different port\n```\n\n## Secrets\n\nIf a `.env` file exists in your project root, it is automatically passed to the container. Use it to keep credentials out of `.ramp` when committing to git.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}