{"id":27293846,"url":"https://github.com/ikeviny/dagger","last_synced_at":"2026-05-04T05:32:25.612Z","repository":{"id":39193948,"uuid":"247205174","full_name":"iKevinY/dagger","owner":"iKevinY","description":"Heroku-deployable Flask and React template","archived":false,"fork":false,"pushed_at":"2023-03-04T06:34:05.000Z","size":3487,"stargazers_count":3,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T22:45:01.314Z","etag":null,"topics":["flask","heroku","heroku-deployment","python","template-project"],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iKevinY.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}},"created_at":"2020-03-14T03:34:34.000Z","updated_at":"2024-07-13T11:08:18.000Z","dependencies_parsed_at":"2023-02-04T06:30:46.213Z","dependency_job_id":null,"html_url":"https://github.com/iKevinY/dagger","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iKevinY%2Fdagger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iKevinY%2Fdagger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iKevinY%2Fdagger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iKevinY%2Fdagger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iKevinY","download_url":"https://codeload.github.com/iKevinY/dagger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248492966,"owners_count":21113160,"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":["flask","heroku","heroku-deployment","python","template-project"],"created_at":"2025-04-11T22:45:08.746Z","updated_at":"2026-05-04T05:32:20.595Z","avatar_url":"https://github.com/iKevinY.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dagger\n\nDagger is a template repository for a Heroku-deployable website\nbuilt on Flask and React.\n\n\n## Background\n\nThis template was the solution I came to when building [**zeal.gg**](https://zeal.gg)\nto solve multiple problems: serving static frontend files from outside of Flask,\nspinning up multiple instances of the Flask backend, and running everything\non a single web dyno.\n\nWhen doing local development, the template leverages the typical Flask and Node\ndevelopment servers. However, when deploying to Heroku, the React application\nis built and served statically. nginx routes requests to `/api/*` to the Flask\nbackend, and all other requests to the web dyno are treated as frontend requests.\n\nThese ideas are discussed more in-depth in a\n[blog post](https://kevinyap.ca/2020/03/architecting-zeal-gg/) about\nzeal.gg's architecture.\n\n\n## Installation\n\nRunning `make install` will invoke Pipenv and Yarn's installation steps, both\nof which are required to use this template.\n\n\n## Running\n\n`make run` will start up the frontend on port 3000 and backend on port 8000. Locally,\nrequests to `/api/*` will automatically be proxied to port 8000, simulating how the\napp will behave when deployed.\n\n`make run-backend` and `make run-frontend` can be used to start each development server independently.\n\n\n## Deploy \u003ca href=\"https://heroku.com/deploy?template=https://github.com/iKevinY/dagger/tree/master\"\u003e\u003cimg align=\"right\" src=\"https://www.herokucdn.com/deploy/button.svg\"/\u003e\u003c/a\u003e\n\nThis template can be deployed to Heroku in one click by pressing the above button. Then, you can use\nthe [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) and run\n`heroku git:clone -a \u003capp-name\u003e` to clone down the newly-created Heroku app.\n\nAlternatively, you can do the reverse, working from this template first and _then_ deploying\nto Heroku. One thing to note is that this template makes use of [`heroku-buildpack-subdir`](https://github.com/negativetwelve/heroku-buildpack-subdir)\nin order to build the API, the React frontend, and nginx all at once. Therefore,\nthis buildpack must be set manually when creating the app.\n\n```sh\nHEROKU_APP=\u003capp-name\u003e\nheroku create \"$HEROKU_APP\" --buildpack https://github.com/negativetwelve/heroku-buildpack-subdir.git\ngit remote add heroku \"https://git.heroku.com/${HEROKU_APP}.git\"\ngit push heroku master\nheroku open\n```\n\n## License\n\nDagger is licensed under the [Unlicense](LICENSE); I'm interested in seeing what you're\nbuilding with it, so please [tweet / DM me](https://twitter.com/iKevinY)!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikeviny%2Fdagger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fikeviny%2Fdagger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikeviny%2Fdagger/lists"}