{"id":13779385,"url":"https://github.com/webkom/chewie","last_synced_at":"2026-01-10T05:36:57.046Z","repository":{"id":20133841,"uuid":"23403998","full_name":"webkom/chewie","owner":"webkom","description":"Project deployment tool","archived":true,"fork":false,"pushed_at":"2016-11-21T12:26:52.000Z","size":194,"stargazers_count":6,"open_issues_count":20,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-17T14:41:43.316Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://chewie.abakus.no","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"twbs/bootstrap","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webkom.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":"2014-08-27T20:17:09.000Z","updated_at":"2023-01-28T18:29:40.000Z","dependencies_parsed_at":"2022-07-08T07:01:03.947Z","dependency_job_id":null,"html_url":"https://github.com/webkom/chewie","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/webkom%2Fchewie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webkom%2Fchewie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webkom%2Fchewie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webkom%2Fchewie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webkom","download_url":"https://codeload.github.com/webkom/chewie/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253567592,"owners_count":21928857,"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-08-03T18:01:04.569Z","updated_at":"2026-01-10T05:36:56.988Z","avatar_url":"https://github.com/webkom.png","language":"JavaScript","funding_links":[],"categories":["Tools"],"sub_categories":[],"readme":"# chewie [![Build Status](https://ci.abakus.no/api/badges/webkom/chewie/status.svg)](https://ci.abakus.no/webkom/chewie)\nServer deploy tool, supports deployments from a web interface and through GitHub webhooks.\n\n### Usage\nThere are currently two ways to make chewie deploy a project. By a status event hook\nfrom GitHub, from which a success status on master will make it deploy the master\nbranch, and by using the web frontend.\n\n## Setup\n```bash\ngit clone git@github.com:webkom/chewie.git\ncd chewie\nnpm install\nforever start $PWD/index.js\n```\nThis will get the project up and running on port 3000 or the port specified in the `PORT` environment variable.\n\nThere has to be a JSON-file with descriptions of the projects you want to deploy.\n*chewie* will look for it on the location specified by the environment variable:\n`SERVER_CONFIG_FILE`. The file should use the following format:\n\n```json\n{\n  \"\u003crepo-name-from-github\u003e\": {\n    \"hostname\": \"\u003chostname-of-server-the-project-runs-on\u003e\",\n    \"user\": \"\u003cssh-user\u003e\",\n    \"path\": \"\u003cpath-to-project-on-the-server\u003e\"\n  },\n  \"\u003canother-repo\u003e\": {\n    ...\n  }\n}\n```\n\nThe user running chewie needs to have ssh access to the user on the server each project runs on.\n\n### Deploy chewie with chewie\nIf you want to deploy chewie on a server with another hostname than `\u003cserver\u003e.abakus.no` expose\nthe `CORRECT_HOSTNAME` environment variable in order to run `make production`.\n\n#### Prepare the projects\nAll projects must have a `production` target in make. *chewie* will run\n`make production` in the given path on the given server. Thus, the target\nmust contain all tasks to successfully deploy the project. Except\n`git fetch \u0026\u0026 git reset --hard origin/master` which will run before\n`make production` in order to make sure that the latest makefile is available.\n\n## Tests\n```bash\nmake test\n```\n\n## Settings\nAll settings should be set by environment variables.\n\n#### `PORT`\nThe port the express web-server will listen to.\n\n### `NODE_ENV`\nDefault: `'development'`  \nThe environment chewie is running in. This should be set to `production` in production.\n\n#### `SERVER_CONFIG_FILE` - required\nThe config file with projects, mentioned in [the setup section](#setup)\n\n#### `HOOK_TOKEN` - required\nThe secret token used to authenticate github webhooks.\n\n#### `PASSPORT_STRATEGY`\nThe strategy passport should use to authenticate. This will be passed into require and the required file will be called like a function and passed into passport. [passport-abakus](https://github.com/webkom/passport-abakus) is an example of a passport strategy that comply with the structure chewie expects.\n\n**Note:** If this is not set chewie will not require authentication for the deployment dashboard.\n\n#### `PASSPORT_STRATEGY_OPTIONS`\nDefault: `{}`  \nThe options passed into the passport strategy\n\n#### `REDIS`\nDefault: `false`  \nShould redis dependent features be used.\n\n#### `REDIS_PORT`\nDefault: `6379`\n\n#### `REDIS_HOST`\nDefault: `'127.0.0.1'`\n\n#### `REDIS_DB`\nDefault: `1`\n\n#### `SLACK_URL`\nUsed to enable sending of slack notification on deployments.\n\n#### `SLACK_CHANNEL`\nThe channel to send notifications to\n\n#### `CORRECT_HOSTNAME`\nDefault: `abakus.no`  \nOnly used by the makefile to make sure `make production` only runs in the right environment.\n\n\n\n--------\nMIT © webkom, Abakus Linjeforening\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebkom%2Fchewie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebkom%2Fchewie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebkom%2Fchewie/lists"}