{"id":16795853,"url":"https://github.com/mrvautin/minipaas","last_synced_at":"2025-08-24T04:14:47.510Z","repository":{"id":57297967,"uuid":"90943782","full_name":"mrvautin/minipaas","owner":"mrvautin","description":"A push-to-deploy PaaS system = 'git add' \u003e 'git commit' \u003e 'minipaas deploy'","archived":false,"fork":false,"pushed_at":"2017-05-15T11:25:42.000Z","size":137,"stargazers_count":8,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-15T00:20:25.443Z","etag":null,"topics":["git","javascript","nodejs","paas","push-to-deploy","remote","server","ssh"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/mrvautin.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}},"created_at":"2017-05-11T06:09:35.000Z","updated_at":"2022-10-01T04:55:28.000Z","dependencies_parsed_at":"2022-09-26T18:40:20.683Z","dependency_job_id":null,"html_url":"https://github.com/mrvautin/minipaas","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrvautin%2Fminipaas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrvautin%2Fminipaas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrvautin%2Fminipaas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrvautin%2Fminipaas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrvautin","download_url":"https://codeload.github.com/mrvautin/minipaas/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248317709,"owners_count":21083528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["git","javascript","nodejs","paas","push-to-deploy","remote","server","ssh"],"created_at":"2024-10-13T09:17:34.451Z","updated_at":"2025-04-11T00:11:19.995Z","avatar_url":"https://github.com/mrvautin.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# miniPaaS\n\n`miniPaaS` is simple push-to-deploy server setup without all the complexities. `miniPaaS` uses `pm2` on the remote server to manage the process, auto restarts, logs and more.\n\nThe purpose of `miniPaaS` is to be able to add local changes using Git, Commit those changes and deploy them to your remote server. When `miniPaaS` does the deployment, it will unpack the files, npm install and restart the app in `pm2`. If your app is running in `pm2` cluster mode, this will mean there **should** be no downtime to your application whilst the deployment takes place.\n\nNote: You will need to setup `Apache` or `Nginx` yourself, `miniPaaS` does not handle this aspect of your application.\n\n\u003cimg src=\"https://raw.githubusercontent.com/mrvautin/minipaas/master/demo.gif\" width=\"640\"\u003e\n\n\u003e Note: Remote Windows servers are not currently supported\n\n## Installation\n\n### # Local machine\n\nYou will need to install `miniPaaS` globally on your local machine using `npm`.\n\nThis can be done with the following command:\n\n`npm install minipaas -g`\n\n### # Remote server\n\nYou will need to install a few packages on your remote server before using `miniPaaS`. These include: `node`, `pm2` and `unzip`. \n\nYou can install these individually by using the following commands (skip anything which is already installed):\n\n**Ubuntu:**\n\n- Install Nodejs: `curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - \u0026\u0026 apt-get install nodejs`\n- Install Unzip: `apt-get install unzip`\n- Install PM2: `npm install pm2 -g`\n\n**Centos:**\n\n- Install Nodejs: `curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - \u0026\u0026 yum -y install nodejs`\n- Install Unzip: `yum install unzip`\n- Install PM2: `npm install pm2 -g`\n\n## Usage\n\n### # Init\n\nBefore using `miniPaaS` on your project you will need to run the `init` command on your application working directory. This initiates and creates a `.minipaas` config file in the root of your application directory.\n\nThe `init` command will lead to the following prompts which you can fill in for your application:\n\n1. `App name` - Here you can supply a nice name for your application. This is used as the `pm2` process name if one is not provided.\n2. `Host address` - Here you can supply your IP address or DNS or your remote server you want to deploy to\n3. `Host SSH port` - Here you supply the port for SSH on your remote server\n4. `Host username` - The username used to login via SSH\n5. `Host password` - An optional password to connect to your server if a keyfile is not used\n6. `Keyfile path` - The path to your local keyfile used to authenticate against your remote server\n7. `Remote path to app` - This is the path to the root of your application hosted on your remote server\n8. `disablePm2` - A boolean (true/false) value as to whether to disable the starting/restarting of the app in PM2\n9. `The process name or index of app in PM2` - Here you can provide an existing PM2 process name or index. If left blank, a new process is started using the `App name` entered earlier \n\nThe `.minipaas` config file can also be manually edited:\n\n``` json\n{\n    \"appName\": \"expressapp\",\n    \"hostAddress\": \"myexpressapp.com\",\n    \"hostPort\": \"22\",\n    \"hostUsername\": \"root\",\n    \"hostPassword\": \"\",\n    \"hostKeyFilePath\": \"/Users/myname/.ssh/id_rsa\",\n    \"remotePath\": \"/var/www/html/expressapp\",\n    \"pm2ProcessName\": \"expressapp\"\n}\n```\n\n###  # Deploy\n\n`miniPaaS` works with Git commits. For example you would:\n\n1. Add your changes with `git add .`\n2. Commit your changes with: `git commit -m 'My commit message'`\n3. Deploy changes to remove server with: `minipaas deploy`\n\nIf you are deploying small changes to HTML or CSS etc and your application doesn't need to be restarted your can supply the `deploy` command a `norestart` switch. This makes the process quicker and less prone to downtime/errors as the changes are deployed and the app is not restarted.\n\n### # List\n\nUsing the `minipaas list` command, you can receive a list of previous commits (only ones deployed using `miniPaaS`). You can then re-deploy a commit if you wish.\n\n### # Compare\n\nThe `minipaas compare` command simply outputs the comparison of local files to the files on the remote server. \n\n\u003e Note: It does not compare the contents of the files.\n\n### Rebuild\n\nThe `minipaas rebuild` command can be dangerous but also handy. This command removes **ALL** files from your remote directory and deploys all local files, does a `npm install` and restarts the `pm2` process. \n\n\u003e Note: This command is not recommended if your app stores local uploads or other files as they will be removed and cannot be retrieved.\n\n### # Restart\n\nThe `minipaas restart \u003capp name/index\u003e` simply restarts the PM2 process name. You can either supply the `minipaas restart` command with a PM2 process name or PM2 index number.\n\n### # Help\n\nBy running `minipaas`, `minipaas -h` or `minipaas --help` you will receive your available options.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrvautin%2Fminipaas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrvautin%2Fminipaas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrvautin%2Fminipaas/lists"}