{"id":23750840,"url":"https://github.com/pforret/landeploy","last_synced_at":"2025-04-12T10:09:44.966Z","repository":{"id":270352285,"uuid":"910094671","full_name":"pforret/landeploy","owner":"pforret","description":"automatic deploy on LAN/localhost upon 'git push'","archived":false,"fork":false,"pushed_at":"2025-01-08T20:39:56.000Z","size":799,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T10:09:33.427Z","etag":null,"topics":["bashew","cloudflared","devops","github","ngrok","webhook"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pforret.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2024-12-30T13:33:27.000Z","updated_at":"2025-01-14T18:05:45.000Z","dependencies_parsed_at":"2024-12-31T13:25:00.036Z","dependency_job_id":"2ed2f41a-b1f5-4ab7-aa6f-ac624b033573","html_url":"https://github.com/pforret/landeploy","commit_stats":null,"previous_names":["pforret/gh_localdeploy","pforret/landeploy"],"tags_count":6,"template":false,"template_full_name":"pforret/bashew","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pforret%2Flandeploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pforret%2Flandeploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pforret%2Flandeploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pforret%2Flandeploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pforret","download_url":"https://codeload.github.com/pforret/landeploy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248550634,"owners_count":21122933,"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":["bashew","cloudflared","devops","github","ngrok","webhook"],"created_at":"2024-12-31T16:59:29.092Z","updated_at":"2025-04-12T10:09:44.939Z","avatar_url":"https://github.com/pforret.png","language":"Shell","readme":"![bash_unit CI](https://github.com/pforret/landeploy/workflows/bash_unit%20CI/badge.svg)\n![Shellcheck CI](https://github.com/pforret/landeploy/workflows/Shellcheck%20CI/badge.svg)\n![GH Language](https://img.shields.io/github/languages/top/pforret/landeploy)\n![GH stars](https://img.shields.io/github/stars/pforret/landeploy)\n![GH tag](https://img.shields.io/github/v/tag/pforret/landeploy)\n![GH License](https://img.shields.io/github/license/pforret/landeploy)\n[![basher install](https://img.shields.io/badge/basher-install-white?logo=gnu-bash\u0026style=flat)](https://www.basher.it/package/)\n\n# landeploy\n\n![](assets/logo.jpg)\n\nThis script will help you if you need to set up Continuous Deployment on a local/LAN server without a public IP address and/or website.\n\nIt will\n\n* install [ngrok](https://ngrok.com/) (`landeploy --FORCE init`) or [Cloudflare Tunnel](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel) (`landeploy --TUNNEL cloudflare --FORCE init`)\n* install [webhook](https://github.com/adnanh/webhook) (`landeploy --FORCE init`)\n* set up the ngrok/cloudflared config (you will need to create a free account on [ngrok.com](https://ngrok.com/) or [dash.cloudflare.com](https://dash.cloudflare.com/))\n* set up the webhook config (`landeploy --FORCE init`)\n* set up the `redeploy` script (`landeploy --FORCE init`)\n* run the webhook server and ngrok/cloudflared tunnel (`landeploy serve`)\n* give you the URL to use as webhook in your GitHub/BitBucket repository (`landeploy serve`)\n\n## 🔥 Usage\n\n```\nProgram : landeploy  by peter@forret.com\nVersion : v1.1.0 (2025-01-08 21:27)\nPurpose : automatic deploy on LAN/localhost upon 'git push'\nUsage   : landeploy [-h] [-Q] [-V] [-f] [-B \u003cBRANCH\u003e] [-D \u003cDOMAIN\u003e] [-E \u003cENVIRONMENT\u003e] [-H \u003cHOOKS\u003e] [-L \u003cLOG_DIR\u003e] [-P \u003cPORT\u003e] [-R \u003cREMOTE\u003e] [-T \u003cTMP_DIR\u003e] [-U \u003cTUNNEL\u003e] [-Y \u003cREDEPLOY\u003e] \u003caction\u003e\nFlags, options and parameters:\n    -h|--help        : [flag] show usage [default: off]\n    -Q|--QUIET       : [flag] no output [default: off]\n    -V|--VERBOSE     : [flag] also show debug messages [default: off]\n    -f|--FORCE       : [flag] do not ask for confirmation (always yes) [default: off]\n    -B|--BRANCH \u003c?\u003e  : [option] remote repo branch  [default: main]\n    -D|--DOMAIN \u003c?\u003e  : [option] ngrok domain to use\n    -E|--ENVIRONMENT \u003c?\u003e: [option] deployment type (only php for now)  [default: php]\n    -H|--HOOKS \u003c?\u003e   : [option] webhook config file  [default: landeploy.yaml]\n    -L|--LOG_DIR \u003c?\u003e : [option] folder for log files   [default: log/landeploy]\n    -P|--PORT \u003c?\u003e    : [option] local port for ngrok service  [default: 8008]\n    -R|--REMOTE \u003c?\u003e  : [option] remote repo name  [default: origin]\n    -T|--TMP_DIR \u003c?\u003e : [option] folder for temp files  [default: .tmp]\n    -U|--TUNNEL \u003c?\u003e  : [option] tunnel provider: ngrok/cloudflare  [default: ngrok]\n    -Y|--REDEPLOY \u003c?\u003e: [option] deploy script file  [default: redeploy.sh]\n    \u003caction\u003e         : [choice] action to perform  [options: init,serve,check,env,update]\n                                                                                                                                                                                                                                                                                                                                                                 \n### TIPS \u0026 EXAMPLES\n* use landeploy init to do/check the installation of ngrok and webhook\n  landeploy init\n* use landeploy serve to start local webhook server and remote tunnel\n  landeploy serve\n* use landeploy check to check if this script is ready to execute and what values the options/flags are\n  landeploy check\n* use landeploy env to generate an example .env file\n  landeploy env \u003e .env\n* use landeploy update to update to the latest version\n  landeploy update\n* \u003e\u003e\u003e bash script created with pforret/bashew\n* \u003e\u003e\u003e for bash development, also check out pforret/setver and pforret/progressbar\n```\n\n## ⚡️ Examples\n\n```bash\n\u003e landeploy --FORCE init\n# install ngrok and webhook binaries, create config files\n\n\u003e landeploy init\n# check if ngrok, webhook and all config files are OK\n✅  Found binary: /usr/local/bin/ngrok                                                                                                                                                                                                                                                                                                                           \n✅  Found config: Valid configuration file at $HOME/.config/ngrok/ngrok.yml\n✅  Found binary: /usr/bin/webhook\n✅  Found config: landeploy.yaml\n✅  Found config: redeploy.sh\n\n\u003e landeploy serve\n# start local webhook and remote ngrok tunnel\n⏳  Starting webhook server on port 8008\nLog   : log/landeploy/serve.2025-01-01.log\nLocal : http://localhost:8008/hooks/redeploy\nRemote: https://[custom].ngrok-free.app/hooks/redeploy (use this as webhook in GitHub/BitBucket)\nAdmin : http://localhost:4040 (use this to check what is received by ngrok)\n```\n\n## 🚀 Installation\n\nwith [basher](https://github.com/basherpm/basher)\n\n\t$ basher install pforret/landeploy\n\nor with `git`\n\n\t$ git clone https://github.com/pforret/landeploy.git\n\t$ cd landeploy\n\nThe following programs are also required:\n\n### [ngrok](https://ngrok.com/) (free):\n\n* create a free account on [dashboard.ngrok.com](https://dashboard.ngrok.com/) - this includes 2 free endpoints (e.g. 1 for development/testing and 1 for production)\n* install Linux client: [Setup \u0026 Installation](https://dashboard.ngrok.com/get-started/setup/linux) -- will happen automatically when using `landeploy --FORCE init`\n```bash\ncurl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc \u003e/dev/null \\\n\u0026\u0026 echo \"deb https://ngrok-agent.s3.amazonaws.com buster main\" | sudo tee /etc/apt/sources.list.d/ngrok.list \\\n\u0026\u0026 sudo apt update \u0026\u0026 sudo apt install ngrok\n```\n\n### [adnanh/webhook](https://github.com/adnanh/webhook) (Golang - open-source)\n\n```bash\nsudo apt-get install webhook\n```\n\n## 📝 Acknowledgements\n\n* script created with [bashew](https://github.com/pforret/bashew)\n* [ngrok: GitHub Repository Webhooks](https://ngrok.com/docs/integrations/github/webhooks/)\n\n\u0026copy; 2024 Peter Forret\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpforret%2Flandeploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpforret%2Flandeploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpforret%2Flandeploy/lists"}