{"id":21892104,"url":"https://github.com/clagiordano/projectdeploy","last_synced_at":"2025-08-19T21:07:57.791Z","repository":{"id":73087262,"uuid":"41388933","full_name":"clagiordano/projectDeploy","owner":"clagiordano","description":"projectDeploy is a tool for generic project deployment over rsync with specific config for project","archived":false,"fork":false,"pushed_at":"2020-01-15T18:09:00.000Z","size":174,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-22T03:24:55.092Z","etag":null,"topics":["multi-deploy","multi-target","python","simulation","sync","webhook"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clagiordano.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-08-25T21:31:21.000Z","updated_at":"2019-03-27T15:10:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"cc54dc50-83c4-47a0-99f8-683c3b6f474d","html_url":"https://github.com/clagiordano/projectDeploy","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/clagiordano/projectDeploy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clagiordano%2FprojectDeploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clagiordano%2FprojectDeploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clagiordano%2FprojectDeploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clagiordano%2FprojectDeploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clagiordano","download_url":"https://codeload.github.com/clagiordano/projectDeploy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clagiordano%2FprojectDeploy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271222830,"owners_count":24721542,"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","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["multi-deploy","multi-target","python","simulation","sync","webhook"],"created_at":"2024-11-28T12:49:16.350Z","updated_at":"2025-08-19T21:07:57.782Z","avatar_url":"https://github.com/clagiordano.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Description\n\nproject Deploy is general purpose tool for project deployment over rsync with\nspecific config for project, configurable ignores, list of selectable targets,\nlist of multi target for massively deploy, entry point for pre and post deploy\nfor arbitrary command execution and related exit status.\nAllow global config file and/or the use of command line switch/args for override configs.\n\n# Notes about versions\n* Until version 1.5 projectDeploy is a shell (bash) script\n* From version 2.0 (WIP) the shell (bash) code was migrated to python to improve features\n\n# Requirements\n- python \u003e= 2.6\n\n# Features\n- general purpose deployment tool\n- specific config for project\n- configurable ignores\n- list of selectable targets\n- support for multi targets deploy\n- entry point for pre and post deploy for arbitrary command execution\n\n# Installation\n```bash\ngit clone https://github.com/clagiordano/projectDeploy.git\n\necho 'export PATH=$PATH:/path/to/projectDeploy' \u003e\u003e ~/.bashrc\n```\n\n# Update\nEasily pull changes from repository with git command\n```bash\ngit pull\n```\n\n# Configuration\n\n## Minimum required configurations\nTo work properly projectDeploy need this config files into .projectDeploy/projectName folder\n\n* ~/.projectDeploy/[PROJECT NAME]/targets *(destinations list)*\n\n## Optional configurations files\nYou can also specificate this optional configuration files if need a default behavior or need to execute commands or script into pre and/or post deploy operation\n\n* ~/.projectDeploy/projectDeploy.conf *(global config file)*\n* ~/.projectDeploy/[PROJECT NAME]/presync *(pre sync commands)*\n* ~/.projectDeploy/[PROJECT NAME]/postsync *(post sync commands)*\n* ~/.projectDeploy/[PROJECT NAME]/ignores *(file to exlude from sync)*\n* ~/.projectDeploy/[PROJECT NAME]/multitargets *(multi destination list)*\n* ~/.projectDeploy/[PROJECT NAME]/webhooks *(webhook list)*\n\n### Target / multitargets file formats\nTargets must be defined one for line as:\n\n- USER@HOST:PATH\n- USER@HOST2:PATH\n\n### WebHooks\nto configure one or more webhooks simply add into project configuration folder,\na file with name webhooks, into this file add one or more sections like:\n\n```ini\n[sectionname]\nbaseurl = https://example.com\nrequesturl = /webhook/entry/point\npayloadtemplate = payload string to POST\n```\n\n#### WebHooks template allowed variables\n- **%COLOR%** current status color (yellow on start/abort, green on success, red on error)\n- **%TITLE%** current operation method\n- **%PROJECT%** selected project\n- **%SESSION_USERNAME%** user session username (for remote deploy)\n- **%SESSION_HOSTNAME%** user session hostname (for remote deploy)\n- **%SESSION_IPADDRESS%** user session ipaddress (for remote deploy)\n- **%SOURCEDIR%** project source directory\n- **%TARGET%** selected target\n\n# Workflow\n\n## Common steps\n- list projects directory\n- select project\n- list targets\n- select targets\n- select single or multi target\n\n## Single deploy project\n- call presync\n- simulation deploy\n- deploy\n- call post sync\n\n## Multi deploy project\n- call presync\n- simulation deploy to all targets\n- deploy to all targets\n- call post sync\n\n# TODO\n- rsync progess during deploy / simulation\n- pass addictional params to pre / post sync script from main script by CLI\n- logging deploy\n- ignore ^\\.(.*)$ folders\n\n# License\nprojectDeploy is released under the GNU LGPL-3.0 license\n\nCopyright (C) 2016 Claudio Giordano \u003cclaudio.giordano@autistici.org\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclagiordano%2Fprojectdeploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclagiordano%2Fprojectdeploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclagiordano%2Fprojectdeploy/lists"}