mirror of
https://github.com/hyperknot/openfreemap.git
synced 2026-05-21 14:02:15 +00:00
host_config
This commit is contained in:
@@ -1 +1,4 @@
|
|||||||
SSH_PASSWD=x
|
SSH_PASSWD= # Leave it empty if you use SSH keys
|
||||||
|
DOMAIN_DIRECT=direct.openfreemap.org # Domain to server directly, without CloudFlare
|
||||||
|
DOMAIN_CF=tiles.openfreemap.org # Domain via CloudFlare, using origin certificates
|
||||||
|
SKIP_PLANET=false # Set to true to skip the full planet download. Useful for testing.
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
import json
|
||||||
|
import sys
|
||||||
|
|
||||||
import click
|
import click
|
||||||
from dotenv import dotenv_values
|
from dotenv import dotenv_values
|
||||||
@@ -11,7 +13,7 @@ from ssh_lib.nginx import certbot, nginx
|
|||||||
from ssh_lib.pkg_base import pkg_base, pkg_upgrade
|
from ssh_lib.pkg_base import pkg_base, pkg_upgrade
|
||||||
from ssh_lib.planetiler import planetiler
|
from ssh_lib.planetiler import planetiler
|
||||||
from ssh_lib.rclone import rclone
|
from ssh_lib.rclone import rclone
|
||||||
from ssh_lib.utils import add_user, enable_sudo, put, put_dir, sudo_cmd
|
from ssh_lib.utils import add_user, enable_sudo, put, put_dir, put_str, sudo_cmd
|
||||||
|
|
||||||
|
|
||||||
def prepare_shared(c):
|
def prepare_shared(c):
|
||||||
@@ -87,6 +89,26 @@ def prepare_tile_gen(c):
|
|||||||
c.sudo('chown ofm:ofm -R /data/ofm/tile_gen/bin')
|
c.sudo('chown ofm:ofm -R /data/ofm/tile_gen/bin')
|
||||||
|
|
||||||
|
|
||||||
|
def upload_http_host_config(c):
|
||||||
|
domain_direct = dotenv_values(f'{CONFIG_DIR}/.env').get('DOMAIN_DIRECT1', '').strip()
|
||||||
|
domain_cf = dotenv_values(f'{CONFIG_DIR}/.env').get('DOMAIN_CF', '').strip()
|
||||||
|
skip_planet = (
|
||||||
|
dotenv_values(f'{CONFIG_DIR}/.env').get('SKIP_PLANET', '').lower().strip() == 'true'
|
||||||
|
)
|
||||||
|
|
||||||
|
if not (domain_direct or domain_cf):
|
||||||
|
sys.exit('Please specify DOMAIN_DIRECT or DOMAIN_CF in config/.env')
|
||||||
|
|
||||||
|
host_config = {
|
||||||
|
'domain_direct': domain_direct,
|
||||||
|
'domain_cf': domain_cf,
|
||||||
|
'skip_planet': skip_planet,
|
||||||
|
}
|
||||||
|
|
||||||
|
host_config_str = json.dumps(host_config, indent=2, ensure_ascii=False)
|
||||||
|
put_str(c, '/data/ofm/config/http_host.json', host_config_str)
|
||||||
|
|
||||||
|
|
||||||
def prepare_http_host(c):
|
def prepare_http_host(c):
|
||||||
nginx(c)
|
nginx(c)
|
||||||
certbot(c)
|
certbot(c)
|
||||||
@@ -141,7 +163,7 @@ def install_benchmark(c):
|
|||||||
|
|
||||||
|
|
||||||
def get_connection(hostname, user, port):
|
def get_connection(hostname, user, port):
|
||||||
ssh_passwd = dotenv_values(f'{CONFIG_DIR}/.env').get('SSH_PASSWD')
|
ssh_passwd = dotenv_values(f'{CONFIG_DIR}/.env').get('SSH_PASSWD', '').strip()
|
||||||
|
|
||||||
if ssh_passwd:
|
if ssh_passwd:
|
||||||
print('Using SSH password')
|
print('Using SSH password')
|
||||||
@@ -185,7 +207,9 @@ def http_host_once(hostname, user, port):
|
|||||||
c = get_connection(hostname, user, port)
|
c = get_connection(hostname, user, port)
|
||||||
prepare_shared(c)
|
prepare_shared(c)
|
||||||
|
|
||||||
|
upload_http_host_config(c)
|
||||||
prepare_http_host(c)
|
prepare_http_host(c)
|
||||||
|
|
||||||
run_http_host_sync(c)
|
run_http_host_sync(c)
|
||||||
|
|
||||||
|
|
||||||
@@ -198,7 +222,9 @@ def http_host_autoupdate(hostname, user, port):
|
|||||||
c = get_connection(hostname, user, port)
|
c = get_connection(hostname, user, port)
|
||||||
prepare_shared(c)
|
prepare_shared(c)
|
||||||
|
|
||||||
|
upload_http_host_config(c)
|
||||||
prepare_http_host(c)
|
prepare_http_host(c)
|
||||||
|
|
||||||
add_http_host_cron(c)
|
add_http_host_cron(c)
|
||||||
|
|
||||||
|
|
||||||
@@ -218,9 +244,11 @@ def tile_gen(hostname, user, port):
|
|||||||
@common_options
|
@common_options
|
||||||
def debug(hostname, user, port):
|
def debug(hostname, user, port):
|
||||||
c = get_connection(hostname, user, port)
|
c = get_connection(hostname, user, port)
|
||||||
install_benchmark(c)
|
prepare_http_host(c)
|
||||||
# upload_https_host_files(c)
|
|
||||||
# run_http_host_sync(c)
|
upload_http_host_config(c)
|
||||||
|
upload_https_host_files(c)
|
||||||
|
run_http_host_sync(c)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import datetime
|
import datetime
|
||||||
|
import json
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
@@ -184,7 +185,9 @@ def sync(ctx):
|
|||||||
|
|
||||||
download_done = False
|
download_done = False
|
||||||
download_done += ctx.invoke(download_tileset, area='monaco')
|
download_done += ctx.invoke(download_tileset, area='monaco')
|
||||||
download_done += ctx.invoke(download_tileset, area='planet')
|
|
||||||
|
if not host_config.get('skip_planet'):
|
||||||
|
download_done += ctx.invoke(download_tileset, area='planet')
|
||||||
|
|
||||||
if download_done:
|
if download_done:
|
||||||
ctx.invoke(mount)
|
ctx.invoke(mount)
|
||||||
@@ -198,4 +201,11 @@ def sync(ctx):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
try:
|
||||||
|
with open('/data/ofm/config/http_host.json') as fp:
|
||||||
|
host_config = json.load(fp)
|
||||||
|
except Exception:
|
||||||
|
host_config = {}
|
||||||
|
|
||||||
|
print(host_config)
|
||||||
cli()
|
cli()
|
||||||
|
|||||||
Reference in New Issue
Block a user