mirror of
https://github.com/Crosstalk-Solutions/project-nomad.git
synced 2026-03-28 03:29:25 +01:00
docs: improve docs for advanced install
This commit is contained in:
parent
5dc48477f6
commit
1c179efde2
|
|
@ -21,13 +21,16 @@ Project N.O.M.A.D. can be installed on any Debian-based operating system (we rec
|
||||||
|
|
||||||
*Note: sudo/root privileges are required to run the install script*
|
*Note: sudo/root privileges are required to run the install script*
|
||||||
|
|
||||||
#### Quick Install
|
#### Quick Install (Debian-based OS Only)
|
||||||
```bash
|
```bash
|
||||||
sudo apt-get update && sudo apt-get install -y curl && curl -fsSL https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/install/install_nomad.sh -o install_nomad.sh && sudo bash install_nomad.sh
|
sudo apt-get update && sudo apt-get install -y curl && curl -fsSL https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/install/install_nomad.sh -o install_nomad.sh && sudo bash install_nomad.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Project N.O.M.A.D. is now installed on your device! Open a browser and navigate to `http://localhost:8080` (or `http://DEVICE_IP:8080`) to start exploring!
|
Project N.O.M.A.D. is now installed on your device! Open a browser and navigate to `http://localhost:8080` (or `http://DEVICE_IP:8080`) to start exploring!
|
||||||
|
|
||||||
|
### Advanced Installation
|
||||||
|
For more control over the installation process, copy and paste the [Docker Compose template](https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/install/management_compose.yml) into a `docker-compose.yml` file and customize it to your liking (be sure to replace any placeholders with your actual values). Then, run `docker compose up -d` to start the Command Center and its dependencies. Note: this method is recommended for advanced users only, as it requires familiarity with Docker and manual configuration before starting.
|
||||||
|
|
||||||
## How It Works
|
## How It Works
|
||||||
N.O.M.A.D. is a management UI ("Command Center") and API that orchestrates a collection of containerized tools and resources via [Docker](https://www.docker.com/). It handles installation, configuration, and updates for everything — so you don't have to.
|
N.O.M.A.D. is a management UI ("Command Center") and API that orchestrates a collection of containerized tools and resources via [Docker](https://www.docker.com/). It handles installation, configuration, and updates for everything — so you don't have to.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,18 +25,24 @@ services:
|
||||||
- NODE_ENV=production
|
- NODE_ENV=production
|
||||||
- PORT=8080
|
- PORT=8080
|
||||||
- LOG_LEVEL=info
|
- LOG_LEVEL=info
|
||||||
- APP_KEY=replaceme # Needs to be at least 16 chars or will fail validation and container won't start!
|
# APP_KEY needs to be at least 16 chars or will fail validation and container won't start!
|
||||||
- HOST=0.0.0.0 # Leave this as is so the admin server listens all interfaces within the container - this doesn't affect how you access it from the host, it's just for internal container networking
|
- APP_KEY=replaceme
|
||||||
- URL=replaceme # Should be set to the URL you will access the admin interface at (e.g. http://localhost:8080 or http://192.168.1.x:8080)
|
# # Leave HOST as is so the admin server listens all interfaces within the container - this doesn't affect how you access it from the host, it's just for internal container networking
|
||||||
|
- HOST=0.0.0.0
|
||||||
|
# URL should be set to the URL you will access the admin interface at (e.g. http://localhost:8080 or http://192.168.1.x:8080)
|
||||||
|
- URL=replaceme
|
||||||
- DB_HOST=mysql
|
- DB_HOST=mysql
|
||||||
- DB_PORT=3306 # If you change the MySQL port, make sure to update this accordingly
|
# If you change the MySQL port, make sure to update this accordingly
|
||||||
|
- DB_PORT=3306
|
||||||
- DB_DATABASE=nomad
|
- DB_DATABASE=nomad
|
||||||
- DB_USER=nomad_user
|
- DB_USER=nomad_user
|
||||||
- DB_PASSWORD=replaceme # Needs to match the MYSQL_PASSWORD in the mysql service!
|
# Needs to match the MYSQL_PASSWORD in the mysql service!
|
||||||
|
- DB_PASSWORD=replaceme
|
||||||
- DB_NAME=nomad
|
- DB_NAME=nomad
|
||||||
- DB_SSL=false
|
- DB_SSL=false
|
||||||
- REDIS_HOST=redis
|
- REDIS_HOST=redis
|
||||||
- REDIS_PORT=6379 # If you change the Redis port, make sure to update this accordingly
|
# If you change the Redis port, make sure to update this accordingly
|
||||||
|
- REDIS_PORT=6379
|
||||||
depends_on:
|
depends_on:
|
||||||
mysql:
|
mysql:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
@ -48,7 +54,8 @@ services:
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
dozzle:
|
dozzle:
|
||||||
image: amir20/dozzle:v10.0 # Dozzle is optional, but note that the "Service Logs & Metrics" link in Settings points to it. We recommend including it unless you have a specific reason not to
|
# Dozzle is optional, but it's lightweight and allows for easily viewing container logs. We recommend including it unless you have a specific reason not to
|
||||||
|
image: amir20/dozzle:v10.0
|
||||||
container_name: nomad_dozzle
|
container_name: nomad_dozzle
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
|
|
@ -66,7 +73,8 @@ services:
|
||||||
- MYSQL_ROOT_PASSWORD=replaceme
|
- MYSQL_ROOT_PASSWORD=replaceme
|
||||||
- MYSQL_DATABASE=nomad
|
- MYSQL_DATABASE=nomad
|
||||||
- MYSQL_USER=nomad_user
|
- MYSQL_USER=nomad_user
|
||||||
- MYSQL_PASSWORD=replaceme # Needs to match DB_PASSWORD in the admin service!
|
# Needs to match DB_PASSWORD in the admin service!
|
||||||
|
- MYSQL_PASSWORD=replaceme
|
||||||
volumes:
|
volumes:
|
||||||
- /opt/project-nomad/mysql:/var/lib/mysql
|
- /opt/project-nomad/mysql:/var/lib/mysql
|
||||||
healthcheck:
|
healthcheck:
|
||||||
|
|
@ -85,7 +93,8 @@ services:
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
updater: # Updater & disk-collector are lightweight sidecar containers that run alongside the admin container to handle updates and host disk usage collection, respectively.
|
updater:
|
||||||
|
# Updater is a lightweight sidecar container that allows the admin container to be updated from within it's own UI
|
||||||
image: ghcr.io/crosstalk-solutions/project-nomad-sidecar-updater:latest
|
image: ghcr.io/crosstalk-solutions/project-nomad-sidecar-updater:latest
|
||||||
pull_policy: always
|
pull_policy: always
|
||||||
container_name: nomad_updater
|
container_name: nomad_updater
|
||||||
|
|
@ -95,6 +104,8 @@ services:
|
||||||
- /opt/project-nomad:/opt/project-nomad # Writable access required so the updater can set the correct image tag in compose.yml
|
- /opt/project-nomad:/opt/project-nomad # Writable access required so the updater can set the correct image tag in compose.yml
|
||||||
- nomad-update-shared:/shared # Shared volume for communication with admin container
|
- nomad-update-shared:/shared # Shared volume for communication with admin container
|
||||||
disk-collector:
|
disk-collector:
|
||||||
|
# Disk Collector is a lightweight privileged container that collects disk usage information from the host system and shares it with the admin container so it can be displayed in the UI.
|
||||||
|
# It requires read-only access to the host filesystem and is designed to be as secure and limited in scope as possible while still providing the necessary functionality.
|
||||||
image: ghcr.io/crosstalk-solutions/project-nomad-disk-collector:latest
|
image: ghcr.io/crosstalk-solutions/project-nomad-disk-collector:latest
|
||||||
pull_policy: always
|
pull_policy: always
|
||||||
container_name: nomad_disk_collector
|
container_name: nomad_disk_collector
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user