]> git.immae.eu Git - perso/Immae/Config/Ansible.git/blame - roles/contexts/fretlink/templates/environment.j2
Fix a few strings and configurations, and add a fl_restoreDump script
[perso/Immae/Config/Ansible.git] / roles / contexts / fretlink / templates / environment.j2
CommitLineData
b7b8fe64
IB
1# vim: filetype=sh
2# Macaron
3# openssl rand -hex 32
4# URI: postgres:///db_name
5
6DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
7if ! $(echo "$PATH" | grep -q "$DIR/toolbox/scripts"); then
8 PATH="$DIR/toolbox/scripts:$PATH"
9fi
10
d4357f69
IB
11p() {
12 if [ -z "$2" ]; then
13 pass show Travail/Fretlink/$1
14 else
15 pass show Travail/Fretlink/$1 | grep "^$2:" | sed -e "s/^$2: //"
16 fi | head -n1
17}
18
b7b8fe64
IB
19build_macaroon() {
20 if [ "$1" = "--old" ]; then
21 shift
22 action="old-realms"
23 ttl=""
24 else
25 action="new"
26 ttl="--no-ttl"
27 fi
28
29 if [ -z "$1" -o -z "$2" -o -z "$3" -o -z "$4" ]; then
30 echo "build_macaroon [--old] secret src-key-id target realm" >&2
31 return
32 fi
33
34 secret="$1"
35 src="$2"
36 target="uri://fretlink/$3"
37 realm="$4"
38
90b63575 39 pushd "$HOME/workdir/haskell-commons" >/dev/null 2>/dev/null
b7b8fe64 40 MACAROON_PRIVATE_KEY="$secret" MACAROON_SECRET="$secret" stack exec macaroon-bakery -- $action --location "$target" --key-id "$src" $ttl "$realm"
90b63575 41 popd 2>/dev/null >/dev/null
b7b8fe64
IB
42}
43
44APP=$(basename $(pwd))
45
46FL_APPS_HOST="localhost"
47FL_APPS_SCHEME="http"
48
49FL_ADMIN_ROOT_PORT=8079
50FL_ADMIN_ROOT_PRIVATE_KEY="{{ lookup('passwordstore', 'Travail/Fretlink/Macaroons/AdminRoot subkey=PrivateKey') }}"
51FL_ADMIN_ROOT_URL="$FL_APPS_SCHEME://$FL_APPS_HOST:$FL_ADMIN_ROOT_PORT/api/"
52
53FL_APP_PORT=8080
54FL_APP_MONGO_URI="mongodb://localhost:27017/fretlink"
55FL_APP_SECRET="{{ lookup('passwordstore', 'Travail/Fretlink/Macaroons/App subkey=Secret') }}"
56FL_APP_URL="$FL_APPS_SCHEME://$FL_APPS_HOST:$FL_APP_PORT"
57
58FL_CARRIER_DIRECTORY_PORT=8082
59FL_CARRIER_DIRECTORY_SECRET="{{ lookup('passwordstore', 'Travail/Fretlink/Macaroons/CarrierDirectory subkey=Secret') }}"
60FL_CARRIER_DIRECTORY_PRIVATE_KEY="{{ lookup('passwordstore', 'Travail/Fretlink/Macaroons/CarrierDirectory subkey=PrivateKey') }}"
bf4da466 61FL_CARRIER_DIRECTORY_URL="$FL_APPS_SCHEME://$FL_APPS_HOST:$FL_CARRIER_DIRECTORY_PORT/api"
b7b8fe64
IB
62
63FL_NOTIFIER_PORT=8081
64FL_NOTIFIER_SECRET="{{ lookup('passwordstore', 'Travail/Fretlink/Macaroons/Notifier subkey=Secret') }}"
65FL_NOTIFIER_PRIVATE_KEY="{{ lookup('passwordstore', 'Travail/Fretlink/Macaroons/Notifier subkey=PrivateKey') }}"
66FL_NOTIFIER_URL="$FL_APPS_SCHEME://$FL_APPS_HOST:$FL_NOTIFIER_PORT/api"
67
68FL_PRICER_PORT=8083
69FL_PRICER_PRIVATE_KEY="{{ lookup('passwordstore', 'Travail/Fretlink/Macaroons/Pricer subkey=PrivateKey') }}"
70
71FL_FREIGHT_PORT=8084
72FL_FREIGHT_SECRET="{{ lookup('passwordstore', 'Travail/Fretlink/Macaroons/Freight subkey=Secret') }}"
73
74FL_BOOKKEEPING_SECRET="dummy"
39894a77 75FL_LANE_EXPLORER_SECRET="dummy"
b7b8fe64
IB
76
77FL_PSQL_HOST="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Local subkey=Host') }}"
78FL_PSQL_PORT="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Local subkey=Port') }}"
79FL_PSQL_USER="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Local subkey=User') }}"
80FL_PSQL_PASSWORD="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Local') }}"
81
39894a77
IB
82FL_CARRIER_DIRECTORY_DEV_PSQL_HOST="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/CarrierDirectory subkey=Host') }}"
83FL_CARRIER_DIRECTORY_DEV_PSQL_PORT="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/CarrierDirectory subkey=Port') }}"
84FL_CARRIER_DIRECTORY_DEV_PSQL_USER="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/CarrierDirectory subkey=User') }}"
85FL_CARRIER_DIRECTORY_DEV_PSQL_PASSWORD="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/CarrierDirectory') }}"
86FL_CARRIER_DIRECTORY_DEV_PSQL_DB="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/CarrierDirectory subkey=Database') }}"
87
b7b8fe64
IB
88FL_GEODATA_DEV_PSQL_HOST="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/Geodata subkey=Host') }}"
89FL_GEODATA_DEV_PSQL_PORT="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/Geodata subkey=Port') }}"
90FL_GEODATA_DEV_PSQL_USER="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/Geodata subkey=User') }}"
91FL_GEODATA_DEV_PSQL_PASSWORD="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/Geodata') }}"
92FL_GEODATA_DEV_PSQL_DB="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/Geodata subkey=Database') }}"
93
94FL_NOTIFIER_DEV_PSQL_HOST="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/Notifier subkey=Host') }}"
95FL_NOTIFIER_DEV_PSQL_PORT="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/Notifier subkey=Port') }}"
96FL_NOTIFIER_DEV_PSQL_USER="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/Notifier subkey=User') }}"
97FL_NOTIFIER_DEV_PSQL_PASSWORD="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/Notifier') }}"
98FL_NOTIFIER_DEV_PSQL_DB="{{ lookup('passwordstore', 'Travail/Fretlink/Psql/Dev/Notifier subkey=Database') }}"
99
100FL_TOOLBOX_AGENT_MACAROON="{{ lookup('passwordstore', 'Travail/Fretlink/Macaroons/ToolboxAgent') }}"
101
102if [ -f "local.env.example" ]; then
103 source local.env.example
104fi
105
106if [ "$APP" != "app" ]; then
107 name="${APP//-/_}"
108 port_var="FL_${name^^}_PORT"
109 secret_var="FL_${name^^}_SECRET"
110 private_key_var="FL_${name^^}_PRIVATE_KEY"
111
112 if [ -n "${!secret_var}" ]; then
113 export MACAROON_SECRET="${!secret_var}"
114 fi
115 if [ -n "${!private_key_var}" ]; then
116 export MACAROON_PRIVATE_KEY="${!private_key_var}"
117 fi
118 export PORT="${!port_var}"
119 export PG_URI="postgres:///$name"
120
121 if [ -z "$FL_ENV" ]; then
122 export POSTGRESQL_ADDON_HOST="$FL_PSQL_HOST"
123 export POSTGRESQL_ADDON_PORT="$FL_PSQL_PORT"
124 export POSTGRESQL_ADDON_USER="$FL_PSQL_USER"
125 export POSTGRESQL_ADDON_PASSWORD="$FL_PSQL_PASSWORD"
126 export POSTGRESQL_ADDON_DB="$name"
127 else
128 postgresql_host="FL_${name^^}_${FL_ENV^^}_PSQL_HOST"
129 postgresql_port="FL_${name^^}_${FL_ENV^^}_PSQL_PORT"
130 postgresql_user="FL_${name^^}_${FL_ENV^^}_PSQL_USER"
131 postgresql_password="FL_${name^^}_${FL_ENV^^}_PSQL_PASSWORD"
132 postgresql_db="FL_${name^^}_${FL_ENV^^}_PSQL_DB"
133 export FRETLINK_ENV="$FL_ENV"
134 export POSTGRESQL_ADDON_HOST="${!postgresql_host}"
135 export POSTGRESQL_ADDON_PORT="${!postgresql_port}"
136 export POSTGRESQL_ADDON_USER="${!postgresql_user}"
137 export POSTGRESQL_ADDON_PASSWORD="${!postgresql_password}"
138 export POSTGRESQL_ADDON_DB="${!postgresql_db}"
139 fi
140fi
141
142if [ "$APP" = "app" ]; then
143 export FRETLINK_MONGO_URI="$FL_APP_MONGO_URI"
144 export FRETLINK_PORT="$FL_APP_PORT"
145 export FRETLINK_BASE_URL="$FL_APP_URL"
146
147 # Dummies mandatory but not defined by default
148 export FRETLINK_SMTP_PASSWORD="password"
149 export FRETLINK_AMAZON_PUBLIC_KEY="password"
150 export FRETLINK_AMAZON_PRIVATE_KEY="password"
151 export FRETLINK_GMAPS_API_KEY="password"
bf4da466 152 export FRETLINK_PASSWORD_REQUEST_SECRET="password"
b7b8fe64
IB
153
154 # secret
155 export FRETLINK_MACAROON_SECRET=$FL_APP_SECRET
156
157 # carrier directory
bf4da466 158 export CARRIER_DIRECTORY_URI="$FL_CARRIER_DIRECTORY_URL/"
b7b8fe64
IB
159 export FRETLINK_CARDIR_URL="$FL_CARRIER_DIRECTORY_URL"
160 export FRETLINK_CARDIR_ENABLED="true"
bf4da466 161 export FRETLINK_CARDIRV3_ACCESS_KEY="$(build_macaroon $FL_CARRIER_DIRECTORY_SECRET carrier-directory carrier-directory carrier-directory::read)"
b7b8fe64
IB
162
163 # notifier
164 export FRETLINK_NOTIFIER_API=$FL_NOTIFIER_URL
39894a77 165 export FRETLINK_NOTIFIER_ACCESS_KEY="$(build_macaroon $FL_NOTIFIER_SECRET notifier notifier messaging)"
b7b8fe64
IB
166 export FRETLINK_NOTIFIER_TRANSPOREON_ACCESS_KEY="$(build_macaroon --old $FL_NOTIFIER_PRIVATE_KEY notifier notifier external)"
167 export FRETLINK_NOTIFIER_TRANSPOREON_ENABLED="true"
168
39894a77
IB
169 export FRETLINK_NOTIFIER_ENABLED="true"
170 export FRETLINK_NOTIFIER_AMQP_ENABLED="true"
171 export FRETLINK_NOTIFIER_AMQP_TLS="{{ lookup('passwordstore', 'Travail/Fretlink/Rabbitmq/Local/Notifier subkey=TLS') }}"
172 export FRETLINK_NOTIFIER_AMQP_USER="{{ lookup('passwordstore', 'Travail/Fretlink/Rabbitmq/Local/Notifier subkey=User') }}"
173 export FRETLINK_NOTIFIER_AMQP_PASSWORD="{{ lookup('passwordstore', 'Travail/Fretlink/Rabbitmq/Local/Notifier') }}"
174 export FRETLINK_NOTIFIER_AMQP_HOSTS="{{ lookup('passwordstore', 'Travail/Fretlink/Rabbitmq/Local/Notifier subkey=Hosts') }}"
175 export FRETLINK_NOTIFIER_AMQP_QUEUE="{{ lookup('passwordstore', 'Travail/Fretlink/Rabbitmq/Local/Notifier subkey=Queue') }}"
176 export FRETLINK_NOTIFIER_AMQP_EXCHANGE="{{ lookup('passwordstore', 'Travail/Fretlink/Rabbitmq/Local/Notifier subkey=Exchange') }}"
177 export FRETLINK_NOTIFIER_AMQP_PORT="{{ lookup('passwordstore', 'Travail/Fretlink/Rabbitmq/Local/Notifier subkey=Port') }}"
178 export FRETLINK_NOTIFIER_AMQP_VHOST="{{ lookup('passwordstore', 'Travail/Fretlink/Rabbitmq/Local/Notifier subkey=Vhost') }}"
179
180
b7b8fe64
IB
181 # admin-root
182 export FRETLINK_ADMINROOT_URL=$FL_ADMIN_ROOT_URL
183 export FRETLINK_ADMINROOT_ACCESS_KEY="$(build_macaroon $FL_ADMIN_ROOT_PRIVATE_KEY admin-root admin-root admin-root::token-delivery)"
184
185 # geodata
186 export FRETLINK_GEODATA_API="{{ lookup('passwordstore', 'Travail/Fretlink/Macaroons/GeodataDev subkey=Url') }}"
187 export FRETLINK_GEODATA_ACCESS_KEY="{{ lookup('passwordstore', 'Travail/Fretlink/Macaroons/GeodataDev') }}"
bf4da466 188 export GEODATA_URI="$FRETLINK_GEODATA_API"
b7b8fe64
IB
189fi
190
191if [ "$APP" = "admin-root" ]; then
192 export BASE_URL=$FL_APPS_HOST
193 export API_ROOT="http://$BASE_URL:$PORT/api"
194 export UI_ROOT="http://$BASE_URL:$PORT/admin"
195 export TOK="$(build_macaroon $FL_ADMIN_ROOT_PRIVATE_KEY admin-root admin-root admin-root::provisioning)"
196
197 export CARDIR_MACAROON_SECRET=$FL_CARRIER_DIRECTORY_SECRET
198 export NOTIFIER_MACAROON_SECRET=$FL_NOTIFIER_SECRET
199 export BOOKKEEPING_MACAROON_SECRET=$FL_BOOKKEEPING_SECRET
39894a77 200 export LANE_EXPLORER_MACAROON_SECRET=$FL_LANE_EXPLORER_SECRET
b7b8fe64
IB
201fi
202
203if [ "$APP" = "carrier-directory" ]; then
204 export ADMIN_BASE_URL=$FL_APP_URL
bf4da466 205 export ACCESS_KEY="$(build_macaroon $FL_CARRIER_DIRECTORY_SECRET carrier-directory carrier-directory carrier-directory::read)"
b7b8fe64
IB
206fi
207
208if [ "$APP" = "notifier" ]; then
209 export MAILGUN_API_KEY="dummy"
210 export MAILGUN_DOMAIN="dummy"
211 export TEMPLATES_ASSETS_BASE_URL="http://dummy/"
212 export TRANSPOREON_USER="{{ lookup('passwordstore', 'Travail/Fretlink/Transporeon/ApiTest subkey=Login') }}"
213 export TRANSPOREON_PASSWORD="{{ lookup('passwordstore', 'Travail/Fretlink/Transporeon/ApiTest') }}"
d4357f69 214 export TRANSPOREON_HOST="api.test.transporeon.com"
b7b8fe64
IB
215 export TRANSPOREON_CALLBACK_USER="{{ lookup('passwordstore', 'Travail/Fretlink/Transporeon/NotifierCallbackTest subkey=Login') }}"
216 export TRANSPOREON_CALLBACK_PASSWORD="{{ lookup('passwordstore', 'Travail/Fretlink/Transporeon/NotifierCallbackTest') }}"
217
218 # Used by curl
219 # v2
220 #export MACAROON="$(build_macaroon $FL_NOTIFIER_SECRET notifier notifier external)"
221 # v1
222 export MACAROON="$(build_macaroon --old $FL_NOTIFIER_PRIVATE_KEY notifier notifier external)"
223
224 # To push transporeon cargos to app
90b63575
IB
225 export TRANSPOREON_APP_PUSH_URL="http://localhost:8080/api/transporeon/cargo"
226 export TRANSPOREON_APP_PUSH_MACAROON="$(build_macaroon $FL_APP_SECRET notifier app app::transporeon-cargos-write)"
39894a77
IB
227
228 # AMQP
229 export AMQP_VHOST="notifier"
230 export AMQP_USER="notifier"
231 export AMQP_PASSWORD="notifier"
232 export AMQP_QUEUE="notifier"
233 export AMQP_SERVER="localhost"
234 export AMQP_TLS="false"
b7b8fe64
IB
235fi
236
237if [ "$APP" = "pricer" ]; then
238 export GOOGLE_AUTH_CLIENT_ID="dummy"
239fi
240
241if [ "$APP" = "toolbox" ]; then
242 export AGENT_HOST=$FL_APP_URL
243 export AGENT_PATH="/"
244 export AGENT_MACAROON=$FL_TOOLBOX_AGENT_MACAROON
245fi