### Installing Docker on Linux Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This command downloads and executes the official Docker installation script. It's a prerequisite for running Convoy, which heavily relies on Docker for its services. This script automates the setup of Docker Engine on compatible Linux distributions. ```bash curl -fsSL https://get.docker.com/ | sh ``` -------------------------------- ### Starting Convoy Docker Containers Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This command builds and starts the Docker containers defined in the docker-compose.yml file for Convoy in detached mode. It orchestrates the various services required for the panel to run, such as the web server, database, and cache server. ```bash docker compose up -d ``` -------------------------------- ### Installing Docker on Linux Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This command downloads and executes the official Docker installation script, which automatically sets up Docker on your system. It's a prerequisite for running Convoy Panel as it relies heavily on Docker containers. ```bash curl -fsSL https://get.docker.com/ | sh ``` -------------------------------- ### Building and Starting Convoy Docker Containers Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This command builds the necessary Docker images and starts the Convoy Panel services in detached mode (`-d`). It orchestrates the various components of the panel, such as the web server, database, and cache server, using the `docker-compose.yml` configuration. ```bash docker compose up -d ``` -------------------------------- ### Creating Convoy Installation Directory Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This sequence of commands creates the /var/www/convoy directory if it doesn't exist and then changes the current working directory to it. This directory will serve as the root for the Convoy panel's files, ensuring a structured installation path. ```bash mkdir -p /var/www/convoy cd /var/www/convoy ``` -------------------------------- ### Installing Convoy Panel PHP Dependencies Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This command executes `composer install` inside the `workspace` Docker container, installing all required PHP dependencies for the Convoy Panel. The `--no-dev` flag skips development dependencies, and `--optimize-autoloader` optimizes the Composer autoloader for production performance. ```bash docker compose exec workspace bash -c "composer install --no-dev --optimize-autoloader" ``` -------------------------------- ### Creating Convoy Panel Directory Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This command sequence first creates the `/var/www/convoy` directory if it doesn't exist, and then changes the current working directory to it. This directory will serve as the root for the Convoy Panel installation files. ```bash mkdir -p /var/www/convoy cd /var/www/convoy ``` -------------------------------- ### Starting Convoy Docker Containers (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md Starts the Convoy Docker containers in detached mode, allowing them to run in the background. This command is useful if Convoy doesn't automatically start after a system reboot or if containers were manually stopped. ```bash docker compose up -d ``` -------------------------------- ### Installing Convoy PHP Dependencies Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This command executes composer install inside the workspace Docker container to install Convoy's PHP dependencies. The --no-dev flag ensures development dependencies are skipped, and --optimize-autoloader improves performance by optimizing Composer's autoloader for production. ```bash docker compose exec workspace bash -c "composer install --no-dev --optimize-autoloader" ``` -------------------------------- ### Copying Convoy Environment File Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This command creates a copy of the `.env.example` file, naming it `.env`. The `.env` file is used to store environment-specific configurations for the Convoy Panel, which will be edited in subsequent steps. ```bash cp .env.example .env ``` -------------------------------- ### Creating a New Convoy User (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md Initiates the interactive process for creating a new user account within Convoy. Users will be prompted in the terminal to provide necessary details for the new user. ```bash docker compose exec workspace php artisan c:user:make ``` -------------------------------- ### Generating Application Key and Optimizing Cache (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This command generates a unique application key for cryptographic functions and then optimizes the application's configuration cache. It's crucial for security and performance after initial setup. ```bash docker compose exec workspace bash -c "php artisan key:generate --force && \ php artisan optimize" ``` -------------------------------- ### Downloading and Preparing Convoy Panel Files Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This set of commands downloads the latest Convoy Panel release archive, extracts its contents, and then sets write permissions for the `storage/` and `bootstrap/cache/` directories. These permissions are crucial for the panel's runtime operations, such as caching and session management. ```bash curl -Lo panel.tar.gz https://github.com/convoypanel/panel/releases/latest/download/panel.tar.gz tar -xzvf panel.tar.gz chmod -R o+w storage/* bootstrap/cache/ ``` -------------------------------- ### Starting Convoy Containers in Detached Mode (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This command starts the Convoy Docker containers in detached mode, allowing them to run in the background. It's useful for manually restarting the application if it doesn't auto-start after a system reboot. ```bash docker compose up -d ``` -------------------------------- ### Setting Up Local Development Environment - Bash Source: https://github.com/convoypanel/documentation/blob/master/README.md This snippet provides the necessary commands to set up the local development environment for the Convoy documentation site. It installs project dependencies and starts the development server, requiring Node.js v14.0.0 or higher for new JavaScript features like optional chaining. ```bash npm i npm run dev ``` -------------------------------- ### Migrating Convoy Database Schema (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md Executes the database migrations for Convoy, setting up the necessary tables and schema in the configured database. This process may take some time to complete, depending on the database size and complexity. ```bash docker compose exec workspace php artisan migrate --force ``` -------------------------------- ### Creating a New Convoy User (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This command initiates an interactive process to create a new user account for the Convoy application. It prompts for necessary user details in the terminal. ```bash docker compose exec workspace php artisan c:user:make ``` -------------------------------- ### Migrating Convoy Database (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This command executes the database migrations, setting up the necessary table structure for the Convoy application. It's a prerequisite for the application to function correctly. ```bash docker compose exec workspace php artisan migrate --force ``` -------------------------------- ### Rebuilding Docker Containers and Optimizing Cache for Production (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md These commands stop the running containers, rebuild them to apply environment changes, optimize the application cache, and then restart all services. This is essential after modifying environment variables for production. ```bash docker compose down docker compose up -d --build docker compose exec workspace bash -c "php artisan optimize" docker compose restart ``` -------------------------------- ### Configuring Convoy Application URL Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This configuration line sets the APP_URL variable in the .env file, defining the base URL where the Convoy panel will be accessible. It's essential for the panel to correctly generate links and handle requests, with http://localhost being the default for local installations. ```ini APP_URL=http://localhost ``` -------------------------------- ### Copying Convoy Environment File Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This command creates a copy of the .env.example file, naming it .env. The .env file is crucial for Convoy's configuration, allowing users to customize settings like database credentials and application URL without modifying the core application code. ```bash cp .env.example .env ``` -------------------------------- ### Downloading and Extracting Convoy Panel Files Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This set of commands first downloads the latest Convoy panel release archive, then extracts its contents into the current directory. Finally, it sets write permissions for others on the storage/ and bootstrap/cache/ directories, which are necessary for the panel's operation. ```bash curl -Lo panel.tar.gz https://github.com/convoypanel/panel/releases/latest/download/panel.tar.gz tar -xzvf panel.tar.gz chmod -R o+w storage/* bootstrap/cache/ ``` -------------------------------- ### Generating Application Key and Optimizing Convoy (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This command generates a unique application key for Convoy, essential for cryptographic functions like password hashing. It also optimizes the application's configuration cache. This step should be performed after initial dependency installation. ```bash docker compose exec workspace bash -c "php artisan key:generate --force && \ php artisan optimize" ``` -------------------------------- ### Editing Convoy Environment File with Nano Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This command opens the .env configuration file using the nano text editor. Users need to edit this file to configure various Convoy settings, such as the application URL, database credentials, and cache server details. ```bash nano .env ``` -------------------------------- ### Applying Environment Changes and Clearing Cache (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This sequence of commands ensures that changes to the environment file are applied by rebuilding and restarting Docker containers, then clears and re-optimizes the application cache. This is necessary because Convoy caches environment variables. ```bash docker compose down docker compose up -d --build docker compose exec workspace bash -c "php artisan optimize:clear && \ php artisan optimize" ``` -------------------------------- ### Downloading Docker Compose Configuration Files Source: https://github.com/convoypanel/documentation/blob/master/src/docs/misc/coterm.md These curl commands download the example docker-compose.yml and .env files from the Coterm GitHub repository. These files provide a recommended starting configuration for deploying Coterm securely with Docker Compose, especially for enabling TLS. ```Shell curl -o docker-compose.yml https://raw.githubusercontent.com/ConvoyPanel/coterm/develop/docker-compose.example.yml curl -o .env https://raw.githubusercontent.com/ConvoyPanel/coterm/develop/.env.docker.example ``` -------------------------------- ### Configuring Production Environment Variables (INI) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This snippet shows the recommended environment variable settings for a production deployment. Setting `APP_ENV` to 'production' and `APP_DEBUG` to 'false' enhances security and performance by disabling debugging features. ```ini APP_ENV=production APP_DEBUG=false ``` -------------------------------- ### Editing Convoy Environment File with NeoVIM Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This command opens the .env configuration file using the nvim (NeoVIM) text editor. Users need to edit this file to configure various Convoy settings, such as the application URL, database credentials, and cache server details. ```bash nvim .env ``` -------------------------------- ### Configuring HTTP Client Headers for Convoy API Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/api/getting-started.md This snippet demonstrates the essential HTTP headers required for authenticating and communicating with the Convoy Application API. It includes the Authorization header for token-based authentication, Accept to specify JSON response, and Content-Type for JSON request bodies. A token can be generated from the Convoy admin area. ```http Authorization: Bearer Accept: application/json Content-Type: application/json ``` -------------------------------- ### Editing Convoy Environment File with VIM Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This command opens the .env configuration file using the vim text editor. Users need to edit this file to configure various Convoy settings, such as the application URL, database credentials, and cache server details. ```bash vim .env ``` -------------------------------- ### Editing Convoy Environment File with Nano Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This command opens the `.env` configuration file using the `nano` text editor. Users can choose their preferred editor (nano, nvim, vim) to modify the panel's environment variables, such as `APP_URL`, database credentials, and cache server settings. ```bash nano .env ``` -------------------------------- ### Configuring Convoy for Production Environment (INI) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md Updates the Convoy environment file to set the application environment to 'production' and disables debugging. This is a crucial step for security and performance optimization in a live deployment. ```ini APP_ENV=production APP_DEBUG=false ``` -------------------------------- ### Rebuilding and Restarting Docker Containers for Production (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md Shuts down existing Docker containers, then rebuilds and restarts them in detached mode. This ensures that changes made to the environment file (like APP_ENV and APP_DEBUG) are applied and the application runs with the updated configuration. ```bash docker compose down docker compose up -d --build ``` -------------------------------- ### Applying Environment Changes and Resetting Cache (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md These commands are used to apply changes made to the environment file by stopping, rebuilding, and restarting the Docker containers, along with optimizing the application cache. This is necessary because Convoy caches environment variables. ```bash docker compose down docker compose up -d --build docker compose exec workspace bash -c "php artisan optimize" docker compose restart ``` -------------------------------- ### Editing Convoy Environment File with VIM Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This command opens the `.env` configuration file using the `vim` text editor. Users can choose their preferred editor (nano, nvim, vim) to modify the panel's environment variables, such as `APP_URL`, database credentials, and cache server settings. ```bash vim .env ``` -------------------------------- ### Configuring Convoy Panel Database Credentials Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This configuration block sets the database name (`DB_DATABASE`), username (`DB_USERNAME`), and password (`DB_PASSWORD`) for the Convoy Panel's database connection. The username cannot be 'root', and passwords with special characters must be enclosed in single quotes. ```ini DB_DATABASE=convoy DB_USERNAME=convoy_user DB_PASSWORD='I can use special characters here!' ``` -------------------------------- ### Editing Convoy Environment File with NeoVIM Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This command opens the `.env` configuration file using the `nvim` (NeoVIM) text editor. Users can choose their preferred editor (nano, nvim, vim) to modify the panel's environment variables, such as `APP_URL`, database credentials, and cache server settings. ```bash nvim .env ``` -------------------------------- ### Configuring HTTP Client Headers for Convoy API Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/getting-started.md This snippet illustrates the required HTTP headers for authenticating and communicating with the Convoy Application API. It specifies the 'Authorization' header for bearer token authentication, and 'Accept' and 'Content-Type' headers to ensure JSON data exchange. The bearer token must be obtained from the Convoy admin area. ```HTTP Authorization: Bearer Accept: application/json Content-Type: application/json ``` -------------------------------- ### Running Convoy Downloader Script (Shell) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/misc/download-vm-templates.md This command executes the `downloader_x86` script, initiating the process of downloading and installing VM templates onto your Proxmox node. Upon execution, the script will prompt the user to specify a 'Storage Volume' where the templates will be saved, which must be configured to store VM Disks. ```sh ./downloader_x86 ``` -------------------------------- ### Configuring Convoy Panel Application URL Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This configuration sets the `APP_URL` variable in the `.env` file, defining the base URL where the Convoy Panel will be accessible. It's crucial for correct routing and link generation within the application. For production, this should be a registered domain or public IP. ```ini APP_URL=http://localhost ``` -------------------------------- ### Granting Execute Permissions to Downloader (Shell) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/misc/download-vm-templates.md After downloading the `downloader_x86` script, this command grants it executable permissions. This is a crucial step to ensure the script can be run on the Proxmox node, allowing it to proceed with the template installation process. ```sh chmod +x downloader_x86 ``` -------------------------------- ### Configuring Convoy Database Credentials Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md These lines configure the database connection parameters within the .env file for Convoy. They specify the database name, username, and passwords for both the regular user and the root user, ensuring the panel can connect to and manage its data store. Passwords with special characters must be double-quoted. ```ini DB_DATABASE=convoy DB_USERNAME=convoy_user DB_PASSWORD="I can use special characters here!" DB_ROOT_PASSWORD=im_alphanumeric ``` -------------------------------- ### Creating a User Response Example - Users API - JSON Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/users.md This JSON object shows the successful response after creating a new user. It returns the newly created user's data, including their assigned ID and other details. The 'servers_count' is initially zero for a new user. ```json { "data": { "id": 43, "name": "Anush K", "email": "anush.k@advinservers.com", "email_verified_at": null, "root_admin": true, "servers_count": 0 } } ``` -------------------------------- ### Configuring Convoy Panel Redis Cache Password Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/getting-started.md This configuration sets the `REDIS_PASSWORD` variable in the `.env` file, providing a password for the Redis cache server. A secure password is essential for protecting the cache server, which is used for low-latency requests within the Convoy Panel. ```ini REDIS_PASSWORD=a_secure_password ``` -------------------------------- ### Correcting Convoy File Permissions via Docker Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This command is a troubleshooting step to correct file permission errors within the Docker workspace container. It grants write permissions to others for the storage/ and bootstrap/cache/ directories, resolving issues that might arise from incorrect host-to-container permission mapping. ```bash docker compose exec workspace chmod -R o+w storage/* bootstrap/cache/ ``` -------------------------------- ### Installing Terminal Broker on Proxmox (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/enabling-terminal-access.md This command downloads and extracts the latest version of the terminal broker, enabling web-based console sessions on a Proxmox node. It is crucial to run this command from the root directory (/) of your Proxmox system to ensure proper installation. ```bash curl -fsSL https://github.com/convoypanel/broker/releases/latest/download/broker.tar.gz | tar -xzv ``` -------------------------------- ### Example Response for Fetching Locations (JSON) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/api/locations.md This JSON object illustrates the typical response structure when querying the GET /api/application/locations endpoint. It includes an array of location data objects, each containing an ID, short code, description, and counts of associated nodes and servers. The 'meta' field provides pagination details such as total items, current page, and navigation links. ```JSON { "data": [ { "id": 187, "short_code": "103", "description": "103", "nodes_count": 0, "servers_count": 0 }, { "id": 188, "short_code": "101", "description": "screw you chit", "nodes_count": 0, "servers_count": 0 }, { "id": 189, "short_code": "113", "description": "113", "nodes_count": 0, "servers_count": 0 } ], "meta": { "pagination": { "total": 5139, "count": 50, "per_page": 50, "current_page": 1, "total_pages": 103, "links": { "next": "https://advinservers.com/api/admin/locations?page=2" } } } } ``` -------------------------------- ### Running Coterm with Docker Source: https://github.com/convoypanel/documentation/blob/master/src/docs/misc/coterm.md This command starts the Coterm container, mapping port 2115 from the host to the container. It requires setting environment variables for the Convoy panel URL and a Coterm token. The host port can be modified by changing the first number in the -p flag. ```Shell docker run -p 2115:2115 -e CONVOY_URL="" -e COTERM_TOKEN="" ghcr.io/convoypanel/coterm:latest ``` -------------------------------- ### Configuring Convoy Cache Server Password Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/getting-started.md This line sets the REDIS_PASSWORD variable in the .env file, providing the authentication password for the Redis cache server. A secure password is vital for protecting the cache server, which is used to store session data and other temporary information for low-latency requests. ```ini REDIS_PASSWORD=a_secure_password ``` -------------------------------- ### Creating a Server Response - Convoypanel API - JSON Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/servers.md This JSON object represents the successful response returned after creating a server. It contains detailed information about the newly created server, including its ID, UUID, node and user details, current status ('installing'), resource usages, and allocated limits. Nested data includes user and node information. ```json { "data": { "id": "d45309ad", "uuid": "d45309ad-9c9e-4ea7-b386-01a2e54a421e", "node_id": 4417, "hostname": "advinservers.com", "name": "testee", "description": null, "status": "installing", "usages": { "bandwidth": 0 }, "limits": { "cpu": 3, "memory": 4294967296, "disk": 3145728000, "snapshots": 0, "backups": null, "bandwidth": null, "addresses": { "ipv4": [], "ipv6": [] }, "mac_address": null }, "user_id": 1, "vmid": 549998493, "internal_id": 355, "user": { "data": { "id": 1, "name": "Mike Hawk", "email": "joe@advinservers.com", "email_verified_at": null, "root_admin": true, "servers_count": 0 } }, "node": { "data": { "id": 4417, "location_id": 5340, "name": "us-southeast", "cluster": "us-southeast", "fqdn": "us-southeast.performave.com", "port": 8006, "memory": 68719476736, "memory_overallocate": 0, "memory_allocated": 10737418240, "disk": 137438953472, "disk_overallocate": 0, "disk_allocated": 9588178944, "vm_storage": "local", "backup_storage": "local", "iso_storage": "local", "network": "vmbr0", "servers_count": 0 } } } } ``` -------------------------------- ### Installing Convoy Panel Terminal Broker on Proxmox (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/enabling-terminal-access.md This command downloads and extracts the latest version of the Convoy Panel terminal broker. It is essential for enabling web-based console sessions to Proxmox nodes. This command must be executed in the root directory (/) of the Proxmox system. ```bash curl -fsSL https://github.com/convoypanel/broker/releases/latest/download/broker.tar.gz | tar -xzv ``` -------------------------------- ### Creating a Server Request Payload - ConvoyPanel API - JSON Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/api/servers.md This JSON payload defines the parameters required to create a new server via the ConvoyPanel API. It includes details such as node ID, user ID, server name, hostname, resource limits (CPU, memory, disk), an account password, a template UUID, and a flag to start the server on completion. ```json { "node_id": 4417, "user_id": 1, "name": "testee", "hostname": "advinservers.com", "vmid": null, "limits": { "cpu": 3, "memory": 4294967296, "disk": 3145728000, "snapshots": 0, "backups": null, "bandwidth": null, "address_ids": [] }, "account_password": "q%#tUyLPAm@2q", "should_create_server": true, "template_uuid": "d176b498-87e8-421f-a958-048ef15ef199", "start_on_completion": false } ``` -------------------------------- ### Example JSON Response for Generating SSO Token Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/api/single-sign-on.md This JSON object represents the successful response body when generating an SSO token. It contains a 'data' object with the 'user_id' for which the token was generated and the 'token' string itself, which is valid for 2 minutes or until first use. ```JSON { "data": { "user_id": 1, "token": "5e0d50852aafca4f4e6411c3665ba8005ca416bb012b982d2f6bb7c1daf98b4b" } } ``` -------------------------------- ### Updating PHP Dependencies - Bash Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/updating-the-panel.md Executes composer install within the workspace Docker container to update PHP dependencies. The --no-dev flag skips development dependencies, and --optimize-autoloader improves autoloading performance. This ensures all required PHP packages are correctly installed and optimized for the updated application. ```bash docker compose exec workspace composer install --no-dev --optimize-autoloader ``` -------------------------------- ### Fetching All Nodes - Nodes API - JSON Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/nodes.md This snippet shows an example JSON response for fetching a list of all nodes via the GET /api/application/nodes endpoint. It includes pagination metadata and details for each node such as ID, location, name, FQDN, resource allocation, and storage types. The API supports filtering by name, FQDN, and location_id, and pagination parameters like 'page' and 'per_page' (max 100). ```JSON { "data": [ { "id": 4417, "location_id": 5340, "name": "us-southeast", "cluster": "us-southeast", "verify_tls": true, "fqdn": "us-southeast.performave.com", "port": 8006, "memory": 68719476736, "memory_overallocate": 0, "memory_allocated": 6442450944, "disk": 137438953472, "disk_overallocate": 0, "disk_allocated": 6442450944, "vm_storage": "local", "backup_storage": "local", "iso_storage": "local", "network": "vmbr0", "servers_count": 2 }, { "id": 4418, "location_id": 5341, "name": "quae", "verify_tls": true, "cluster": "proxmox", "fqdn": "error", "port": 8006, "memory": 68719476736, "memory_overallocate": 0, "memory_allocated": 2147483648, "disk": 137438953472, "disk_overallocate": 0, "disk_allocated": 21474836480, "vm_storage": "local", "backup_storage": "local", "iso_storage": "local", "network": "vmbr0", "servers_count": 1 } ], "meta": { "pagination": { "total": 32, "count": 32, "per_page": 50, "current_page": 1, "total_pages": 1, "links": {} } } } ``` -------------------------------- ### Fetching a Single Node - Nodes API - JSON Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/nodes.md This snippet provides an example JSON response when fetching a single node using the GET /api/application/nodes/ endpoint. The response contains detailed information for the specified node, including its ID, location, name, FQDN, port, memory and disk allocation, storage types (VM, backup, ISO), network interface, and the count of associated servers. ```JSON { "data": { "id": 4417, "location_id": 5340, "name": "us-southeast", "cluster": "us-southeast", "verify_tls": true, "fqdn": "us-southeast.performave.com", "port": 8006, "memory": 68719476736, "memory_overallocate": 0, "memory_allocated": 6442450944, "disk": 137438953472, "disk_overallocate": 0, "disk_allocated": 6442450944, "vm_storage": "local", "backup_storage": "local", "iso_storage": "local", "network": "vmbr0", "servers_count": 2 } } ``` -------------------------------- ### Updating Coterm Deployment with Docker Run Command Source: https://github.com/convoypanel/documentation/blob/master/src/docs/misc/coterm.md This process outlines how to update a Coterm instance started with a direct docker run command. It involves pulling the latest Docker image, stopping the currently running container using its ID, and then restarting a new container with the original docker run parameters. ```Shell docker pull ghcr.io/convoypanel/coterm:latest docker stop # Then, run the new container with the same command you used to start it. ``` -------------------------------- ### Updating Convoy Panel PHP Dependencies (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/updating-the-panel.md This command executes `composer install` within the `workspace` Docker container to update the Convoy Panel's PHP dependencies. The `--no-dev` flag skips development dependencies, and `--optimize-autoloader` improves performance by optimizing Composer's autoloader. ```bash docker compose exec workspace composer install --no-dev --optimize-autoloader ``` -------------------------------- ### Fetching Users Response Example - Users API - JSON Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/users.md This JSON object represents a successful response when fetching a list of users from the API. It includes an array of user data objects and pagination metadata. Each user object contains details like ID, name, email, and server count. ```json { "data": [ { "id": 1, "name": "Mike Hawk", "email": "joe@advinservers.com", "email_verified_at": null, "root_admin": true, "servers_count": 3 }, { "id": 7, "name": "Crystal Larson", "email": "kovacek.rex@example.org", "email_verified_at": "2022-12-10T20:55:51.000000Z", "root_admin": false, "servers_count": 0 } ], "meta": { "pagination": { "total": 37, "count": 37, "per_page": 50, "current_page": 1, "total_pages": 1, "links": {} } } } ``` -------------------------------- ### Fetching a Single User Response Example - Users API - JSON Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/users.md This JSON object shows the structure of a successful response when fetching a single user by ID. It contains a 'data' object with detailed information about the requested user, including their ID, name, email, and administrative status. ```json { "data": { "id": 1, "name": "Mike Hawk", "email": "joe@advinservers.com", "email_verified_at": null, "root_admin": true, "servers_count": 3 } } ``` -------------------------------- ### Setting Directory Permissions for Convoy Panel (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/updating-the-panel.md This command sets write permissions for 'others' on the `storage` and `bootstrap/cache` directories within the Convoy Panel installation. This is crucial to prevent webserver-related errors after downloading new files, ensuring the application can write necessary data. ```bash chmod -R o+w storage/* bootstrap/cache ``` -------------------------------- ### Fetching Locations API Response - JSON Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/locations.md This JSON snippet illustrates a successful response from the GET /api/application/locations endpoint. It includes an array of location objects under 'data', each with 'id', 'short_code', 'description', 'nodes_count', and 'servers_count'. The 'meta' object provides pagination details such as total items, current page, and links for navigation. ```json { "data": [ { "id": 187, "short_code": "103", "description": "103", "nodes_count": 0, "servers_count": 0 }, { "id": 188, "short_code": "101", "description": "screw you chit", "nodes_count": 0, "servers_count": 0 }, { "id": 189, "short_code": "113", "description": "113", "nodes_count": 0, "servers_count": 0 } ], "meta": { "pagination": { "total": 5139, "count": 50, "per_page": 50, "current_page": 1, "total_pages": 103, "links": { "next": "https://advinservers.com/api/admin/locations?page=2" } } } } ``` -------------------------------- ### Updating a User Response Example - Users API - JSON Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/users.md This JSON object represents the successful response after updating a user. It returns the updated user's data, reflecting the changes made in the request payload. The structure is similar to fetching a single user, confirming the modifications. ```json { "data": { "id": 1, "name": "Mike Hawkk", "email": "joe@advinservers.com", "email_verified_at": null, "root_admin": true, "servers_count": 3 } } ``` -------------------------------- ### Fetching Node Templates API Response (JSON) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/api/templates.md This JSON snippet illustrates the expected response when fetching templates for a specific node using the GET /api/application/nodes//template-groups endpoint. It shows template groups (e.g., 'Ubuntu', 'Windows') at the top level, each containing an array of actual templates (e.g., '20.04', 'Windows Server 2022'). The 'uuid' field within the nested 'templates.data' array should be used for server creation, not the 'uuid' of the template group. ```json { "data": [ { "id": 3, "node_id": 4417, "uuid": "17f3cc38-8739-472f-9098-28b7acfb6611", "name": "Ubuntu", "hidden": 0, "order_column": 1, "templates": { "data": [ { "id": 20, "template_group_id": 3, "uuid": "d176b498-87e8-421f-a958-048ef15ef199", "name": "20.04", "vmid": 1000, "hidden": 1, "order_column": 2 } ] } }, { "id": 19, "node_id": 4417, "uuid": "6fed2adf-ae45-4ff2-961b-368cc05cfb33", "name": "Windows", "hidden": 0, "order_column": 2, "templates": { "data": [ { "id": 21, "template_group_id": 19, "uuid": "1fd40e86-6e00-4495-bc13-da91a7a9b102", "name": "Windows Server 2022", "vmid": 1002, "hidden": 0, "order_column": 1 } ] } } ] } ``` -------------------------------- ### Downloading Convoy Downloader Script (Shell) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/misc/download-vm-templates.md This command downloads the latest version of the `downloader_x86` script from the ConvoyPanel GitHub repository. It is the first step to automate the download of VM templates onto your Proxmox node. This script needs to be run on the Proxmox node itself, either via SSH or the web terminal. ```sh wget https://github.com/ConvoyPanel/downloader/releases/latest/download/downloader_x86 ``` -------------------------------- ### Collecting Panel Logs for X86 Systems using Bash Source: https://github.com/convoypanel/documentation/blob/master/src/docs/project/support.md This Bash snippet downloads the latest X86 version of the Convoy Panel log collector utility, grants it execute permissions, and then runs it. The utility generates a link to the collected panel logs, which is crucial for diagnosing issues and should be submitted with any support request. ```bash wget https://github.com/ConvoyPanel/log-collector/releases/latest/download/log_collector_x86 chmod +x ./log_collector_x86 ./log_collector_x86 ``` -------------------------------- ### Collecting Panel Logs for ARM Systems using Bash Source: https://github.com/convoypanel/documentation/blob/master/src/docs/project/support.md This Bash snippet downloads the latest ARM version of the Convoy Panel log collector utility, makes it executable, and then runs it. While ARM is not officially supported, this utility helps gather diagnostic logs for ARM-based systems, which can still be useful for troubleshooting. ```bash wget https://github.com/ConvoyPanel/log-collector/releases/latest/download/log_collector_arm chmod +x ./log_collector_arm ./log_collector_arm ``` -------------------------------- ### Creating a Server Request Payload - Convoypanel API - JSON Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/servers.md This JSON payload defines the parameters required to create a new server via the Convoypanel API. It includes details such as node ID, user ID, server name, hostname, resource limits (CPU, memory, disk), account password, and template UUID. The 'should_create_server' flag indicates whether the server should be provisioned immediately. ```json { "node_id": 4417, "user_id": 1, "name": "testee", "hostname": "advinservers.com", "vmid": null, "limits": { "cpu": 3, "memory": 4294967296, "disk": 3145728000, "snapshots": 0, "backups": null, "bandwidth": null, "address_ids": [] }, "account_password": "q%#tUyLPAm@2q", "should_create_server": true, "template_uuid": "d176b498-87e8-421f-a958-048ef15ef199", "start_on_completion": false } ``` -------------------------------- ### Creating a New User in ConvoyPanel API (JSON Payload & Response) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/api/users.md This snippet provides the JSON payload for creating a new user via a POST request to /api/application/users, along with the expected JSON response upon successful creation. The payload requires 'root_admin', 'name', 'email', and 'password' fields. The response includes the newly created user's details, including their assigned ID. ```JSON { "root_admin": true, "name": "Anush K", "email": "anush.k@advinservers.com", "password": "qCG2xHoA^%@%g" } ``` ```JSON { "data": { "id": 43, "name": "Anush K", "email": "anush.k@advinservers.com", "email_verified_at": null, "root_admin": true, "servers_count": 0 } } ``` -------------------------------- ### Creating a Server Response - ConvoyPanel API - JSON Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/api/servers.md This JSON object represents the successful response returned after creating a server. It provides detailed information about the newly created server, including its ID, UUID, status, current usages, allocated limits, associated user, and node details. ```json { "data": { "id": "d45309ad", "uuid": "d45309ad-9c9e-4ea7-b386-01a2e54a421e", "node_id": 4417, "hostname": "advinservers.com", "name": "testee", "description": null, "status": "installing", "usages": { "bandwidth": 0 }, "limits": { "cpu": 3, "memory": 4294967296, "disk": 3145728000, "snapshots": 0, "backups": null, "bandwidth": null, "addresses": { "ipv4": [], "ipv6": [] }, "mac_address": null }, "user_id": 1, "vmid": 549998493, "internal_id": 355, "user": { "data": { "id": 1, "name": "Mike Hawk", "email": "joe@advinservers.com", "email_verified_at": null, "root_admin": true, "servers_count": 0 } }, "node": { "data": { "id": 4417, "location_id": 5340, "name": "us-southeast", "cluster": "us-southeast", "fqdn": "us-southeast.performave.com", "port": 8006, "memory": 68719476736, "memory_overallocate": 0, "memory_allocated": 10737418240, "disk": 137438953472, "disk_overallocate": 0, "disk_allocated": 9588178944, "vm_storage": "local", "backup_storage": "local", "iso_storage": "local", "network": "vmbr0", "servers_count": 0 } } } } ``` -------------------------------- ### Creating a New IP Address Pool (JSON) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/ipam.md This snippet demonstrates how to create a new IP address pool by sending a POST request. The payload requires a 'name' for the pool and an array of 'node_ids' specifying which nodes can access this pool. The API returns the details of the newly created pool, including its ID, name, node count, and initial address count. ```JSON { "name": "Node dc01.local", "node_ids": [ 1 ] } ``` ```JSON { "data": { "id": 4, "name": "Node dc01.local", "nodes_count": 1, "addresses_count": 0 } } ``` -------------------------------- ### Creating a User Request Payload - Users API - JSON Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/users.md This JSON object defines the required payload for creating a new user. It includes essential fields such as 'root_admin' status, 'name', 'email', and 'password'. All fields are necessary for successful user creation. ```json { "root_admin": true, "name": "Anush K", "email": "anush.k@advinservers.com", "password": "qCG2xHoA^%@%g" } ``` -------------------------------- ### Downloading Latest Convoy Panel Release (Bash) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v3/updating-the-panel.md This command downloads the latest release archive of the Convoy Panel from GitHub using `curl` and immediately extracts its contents into the current directory using `tar`. This is the first step in acquiring the new panel files for an update. ```bash curl -L https://github.com/convoypanel/panel/releases/latest/download/panel.tar.gz | tar -xzv ``` -------------------------------- ### Fetching Node Templates API Response (JSON) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/templates.md This JSON snippet illustrates the expected response structure when fetching template groups and templates for a specific node using the GET /api/application/nodes//template-groups endpoint. It shows how template groups contain nested templates, each with a unique UUID. The 'uuid' field within the nested 'templates.data' array should be used for server creation, not the 'uuid' of the template group. ```json { "data": [ { "id": 3, "node_id": 4417, "uuid": "17f3cc38-8739-472f-9098-28b7acfb6611", "name": "Ubuntu", "hidden": 0, "order_column": 1, "templates": { "data": [ { "id": 20, "template_group_id": 3, "uuid": "d176b498-87e8-421f-a958-048ef15ef199", "name": "20.04", "vmid": 1000, "hidden": 1, "order_column": 2 } ] } }, { "id": 19, "node_id": 4417, "uuid": "6fed2adf-ae45-4ff2-961b-368cc05cfb33", "name": "Windows", "hidden": 0, "order_column": 2, "templates": { "data": [ { "id": 21, "template_group_id": 19, "uuid": "1fd40e86-6e00-4495-bc13-da91a7a9b102", "name": "Windows Server 2022", "vmid": 1002, "hidden": 0, "order_column": 1 } ] } } ] } ``` -------------------------------- ### Creating Multiple IP Addresses in a Pool (JSON) Source: https://github.com/convoypanel/documentation/blob/master/src/docs/panel/v4/api/ipam.md This snippet demonstrates how to add a range of IP addresses to a specified pool using a bulk action via a POST request. The payload sets 'is_bulk_action' to true and defines the range with 'starting_address' and 'ending_address'. Other parameters like 'type', 'cidr', 'gateway', 'mac_address', and 'server_id' apply to the entire range. This operation returns no content upon success. ```JSON { "is_bulk_action": true, "starting_address": "172.16.141.80", "ending_address": "172.16.141.85", "mac_address": null, "server_id": 10, "type": "ipv4", "cidr": 24, "gateway": "172.16.141.1" } ```