|
2 | 2 |
|
3 | 3 | SaltGUI is an open source web interface for managing a SaltStack server and its minions. Built using vanilla ES6 and implemented as a wrapper around the rest_cherrypy server a.k.a. salt-api. |
4 | 4 |
|
| 5 | +**Security Note**: For production deployments, TLS encryption is strongly recommended. See [TLS Configuration](#tls-configuration) for complete setup instructions. |
| 6 | + |
5 | 7 | The version tagged `release` is the latest released version. The version `master` should be fine, but it may contain changes that are not yet in these release-notes. |
6 | 8 |
|
7 | 9 | See [SaltGUI documentation](https://erwindon.github.io/SaltGUI/) for the complete documentation. |
@@ -92,7 +94,9 @@ rest_cherrypy: |
92 | 94 | - Replace each of the `/srv/saltgui` in the above config with the actual `saltgui` directory from the GIT repository. Alternatively, you can create a soft-link /src/saltgui that points to the actual saltgui directory. |
93 | 95 | - To successfully use `salt-api` with a default PAM setup, if may be needed to grant read access on `/etc/shadow` to the `salt` user. This is best done using `sudo usermod --append --groups shadow salt`. |
94 | 96 | - Restart everything with ``pkill salt-master && pkill salt-api && salt-master -d && salt-api -d`` |
95 | | -- You should be good to go. If you have any problems, open a GitHub issue. As always, SSL is recommended wherever possible but setup is beyond the scope of this guide. |
| 97 | +- You should be good to go. If you have any problems, open a GitHub issue. |
| 98 | + |
| 99 | +**For TLS configuration**, see the dedicated [TLS Configuration](#tls-configuration) section below for comprehensive setup instructions including enterprise best practices. |
96 | 100 |
|
97 | 101 | **Note: With this configuration, the user has access to all salt modules available, maybe this is not what you want** |
98 | 102 |
|
@@ -582,13 +586,59 @@ Note that the main page of SaltGUI is then located at `/app/`. When you want `/a |
582 | 586 |
|
583 | 587 |
|
584 | 588 | ## Development environment with Docker |
585 | | -To make life a bit easier for testing SaltGUI or setting up a local development environment you can use the provided docker-compose setup in this repository to run a saltmaster with three minions, including SaltGUI: |
| 589 | +To make life a bit easier for testing SaltGUI or setting up a local development environment, you can use the provided docker-compose setups in this repository: |
| 590 | + |
| 591 | +**For basic testing (HTTP):** |
586 | 592 | ``` |
587 | 593 | cd docker |
588 | 594 | docker-compose up |
589 | 595 | ``` |
590 | 596 | Then browse to [http://localhost:3333/](http://localhost:3333/), you can login with `salt:salt`. |
591 | 597 |
|
| 598 | +**For TLS testing:** |
| 599 | +``` |
| 600 | +cd docker |
| 601 | +docker-compose -f docker-compose-tls.yml up |
| 602 | +``` |
| 603 | +Then browse to [https://localhost:3334/](https://localhost:3334/), you can login with `salt:salt`. |
| 604 | + |
| 605 | + |
| 606 | +## TLS-enabled Docker Environment |
| 607 | +For production use or testing with TLS encryption, you can use the TLS-enabled Docker configuration: |
| 608 | + |
| 609 | +```bash |
| 610 | +cd docker |
| 611 | +docker-compose -f docker-compose-tls.yml up |
| 612 | +``` |
| 613 | + |
| 614 | +This will start: |
| 615 | +- A SaltGUI master with TLS enabled on port 3334 |
| 616 | +- Three minions (Ubuntu, Debian, CentOS) |
| 617 | +- Self-signed SSL certificates (automatically generated) |
| 618 | + |
| 619 | +**Connecting to TLS-enabled SaltGUI:** |
| 620 | +- Browse to [https://localhost:3334/](https://localhost:3334/) |
| 621 | +- You will see a security warning about the self-signed certificate |
| 622 | +- Accept the certificate to proceed (for testing purposes) |
| 623 | +- Login with `salt:salt` |
| 624 | + |
| 625 | +**Important Notes for TLS Setup:** |
| 626 | +- The TLS configuration uses self-signed certificates generated during the Docker build |
| 627 | +- For production use, replace the self-signed certificates with proper CA-signed certificates |
| 628 | +- You can mount your own certificates by modifying the `ssl_certs` volume in `docker-compose-tls.yml` |
| 629 | +- The TLS master configuration is located in `docker/conf/master-tls` |
| 630 | + |
| 631 | +**Custom SSL Certificates:** |
| 632 | +To use your own SSL certificates, place them in a directory and mount it to the container: |
| 633 | +```yaml |
| 634 | +volumes: |
| 635 | + - /path/to/your/certs:/etc/ssl/saltgui |
| 636 | +``` |
| 637 | +
|
| 638 | +Your certificate directory should contain: |
| 639 | +- `server.crt` - SSL certificate file |
| 640 | +- `server.key` - Private key file |
| 641 | + |
592 | 642 |
|
593 | 643 | ## Testing |
594 | 644 | We provide some functional tests and unit tests. They use the docker setup to run the functional tests. You will also need [yarn](https://yarnpkg.com) and [node.js](https://nodejs.org/en/) to run them. When you have docker, yarn and node.js installed, you can run the tests from the root of the repository like this: |
|
0 commit comments