{"id":13618183,"url":"https://github.com/wabarc/on-heroku","last_synced_at":"2025-06-26T06:35:32.018Z","repository":{"id":42972846,"uuid":"290774073","full_name":"wabarc/on-heroku","owner":"wabarc","description":"Deploy and maintaining wayback service as a Heroku app easily and quickly.","archived":false,"fork":false,"pushed_at":"2024-01-25T14:55:54.000Z","size":74,"stargazers_count":4,"open_issues_count":4,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-16T06:11:32.969Z","etag":null,"topics":["heroku","maintenance","wayback","wayback-machine"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wabarc.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":"2020-08-27T12:50:36.000Z","updated_at":"2024-08-12T20:05:11.000Z","dependencies_parsed_at":"2024-01-19T10:57:13.823Z","dependency_job_id":"14f0bffb-cf50-4f3a-96ea-faa8dac799dc","html_url":"https://github.com/wabarc/on-heroku","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"wabarc/project-template","purl":"pkg:github/wabarc/on-heroku","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wabarc%2Fon-heroku","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wabarc%2Fon-heroku/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wabarc%2Fon-heroku/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wabarc%2Fon-heroku/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wabarc","download_url":"https://codeload.github.com/wabarc/on-heroku/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wabarc%2Fon-heroku/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262016514,"owners_count":23245526,"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":["heroku","maintenance","wayback","wayback-machine"],"created_at":"2024-08-01T20:01:55.847Z","updated_at":"2025-06-26T06:35:31.994Z","avatar_url":"https://github.com/wabarc.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# on-heroku\n\n\u003e If you prefer to run webapp and worker, please checkout dynos branch.\n\n`on-heroku` is designed to deploy the `wayback` service as a Heroku app, expect to\nreduce the cost of running the `wayback` service, and providing additional anonymity.\n\n## Installation\n\n### 1-Click Deploy\n\u003ca href=\"https://heroku.com/deploy?template=https://github.com/wabarc/on-heroku\"\u003e\n    \u003cimg\n    src=\"https://www.herokucdn.com/deploy/button.svg\"\n    alt=\"Deploy Wayback to Heroku with 1-Click\"\n    width=\"200px\"\n    /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\n### Script (recommended)\n\nThe script requires to run with the `root` user, on a Docker container may be better options.\n\nIt will install Node.js in the `/tmp` directory and remove it automatically after deployment.\n\n```bash\n# sh \u003c(wget https://raw.githubusercontent.com/wabarc/on-heroku/main/setup -O -)\n```\n\nRunning on Docker container:\n\n```sh\n$ docker run -ti --rm debian:stable-slim bash -c \"apt update \u0026\u0026 apt install -y wget \\\n    \u0026\u0026 bash \u003c(wget https://raw.githubusercontent.com/wabarc/on-heroku/main/setup -O -)\"\n```\n\n### Manual\n\n#### Install heroku\n\n```sh\n$ npm i -g heroku\n```\n\n[more details](https://devcenter.heroku.com/articles/heroku-cli#download-and-install)\n\n#### Login\n\n```sh\n$ heroku login -i\n$ heroku keys:add\n```\n\n#### Pull\n\n```sh\n$ git clone https://github.com/wabarc/on-heroku.git\n$ cd wayback-heroku\n```\n\n#### Create or add exists heroku app\n\nCreate an new heroku app:\n\n```sh\n$ heroku create --ssh-git your-app-name\n```\n\nor add exists heroku app:\n\n```sh\n$ heroku git:remote --ssh-git -a your-app-name\n```\n\n[more details](https://devcenter.heroku.com/articles/git#creating-a-heroku-remote)\n\n#### Set heroku app stack\n\n```sh\n$ heroku stack:set container\n```\n\n#### Set a config var\n\nThe `WAYBACK_ARGS` config var is required by `wayback` process as an environment \nvariable during running, more useful reference the [wabarc/wayback](https://github.com/wabarc/wayback#usage).\n\n```sh\n$ heroku config:set WAYBACK_ARGS=\"--ia --is --ip -d telegram -t your-telegram-bot-token --debug\"\n```\n\nPS: if you run with the script, the double quote is unnecessary.\n\n[more details](https://devcenter.heroku.com/articles/config-vars#set-a-config-var)\n\n#### Deploy to heroku\n\n```sh\n$ git push heroku main\n```\n\n#### Start dyno\n\n```sh\n$ heroku ps:scale web=1\n```\n\n### Deploy with heroku.yml\n\n1. Clone repository\n\n```sh\n$ git clone https://github.com/wabarc/on-heroku.git\n```\n\n2. Add Heroku remote repository\n\n```sh\n$ git remote add heroku git@heroku.com:appname.git\n```\n\n3. Set the stack of your app to container\n```sh\n$ heroku stack:set container\n```\n\n4. Push to Heroku\n```sh\n$ git push heroku main\n```\n\n## Maintenance\n\nIf you prefer to run the Heroku app regularly, the `maintenance.sh` is helpful to turn \nit into maintenance mode by crontab or other. It requires a Heroku authorization token \nduring on running `heroku` command, and you can create one from the [Heroku dashboard](https://dashboard.heroku.com/account/applications/authorizations/new).\n\n### Usage\n\n```\n$ sh maintenance.sh\nUsage: sh maintenance.sh [options]\n\nOptions:\n    -a, --app \u003cheroku app name\u003e\n    -h, --help Usage\n    -k  --api-key \u003cheroku authorization token\u003e\n        Heroku authorization token, create an new token:\n        https://dashboard.heroku.com/account/applications/authorizations/new\n    -m, --mode \u003cmaintenance mode\u003e\n        Maintenance mode for heroku app, options: on, off (Default: on)\n```\n\n### Example\n\n```sh\n$ wget https://raw.githubusercontent.com/wabarc/on-heroku/main/maintenance.sh -O - | \\\n    sh -s - -k your-authorization-token -a your-app-name\n```\n\nrunning on Docker container:\n\n```sh\n$ docker run -ti --rm alpine:3.12 sh\n# wget https://raw.githubusercontent.com/wabarc/on-heroku/main/maintenance.sh -O - | \\\n    sh -s - -k your-authorization-token -a your-app-name -m off\n```\n\n## Related projects\n\n- [wabarc/wayback](https://github.com/wabarc/wayback)\n\n## Credits\n\n- [Heroku](https://heroku.com/)\n- [ShellCheck](https://www.shellcheck.net/)\n\n## F.A.Q\n\nFor Heroku free accounts, if an app has a free web dyno, and that dyno receives no web traffic \nin a 30-minute period, it will sleep. You may need a tool (e.g. crontab, [Cronitor](https://cronitor.io/), [New Relic](https://newrelic.com/)) \nto request `https://your-app.herokuapp.com/healthcheck` regularly to prevent it from sleeping.\n\n## License\n\nPermissive GPL 3.0 license, see the [LICENSE](https://github.com/wabarc/on-heroku/blob/main/LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwabarc%2Fon-heroku","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwabarc%2Fon-heroku","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwabarc%2Fon-heroku/lists"}