From ab5cf356b2adfe0b803db6571a80bc0a7685a5e9 Mon Sep 17 00:00:00 2001 From: Ryan Watters Date: Wed, 15 Mar 2017 02:26:33 -0500 Subject: [PATCH] Make small tweaks to language used in "Hosting on Firebase" --- .../hosting-on-firebase.md | 76 ++++++++++++++++++- 1 file changed, 72 insertions(+), 4 deletions(-) diff --git a/content/hosting-and-deployment/hosting-on-firebase.md b/content/hosting-and-deployment/hosting-on-firebase.md index 48c1e84ec..f717961b2 100644 --- a/content/hosting-and-deployment/hosting-on-firebase.md +++ b/content/hosting-and-deployment/hosting-on-firebase.md @@ -4,14 +4,82 @@ linktitle: Hosting on Firebase description: You can use Firebase's free tier to host your static website; this also gives you access to Firebase's NOSQL API. date: 2017-03-12 publishdate: 2017-03-12 -lastmod: 2017-03-12 +lastmod: 2017-03-15 categories: [hosting and deployment] tags: [hosting,firebase] -authors: [] +authors: [Michel Racic] weight: 20 -draft: true +draft: false toc: true aliases: [] -wip: true --- +## Assumptions + +1. You have an account with [Firebase][signup]; you can sign up for free using your Google account. +2. You have completed the [Quick Start][] or have a completed Hugo website ready for deployment. + +## Initial setup + +Go to the [Firebase console][console] and create a new project (unless you already have a project). You will need to globally install `firebase-tools` (node.js): + +```sh +npm install -g firebase-tools +``` + +Log in to Firebase (setup on your local machine) using `firebase login`, which opens a browser where you can select your account. Use `firebase logout` in case you are already logged in but to the wrong account. + +```sh +firebase login +``` + +In the root of your Hugo project, initialize the Firebase project with the `firebase init` command: + +```sh +firebase init +``` + +From here: + +1. Choose Hosting in the feature question +2. Choose the project you just set up +3. Accept the default for your database rules file +4. Accept the default for the publish directory, which is `public` +5. Choose "No" in the question if you are deploying a single-page app + +## Deploy + +To deploy your Hugo site, execute the `firebase deploy` command, and your site will be up in no time: + +```sh +hugo && firebase deploy +``` + +## CI Setup + +You can generate a deploy token using + +```sh +firebase login:ci +``` + +You can also set up your CI (e.g., with [Wercker][]) and add the token to a private variable like `$FIREBASE_DEPLOY_TOKEN`. + +{{% note %}} +This is a private secret and it should not appear in a public repository. Make sure you understand your chosen CI and that it's not visible to others. +{{% /note %}} + +You can then add a step in your build to do the deployment using the token: + +```sh +firebase deploy --token $FIREBASE_DEPLOY_TOKEN +``` + +## Reference links + +* [Firebase CLI Reference](https://firebase.google.com/docs/cli/#administrative_commands) + +[console]: https://console.firebase.google.com +[Quick Start]: /getting-started/quick-start/ +[signup]: https://console.firebase.google.com/ +[Wercker]: /hosting-and-deployment/deployment-with-wercker/ \ No newline at end of file