Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2eefedadb3 | ||
|
|
e63d7a0b8a | ||
|
|
2a1b1849fa | ||
|
|
0461cb7f19 | ||
|
|
0932e0be03 | ||
|
|
4638ac9474 | ||
|
|
d8d7255029 | ||
|
|
fa05276c3f | ||
|
|
e50a5d51d8 | ||
|
|
c03ba78587 |
@@ -15,7 +15,7 @@ EXE_DIR = os.path.join(BASE_DIR, "tacticalrmm/private/exe")
|
||||
AUTH_USER_MODEL = "accounts.User"
|
||||
|
||||
# latest release
|
||||
TRMM_VERSION = "0.10.1"
|
||||
TRMM_VERSION = "0.10.2"
|
||||
|
||||
# bump this version everytime vue code is changed
|
||||
# to alert user they need to manually refresh their browser
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
from django.conf import settings
|
||||
from django.urls import include, path, register_converter
|
||||
from knox import views as knox_views
|
||||
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView
|
||||
|
||||
from accounts.views import CheckCreds, LoginView
|
||||
from core.consumers import DashInfo
|
||||
@@ -38,12 +37,6 @@ urlpatterns = [
|
||||
path("scripts/", include("scripts.urls")),
|
||||
path("alerts/", include("alerts.urls")),
|
||||
path("accounts/", include("accounts.urls")),
|
||||
path("api/schema/", SpectacularAPIView.as_view(), name="schema"),
|
||||
path(
|
||||
"api/schema/swagger-ui/",
|
||||
SpectacularSwaggerView.as_view(url_name="schema"),
|
||||
name="swagger-ui",
|
||||
),
|
||||
]
|
||||
|
||||
if hasattr(settings, "ADMIN_ENABLED") and settings.ADMIN_ENABLED:
|
||||
@@ -51,6 +44,18 @@ if hasattr(settings, "ADMIN_ENABLED") and settings.ADMIN_ENABLED:
|
||||
|
||||
urlpatterns += (path(settings.ADMIN_URL, admin.site.urls),)
|
||||
|
||||
if hasattr(settings, "SWAGGER_ENABLED") and settings.SWAGGER_ENABLED:
|
||||
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView
|
||||
|
||||
urlpatterns += (
|
||||
path("api/schema/", SpectacularAPIView.as_view(), name="schema"),
|
||||
path(
|
||||
"api/schema/swagger-ui/",
|
||||
SpectacularSwaggerView.as_view(url_name="schema"),
|
||||
name="swagger-ui",
|
||||
),
|
||||
)
|
||||
|
||||
ws_urlpatterns = [
|
||||
path("ws/dashinfo/", DashInfo.as_asgi()), # type: ignore
|
||||
]
|
||||
|
||||
@@ -8,17 +8,16 @@ networks:
|
||||
driver: default
|
||||
config:
|
||||
- subnet: 172.20.0.0/24
|
||||
api-db:
|
||||
redis:
|
||||
mesh-db:
|
||||
api-db: null
|
||||
redis: null
|
||||
mesh-db: null # docker managed persistent volumes
|
||||
|
||||
# docker managed persistent volumes
|
||||
volumes:
|
||||
tactical_data:
|
||||
postgres_data:
|
||||
mongo_data:
|
||||
mesh_data:
|
||||
redis_data:
|
||||
tactical_data: null
|
||||
postgres_data: null
|
||||
mongo_data: null
|
||||
mesh_data: null
|
||||
redis_data: null
|
||||
|
||||
services:
|
||||
# postgres database for api service
|
||||
@@ -41,7 +40,7 @@ services:
|
||||
image: redis:6.0-alpine
|
||||
command: redis-server --appendonly yes
|
||||
restart: always
|
||||
volumes:
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
networks:
|
||||
- redis
|
||||
@@ -51,7 +50,7 @@ services:
|
||||
container_name: trmm-init
|
||||
image: ${IMAGE_REPO}tactical:${VERSION}
|
||||
restart: on-failure
|
||||
command: ["tactical-init"]
|
||||
command: [ "tactical-init" ]
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASS: ${POSTGRES_PASS}
|
||||
@@ -63,13 +62,13 @@ services:
|
||||
TRMM_PASS: ${TRMM_PASS}
|
||||
depends_on:
|
||||
- tactical-postgres
|
||||
- tactical-meshcentral
|
||||
- tactical-meshcentral
|
||||
networks:
|
||||
- api-db
|
||||
- proxy
|
||||
volumes:
|
||||
- tactical_data:/opt/tactical
|
||||
|
||||
|
||||
# nats
|
||||
tactical-nats:
|
||||
container_name: trmm-nats
|
||||
@@ -82,6 +81,7 @@ services:
|
||||
volumes:
|
||||
- tactical_data:/opt/tactical
|
||||
networks:
|
||||
api-db: null
|
||||
proxy:
|
||||
aliases:
|
||||
- ${API_HOST}
|
||||
@@ -91,7 +91,7 @@ services:
|
||||
container_name: trmm-meshcentral
|
||||
image: ${IMAGE_REPO}tactical-meshcentral:${VERSION}
|
||||
restart: always
|
||||
environment:
|
||||
environment:
|
||||
MESH_HOST: ${MESH_HOST}
|
||||
MESH_USER: ${MESH_USER}
|
||||
MESH_PASS: ${MESH_PASS}
|
||||
@@ -102,7 +102,7 @@ services:
|
||||
proxy:
|
||||
aliases:
|
||||
- ${MESH_HOST}
|
||||
mesh-db:
|
||||
mesh-db: null
|
||||
volumes:
|
||||
- tactical_data:/opt/tactical
|
||||
- mesh_data:/home/node/app/meshcentral-data
|
||||
@@ -137,7 +137,7 @@ services:
|
||||
tactical-backend:
|
||||
container_name: trmm-backend
|
||||
image: ${IMAGE_REPO}tactical:${VERSION}
|
||||
command: ["tactical-backend"]
|
||||
command: [ "tactical-backend" ]
|
||||
restart: always
|
||||
networks:
|
||||
- proxy
|
||||
@@ -152,7 +152,7 @@ services:
|
||||
tactical-websockets:
|
||||
container_name: trmm-websockets
|
||||
image: ${IMAGE_REPO}tactical:${VERSION}
|
||||
command: ["tactical-websockets"]
|
||||
command: [ "tactical-websockets" ]
|
||||
restart: always
|
||||
networks:
|
||||
- proxy
|
||||
@@ -188,7 +188,7 @@ services:
|
||||
tactical-celery:
|
||||
container_name: trmm-celery
|
||||
image: ${IMAGE_REPO}tactical:${VERSION}
|
||||
command: ["tactical-celery"]
|
||||
command: [ "tactical-celery" ]
|
||||
restart: always
|
||||
networks:
|
||||
- redis
|
||||
@@ -204,7 +204,7 @@ services:
|
||||
tactical-celerybeat:
|
||||
container_name: trmm-celerybeat
|
||||
image: ${IMAGE_REPO}tactical:${VERSION}
|
||||
command: ["tactical-celerybeat"]
|
||||
command: [ "tactical-celerybeat" ]
|
||||
restart: always
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
BIN
docs/docs/images/tipsntricks_filters.png
Normal file
BIN
docs/docs/images/tipsntricks_filters.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
There's pluses and minuses to each install type. Be aware that:
|
||||
|
||||
- There is no migration script, once you've installed with one type there is no "conversion". You'll be installing a new server and migrating agents if you decide to go another way.
|
||||
- There is no migration script, once you've installed with one type there is no "conversion". You'll be installing a new server and migrating agents manually if you decide to go another way.
|
||||
|
||||
## Traditional Install
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
#### Hardware / OS
|
||||
|
||||
A fresh linux VM running either Ubuntu 20.04 LTS or Debian 10 with 3GB RAM
|
||||
A fresh linux VM running either Ubuntu 20.04 LTS or Debian 10/11 with 3GB RAM
|
||||
|
||||
!!!warning
|
||||
The provided install script assumes a fresh server with no software installed on it. Attempting to run it on an existing server with other services **will** break things and the install will fail.
|
||||
@@ -65,6 +65,9 @@ usermod -a -G sudo tactical
|
||||
!!!tip
|
||||
[Enable passwordless sudo to make your life easier](https://linuxconfig.org/configure-sudo-without-password-on-ubuntu-20-04-focal-fossa-linux)
|
||||
|
||||
!!!note
|
||||
You will never login to the server again as `root` again unless something has gone horribly wrong, and you're working with the developers.
|
||||
|
||||
### Setup the firewall (optional but highly recommended)
|
||||
|
||||
!!!info
|
||||
|
||||
@@ -8,6 +8,11 @@ At the top right of your web administration interface, click your Username > pre
|
||||
|
||||
*****
|
||||
|
||||
## Use the filters in the agent list
|
||||
|
||||

|
||||
|
||||
*****
|
||||
## MeshCentral
|
||||
|
||||
Tactical RMM is actually 2 products: An RMM service with agent, and a secondary [MeshCentral](https://github.com/Ylianst/MeshCentral) install that handles the `Take Control` and `Remote Background` stuff.
|
||||
|
||||
@@ -63,9 +63,44 @@ If you have agents that are relatively old, you will need to uninstall them manu
|
||||
|
||||
## Agents not checking in or showing up / General agent issues
|
||||
|
||||
These are nats problems. Try quickfix first:
|
||||
|
||||
### from Admin Web Interface
|
||||
|
||||
First, reload NATS from tactical's web UI:<br>
|
||||
*Tools > Server Maintenance > Reload Nats Configuration*
|
||||
|
||||
If that doesn't work, check each part starting with the server:
|
||||
|
||||
### Server SSH login
|
||||
|
||||
Reload NATS:
|
||||
|
||||
```bash
|
||||
/rmm/api/env/bin/python /rmm/api/tacticalrmm/manage.py reload_nats
|
||||
sudo systemctl restart nats
|
||||
```
|
||||
|
||||
Look at nats service errors (make sure it's running)
|
||||
|
||||
```bash
|
||||
sudo systemctl status nats
|
||||
```
|
||||
|
||||
If nats isn't running see detailed reason why it isn't:
|
||||
|
||||
```bash
|
||||
sudo systemctl stop nats
|
||||
nats-server -DVV -c /rmm/api/tacticalrmm/nats-rmm.conf
|
||||
```
|
||||
|
||||
Fix the problem, then restart nats.
|
||||
```
|
||||
sudo systemctl restart nats
|
||||
```
|
||||
|
||||
### From Agent Install
|
||||
|
||||
Open CMD as admin on the problem computer and stop the agent services:
|
||||
|
||||
```cmd
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
## Updating to the latest RMM version
|
||||
|
||||
!!!question
|
||||
You have a [backup](https://docs.docker.com/desktop/backup-and-restore/) right?
|
||||
|
||||
Tactical RMM updates the docker images on every release and should be available within a few minutes
|
||||
|
||||
SSH into your server as a root user and run the below commands:
|
||||
|
||||
@@ -19,13 +19,16 @@ Other than this, you should avoid making any changes to your server and let the
|
||||
|
||||
Sometimes, manual intervention will be required during an update in the form of yes/no prompts, so attempting to automate this will ignore these prompts and cause your installation to break.
|
||||
|
||||
SSH into your server as the linux user you created during install.
|
||||
SSH into your server as the linux user you created during install (eg `tactical`).
|
||||
|
||||
!!!danger
|
||||
__Never__ run any update scripts or commands as the `root` user.
|
||||
|
||||
This will mess up permissions and break your installation.
|
||||
|
||||
!!!question
|
||||
You have a [backup](backup.md) right?
|
||||
|
||||
Download the update script and run it:
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user