{"id":3235,"url":"https://github.com/fastlane/boarding","last_synced_at":"2025-05-16T04:03:43.166Z","repository":{"id":35113784,"uuid":"39299874","full_name":"fastlane/boarding","owner":"fastlane","description":"Instantly create a simple signup page for TestFlight beta testers","archived":false,"fork":false,"pushed_at":"2024-03-18T18:04:27.000Z","size":3627,"stargazers_count":878,"open_issues_count":56,"forks_count":192,"subscribers_count":31,"default_branch":"master","last_synced_at":"2025-05-07T23:58:21.499Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://fastlane.tools","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"UD-UD/webpack-strip-log-loader","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fastlane.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}},"created_at":"2015-07-18T13:55:30.000Z","updated_at":"2025-04-10T16:11:50.000Z","dependencies_parsed_at":"2024-04-13T18:49:29.513Z","dependency_job_id":"60e73608-dbeb-41b5-a192-fa2a6a6c0a9f","html_url":"https://github.com/fastlane/boarding","commit_stats":{"total_commits":189,"total_committers":61,"mean_commits":3.098360655737705,"dds":0.544973544973545,"last_synced_commit":"97384cc8a882b180ee7a152d90584ade5e6fefa6"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastlane%2Fboarding","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastlane%2Fboarding/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastlane%2Fboarding/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastlane%2Fboarding/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fastlane","download_url":"https://codeload.github.com/fastlane/boarding/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253503101,"owners_count":21918555,"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-01-05T20:16:35.298Z","updated_at":"2025-05-16T04:03:43.107Z","avatar_url":"https://github.com/fastlane.png","language":"Ruby","funding_links":[],"categories":["Ruby","Injection","WebSocket","HarmonyOS","Deployment / Distribution"],"sub_categories":["Other free courses","Windows Manager","Getting Started","Web View"],"readme":"\u003ch3 align=\"center\"\u003e\n  \u003ca href=\"https://github.com/fastlane/fastlane\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/fastlane/boarding/master/app/assets/images/fastlane.png\" width=\"100\" /\u003e\n    \u003cbr /\u003e\n    fastlane\n  \u003c/a\u003e\n\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/fastlane/fastlane/tree/master/deliver\"\u003edeliver\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/fastlane/fastlane/tree/master/snapshot\"\u003esnapshot\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/fastlane/fastlane/tree/master/frameit\"\u003eframeit\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/fastlane/fastlane/tree/master/pem\"\u003epem\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/fastlane/fastlane/tree/master/sigh\"\u003esigh\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/fastlane/fastlane/tree/master/produce\"\u003eproduce\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/fastlane/fastlane/tree/master/cert\"\u003ecert\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/fastlane/fastlane/tree/master/spaceship\"\u003espaceship\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/fastlane/fastlane/tree/master/pilot\"\u003epilot\u003c/a\u003e \u0026bull;\n  \u003cb\u003eboarding\u003c/b\u003e \u0026bull;\n  \u003ca href=\"https://github.com/fastlane/fastlane/tree/master/gym\"\u003egym\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/fastlane/fastlane/tree/master/scan\"\u003escan\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/fastlane/fastlane/tree/master/match\"\u003ematch\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/fastlane/fastlane/tree/master/precheck\"\u003eprecheck\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/fastlane/boarding/master/assets/BoardingHuge.png\" width=\"650\"\u003e\n\u003c/p\u003e\n\n---\n\n[![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)\n[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/boarding/blob/master/LICENSE)\n\nGet in contact with the developers on Twitter: [@FastlaneTools](https://twitter.com/FastlaneTools/)\n\n---\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"#whats-boarding\"\u003eWhy?\u003c/a\u003e \u0026bull;\n    \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e \u0026bull;\n    \u003ca href=\"#how-does-this-work\"\u003eTechnical Details\u003c/a\u003e \u0026bull;\n    \u003ca href=\"#customize\"\u003eCustomize\u003c/a\u003e \u0026bull;\n    \u003ca href=\"#update-to-a-new-version\"\u003eUpdate\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003ch5 align=\"center\"\u003e\u003ccode\u003eboarding\u003c/code\u003e is part of \u003ca href=\"https://fastlane.tools\"\u003efastlane\u003c/a\u003e: connect all deployment tools into one streamlined workflow.\u003c/h5\u003e\n\n# What's boarding?\n\nInstantly create a simple signup page for TestFlight beta testers.\n\n\u003e Have you ever been to an airport, where you had to ask the manager of the airport if you can board now? Once the manager agrees, you'll be carried from your check-in to your gate into your plane.\n\nBecause that's what you do right now as an app developer when you want to add a new tester to your TestFlight app: [Open Screenshots](https://raw.githubusercontent.com/fastlane/boarding/master/assets/OldWay.jpg)\n\nWhy don't you have a simple web site you can share with potential testers (e.g. email newsletter, Facebook, Twitter) on which people interested in trying out your new app can just `board` on their own?\n\n![BoardingScreenshot](https://raw.githubusercontent.com/fastlane/boarding/master/assets/BoardingScreenshot.png)\n\nThanks to [spaceship.airforce](https://spaceship.airforce) (oh well, I really talk a lot about flying :rocket:) it is now possible to automate the boarding process for your TestFlight beta testers.\n\n### Example\n\n##### Take a look at this live example page: [boarding.herokuapp.com](https://boarding.herokuapp.com)\n\n[Like this tool? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)\n\n# Getting Started\n\nAssuming you already have a [Heroku](https://www.heroku.com/) account follow those steps:\n\n* [![Deploy](https://www.herokucdn.com/deploy/button.png)](https://www.heroku.com/deploy?template=https://github.com/fastlane/boarding)\n* Enter your iTunes Connect credentials and the bundle identifier of your app. This will all be stored on your own Heroku instance as environment variables\n* Click on `View` once the setup is complete and start sharing the URL\n\nAssuming you already have an [Azure](https://www.azure.com/) account follow those steps:\n\n* [![Deploy to Azure](https://azuredeploy.net/deploybutton.svg)](https://deploy.azure.com/?repository=https://github.com/fastlane/boarding)\n* Enter your iTunes Connect credentials and the bundle identifier of your app. This will all be stored on your own Heroku instance as environment variables\n* It can take up to 5 minutes until everything is loaded.\n\n`boarding` does all kinds of magic for you, like fetching the app name and app icon.\n\nHeroku is free to use for the standard machine. If you need a Heroku account, ask your back-end team if you already have a company account.\n\n---\n\n![SetupGif](https://raw.githubusercontent.com/fastlane/boarding/master/assets/BoardingSetup.gif)\n\n---\n\nIf your account is protected using 2-factor author, follow the [2 step verification guide](https://github.com/fastlane/fastlane/blob/master/spaceship/README.md#2-step-verification).\n\n## Security\n\nTo secure your webpage, you only have to set the `ITC_TOKEN` environment variable to any password.\n\n* You can send your users the link and tell them the password\n* You can send them the direct link including the token like this: https://url.com/?token=[password]\n\n## Available environment variables\n\n**Required:**\n\n* `ITC_USER` iTunes Connect username\n* `ITC_PASSWORD` iTunes Connect password\n* `ITC_APP_ID` The Apple ID or Bundle Identifier of your app\n\n**Optional:**\n\n* `ITC_TOKEN` Set a password to protect your website from random people signing up\n* `ITC_CLOSED_TEXT` Set this text to temporary disable enrollment of new beta testers\n* `RESTRICTED_DOMAIN` Set this domain (in the format `domain.com`) to restrict users with emails in another domain from signing up. This list supports multiple domains by setting it to a comma delimited list (`domain1.com,domain2.com`)\n* `FASTLANE_ITC_TEAM_NAME` If you're in multiple teams, enter the name of your iTC team here. Make sure it matches.\n* `FASTLANE_SESSION` You need to provide a [pregenerated session](https://docs.fastlane.tools/best-practices/continuous-integration/#spaceauth) via `fastlane spaceauth` if you have 2-factor authentication enabled and want to use any actions that communicates with App Store Connect.\n* `IMPRINT_URL` If you want a link to an imprint to be shown on the invite page.\n\n## Custom Domain\n\nWith Heroku you can easily use your own domain, follow [this guide](https://devcenter.heroku.com/articles/custom-domains).\n\nWith Azure you can easily use your own domain, follow [this guide](https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-custom-domain?toc=%2fazure%2fapp-service%2fcontainers%2ftoc.json).\n\n## Alternative Setup Options\n\n* Docker image: [emcniece/docker-boarding](https://github.com/emcniece/docker-boarding)\n\n# How does this work?\n\n`boarding` is part of [fastlane](https://fastlane.tools), which helps you automate everything you usually do manually as an iOS developer.\n\nUsing [spaceship.airforce](https://spaceship.airforce) it is possible to manage testers, builds, metadata, certificates and so much more.\n\nThis repository is a simple Rails application with most code in these files:\n\n* [invite_controller.rb](https://github.com/fastlane/boarding/blob/master/app/controllers/invite_controller.rb)\n* [invite/index.html.erb](https://github.com/fastlane/boarding/blob/master/app/views/invite/index.html.erb)\n\n![BoardingOverview](https://raw.githubusercontent.com/fastlane/boarding/master/assets/BoardingOverview.png)\n\nMore information about this automation process can be found [here](https://krausefx.com/blog/letting-computers-do-the-hard-work).\n\n# Customize\n\nIf you want to change the design, layout or even add new features:\n\n* Install the [Heroku toolbelt](https://toolbelt.heroku.com/) and `heroku login`\n* Clone your application using `heroku git:clone --app [heroku_app_name]` (it will be an empty repo)\n  * You may see a message saying `warning: You appear to have cloned an empty repository.`. If so, just continue on with the instructions. This is a known [Heroku issue](https://help.heroku.com/XOBUHLKQ/why-do-i-see-a-message-you-appear-to-have-cloned-an-empty-repository-when-using-heroku-git-clone)\n* `cd [heroku_app_name]`\n* `git pull https://github.com/fastlane/boarding`\n* Modify the content, in particular the files that are described above.\n* Test it locally by running `ITC_USER=\"email\" ITC_... rails s` and opening [http://127.0.0.1:3000](http://127.0.0.1:3000)\n* Commit the changes\n* `git push`\n\nIt is recommended to also store your version in your git repo additionally to Heroku.\n\n# Update to a new version\n\nFrom time to time there will be updates to `boarding`. There are 2 ways to update your Heroku application:\n\n### Recommended: Using the terminal\n\n* Install the [Heroku toolbelt](https://toolbelt.heroku.com/) and `heroku login`\n* Clone your application using `heroku git:clone --app [heroku_app_name]` (it will be an empty repo)\n* `cd [heroku_app_name]`\n* `git pull https://github.com/fastlane/boarding`\n* `git push`\n\n### Using Heroku website\n\n* Delete your application on [heroku.com](https://www.heroku.com/)\n* [Create a new boarding application](https://www.heroku.com/deploy?template=https://github.com/fastlane/boarding)\n* Enter your user credentials again\n\n### Using Azure website\n\n* Navigate to the [Azure Portal](https://portal.azure.com/)\n* Login and navigate to your WebApp\n* On `Overview` hit the restart button\n\n# Managing Azure version\n\nIf you installed `boarding` using the `deploy to Azure` button, `boarding` will be deployed in an Azure WebApp for containers.\nThis means that azure is running the [docker-version](https://github.com/emcniece/docker-boarding) of `boarding`.\n\n### Setting optional parameters in Azure\n\nIn order to set the optional parameters for `boarding` follow these steps:\n\n* Navigate to the [Azure Portal](https://portal.azure.com/)\n* Login and navigate to your WebApp\n* Under `Settings` click `Application settings`\n* Click the link `+ Add new setting` and add the the optional parameter i.e. `ITC_CLOSED_TEXT` = `We are closed!`\n* Hit `Save` and navigate to `Overview`\n* On `Overview` hit the restart button\n\n### Troubleshoot boarding on Azure\n\nWhen you run `boarding` on Azure, it could happen that you run into an HttpStatus 503 showing `Service Unavailable`\nThere can be multiple reasons for that:\n\n* `boarding` isn't yet fully loaded. Wait a few minutes hit refresh.\n* The provided parameters are wrong (`ITC_USER`, `ITC_PASSWORD`, `ITC_APP_ID`). Please go to the settings in Azure and check if they are right.\n\nFor further troubleshooting, please got to [Azure App Service on Linux FAQ](https://docs.microsoft.com/en-us/azure/app-service/containers/app-service-linux-faq)\n\n##### [Like this tool? Be the first to know about updates and new fastlane tools](https://tinyletter.com/krausefx)\n\n### Special thanks\n\nSpecial thanks to [@lee_moonan](https://twitter.com/lee_moonan) for designing the awesome logo.\n\n# Development Setup\n1. `gem install bundler`\n1. `bundle install`\n1. Create a `.env.local` file with the following contents:\n    ```\n    # Required\n    ITC_APP_ID=\u003cyour_app_id\u003e\n    ITC_USER=\u003cyour_email\u003e\n    ITC_PASSWORD=\u003cyour_password\u003e\n\n    # Optional\n    FASTLANE_ITC_TEAM_NAME=\u003cyour_team_name\u003e\n    ITC_APP_TESTER_GROUPS=\u003cyour_groups\u003e\n    ITC_TOKEN=\u003cyour_token\u003e\n    GA_PROPERTY_ID=\u003cyour_ga_property_id\u003e\n    IMPRINT_URL=\u003cyour_url\u003e\n    ```\n1. `bundle exec rails s`\n\n# Code of Conduct\n\nHelp us keep `boarding` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/code-of-conduct).\n\n# License\n\nThis project is licensed under the terms of the MIT license. See the LICENSE file.\n\n\u003e This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastlane%2Fboarding","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffastlane%2Fboarding","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastlane%2Fboarding/lists"}