7a4f9030a8
This reverts commit
|
||
---|---|---|
.github | ||
assets | ||
components | ||
config | ||
js | ||
pages | ||
scss | ||
.eslintrc.json | ||
.gitignore | ||
.mergify.yml | ||
.stylelintrc | ||
.stylelintrc-colors.js | ||
.travis.yml | ||
CODE_OF_CONDUCT.md | ||
PULL_REQUEST_TEMPLATE.md | ||
Procfile | ||
README.md | ||
app.json | ||
app.jsx | ||
appveyor.yml | ||
contribute.json | ||
main.jsx | ||
manifest.json | ||
package-lock.json | ||
package.json | ||
server.js | ||
webpack.client.common.js | ||
webpack.client.dev.js | ||
webpack.client.prod.js | ||
webpack.server.common.js | ||
webpack.server.dev.js | ||
webpack.server.prod.js |
README.md
Mozilla Pulse
Pulse is a platform that helps the Mozilla Network capture and broadcast its projects and activities. mozillapulse.org
Around the globe, teachers, engineers, activists, and others collaborate to protect and extend the internet as a public resource. They create amazing apps, art, tools, games, and campaigns. Their impact is tremendous, but decentralized and difficult to track, even within the network.
Pulse reveals the network's footprint, it fosters collaboration and amplifies the big wins.
Contribute
We love contributors, but the team maintaining this project is small and not structured to significantly support new and inexperienced contributors. If there's an unassigned issue that catches your eye, feel free to open a PR for it, but keep in mind our support will be limited. We usually don't have the capacity to walk you through the process of spinning up the project, opening a PR or describing what the solution to the issue could be.
Development
Requirements
node
npm
Setup
$> git clone https://github.com/mozilla/network-pulse.git
$> cd network-pulse
$> npm install
$> npm start
Environments
If you would like to override default environment variables... create a .env
file on the root directory and set your env vars there. See environment variables section for details.
There are two files that you can expressly copy depending on your use:
default.env
has all the environment variables needed to run the pulse site without running a local pulse API instance.default.localhost.env
has all the environment variables needed to run the pulse site in a way that it uses a locally running pulse API instance.
If you need (2), make sure to follow the instructions in the network pulse api README.md that explain how to set up Google Authentication.
Key scripts to run
npm start
This starts server in development mode. See environment variables section for PORT
number.
npm test
This starts a few test scripts. Don't forget to run this command and fix errors (if any) before you git push your changes.
Fixing linting errors
If npm test
yields linting errors, you can run npm run fix
to have the style linters try to automatically fix any linting issues. This should almost always be enough to fix any linting errors.
npm optimize
This starts a few image optimization scripts.
Environment variables
Name | Description |
---|---|
PORT |
Default: process.env.PORT (falls back to 3000 if process.env.PORT cannot be found)The port number you are running the server on. |
PULSE_API_HOST |
Default: https://pulse-api.mofostaging.net Host of the Pulse API URL. |
PULSE_API |
Default: https://pulse-api.mofostaging.net/api/pulse URL to Pulse API. e.g., http://test.example.com:8000/api/pulse . To set up a local instance of Pulse API, follow instructions on Pulse API README doc. |
PULSE_LOGIN_URL |
Default: https://pulse-api.mofostaging.net/accounts/login/ URL to use to login to Pulse. This needs to be a Pulse API login url. |
PULSE_LOGOUT_URL |
Default: https://pulse-api.mofostaging.net/accounts/logout/ URL to use to logout of Pulse. This needs to be a Pulse API logout url. |
USE_RECAPTCHA |
Default: true Whether or not to have recaptcha securing the sign up/sign in action. |
RECAPTCHA_KEY |
Default: empty string The recaptcha site key to use, when recaptcha is enabled. |
PROJECT_BATCH_SIZE |
Default: 24 Number of projects you want to display as a batch. Make sure this number is divisible by 2 AND 3 so rows display evenly for different screen sizes. |
PROFILE_BATCH_SIZE |
Default: 10 Number of profiles you want to display as a batch. |
LEARN_MORE_LINK |
Default: https://www.mozillapulse.org/entry/120 Link to learn more about what Pulse project is about. |
NODE_ENV |
Default: development When this is set to production , it enables production specific express settings and middleware |
APP_HOST |
Default: localhost The domain which this app should serve. It's only used when NODE_ENV is set to production |
HEROKU_APP_NAME |
Default: "" The name of the review app (generated by Heroku). |
GITHUB_TOKEN |
Default: "" GitHub token used by the review app slack webhook. |
SLACK_WEBHOOK |
Default: "" Webhook of the Slack channel where the bot is posting. |
Deployment
Staging
URL: https://network-pulse-staging.herokuapp.com/
Updates to master
branch automatically triggers staging deployment.
Production
Deployment is done using the Heroku pipeline. Simply click "Promote To Production".
Review Apps
Review App for PRs
Opening a PR will automatically create a Review App in the network-pulse
pipeline. A slack bot posts credentials and links to Review Apps in to the mofo-ra-pulse
Slack channel.
Note: This only work for Mo-Fo staff: you will need to manually open a Review App on Heroku for PRs opened by external contributors.
Review App for branches
You can manually create a review app for any branch pushed to this repo. It's useful if you want to test your code on Heroku without opening a PR yet.
To create one:
- log into Heroku.
- Go to the
network-pulse
pipeline. - Click on
+ New app
and select the branch you want to use.
The review app slack bot will post a message in the mofo-ra-pulse
with links and credentials as soon as the review app is ready.
Environment variables:
GITHUB_TOKEN
: GITHUB API authentication.SLACK_WEBHOOK_RA
: Webhook tomofo-ra-pulse
.STAGING_SERVER
: Boolean, set this toTrue
on the staging server.
Non-secret envs can be added to the app.json
file. Secrets must be set on Heroku in the Review Apps
(pipelines' settings
tab).