{"id":16223528,"url":"https://github.com/kaisermann/arke","last_synced_at":"2026-04-27T20:32:34.959Z","repository":{"id":85332476,"uuid":"80652385","full_name":"kaisermann/arke","owner":"kaisermann","description":"A static/WordPress website setup-deploy tool","archived":false,"fork":false,"pushed_at":"2018-02-26T18:20:59.000Z","size":52,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T01:45:09.667Z","etag":null,"topics":["deploy","deployment","project","setup","static-site","wordpress"],"latest_commit_sha":null,"homepage":"","language":"Python","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/kaisermann.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-01T18:52:03.000Z","updated_at":"2020-07-13T18:16:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"85479a24-4703-4fe9-84be-344ca6ffec03","html_url":"https://github.com/kaisermann/arke","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/kaisermann/arke","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaisermann%2Farke","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaisermann%2Farke/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaisermann%2Farke/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaisermann%2Farke/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaisermann","download_url":"https://codeload.github.com/kaisermann/arke/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaisermann%2Farke/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32354567,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["deploy","deployment","project","setup","static-site","wordpress"],"created_at":"2024-10-10T12:19:09.836Z","updated_at":"2026-04-27T20:32:34.945Z","avatar_url":"https://github.com/kaisermann.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arke documentation\n\n## Requirements\n* [Fabric](http://www.fabfile.org/)\n* [Jinja2](http://jinja.pocoo.org/)\n* [pathspec](https://pypi.python.org/pypi/pathspec)\n* A [SSH Config](http://nerderati.com/2011/03/17/simplify-your-life-with-an-ssh-config-file/)\n* `unzip` CLI command\n\n\n## Usage\n\n```\nfab {environment/scope} {task} [-u {user}] [-p {password}]\n\n\nRemote-only:\n\nfab {environment} setup\nfab {environment} deploy\nfab {environment} deploy:git\nfab {environment} deploy:git,branchName\nfab {environment} checkRequisites\nfab {environment} fixPermissions\nfab {environment} cleanup_releases\nfab {environment} service_restart\nfab {environment} service_reload\n\n\nProject-environment-only:\n\nfab project setup\nfab project bundle\nfab project install\nfab project reset\nfab project import_db\n```\n\n## Documentation\n\n### `arke.json` example\n\n```json\n{\n  \"project\": {\n    \"repo\": \"git@github.com:user/repo.git\",\n    \"type\": \"bedrock-wordpress\",\n    \"fileStructure\": {\n      \"shared\": [\n        [\"robots.txt\"],\n        [\".htaccess\"],\n        [\".env\"],\n        [\"web/app/uploads\", \"uploads\"]\n      ]\n    },\n    \"cmds\": {\n      \"install\": [\n        [\"\", \"composer install\"],\n        [\"web/app/themes/selene\", \"composer install\"]\n      ],\n      \"afterDeploy\": [\n        [\"\", \"rm -rf fabfile.py arke.json readme.md .editorconfig\"],\n        [\"\", \"composer install\"],\n        [\"web/app/themes/selene\", \"composer install\"]\n      ],\n    },\n    \"maxReleases\": 5\n  },\n  \"hosts\": {\n    \"production\": {\n      \"hosts\": [\"127.0.0.1\"],\n      \"name\": \"example.staging.com\",\n      \"projectDir\": \"/var/www\",\n      \"projectPublicDir\": \"\",\n      \"webRootDir\": \"web\",\n      \"hostnames\": \"example.staging.com www.example.staging.com\",\n      \"webServerUser\": \"www-data\",\n      \"webServerGroup\": \"www-data\",\n      \"services\": {\n        \"toRestart\": [\"php5-fpm\"],\n        \"toReload\": [\"nginx\"]\n      }\n    }\n  }\n}\n```\n\n#### Project configuration\n\n\u003ctable style=\"width: 100%\"\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\n      Field\n    \u003c/th\u003e\n    \u003cth\u003e\n      Description\n    \u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003erepo\u003c/td\u003e\n    \u003ctd\u003eThe project's repository url\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003etype\u003c/td\u003e\n    \u003ctd\u003eThe project's type.\n    \u003cbr\u003e\u003cbr\u003e\n    \u003cstrong\u003eAvailable options:\u003c/strong\u003e html, php, simple-wordpress, bedrock-wordpress\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003efileStructure.shared\u003c/td\u003e\n    \u003ctd\u003eA list of symbolic links to be created after each deploy. You can set a different name for the link by passing a second string to the link array. See example above.\n    \u003cbr\u003e\u003cbr\u003e\n    \u003cstrong\u003eSyntax:\u003c/strong\u003e [projectPath, sharedPath]\n    \u003cbr\u003e\u003cbr\u003e\n    \u003cstrong\u003eExamples:\u003c/strong\u003e\n    \u003cbr\u003e\u003cbr\u003e\n    ['robots.txt'] creates a link on the project's root directory to a robots.txt file on the root of the project's shared folder.\n    \u003cbr\u003e\n    \u003cbr\u003e\n    [\"web/app/uploads\", \"uploads\"] creates a links on the projects web/app/ directory to a uploads directory on the root of the project's shared folder.\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003ecmds.install\u003c/td\u003e\n    \u003ctd\u003eA list of commands to be executed when 'fab local install' is executed.\n    \u003cbr\u003e\u003cbr\u003e\n    \u003cstrong\u003eSyntax:\u003c/strong\u003e [executionPath, commandString]\n    \u003cbr\u003e\u003cbr\u003e\n    \u003cstrong\u003eExamples:\u003c/strong\u003e\n    \u003cbr\u003e\u003cbr\u003e\n    [\"\", \"composer install\"] runs a composer install on the project's root.\n    \u003cbr\u003e\u003cbr\u003e\n    [\"web/app/themes/selene\", \"composer install\"] runs a composer install on the web/app/themes/selene directory.\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003ecmds.afterDeploy\u003c/td\u003e\n    \u003ctd\u003eA list of commands to be executed after each successfull deploy. Can use sudo.\n    \u003cbr\u003e\u003cbr\u003e\n    \u003cstrong\u003eSyntax:\u003c/strong\u003e [executionPath, commandString]\n    \u003cbr\u003e\u003cbr\u003e\n    \u003cstrong\u003eExamples:\u003c/strong\u003e\n    \u003cbr\u003e\u003cbr\u003e\n    [\"\", \"rm -rf fabfile.py arke.json readme.md .editorconfig\"] runs a rm command on the project's root.\n    \u003cbr\u003e\u003cbr\u003e\n    [\"web/app/themes/selene\", \"composer install\"] runs a composer install on the web/app/themes/selene directory.\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003emaxReleases\u003c/td\u003e\n    \u003ctd\u003eNumber of releases to keep on the remote server.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n#### Host(s) configuration\n\n\u003ctable style=\"width: 100%\"\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\n      Field\n    \u003c/th\u003e\n    \u003cth\u003e\n      Description\n    \u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003ehosts\u003c/td\u003e\n    \u003ctd\u003eA list of the server ips/hostnames\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003ename\u003c/td\u003e\n    \u003ctd\u003eThe project name. Used to create the server folder.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eprojectDir\u003c/td\u003e\n    \u003ctd\u003eThe project folder directory.\n    \u003cbr\u003e\u003cbr\u003e\n    \u003cstrong\u003eExample:\u003c/strong\u003e /var/www\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eprojectPublicDir\u003c/td\u003e\n    \u003ctd\u003eThe project public html directory.\n    \u003cbr\u003e\u003cbr\u003e\n    Relative to {projectDir}/{name}.\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003ewebRootDir\u003c/td\u003e\n    \u003ctd\u003eThe project website directory.\n    \u003cbr\u003e\u003cbr\u003e\n    Relative to {projectDir}/{name}/{projectPublicDir}. Can be an empty string.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003ehostnames\u003c/td\u003e\n    \u003ctd\u003eThe project hostnames that nginx will listen to. Can be overwritten in @task {environment}.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003ewebServerUser\u003c/td\u003e\n    \u003ctd\u003eUser for nginx/apache (usually www-data)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003ewebServerGroup\u003c/td\u003e\n    \u003ctd\u003eUser for nginx/apache (usually www-data)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eservices.toRestart\u003c/td\u003e\n    \u003ctd\u003eServer's services to restart after each deploy.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eservices.toReload\u003c/td\u003e\n    \u003ctd\u003eServer's services to reload after each deploy\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaisermann%2Farke","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaisermann%2Farke","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaisermann%2Farke/lists"}