- Prerequisites
- Tanzu Application Service
- Tanzu Kubernetes Grid (vSphere)
- Pivotal Web Services
- Cloud Foundry
- Heroku
- Configuration
- Testing your deployment
- Download and extract the latest package from the releases page
- Choose a name for your app, we'll refer to this as
app-name
from now on
-
Set yourself up with an organization and space in your TAS account to deploy Postfacto to.
-
Add a database (Postgres or Mysql) and a Redis service instance to your space from the Marketplace. Name these services
postfacto-db
andpostfacto-redis
. -
Run the TAS deployment script from the
tas
directory:./deploy.sh <app-name>
Take note of the URL that has shown up in the
routes:
section of the script output, going forward referred to as<app-url>
. -
Log in to the Postfacto admin dashboard (email:
[email protected]
and password:password
) to check everything has worked at<app-url>/admin
-
Create a retro for yourself by clicking on 'Retros' and the 'New Retro'
-
Log in to your retro at
<app-url>/retros/your-retro-slug
-
Share the URL and password with your team and then run a retro!
- Presuming the steps in the Initial deployment section have been completed, run the upgrade script from the
tas
directory:./upgrade.sh <app-name>
-
A vSphere instance version 6.7u3 or higher, with Tanzu Kubernetes Grid (TKG) provisioned
-
A network load balancer installed and configured on your TKG cluster (e.g. MetalLB)
-
A default storage class available in your TKG cluster (e.g. vSphereStorageClass)
-
Install kubectl to your local machine
-
Install helm to your local machine
-
Make sure
kubectl
is configured to connect to the TKG cluster (ask your administrator for the configuration) -
Run the deployment script from the
tkg
directory:./deploy.sh <app-name>
-
Keep note of the application url output by the deployment script, going forward referred to as
tkg-url
-
Log in to the admin dashboard at
<tkg-url>/admin
(email:[email protected]
and password:password
) -
Create a retro for yourself by clicking on 'Retros' and then 'New Retro'
-
Log in to your retro at
<tkg-url>/retros/your-retro-slug
-
Share the URL and password with your team and then run a retro!
- Presuming the steps in the Initial deployment section have been completed, run the upgrade script from the
tkg
directory:./upgrade.sh <app-name>
Pivotal Web Services provides a hosted version of VMware's Tanzu Application Service platform and is probably the easiest place to get Postfacto up and running.
-
Sign up for a PWS account, install the CF CLI and set yourself up with an organization and space by following the instructions here
-
Once logged in to PWS, add a database and a Redis service instance to your space from the Marketplace. We recommend the free plans of ElephantSQL and Redis Cloud respectively for this. Name these services
postfacto-db
andpostfacto-redis
-
Run the PWS deployment script from the
pws
directory:./deploy.sh <app-name>
-
Log in to the Postfacto admin dashboard (email:
[email protected]
and password:password
) to check everything has worked at<app-name>.cfapps.io/admin
-
Create a retro for yourself by clicking on 'Retros' and then 'New Retro'
-
Log in to your retro at
<app-name>.cfapps.io/retros/your-retro-slug
-
Share the URL and password with your team and then run a retro!
- Presuming the steps in the Initial deployment section have been completed, run the upgrade script from the
pws
directory:./upgrade.sh <app-name>
- If you'd previously deployed a version of Postfacto prior to 4.0, run the migration script from the
pws
directory:Note that the admin panel will move from./migrate.sh <web-app-name> <api-app-name>
<api-app-name>.cfapps.io/admin
to<web-app-name>.cfapps.io/admin
and the API app will be deleted
-
Set yourself up with an organization and space in your CF to deploy your Postfacto to.
-
Take note of your CF url, going forward referred to as
cf-url
-
Add a database (Postgres or Mysql) and a Redis service instance to your space from the Marketplace. Name these services
postfacto-db
andpostfacto-redis
. -
Run the CF deployment script from the
cf
directory:./deploy.sh <app-name>
-
Log in to the Postfacto admin dashboard (email:
[email protected]
and password:password
) to check everything has worked at<app-name>.<cf-url>/admin
-
Create a retro for yourself by clicking on 'Retros' and then 'New Retro'
-
Log in to your retro at
<app-name>.<cf-url>/retros/your-retro-slug
-
Share the URL and password with your team and then run a retro!
- Presuming the steps in the Initial deployment section have been completed, run the upgrade script from the
cf
directory:./upgrade.sh <app-name>
- If you'd previously deployed a version of Postfacto prior to 4.0, run the migration script from the
cf
directory:Note that the admin panel will move from./migrate.sh <web-app-name> <api-app-name>
<api-app-name>.<cf-url>/admin
to<web-app-name>.<cf-url>/admin
and the API app will be deleted
-
Install the Heroku CLI
-
Run the Heroku deployment script from the
heroku
directory:./deploy.sh <app-name>
-
Log in to the Postfacto admin dashboard (email:
[email protected]
and password:password
) to check everything has worked at<app-name>.herokuapp.com/admin
-
Create a retro for yourself by clicking on 'Retros' and then 'New Retro'
-
Log in to your retro at
<app-name>.herokuapp.com/retros/your-retro-slug
-
Share the URL and password with your team and then run a retro!
- Presuming the steps in the Initial deployment section have been completed, run the upgrade script from the
heroku
directory:./upgrade.sh <app-name>
⚠️ Warning: the Heroku migration will attempt to migrate your data to a new database instance and delete the old one. Take a look at what the script is doing and make sure you understand the implications before running it.
- If you'd previously deployed a version of Postfacto prior to 4.0, run the migration script from the
heroku
directory:Note that the admin panel will move from./migrate.sh <web-app-name> <api-app-name>
<api-app-name>.herokuapp.com/admin
to<web-app-name>.herokuapp.com/admin
and the API app will be deleted
In order for users to sign-up and create their own retros using the web UI, Postfacto needs Google OAuth setup.
For deployments that do not want to setup Google OAuth, you will need to create your retros through the admin console of your server via
<app-name>.cfapps.io/admin
or <app-name>.<cf-url>/admin
.
- Go to Google Cloud Console and create a new project
- Go to APIs & Services > Credentials > Create Credentials > OAuth client ID > Web application
- Choose a name for your app
- In
Authorized JavaScript Origins
, set it to the public URL of yourapp-name
. For example: if deploying to PWS, your public URL will behttps://<app-name>.cfapps.io
- You can leave redirect blank
- Take note of your
client-id
that is generated - Add
"google_oauth_client_id": {{client-id}}
to theconfig.js
for your installation.
If you'd like to have your instance send analytics data to the Postfacto team so they can learn about how you're using it and continue to improve it you can! To switch this on add "enable_analytics": true
to the config.js
object for your installation. Please note that we do not record any personal data (such as emails or retro data). As we are recording events from you we will however see the URL of the web client for your instance. If you're not comfortable with this don't worry, this feature is disabled by default.
You can customise this window with the SESSION_TIME
env variable to the env
on deploy. To set a session time of 1 hour for example:
SESSION_TIME=60 ./deploy <app-name>
If you are on a later version than 4.3.0 and using Postgres, Redis is no longer required. Instead set the environment variable USE_POSTGRES_FOR_ACTION_CABLE=true
on deploy.
- Log in to the Postfacto admin dashboard
- Create a new admin user for the test to use by clicking on 'Admin Users' and then 'New Admin User'. Take note of the email and password you use, as these will be used in the next step
- Run the smoke test script from the root of the package directory:
./smoke-test.sh <app-url> <app-admin-url> <test-admin-email> <test-admin-password>
If your database only accepts incoming TLS encrypted connections, you will need to modify the application settings to include the appropriate SSL parameters. Please add the below configuration snippet to package/assets/config/database.yml
prior to executing deploy.sh
.
production:
sslmode: preferred # or verify_identiy, verify_ca
sslca: /etc/ssl/certs/ca-certificates.crt # or alternate location where your ca file is located
When this is not set, you will receive this error:
Connections using insecure transport are prohibited while --require_secure_transport=ON.
More information about MySQL SSL modes can be found here.
production:
sslmode: prefer # or verify-full, verify-ca, require
sslca: /etc/ssl/certs/ca-certificates.crt # or alternate location where your ca file is located
More information about SSL modes can be found here.