{"id":22748843,"url":"https://github.com/apinstein/simple-app-container","last_synced_at":"2025-03-30T06:11:48.636Z","repository":{"id":731588,"uuid":"380889","full_name":"apinstein/simple-app-container","owner":"apinstein","description":"A simple architecture for bootstrapping a container for deploying a web app that can manage its own crontab, services, and monit","archived":false,"fork":false,"pushed_at":"2010-08-14T02:13:49.000Z","size":188,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-05T08:13:13.040Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/apinstein.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2009-11-21T19:21:59.000Z","updated_at":"2024-08-27T16:14:52.000Z","dependencies_parsed_at":"2022-07-18T12:31:45.816Z","dependency_job_id":null,"html_url":"https://github.com/apinstein/simple-app-container","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/apinstein%2Fsimple-app-container","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apinstein%2Fsimple-app-container/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apinstein%2Fsimple-app-container/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apinstein%2Fsimple-app-container/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apinstein","download_url":"https://codeload.github.com/apinstein/simple-app-container/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246281312,"owners_count":20752213,"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-11T03:36:01.698Z","updated_at":"2025-03-30T06:11:48.618Z","avatar_url":"https://github.com/apinstein.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"Simple Application Container\n-------------------------\n\nAn architecture for bootstrapping, sandboxing, and deploying applications.\n\nThis project consists of the **organizational architecture**, and the **capistrano implementation**.\n\nA project organized with this architecture is sandboxed in its own unix security cocoon yet can still restart itself (ie hup apache), manage its own services (via runit), and monitor its health (via monit).\n\nTasks to bootstrap an \"application\" user container:\n\nACCOUNT \u0026 PERMISSIONS\n\n- add user \"app\"; install ssh key\n- add group \"app-web\"\n  (means both app and httpd user can access files)\n\nRUNIT\n\n- create ~app/service directory (app can symlink services there as needed)\n- create ~root/app-runsvdir \u0026\u0026 install service code (run \u0026 finish), w/chpst to app/app-web\n- symlink ~root/app-runsvdir to /service\n\n![runit service architecture](http://github.com/apinstein/simple-app-container/raw/master/rendered/runit-architecture.png)\n\nSUDO\n\n- give sudo apachectl restart privs to app\n\nANYTHING ELSE?\n\nApplications can now manage themselves:\n\n- Install services via \"ln -s /path/to/service ~/app/service\n- Restart apache via \"sudo apachectl restart\"\n- Managing cron deployments via \"crontab /path/to/crontab\"\n- install monit config\n- install logrotate scripts\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapinstein%2Fsimple-app-container","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapinstein%2Fsimple-app-container","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapinstein%2Fsimple-app-container/lists"}