{"id":22282611,"url":"https://github.com/carbonfive/razor-phoenix","last_synced_at":"2025-06-27T22:05:25.802Z","repository":{"id":66259842,"uuid":"81511227","full_name":"carbonfive/razor-phoenix","owner":"carbonfive","description":"Phoenix application prototype for Razor, the Carbon Five Phoenix application generator. https://github.com/carbonfive/razor","archived":false,"fork":false,"pushed_at":"2018-06-01T03:41:59.000Z","size":218,"stargazers_count":12,"open_issues_count":0,"forks_count":3,"subscribers_count":46,"default_branch":"master","last_synced_at":"2025-06-27T22:03:42.271Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Elixir","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/carbonfive.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-10T01:05:28.000Z","updated_at":"2023-11-16T04:20:33.000Z","dependencies_parsed_at":"2023-02-23T09:45:22.159Z","dependency_job_id":null,"html_url":"https://github.com/carbonfive/razor-phoenix","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/carbonfive/razor-phoenix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbonfive%2Frazor-phoenix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbonfive%2Frazor-phoenix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbonfive%2Frazor-phoenix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbonfive%2Frazor-phoenix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carbonfive","download_url":"https://codeload.github.com/carbonfive/razor-phoenix/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbonfive%2Frazor-phoenix/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262341622,"owners_count":23296069,"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":[],"created_at":"2024-12-03T16:33:58.120Z","updated_at":"2025-06-27T22:05:25.792Z","avatar_url":"https://github.com/carbonfive.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"![alt tag](https://github.com/craiglyons/razor/blob/master/static/logo_tmp.jpg)\n\n## Phoenix Prototype app\n\nA Carbon Five-flavored convenience skeleton project for Phoenix.\n\n* [Phoenix](https://hex.pm/packages/phoenix)\n* [Postgrex](https://hex.pm/packages/postgrex)\n* [Slim](https://hex.pm/packages/slime)\n* [Wallaby](https://hex.pm/packages/wallaby)\n* [ExMachina](https://hex.pm/packages/ex_machina)\n* Yarn\n* Sass\n* Bootstrap\n* additional `acceptance` environment\n* CI testing via CircleCI\n* .iex.exs for REPL aliases \u0026 imports\n* ready for deployment to Heroku Pipelines in `acceptance` and `prod` environments.\n\n## Automatic installation\n\nIt's strongly recommended you don't clone this repo, and instead [zap your project using Razor](https://github.com/carbonfive/razor).\nThe zapper will handle all of the following steps programmatically.\n\n## Manual installation\n\nIf you can't use [Razor](https://github.com/carbonfive/razor) to install for some reason, you can start by cloning this repo.\nNext, you'll perform global replacements for these with your app name:\n\n* `AppPrototype`\n* `app_prototype`\n* `app-prototype`\n* `App Prototype`\n\nAlso rename the following directories \u0026 files:\n\n* `/lib/app_prototype`\n* `/web/static/css/_app_prototype.scss`\n* `/web/static/js/app_prototype.js`\n\nNow you can finish your setup \u0026 verify things are working:\n\n* `mix deps.get`\n* `mix ecto.setup`\n* `cd assets \u0026\u0026 yarn install`\n* `cd assets \u0026\u0026 ./node_modules/.bin/brunch build`\n* `mix test`\n\n## Running the server\n\nEach environment is responsible for setting the `SECRET_KEY_BASE`. With the exception of the `test` environment, this value is derived from a system environment variable.\n\nTo set environment variables locally for the `dev` environment, you can create a `.env` file \u0026 run the server with a tool that reads `.env`. I recommend `heroku local` to mirror production more closely, or foreman.\n\n#### Sample `.env` file\n\n```\nMIX_ENV=dev\nSECRET_KEY_BASE=\"xxxxxx\"\n```\n\n`SECRET_KEY_BASE` can be generated with the task `mix phx.gen.secret`.\n\nAs a convenience, a weak `SECRET_KEY_BASE` is hard-coded in the `test` environment. You can easily change this to read an env var a la the other environments instead.\n\n#### Give it a spin:\n\n* Run with something that works with `.env` files, i.e. `foreman` or `heroku local`\n* OR `source .env` and `mix phx.server`\n* visit the app in a browser (default is `http://localhost:4000`, or `http://127.0.0.1:4000` in some versions of Chrome)\n\nNow you're ready to remove demo content, which is easy to spot from the landing page.\n\n## Requirements\n\n* phantomjs is required for acceptance testing with Wallaby, i.e. `yarn global add phantomjs`.\n  [Lean more about wallaby](https://github.com/keathley/wallaby)\n\n## Recommendations\n\n* If you use [asdf](https://github.com/asdf-vm/asdf), you'll be set up with the correct versions of `node` and `elixir` once they're installed. Otherwise, have a look at `.tool-versions` to see the current versions.\n\n## Deployment\n\nThis app is pre-configured for easy deployment to Heroku w/ pipelines using CircleCI. CI is only used to run tests; your pipelines should be configured to auto-deploy branches after passing CI tests.\n\nConvention is to auto-deploy `master` branch to `acceptance`, and `production` branch to `production`.\n\n* Create Heroku apps for `acceptance` and `production`\n* Provision Heroku Postgres DB resources\n* Add buildpacks to Heroku apps\n  * `heroku buildpacks:add https://github.com/HashNuke/heroku-buildpack-elixir.git --app your-heroku-app-name`\n  * `heroku buildpacks:add https://github.com/gjaldon/heroku-buildpack-phoenix-static.git --app your-heroku-app-name`\n* Add environment variables to Heroku\n  * `SECRET_KEY_BASE`, which can be generated with the task `mix phx.gen.secret`\n  * `HOSTNAME`, should be the hostname of the deployed site (e.g. `app-prototype-production.herokuapp.com`)\n  * `MIX_ENV` should be `prod`\n  * `POOL_SIZE` should be set 2 units below the max db connections allowed by the Heroku instance. This allows mix tasks to be run with 2 connections.\n  * `DATABASE_URL` should have been filled automatically by provisioning heroku postgres.\n* Migrations are run automatically using Heroku's [release phase](https://devcenter.heroku.com/articles/release-phase).\n* Configure Elixir, Erlang and Node versions via the `elixir_buildpack.config` and `phoenix_static_buildpack.config` files. See the corresponding buildpack project pages for more configuration variables.\n\n## Notes\n\n* You will see warnings from several dependencies the first time they're compiled.\n  This is because many of them have not yet been upgraded for elixir 1.4; these can be safely ignored.\n* There's a decent chance you'll eventually want a production environment with more control \u0026 power. Heroku is currently the simplest way to get up \u0026 running for prototyping, and may even suit your app just fine long term.\n* Razor should be used for convenience, not to avoid learning more about Phoenix and Elixir. Please take the time to learn about the opinions provided by Razor \u0026 how they are implemented.\n\n## Learn more about Phoenix\n\n* Official website: http://www.phoenixframework.org/\n* Guides: http://phoenixframework.org/docs/overview\n* Docs: https://hexdocs.pm/phoenix\n* Mailing list: http://groups.google.com/group/phoenix-talk\n* Source: https://github.com/phoenixframework/phoenix\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarbonfive%2Frazor-phoenix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarbonfive%2Frazor-phoenix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarbonfive%2Frazor-phoenix/lists"}