{"id":22772574,"url":"https://github.com/edarc/supervisord-crate","last_synced_at":"2025-03-30T12:27:46.369Z","repository":{"id":12150496,"uuid":"14744047","full_name":"edarc/supervisord-crate","owner":"edarc","description":"A Pallet crate for using supervisord as a supervision provider","archived":false,"fork":false,"pushed_at":"2013-11-27T11:14:23.000Z","size":104,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-05T14:17:56.677Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"njsoly/string.js","license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edarc.png","metadata":{"files":{"readme":"README.rst","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":"2013-11-27T10:32:50.000Z","updated_at":"2014-05-26T22:16:37.000Z","dependencies_parsed_at":"2022-09-20T20:03:40.201Z","dependency_job_id":null,"html_url":"https://github.com/edarc/supervisord-crate","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/edarc%2Fsupervisord-crate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edarc%2Fsupervisord-crate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edarc%2Fsupervisord-crate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edarc%2Fsupervisord-crate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edarc","download_url":"https://codeload.github.com/edarc/supervisord-crate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246318116,"owners_count":20758099,"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-12-11T17:08:57.657Z","updated_at":"2025-03-30T12:27:46.352Z","avatar_url":"https://github.com/edarc.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"=================\nsupervisord-crate\n=================\n\n**supervisord-crate** is a Pallet_ crate for installing and running\nsupervisord_ to supervise processes. It also registers with the Pallet\nsupervision service provider interface, so crates which request process\nsupervision can be configured to run under supervisord.\n\n.. _Pallet: http://palletops.com\n.. _supervisord: http://supervisord.org\n\nStatus\n======\n\nVery alpha--no releases yet.\n\nCurrently ``supervisord-crate`` is known to work against Debian 6 and 7 nodes,\nusing the ``:packages`` install strategy. There is also an install strategy for\ngetting supervisord via PIP, but it is less thoroughly tested.\n\nUsage\n=====\n\nThis is an example of consuming the supervisord SPI from an\n``app-deploy-crate``.\n\nExtend ``pallet.crate.service/supervisor-config-map`` over the kind of crate\nyou wish to deploy (in this example, ``:app-deploy``) to generate a suitable\nservice configuration for ``:supervisord`` to supervise it:\n\n.. code:: clojure\n\n  (require '[pallet.crate.app-deploy :as app-deploy]\n           '[pallet.crate.java :as java]\n           '[pallet.crate.service :as sup]\n           '[pallet.crate.supervisord :as supervisord]\n           '[pallet.api :as api])\n\n  (defmethod sup/supervisor-config-map [:app-deploy :supervisord]\n    [_ {:keys [run-command service-name user] :as settings} options]\n    {:pre [service-name]}\n    (merge {:service-name service-name\n            :command run-command\n            :autostart \"true\"\n            :autorestart \"true\"\n            :startsecs 10}\n           (when user {:user user})))\n\nBuild an ``app-deploy`` ``server-spec`` and request supervisord as the\nsupervision provider:\n\n.. code:: clojure\n\n  (defn app-server [port]\n    (app-deploy/server-spec\n      {:artifacts\n       {:from-lein\n        [{:project-path \"target/my-app-%s-standalone.jar\"\n          :path \"example-app/app.jar\"}]}\n       :run-command (str \"java -jar /opt/example-app/app.jar \" port)\n       :supervisor :supervisord\n       :user \"supervisord\"}\n      :instance-id :example-app))\n\nFinally, define your ``group-spec`` to pull in supervisor itself and your\nservice:\n\n.. code:: clojure\n\n  (defn web-group []\n    (api/group-spec\n      \"web\"\n      :extends [(java/server-spec {})\n                (app-server 8080)\n                (supervisor/server-spec {})]\n      :node-spec (api/node-spec :image {:os-family :debian})))\n\nLimitations and future work\n===========================\n\n* No tests. Still working out exactly how to test around Pallet's magic.\n\n* Getting the supervisor itself to run as a different user requires a lot of\n  fighting against the package manager, and so the half-broken support for that\n  has been removed. This may suck less with the PIP install strategy, but needs\n  to be tested. *Note that you can still ask supervisord to run your services\n  as other users just fine.*\n\n* Totally untested on any images other than Debian 6 and 7. The config paths\n  and stuff are probably all wrong for other distributions.\n\nLicense\n=======\n\n``supervisord-crate`` is Copyright (C) 2013 Kyle Schaffrick.\n\nDistributed under the Eclipse Public License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedarc%2Fsupervisord-crate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedarc%2Fsupervisord-crate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedarc%2Fsupervisord-crate/lists"}