### Example LavinMQ Configuration File Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/configuration.md A complete example of a LavinMQ configuration file, demonstrating global settings and protocol-specific configurations for AMQP, MQTT, and management interfaces. ```ini [main] data_dir = /var/lib/lavinmq log_level = info tls_cert = /etc/lavinmq/cert.pem tls_key = /etc/lavinmq/key.pem [amqp] bind = :: port = 5672 tls_port = 5671 [mqtt] bind = :: port = 1883 tls_port = 8883 [mgmt] bind = :: port = 15672 tls_port = 15671 [clustering] enabled = false ``` -------------------------------- ### Install LavinMQ on Fedora Source: https://github.com/cloudamqp/lavinmq/blob/main/README.md Installs LavinMQ by creating a repository file and using dnf. This method is suitable for Fedora systems. ```sh sudo tee /etc/yum.repos.d/lavinmq.repo << 'EOF' [lavinmq] name=LavinMQ baseurl=https://packagecloud.io/cloudamqp/lavinmq/fedora/$releasever/$basearch gpgkey=https://packagecloud.cloudamqp.com/lavinmq/gpgkey repo_gpgcheck=1 gpgcheck=0 EOF sudo dnf install lavinmq ``` -------------------------------- ### Install LavinMQ on Debian/Ubuntu Source: https://github.com/cloudamqp/lavinmq/blob/main/README.md Installs LavinMQ using curl and apt-get. Ensure you have the necessary permissions to add GPG keys and sources. ```sh curl -fsSL https://packagecloud.io/cloudamqp/lavinmq/gpgkey | gpg --dearmor | sudo tee /usr/share/keyrings/lavinmq.gpg > /dev/null . /etc/os-release echo "deb [signed-by=/usr/share/keyrings/lavinmq.gpg] https://packagecloud.io/cloudamqp/lavinmq/$ID $VERSION_CODENAME main" | sudo tee /etc/apt/sources.list.d/lavinmq.list sudo apt-get update sudo apt-get install lavinmq ``` -------------------------------- ### Troubleshoot LavinMQ Startup Errors Source: https://github.com/cloudamqp/lavinmq/blob/main/TROUBLESHOOTING.md Check recent logs, file permissions, and disk space when LavinMQ fails to start. ```sh journalctl --unit lavinmq --since "5 minutes ago" ls -ld /var/lib/lavinmq sudo chown -R lavinmq:lavinmq /var/lib/lavinmq df -h /var/lib/lavinmq ``` -------------------------------- ### Token Scopes Example Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/authentication.md This example shows how to define scopes for an authentication token. These scopes grant specific permissions like management tags, read/write access to vhosts, and configuration access to resources. ```text tag:management read:%2F/.* write:%2F/orders configure:staging/temp.* ``` -------------------------------- ### Run LavinMQ Server Source: https://github.com/cloudamqp/lavinmq/blob/main/README.md Starts the LavinMQ server with a specified data directory. Use -h for more configuration options. ```sh lavinmq -D /var/lib/lavinmq ``` -------------------------------- ### Install Local Review Tool Source: https://github.com/cloudamqp/lavinmq/blob/main/CONTRIBUTING.md Install the `local-review` tool to enable AI-assisted code reviews locally. This tool can also be used as a CLI for specific review tasks. ```shell local-review install ``` -------------------------------- ### Build LavinMQ from Source Source: https://github.com/cloudamqp/lavinmq/blob/main/README.md Clones the LavinMQ repository, builds the project using make, and optionally installs it. ```sh git clone git@github.com:cloudamqp/lavinmq.git cd lavinmq make sudo make install # optional ``` -------------------------------- ### Start LavinMQ with Clustering Enabled Source: https://github.com/cloudamqp/lavinmq/blob/main/README.md Alternatively, start the LavinMQ service with clustering enabled via command-line arguments. This includes specifying the data directory, enabling clustering, and setting the bind and advertised URIs. ```sh lavinmq --data-dir /var/lib/lavinmq --clustering --clustering-bind :: --clustering-advertised-uri=tcp://my-ip:5679 ``` -------------------------------- ### Build API Documentation Source: https://github.com/cloudamqp/lavinmq/blob/main/CONTRIBUTING.md Generate API documentation for the project. This command requires Node.js and npm to be installed, as it uses `npx` to run documentation generation tools. ```shell make docs ``` -------------------------------- ### Start LavinMQ Broker Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Starts the AMQP broker process if it is stopped. ```bash start_app ``` -------------------------------- ### Install LavinMQ on macOS with Homebrew Source: https://github.com/cloudamqp/lavinmq/blob/main/README.md Installs LavinMQ using the Homebrew package manager on macOS. ```sh brew install lavinmq ``` -------------------------------- ### Run LavinMQ with Custom Path Source: https://github.com/cloudamqp/lavinmq/blob/main/CONTRIBUTING.md Start the LavinMQ application with a specified directory for AMQP data. This is part of the frontend development workflow, allowing the server to run separately. ```shell ./bin/lavinmq -D /tmp/amqp ``` -------------------------------- ### Create a Shovel Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Configures and starts a new shovel for message transfer between sources and destinations, with numerous options for URIs, queues, exchanges, and acknowledgments. ```bash add_shovel --src-uri --dest-uri --src-queue --src-exchange --src-exchange-key --dest-exchange --dest-exchange-key --dest-queue --src-prefetch-count --ack-mode --src-delete-after --reconnect-delay ``` -------------------------------- ### Check LavinMQ Version Source: https://github.com/cloudamqp/lavinmq/blob/main/TROUBLESHOOTING.md Display the installed LavinMQ version. ```sh lavinmq --version ``` -------------------------------- ### Pull JavaScript Dependencies Source: https://github.com/cloudamqp/lavinmq/blob/main/CONTRIBUTING.md Fetch and install necessary JavaScript dependencies for the frontend. This command should be run when setting up the development environment or after pulling changes that affect frontend assets. ```shell make js ``` -------------------------------- ### Per-Hostname TLS Configuration Example Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/configuration.md This snippet shows how to configure TLS settings for a specific hostname. It includes certificate, key, minimum TLS version, peer verification, and CA certificate paths. ```ini [sni:example.com] tls_cert = /path/to/example.com.crt tls_key = /path/to/example.com.key tls_min_version = 1.3 tls_verify_peer = true tls_ca_cert = /path/to/ca.pem ``` -------------------------------- ### SystemD Service Unit Configuration Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/systemd.md Example SystemD service unit file for LavinMQ. This configures LavinMQ to run as a service, with automatic restart on failure and integration with SystemD's notification system. ```ini [Unit] Description=LavinMQ After=network.target [Service] Type=notify ExecStart=/usr/bin/lavinmq --config /etc/lavinmq/lavinmq.ini Restart=on-failure User=lavinmq Group=lavinmq [Install] WantedBy=multi-user.target ``` -------------------------------- ### SystemD Socket Unit Configuration Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/systemd.md Example SystemD socket unit file for AMQP. This configuration allows SystemD to listen on port 5672 and pass the socket to LavinMQ. ```ini [Socket] ListenStream=5672 [Install] WantedBy=sockets.target ``` -------------------------------- ### LavinMQ Definitions JSON Structure Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/definitions.md This is an example of the expected JSON structure for LavinMQ definitions, including version, vhosts, users, permissions, exchanges, queues, bindings, policies, and parameters. ```json { "lavinmq_version": "2.x.x", "vhosts": [ { "name": "/" } ], "users": [ { "name": "guest", "password_hash": "...", "hashing_algorithm": "SHA256", "tags": "administrator" } ], "permissions": [ { "user": "guest", "vhost": "/", "configure": ".*", "read": ".*", "write": ".*" } ], "exchanges": [...], "queues": [...], "bindings": [...], "policies": [...], "parameters": [...] } ``` -------------------------------- ### AMQP throughput scenario with queue pattern range Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP throughput scenario using a pattern for queue names, starting from index 10 and ending at index 20. ```bash lavinmqperf amqp throughput --queue-pattern=queue-% --queue-pattern-from=10 --queue-pattern-to=20 ``` -------------------------------- ### Print Build Information Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Displays detailed build information for lavinmqctl and exits. ```bash --build-info ``` -------------------------------- ### Create a New Vhost Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Adds a new virtual host to the LavinMQ server. ```bash add_vhost ``` -------------------------------- ### Create a Queue Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Creates a new queue with various optional configurations like durability, TTL, and dead-lettering. ```bash create_queue --durable --auto-delete --expires --max-length --message-ttl --delivery-limit --reject-on-overflow --dead-letter-exchange --dead-letter-routing-key --stream-queue ``` -------------------------------- ### Consume from a Specific Timestamp in a Stream Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/streams.md Use 'basic.consume' with 'x-stream-offset' set to a timestamp to start reading messages published after that specific time. ```json { "x-stream-offset": 1678886400000 } ``` -------------------------------- ### Run lavinmqperf with MQTT throughput scenario Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the MQTT throughput scenario with QoS level 1, a test duration of 30 seconds, and specifies the MQTT broker URI. ```bash lavinmqperf mqtt throughput --qos=1 --time=30 --uri=mqtt://localhost:1883 ``` -------------------------------- ### Consume from the First Message in a Stream Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/streams.md Use 'basic.consume' with 'x-stream-offset: first' to start reading from the beginning of a stream. This is useful for replaying all messages. ```json { "x-stream-offset": "first" } ``` -------------------------------- ### Import Definitions via CLI Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/definitions.md Use the lavinmqctl command-line tool to import definitions from a specified JSON file. ```shell lavinmqctl import_definitions definitions.json ``` -------------------------------- ### Consume from a Specific Offset Number in a Stream Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/streams.md Use 'basic.consume' with 'x-stream-offset' set to an integer to start reading from a specific message offset number. ```json { "x-stream-offset": 12345 } ``` -------------------------------- ### Configure Automatic Definition Loading on Startup Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/definitions.md Set the 'load_definitions' option in the '[main]' section of the LavinMQ configuration file to automatically import a JSON definitions file on broker startup. ```ini [main] load_definitions = /etc/lavinmq/definitions.json ``` -------------------------------- ### Configure Authentication Backends Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/authentication.md Defines an ordered list of authentication backends to be tried sequentially. If empty, only local authentication is used. ```ini [main] auth_backends = local,oauth ``` -------------------------------- ### Consume from the Last Available Chunk in a Stream Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/streams.md Use 'basic.consume' with 'x-stream-offset: last' to start reading from the most recent messages in a stream. This is useful for near real-time consumption. ```json { "x-stream-offset": "last" } ``` -------------------------------- ### Run lavinmqperf with AMQP connection-churn scenario Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP connection-churn scenario to measure connection open/close throughput. It uses Benchmark.ips and only global options apply. ```bash lavinmqperf amqp connection-churn ``` -------------------------------- ### Print Version Information Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Displays the version of lavinmqctl and exits. ```bash -v, --version ``` -------------------------------- ### Run lavinmqperf with AMQP bind-churn scenario Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP bind-churn scenario to measure queue.bind throughput against amq.direct. It uses Benchmark.ips and only global options apply. ```bash lavinmqperf amqp bind-churn ``` -------------------------------- ### Add a New User Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Creates a new user with the specified username and password. ```bash add_user ``` -------------------------------- ### Get Detailed LavinMQ Memory Status (Linux) Source: https://github.com/cloudamqp/lavinmq/blob/main/TROUBLESHOOTING.md Provides more detailed memory information for the LavinMQ process on Linux systems by inspecting the process's status file. ```bash cat /proc/$(pidof lavinmq)/status | grep -i vm ``` -------------------------------- ### Run lavinmqperf with AMQP queue-churn scenario Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP queue-churn scenario to measure transient and durable queue create/delete throughput. It uses Benchmark.ips and only global options apply. ```bash lavinmqperf amqp queue-churn ``` -------------------------------- ### Export All Definitions Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Exports the entire server configuration, including users, vhosts, queues, and policies, as a JSON file. ```bash export_definitions ``` -------------------------------- ### List All Policies Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Retrieves a list of all defined policies on the LavinMQ server. ```bash list_policies ``` -------------------------------- ### Get Detailed LavinMQ Memory Status (macOS) Source: https://github.com/cloudamqp/lavinmq/blob/main/TROUBLESHOOTING.md Retrieves detailed memory usage information for the LavinMQ process on macOS, including Resident Set Size (RSS) and Virtual Size (VSZ). ```bash ps -o pid,rss,vsz -p $(pgrep lavinmq) ``` -------------------------------- ### Show Help Message Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Displays the help message and exits the command. ```bash -h, --help ``` -------------------------------- ### Run lavinmqperf with AMQP connection-count scenario (channels and consumers) Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP connection-count scenario, opening 100 connections, each with 4 channels, and each channel with 2 consumers. ```bash lavinmqperf amqp connection-count -x=100 -c=4 -C=2 -u my-queue ``` -------------------------------- ### Run lavinmqperf with AMQP connection-count scenario Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP connection-count scenario, opening 100 connections. ```bash lavinmqperf amqp connection-count -x=100 ``` -------------------------------- ### Build Project with Shards Source: https://github.com/cloudamqp/lavinmq/blob/main/CONTRIBUTING.md Compile the LavinMQ project using the Shards package manager. This is the standard way to build the release version of the application. ```shell shards build ``` -------------------------------- ### Compile and Run Locally Source: https://github.com/cloudamqp/lavinmq/blob/main/CONTRIBUTING.md Compile and immediately run the LavinMQ application locally with specific compile-time flags. Use this for testing new features or configurations. ```crystal crystal run src/lavinmq.cr -Dpreview_mt -Dexecution_context ``` -------------------------------- ### Export All Definitions via CLI Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/definitions.md Utilize the lavinmqctl command-line tool to export all LavinMQ server definitions. ```shell lavinmqctl export_definitions ``` -------------------------------- ### Import Definitions from JSON Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Imports server definitions from a specified JSON file, applying configurations like users, vhosts, and policies. ```bash import_definitions ``` -------------------------------- ### Create a Federation Upstream Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Configures a new federation upstream for replicating queues or exchanges, with options for URI, TTL, and prefetch count. ```bash add_federation --uri --expires --message-ttl --max-hops --prefetch-count --reconnect-delay --ack-mode --queue --exchange ``` -------------------------------- ### List All Shovels Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Retrieves a list of all configured shovel configurations. ```bash list_shovels ``` -------------------------------- ### Global TLS Configuration Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/tls.md Configure the certificate and private key files for global TLS settings. These settings apply to all TLS listeners unless overridden by SNI sections. ```ini [main] tls_cert = /etc/lavinmq/cert.pem tls_key = /etc/lavinmq/key.pem ``` -------------------------------- ### Run Specs Source: https://github.com/cloudamqp/lavinmq/blob/main/CONTRIBUTING.md Execute all project specifications to ensure code quality and identify regressions. This is a fundamental step before making any code changes. ```shell make test ``` -------------------------------- ### AMQP throughput scenario with custom queue and routing key Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP throughput scenario using a custom queue name 'my-perf-test' and a specific routing key 'test-key'. ```bash lavinmqperf amqp throughput -u my-perf-test -k test-key ``` -------------------------------- ### Create an Exchange Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Creates a new exchange with specified type and name, supporting various options like durability and alternate exchanges. ```bash create_exchange --auto-delete --durable --internal --delayed --alternate-exchange --persist-messages --persist-ms ``` -------------------------------- ### List All Connections Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Retrieves a list of all active AMQP connections to the server. ```bash list_connections ``` -------------------------------- ### Build Local Binary Source: https://github.com/cloudamqp/lavinmq/blob/main/CONTRIBUTING.md Compile the LavinMQ binary locally without release optimizations. This is useful for development and debugging purposes. ```shell make bin/lavinmq CRYSTAL_FLAGS= ``` -------------------------------- ### List All Vhosts Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Retrieves a list of all virtual hosts configured on the server. ```bash list_vhosts ``` -------------------------------- ### Follow LavinMQ Logs in Real-time (Kubernetes) Source: https://github.com/cloudamqp/lavinmq/blob/main/TROUBLESHOOTING.md Stream LavinMQ logs in real-time from a Kubernetes pod. ```sh kubectl logs --follow ``` -------------------------------- ### Check LavinMQ File Descriptor Limit and Usage (Linux) Source: https://github.com/cloudamqp/lavinmq/blob/main/TROUBLESHOOTING.md Inspects the file descriptor limits and current usage for the LavinMQ process on Linux. High churn can lead to FD exhaustion. ```bash cat /proc/$(pidof lavinmq)/limits | grep "open files" sudo ls -l /proc/$(pidof lavinmq)/fd | wc -l ``` -------------------------------- ### Run lavinmqperf with AMQP connection-count scenario (localhost) Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP connection-count scenario, connecting to random localhost addresses to distribute source ports. ```bash lavinmqperf amqp connection-count -l ``` -------------------------------- ### AMQP throughput scenario with consumer prefetch Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP throughput scenario, setting the consumer prefetch count to 50. ```bash lavinmqperf amqp throughput -P=50 ``` -------------------------------- ### AMQP throughput scenario with queue pattern Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP throughput scenario using a pattern for queue names, e.g., 'queue-1', 'queue-2', etc. ```bash lavinmqperf amqp throughput --queue-pattern=queue-% ``` -------------------------------- ### List All Queues Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Retrieves a list of all queues across all vhosts. ```bash list_queues ``` -------------------------------- ### Check System Resources Source: https://github.com/cloudamqp/lavinmq/blob/main/TROUBLESHOOTING.md Monitor disk space and memory usage for LavinMQ and the system. ```sh df -h /var/lib/lavinmq free -h ``` -------------------------------- ### Follow LavinMQ Logs in Real-time (Docker) Source: https://github.com/cloudamqp/lavinmq/blob/main/TROUBLESHOOTING.md Stream LavinMQ logs in real-time from a Docker container. ```sh docker logs --follow ``` -------------------------------- ### MQTT Configuration Source: https://github.com/cloudamqp/lavinmq/blob/main/README.md This snippet shows the configuration parameters for enabling and customizing MQTT support in LavinMQ. It specifies the bind address, ports for plain and TLS connections, and maximum inflight messages. ```ini [MQTT] bind = "127.0.0.1" port = 1883 tls_port = 8883 unix_path = "" max_inflight_messages = 65535 default_vhost = "/" ``` -------------------------------- ### Run lavinmqperf with AMQP throughput scenario Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP throughput scenario with 4 publishers, 4 consumers, a message size of 1024 bytes, and a test duration of 60 seconds. ```bash lavinmqperf amqp throughput --publishers=4 --consumers=4 --size=1024 --time=60 ``` -------------------------------- ### View LavinMQ Connection States (Linux) Source: https://github.com/cloudamqp/lavinmq/blob/main/TROUBLESHOOTING.md Display detailed TCP connection states for the LavinMQ process on Linux. ```sh sudo ss -antp | grep $(pidof lavinmq) ``` -------------------------------- ### AMQP throughput scenario with consumer arguments Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP throughput scenario, providing consumer arguments as a JSON object. ```bash lavinmqperf amqp throughput --consumer-args='{"x-priority": 10}' ``` -------------------------------- ### Import Definitions via API Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/definitions.md Import LavinMQ definitions by sending a JSON payload to this API endpoint. Ensure the Content-Type header is set correctly. ```shell POST /api/definitions Content-Type: application/json ``` -------------------------------- ### Data Directory Layout Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/storage.md Illustrates the hierarchical structure of LavinMQ's data directory, including user, vhost, and queue-specific subdirectories and their contents. ```text / .lock # Data directory lock file users.json # User definitions vhosts.json # Vhost list / # Per-vhost directory (SHA1 of vhost name) definitions.amqp # Exchange, queue, binding, policy definitions / # Per-queue directory (SHA1 of queue name) msgs.0000000000 # Message segment files acks.0000000000 # Ack tracking files meta.0000000000 # Metadata files (used by some queue types) ``` -------------------------------- ### List All Exchanges Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Retrieves a list of all exchanges configured on the server. ```bash list_exchanges ``` -------------------------------- ### AMQP throughput scenario with JSON output Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP throughput scenario and prints the final summary in JSON format. ```bash lavinmqperf amqp throughput -j ``` -------------------------------- ### Set Vhost Limits Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Configures limits for a virtual host, such as maximum connections and queues. Input must be a JSON string. ```bash set_vhost_limits ``` -------------------------------- ### AMQP throughput scenario with publish confirmations Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqperf.md This command runs the AMQP throughput scenario with publish confirmations enabled, allowing up to 100 unconfirmed publishes in flight. ```bash lavinmqperf amqp throughput -c=100 ``` -------------------------------- ### Set Vhost Permissions Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Defines the permissions (configure, write, read) for a user on a specific virtual host. ```bash set_permissions ``` -------------------------------- ### Watch and Recompile Views Source: https://github.com/cloudamqp/lavinmq/blob/main/CONTRIBUTING.md Continuously monitor view files for changes and automatically recompile them. This speeds up frontend development by providing instant feedback. ```shell make watch-views ``` -------------------------------- ### Record LavinMQ Performance Data (Linux) Source: https://github.com/cloudamqp/lavinmq/blob/main/TROUBLESHOOTING.md Record performance data, including call graphs, for the LavinMQ process for later analysis using `perf record`. ```sh # Record performance data for 30-60 seconds sudo perf record --call-graph lbr --pid $(pidof lavinmq) # View the recording perf report ``` -------------------------------- ### Connect to a Custom LavinMQ Instance Source: https://github.com/cloudamqp/lavinmq/blob/main/docs/lavinmqctl.md Specify a custom management API URI to connect lavinmqctl to a different LavinMQ server instance. ```bash lavinmqctl --uri http://host:port ... ```