Files
alo-cluster/services/webodm.hcl

142 lines
2.6 KiB
HCL

job "odm" {
datacenters = ["alo"]
group "admin" {
network {
port "ui" {
to = 8000
}
}
task "web" {
driver = "docker"
config {
image = "opendronemap/webodm_webapp"
ports = ["ui"]
command = "/webodm/start.sh"
volumes = [
"/data/compute/appdata/webodm:/webodm/app/media",
"local/local_settings.py:/webodm/webodm/local_settings.py:ro",
]
}
env {
WO_DEBUG = "NO"
WO_DEV = "NO"
WO_SSL = "NO"
WO_BROKER = "redis://redis.service.consul"
}
template {
data = <<EOH
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'webodm',
'USER': 'webodm',
'PASSWORD': 'ura3quohguzeikaiCaab',
'HOST': 'postgres.service.consul',
'PORT': '5432',
}
}
EOH
destination = "local/local_settings.py"
}
resources {
cpu = 500
memory = 1200
}
service {
name = "webodm"
port = "ui"
tags = [
"traefik.enable=true",
"traefik.http.routers.webodm.entryPoints=websecure",
"traefik.http.routers.webodm.middlewares=authentik@file",
]
}
}
}
group "worker" {
count = 2
spread {
attribute = "${node.unique.id}"
}
constraint {
distinct_hosts = true
}
network {
port "api" {
static = 3000
}
}
task "celery" {
driver = "docker"
config {
image = "opendronemap/webodm_webapp"
command = "/webodm/worker.sh"
args = ["start"]
volumes = [
"/data/compute/appdata/webodm:/webodm/app/media",
"local/local_settings.py:/webodm/webodm/local_settings.py:ro",
]
}
env {
WO_DEBUG = "NO"
WO_DEV = "NO"
WO_SSL = "NO"
WO_BROKER = "redis://redis.service.consul"
}
template {
data = <<EOH
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'webodm',
'USER': 'webodm',
'PASSWORD': 'ura3quohguzeikaiCaab',
'HOST': 'postgres.service.consul',
'PORT': '5432',
}
}
EOH
destination = "local/local_settings.py"
}
resources {
cpu = 200
memory = 512
}
}
task "nodeodm" {
driver = "docker"
config {
image = "opendronemap/nodeodm"
ports = ["api"]
}
resources {
cpu = 1000
memory = 512
}
service {
name = "nodeodm"
port = "api"
}
}
}
}