{"owner":"amidaware","repo":"tacticalrmm","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"docker/docker-compose.yml","servicesCount":12,"services":[{"name":"tactical-postgres","image":"postgres:13-alpine","restart":"always","environment":["POSTGRES_DB=tacticalrmm","POSTGRES_USER=${POSTGRES_USER}","POSTGRES_PASSWORD=${POSTGRES_PASS}"],"volumes":["postgres_data:/var/lib/postgresql/data"]},{"name":"tactical-redis","image":"redis:6.0-alpine","restart":"always","command":"redis-server","volumes":["redis_data:/data"]},{"name":"tactical-init","image":"${IMAGE_REPO}tactical:${VERSION}","restart":"on-failure","command":"tactical-init","environment":["POSTGRES_USER=${POSTGRES_USER}","POSTGRES_PASS=${POSTGRES_PASS}","APP_HOST=${APP_HOST}","API_HOST=${API_HOST}","CSRF_COOKIE_DOMAIN=${CSRF_COOKIE_DOMAIN}","SESSION_COOKIE_DOMAIN=${SESSION_COOKIE_DOMAIN}","MESH_USER=${MESH_USER}","MESH_HOST=${MESH_HOST}","TRMM_USER=${TRMM_USER}","TRMM_PASS=${TRMM_PASS}","TRMM_DISABLE_WEB_TERMINAL=${TRMM_DISABLE_WEB_TERMINAL}","TRMM_DISABLE_SERVER_SCRIPTS=${TRMM_DISABLE_SERVER_SCRIPTS}","TRMM_DISABLE_SSO=${TRMM_DISABLE_SSO}"],"volumes":["tactical_data:/opt/tactical","mesh_data:/meshcentral-data","mongo_data:/mongo/data/db","redis_data:/redis/data"],"depends_on":["tactical-postgres","tactical-meshcentral","tactical-redis"]},{"name":"tactical-nats","image":"${IMAGE_REPO}tactical-nats:${VERSION}","restart":"always","environment":["API_HOST=${API_HOST}"],"volumes":["tactical_data:/opt/tactical"]},{"name":"tactical-meshcentral","image":"${IMAGE_REPO}tactical-meshcentral:${VERSION}","restart":"always","environment":["MESH_HOST=${MESH_HOST}","MESH_USER=${MESH_USER}","MESH_PASS=${MESH_PASS}","MONGODB_USER=${MONGODB_USER}","MONGODB_PASSWORD=${MONGODB_PASSWORD}","MESH_PERSISTENT_CONFIG=${MESH_PERSISTENT_CONFIG}"],"volumes":["tactical_data:/opt/tactical","mesh_data:/home/node/app/meshcentral-data"],"depends_on":["tactical-mongodb"]},{"name":"tactical-mongodb","image":"mongo:4.4","restart":"always","environment":["MONGO_INITDB_ROOT_USERNAME=${MONGODB_USER}","MONGO_INITDB_ROOT_PASSWORD=${MONGODB_PASSWORD}","MONGO_INITDB_DATABASE=meshcentral"],"volumes":["mongo_data:/data/db"]},{"name":"tactical-frontend","image":"${IMAGE_REPO}tactical-frontend:${VERSION}","restart":"always","environment":["API_HOST=${API_HOST}"],"volumes":["tactical_data:/opt/tactical"]},{"name":"tactical-backend","image":"${IMAGE_REPO}tactical:${VERSION}","restart":"always","command":"tactical-backend","volumes":["tactical_data:/opt/tactical"],"depends_on":["tactical-postgres"]},{"name":"tactical-websockets","image":"${IMAGE_REPO}tactical:${VERSION}","restart":"always","command":"tactical-websockets","volumes":["tactical_data:/opt/tactical"],"depends_on":["tactical-postgres","tactical-backend"]},{"name":"tactical-nginx","image":"${IMAGE_REPO}tactical-nginx:${VERSION}","restart":"always","ports":["${TRMM_HTTP_PORT-80}:8080","${TRMM_HTTPS_PORT-443}:4443"],"environment":["APP_HOST=${APP_HOST}","API_HOST=${API_HOST}","MESH_HOST=${MESH_HOST}","CERT_PUB_KEY=${CERT_PUB_KEY}","CERT_PRIV_KEY=${CERT_PRIV_KEY}"],"volumes":["tactical_data:/opt/tactical"]},{"name":"tactical-celery","image":"${IMAGE_REPO}tactical:${VERSION}","restart":"always","command":"tactical-celery","volumes":["tactical_data:/opt/tactical"],"depends_on":["tactical-postgres","tactical-redis"]},{"name":"tactical-celerybeat","image":"${IMAGE_REPO}tactical:${VERSION}","restart":"always","command":"tactical-celerybeat","volumes":["tactical_data:/opt/tactical"],"depends_on":["tactical-postgres","tactical-redis"]}],"exposedPorts":["80","443"],"dockerRunCommand":"docker run -d --name tacticalrmm -p 80:80 --restart always postgres:13-alpine","podmanRunCommand":"podman run -d --name tacticalrmm -p 80:80 --restart always postgres:13-alpine","skopeoInspectCommand":"skopeo inspect docker://docker.io/library/postgres:13-alpine","orasPullCommand":"oras pull postgres:13-alpine","registryMeta":{"provider":"dockerhub","image":"library/postgres","canonicalImage":"docker.io/library/postgres:13-alpine","latestTag":"13-alpine","cliCommands":{"dockerRun":"docker run -d --name tacticalrmm -p 80:80 --restart always postgres:13-alpine","dockerPull":"docker pull postgres:13-alpine","podmanRun":"podman run -d --name tacticalrmm -p 80:80 --restart always postgres:13-alpine","skopeoInspect":"skopeo inspect docker://docker.io/library/postgres:13-alpine","orasPull":"oras pull postgres:13-alpine","composeYaml":"services:\n  tacticalrmm:\n    image: postgres:13-alpine\n    restart: unless-stopped\n    ports:\n      - \"80:80\""}}}