{"id":19542297,"url":"https://github.com/ruffrey/mcon","last_synced_at":"2025-10-17T13:24:43.162Z","repository":{"id":12956224,"uuid":"15634498","full_name":"ruffrey/mcon","owner":"ruffrey","description":"Node.js Forever process management in a super easy web UI","archived":false,"fork":false,"pushed_at":"2014-01-05T20:06:39.000Z","size":4228,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-08T18:50:14.943Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruffrey.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-04T15:33:44.000Z","updated_at":"2014-01-05T20:06:43.000Z","dependencies_parsed_at":"2022-09-10T11:42:05.481Z","dependency_job_id":null,"html_url":"https://github.com/ruffrey/mcon","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/ruffrey%2Fmcon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruffrey%2Fmcon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruffrey%2Fmcon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruffrey%2Fmcon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruffrey","download_url":"https://codeload.github.com/ruffrey/mcon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240796094,"owners_count":19858950,"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":[],"created_at":"2024-11-11T03:14:04.290Z","updated_at":"2025-10-08T15:38:03.372Z","avatar_url":"https://github.com/ruffrey.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is alpha software! Feedback welcome.\n\n# M-Con Mission Control\n#### console for Node.js Apps\n\nA web based user interface for managing multiple Node.js apps with Forever.js on a VPS server.\n\n## Use Case\n\nIt should take minimal work to get Node.js apps up and running on a cheap VPS.\n\n## Goals\n\n**Create a Node hosting experience** similar to services like AppFog or Nodejitsu, but with your so-cheap-it's-practically-free VPS slice.\n\n**Apps should stay up**, after crashes or a reboot.\n\n**Easily add a new app**, like this:\n\n1. Logging into a web UI with SSO.\n1. Use a GUI to create a new node process from a git repository.\n\n**Get all this preconfigured**\n- Installing Node.js and NPM.\n- Generating an SSH key.\n- Creating a cron task to reboot all Forever processes if the server reboots.\n- Running multiple Node.js apps behind Nginx.\n\n\n## Installation on an Ubuntu 12.04 VPS server\n\nUse these instructions to install **M-Con** in `/root/` on a freshly installed VPS server running Ubuntu 12.04.\n\nIt is recommended to keep configurations for app directories in `config.js` the same, which will all later apps in `/root/`. If you don't like it, please fork and write your app - sorry.\n\n``` bash\n\n    # Make sure you are logged in as root!!\n    cd /root\n    apt-get -y update\n    apt-get -y install git curl nano wget\n    git clone https://github.com/ruffrey/mcon.git\n```\n\nEdit the `config.js` file and set your configurations, especially the domain.\n\n``` bash\n\n    nano mcon/config.js\n```\n\nThen edit `users.json` and add google accounts that should be allowed to authenticate.\n\n**Keeping MongoDB alive** - there's a line in `scripts/start.sh` you can uncomment.\n\nOnce `config.js` and users are added, continue:\n\n``` bash\n\n    cd /root/mcon/scripts\n    sh cfgserver.sh\n```\n\nThis part might take a little while while the server configures itself. \n\nIF it is successful, reboot. \n\nWhen it comes back up, the web UI will be available at the domain you set.\n\nFrom here you can get the SSH key and add it to your git repository system to allow access. Then start adding Node processes.\n\n\n## Troubleshooting\n\nCheck `/root/forever-cron.log` or run `forever list` then `forever logs \u003cprocess index\u003e` where process index is the one you want to see logs for. Usually it will be 0. `forever logs 0`\n\n\n## Security and Authentication\n\nAuth is provided by Passport.js, the Google Strategy only. Users are listed in `users.json`.\n\n## Updating an app\n\nThis will be added in the future, I hope.\n\nRight now you'll have to log into the server, then do the following manually:\n\n``` bash\n    \n    # while logged in as root\n    rm -r \u003csource code folder\u003e\n    git clone \u003csource code git repository\u003e\n    forever restart \u003cprocess index\u003e\n```\n\n\n## More Info\n\n- Built with Express\n- M-Con installs and runs Node 0.10.x. Modify the nvm commands in the following files to change the Node version:\n    - `scripts/cfgserver.sh`\n    - `scripts/forever-start.sh`\n\n## Credits\n\nForked from [Forever Web UI by Francois-Guillaume Ribreau](https://github.com/FGRibreau/forever-webui.git).\n\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruffrey%2Fmcon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruffrey%2Fmcon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruffrey%2Fmcon/lists"}