mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-06 03:13:42 -05:00
flask-script has been deprecated by the internal flask.cli module, but making this carries a few changes with it * you should add FLASK_APP=application.py and FLASK_DEBUG=1 to your environment.sh. * instead of using `python app.py runserver`, now you must run `flask run -p 6012`. The -p command is important - the port must be set before the config is loaded, so that it can live reload nicely. (https://github.com/pallets/flask/issues/2113#issuecomment-268014481) * find available commands by just running `flask`. * run them using flask. eg `flask list_routes` * define new tasks by giving them the decorator `@app.cli.command('task-name')`. Task name isn't needed if it's just the same as the function name. Alternatively, if app isn't available in the current scope, you can invoke the decorator directly, as seen in app/commands.py
91 lines
2.5 KiB
Markdown
91 lines
2.5 KiB
Markdown
[](https://requires.io/github/alphagov/notifications-admin/requirements/?branch=master)
|
|
[](https://coveralls.io/github/alphagov/notifications-admin?branch=master)
|
|
|
|
|
|
# notifications-admin
|
|
|
|
GOV.UK Notify admin application.
|
|
|
|
## Features of this application
|
|
|
|
- Register and manage users
|
|
- Create and manage services
|
|
- Send batch emails and SMS by uploading a CSV
|
|
- Show history of notifications
|
|
|
|
## First-time setup
|
|
|
|
Brew is a package manager for OSX. The following command installs brew:
|
|
```shell
|
|
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
|
```
|
|
|
|
Languages needed
|
|
- Python 3.4
|
|
- [Node](https://nodejs.org/) 5.0.0 or greater
|
|
- [npm](https://www.npmjs.com/) 3.0.0 or greater
|
|
```shell
|
|
brew install node
|
|
```
|
|
|
|
|
|
[NPM](npmjs.org) is Node's package management tool. `n` is a tool for managing
|
|
different versions of Node. The following installs `n` and uses the latest
|
|
version of Node.
|
|
```shell
|
|
npm install -g n
|
|
n latest
|
|
npm rebuild node-sass
|
|
```
|
|
|
|
The app runs within a virtual environment. We use mkvirtualenv for easier working with venvs
|
|
```shell
|
|
pip install virtualenvwrapper
|
|
mkvirtualenv -p /usr/local/bin/python3 notifications-admin
|
|
```
|
|
|
|
Install dependencies and build the frontend assets:
|
|
```shell
|
|
workon notifications-admin
|
|
./scripts/bootstrap.sh
|
|
```
|
|
|
|
## Rebuilding the frontend assets
|
|
|
|
If you want the front end assets to re-compile on changes, leave this running
|
|
in a separate terminal from the app
|
|
```shell
|
|
npm run watch
|
|
```
|
|
|
|
## Create a local environment.sh file containing the following:
|
|
|
|
```
|
|
echo "
|
|
export NOTIFY_ENVIRONMENT='development'
|
|
export ADMIN_CLIENT_SECRET='notify-secret-key'
|
|
export API_HOST_NAME='http://localhost:6011'
|
|
export DANGEROUS_SALT='dev-notify-salt'
|
|
export SECRET_KEY='notify-secret-key'
|
|
export DESKPRO_API_HOST="some-host"
|
|
export DESKPRO_API_KEY="some-key"
|
|
export FLASK_APP=application.py
|
|
export FLASK_DEBUG=1
|
|
export WERKZEUG_DEBUG_PIN=off
|
|
"> environment.sh
|
|
```
|
|
|
|
## AWS credentials
|
|
|
|
Your aws credentials should be stored in a folder located at `~/.aws`. Follow [Amazon's instructions](http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-config-files) for storing them correctly
|
|
|
|
|
|
## Running the application
|
|
|
|
```shell
|
|
workon notifications-admin
|
|
./scripts/run_app.sh
|
|
```
|
|
|
|
Then visit [localhost:6012](http://localhost:6012)
|