Skip to content

Commit 1e24e08

Browse files
committed
feature: Added generate-compose script.
1 parent 43438bf commit 1e24e08

File tree

3 files changed

+50
-2
lines changed

3 files changed

+50
-2
lines changed

.config

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[MANDATORY]
2+
SETTING_EXTERNAL_HOST = localhost.localdomain
3+
SETTING_ZULIP_ADMINISTRATOR = [email protected]
4+
5+
[SECRETS]
6+
POSTGRES_PASSWORD = REPLACE_WITH_SECURE_POSTGRES_PASSWORD
7+
MEMCACHED_PASSWORD = REPLACE_WITH_SECURE_MEMCACHED_PASSWORD
8+
RABBITMQ_DEFAULT_PASS = REPLACE_WITH_SECURE_RABBITMQ_PASSWORD
9+
REDIS_PASSWORD = REPLACE_WITH_SECURE_REDIS_PASSWORD
10+
SECRETS_secret_key = REPLACE_WITH_SECURE_SECRET_KEY

docker-compose.yml docker-compose.yml.in

+2-2
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ services:
7676
SECRETS_memcached_password: 'REPLACE_WITH_SECURE_MEMCACHED_PASSWORD'
7777
SECRETS_redis_password: 'REPLACE_WITH_SECURE_REDIS_PASSWORD'
7878
SECRETS_secret_key: 'REPLACE_WITH_SECURE_SECRET_KEY'
79-
SETTING_EXTERNAL_HOST: 'localhost.localdomain'
80-
SETTING_ZULIP_ADMINISTRATOR: '[email protected]'
79+
SETTING_EXTERNAL_HOST: 'REPLACE_WITH_EXTERNAL_HOST'
80+
SETTING_ZULIP_ADMINISTRATOR: 'REPLACE_WITH_ADMIN_EMAIL'
8181
SETTING_EMAIL_HOST: '' # e.g. smtp.example.com
8282
SETTING_EMAIL_HOST_USER: '[email protected]'
8383
SETTING_EMAIL_PORT: '587'

scripts/generate-compose

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#!/usr/bin/env python3
2+
import configparser
3+
import secrets
4+
5+
compose_template = open('docker-compose.yml.in', 'r').read()
6+
7+
config = configparser.ConfigParser()
8+
config.read('.config')
9+
10+
modified_compose = compose_template.replace('REPLACE_WITH_EXTERNAL_HOST', config['MANDATORY']['SETTING_EXTERNAL_HOST'])
11+
modified_compose = modified_compose.replace('REPLACE_WITH_ADMIN_EMAIL', config['MANDATORY']['SETTING_ZULIP_ADMINISTRATOR'])
12+
13+
if config['SECRETS']['POSTGRES_PASSWORD'] == 'REPLACE_WITH_SECURE_POSTGRES_PASSWORD':
14+
modified_compose = modified_compose.replace('REPLACE_WITH_SECURE_POSTGRES_PASSWORD', secrets.token_hex(32))
15+
else:
16+
modified_compose = modified_compose.replace('REPLACE_WITH_SECURE_POSTGRES_PASSWORD', config['SECRETS']['POSTGRES_PASSWORD'])
17+
18+
if config['SECRETS']['MEMCACHED_PASSWORD'] == 'REPLACE_WITH_SECURE_MEMCACHED_PASSWORD':
19+
modified_compose = modified_compose.replace('REPLACE_WITH_SECURE_MEMCACHED_PASSWORD', secrets.token_hex(32))
20+
else:
21+
modified_compose = modified_compose.replace('REPLACE_WITH_SECURE_MEMCACHED_PASSWORD', config['SECRETS']['MEMCACHED_PASSWORD'])
22+
23+
if config['SECRETS']['RABBITMQ_DEFAULT_PASS'] == 'REPLACE_WITH_SECURE_RABBITMQ_PASSWORD':
24+
modified_compose = modified_compose.replace('REPLACE_WITH_SECURE_RABBITMQ_PASSWORD', secrets.token_hex(32))
25+
else:
26+
modified_compose = modified_compose.replace('REPLACE_WITH_SECURE_RABBITMQ_PASSWORD', config['SECRETS']['RABBITMQ_DEFAULT_PASS'])
27+
28+
if config['SECRETS']['REDIS_PASSWORD'] == 'REPLACE_WITH_SECURE_REDIS_PASSWORD':
29+
modified_compose = modified_compose.replace('REPLACE_WITH_SECURE_REDIS_PASSWORD', secrets.token_hex(32))
30+
else:
31+
modified_compose = modified_compose.replace('REPLACE_WITH_SECURE_REDIS_PASSWORD', config['SECRETS']['REDIS_PASSWORD'])
32+
33+
if config['SECRETS']['SECRETS_secret_key'] == 'REPLACE_WITH_SECURE_SECRET_KEY':
34+
modified_compose = modified_compose.replace('REPLACE_WITH_SECURE_SECRET_KEY', ''.join(secrets.choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)))
35+
else:
36+
modified_compose = modified_compose.replace('REPLACE_WITH_SECURE_SECRET_KEY', config['SECRETS']['SECRETS_secret_key'])
37+
38+
open('docker-compose.yml', 'w').write(modified_compose)

0 commit comments

Comments
 (0)