-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnew-instance.sh
executable file
·121 lines (88 loc) · 3.03 KB
/
new-instance.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/bin/bash
if [ $# -ne 2 ]; then
echo "Usage: ./new-instance.sh <name> <domain>"
exit 1
fi
name=$1
domain=$2
secret=$(pwgen 64)
service_secret=$(pwgen 64)
gc_secret=$(pwgen 128)
nl_secret=$(pwgen 64)
db_name=beabee-$name
db_pass=$(pwgen 64)
cat <<EOF
BEABEE_DOMAIN=$domain
BEABEE_AUDIENCE=https://$domain
BEABEE_DEV=false
BEABEE_SECRET=$secret
BEABEE_SERVICE_SECRET=$service_secret
BEABEE_COOKIE_DOMAIN=$domain
BEABEE_COUNTRYCODE=de
BEABEE_CURRENCYCODE=EUR
BEABEE_CURRENCYSYMBOL=€
BEABEE_APPOVERRIDES='{ "gift": { "config": { "disabled": true } }, "projects": { "config": { "disabled": true } }, "settings": { "subApps": { "pages": { "config": { "hidden": true } }, "newsletters": { "config": { "hidden": true } }, "email": { "config": { "hidden": true } }, "options": { "config": { "hidden": true } } } }, "tools": { "subApps": { "referrals": { "config": { "disabled": true } } } }, "polls": { "config": { "menu": "none" } }, "reports": { "config": { "disabled": true } } }'
BEABEE_DATABASE_URL=postgres://$db_name:$db_pass@postgres-postgres-1-1/$db_name
BEABEE_EMAIL_PROVIDER=sendgrid
BEABEE_EMAIL_SETTINGS_APIKEY=SG.???
BEABEE_NEWSLETTER_PROVIDER=none
EOF
if [[ $name == cnr-* ]]; then
echo BEABEE_CNR_MODE=true
else
cat <<EOF
BEABEE_NEWSLETTER_SETTINGS_APIKEY=???
BEABEE_NEWSLETTER_SETTINGS_DATACENTER=???
BEABEE_NEWSLETTER_SETTINGS_LISTID=???
BEABEE_NEWSLETTER_SETTINGS_WEBHOOKSECRET=$nl_secret
BEABEE_GOCARDLESS_ACCESSTOKEN=???
BEABEE_GOCARDLESS_SECRET=$gc_secret
BEABEE_GOCARDLESS_SANDBOX=false
BEABEE_STRIPE_PUBLICKEY=pk_live_???
BEABEE_STRIPE_SECRETKEY=sk_live_???
BEABEE_STRIPE_WEBHOOKSECRET=whsec_???
BEABEE_STRIPE_MEMBERSHIPPRODUCTID=prod_???
BEABEE_STRIPE_COUNTRY=eu
EOF
fi
echo
echo ===============================================================
echo
echo -- Database initialisation
cat <<EOF
CREATE USER "$db_name" WITH PASSWORD '$db_pass';
CREATE DATABASE "$db_name" WITH OWNER "$db_name";
\c "$db_name"
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
REVOKE ALL ON SCHEMA public FROM PUBLIC;
GRANT ALL ON SCHEMA public TO "$db_name";
CREATE SCHEMA invoices;
CREATE TABLE invoices.payment_seen (
id VARCHAR PRIMARY KEY,
added TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
GRANT USAGE ON SCHEMA public TO "beabee-invoices";
GRANT USAGE ON SCHEMA invoices TO "beabee-invoices";
GRANT SELECT, INSERT ON invoices.payment_seen TO "beabee-invoices";
-- Post migration step for invoicing
GRANT SELECT (starts) ON callout TO "beabee-invoices";
GRANT SELECT (id, "contributionMonthlyAmount", "contributionType") ON contact TO "beabee-invoices";
GRANT SELECT ON contact_role TO "beabee-invoices";
GRANT SELECT (id, amount, status, "chargeDate") ON payment TO "beabee-invoices";
EOF
echo
echo ===============================================================
echo
cat <<EOF
# DNS records
Type: CNAME
Name: $domain
Value: $name.clients.hive.beabee.io
... add other records
# Secrets
## GoCardless
Webhook URL: https://$domain/webhook/gc
Secret: $gc_secret
## Mailchimp
Webhook URL: https://$domain/webhook/mailchimp?secret=$nl_secret
EOF