# Introduction Source: https://docs.loupp.dev/index What is Loupp? Loupp is your ultimate tool for streamlining the deployment of Laravel, or PHP applications. At Loupp, we understand the complexities and challenges developers face when it comes to deploying and managing their applications efficiently. That's why we've developed a powerful solution that ensures seamless deployment and robust server management capabilities for all your PHP-based projects. With Loupp, you can say goodbye to the headaches of manual deployment processes. Our platform offers a seamless experience, allowing you to effortlessly deploy your Laravel, or PHP applications with just a few clicks. Whether you're a seasoned developer or just starting your journey, Loupp provides an accessible and intuitive interface designed to meet your deployment needs be it VPS or Shared Hosting Service.
Start your journey with Loupp today. See Loupp in action. # Loupp Server IP Source: https://docs.loupp.dev/loupp-server-ip Loupp Server IP address for whitelisting ## Loupp Server IP In case you have firewalls set up, below is a list of Loupp Server Ip addresses you should whitelist 157.180.123.91 Check out [Firewalls and rules](/firewalls-and-rules) If you want to utilize an existing VPC, ensure that the subnet is configured to automatically assign public IP addresses. This existing VPC default security group must permit Loupp to establish SSH connections to the server. check out [AWS settings](/aws-settings) # Server Creation Source: https://docs.loupp.dev/server/creation Learn how to create and configure new servers in Loupp using server presets ## Overview Loupp simplifies server creation by using pre-configured server presets. Once you've created your server presets with your preferred configurations, you can deploy new servers in just a few clicks directly from the dashboard. ## Prerequisites Before creating a server, you need to: 1. **Configure server provider credentials** (DigitalOcean, AWS, etc.) - see [Server Providers](/server/providers) for setup instructions 2. **Create server presets** with your preferred configurations - see [Server Presets](/settings/presets) for detailed configuration 3. **Ensure you have an active plan** that allows server creation ## Creating a New Server Navigate to the Servers section in your Loupp dashboard and click the "New Server" button. Provide a descriptive name for your server (3-50 characters, must be unique). You can also use the "Generate custom name" button for automatic naming. Choose from your available server presets. Each preset contains pre-configured settings including: * Provider and region * Server type and size * PHP version * Database version * Other specifications Click "Create Server" to begin the provisioning process. ## Server Presets Server presets are pre-configured templates that streamline the server creation process. For detailed information on creating and managing presets, see [Server Presets](/settings/presets). * Provider selection (DigitalOcean, AWS, etc.) - see [Server Providers](/server/providers) * Region configuration * Server type and specifications * PHP version selection - see [PHP Configuration](/server/php) * Database type and version - see [Database Management](/server/databases) * Server size and resources * Consistent server configurations * Faster deployment process * Reduced configuration errors * Easy replication of successful setups If you don't have any presets, you'll see a "Create Preset" button in the server creation modal. Create your first preset before attempting to create a server. See [Server Presets](/settings/presets) for detailed configuration options. ## Server Setup Process When you create a new server, Loupp automatically handles the complete setup process: Loupp begins by initializing the server configuration using your selected preset and creating the server record in the database. The system provisions the server resources through your chosen provider's API using the preset configuration. See [Server Providers](/server/providers) for supported providers. Essential software packages, PHP, database, and other dependencies are automatically installed according to your preset. See [PHP Configuration](/server/php) for PHP-specific settings. The server is configured with security settings, user accounts, and final optimizations based on your preset specifications. ## Server Types Loupp supports different server types for various use cases: Standard web server for hosting websites and web applications with PHP support. See [Sites Overview](/sites/overview) for managing web applications. Dedicated server optimized for database operations and storage with your selected database type. See [Database Management](/server/databases) for database operations. ## Server Status Monitoring During the creation process, you can monitor the server status: * **Building**: Server is being provisioned and configured * **Connected**: Server is ready and operational * **Unreachable**: Server is not responding * **Archived**: Server has been archived * **Error**: An issue occurred during setup * **Deleting**: Server is being removed The server creation process typically takes 3-10 minutes depending on the provider and server specifications. ## Post-Creation Actions Once your server is active, you can: * **Access server preparation page**: Monitor setup progress and view real-time logs * **Deploy applications**: Install and configure your web applications - see [Sites Overview](/sites/overview) * **Configure databases**: Set up database servers and users (for database servers) - see [Database Management](/server/databases) * **Manage SSH access**: Configure SSH keys for secure server access - see [SSH Access](/server/ssh) * **Set up monitoring**: Configure logs, events, and performance monitoring - see [Server Logs](/server/logs) and [Server Events](/server/events) Keep your server credentials secure, it gets sent to you via email after creation. Loupp automatically generates and stores sudo passwords, database passwords, and other access credentials. After server creation starts, you'll be redirected to the server preparation page where you can monitor the setup progress in real-time. ## Troubleshooting If server creation fails: 1. **Check provider credentials**: Ensure your API keys are valid and have the necessary permissions - see [Server Providers](/server/providers) 2. **Verify preset configuration**: Ensure your preset has valid provider, region, and specification settings - see [Server Presets](/settings/presets) 3. **Check plan limits**: Verify your current plan allows creating new servers 4. **Contact support**: If issues persist, our support team can help resolve the problem After successful creation, you'll receive server credentials including SSH access, database passwords, and other essential information for managing your server. # Daemons Source: https://docs.loupp.dev/server/daemons Manage background processes and daemons for long-running applications on your servers in Loupp ## Overview Server daemons are background processes managed by supervisor. Loupp provides an interface for managing these processes with automatic restart capabilities. ## Creating Daemons Navigate to your server dashboard and click on the "Daemons" tab. * **Directory**: Working directory (default: `/home/loupp/`) * **Command**: The command to run as a daemon * **User**: loupp or root * **No of Process**: Number of instances to run * **Start Seconds**: Time to wait before considering process started * **Stop Seconds**: Time to wait for graceful shutdown Click "Create daemon" to create and start the daemon. ## Configuration Options ### Process Management Control how many instances run simultaneously. Time to wait before considering process successfully started. Graceful shutdown timeout. ### Working Directory ```bash theme={null} # Common working directory examples /home/loupp/ # User home directory /home/loupp/my-site/ # Project-specific directory ``` ## Common Daemon Examples ### Laravel Queue Workers ```bash theme={null} php /home/loupp/your-site/artisan queue:work --sleep=3 --tries=3 ``` ```bash theme={null} node /home/loupp/app/server.js ``` ```bash theme={null} python3 /home/loupp/scripts/monitor.py ``` ## Daemon Management ### Interface The daemon interface displays: * **Name**: Daemon identifier with status indicator * **User**: User account running the daemon * **Command**: The command being executed * **Actions**: Restart, View Logs, Delete ### Daemon Actions Restart the daemon process(es) with current configuration. Access daemon execution logs and output. Remove the daemon configuration and stop all processes. ## Process Monitoring ### Health Monitoring * **Process Status**: Check if processes are running * **Log Access**: View execution logs for debugging ### Status Indicators * **Green dot**: Daemon is active and running * **Red dot**: Daemon is inactive or has errors ## Log Management ### Accessing Daemon Logs Click "View Logs" on any daemon to access its execution logs. Review the log output including stdout, stderr, and process status. Use the "Refresh Logs" button to get the latest log entries. ## Performance Optimization ### Resource Management * Balance process count between performance and resource usage * Set appropriate memory limits for long-running processes ## Troubleshooting ### Common Issues * Check command syntax and paths * Verify user permissions * Check working directory access * Review error logs * Check for resource constraints * Review application errors * Verify configuration settings * Monitor memory and CPU usage * Check for memory leaks * Review process count settings # Databases Source: https://docs.loupp.dev/server/databases Create and manage databases and database users on your servers in Loupp ## Overview Loupp provides comprehensive database management capabilities, allowing you to create, configure, and manage multiple databases and users on your servers. Each server can host multiple databases with different access permissions and configurations. ## Database Management ### Creating a New Database Navigate to your server dashboard and click on the "Databases" tab to access the database management interface. Fill in the database configuration: * **Database Name**: Choose a unique name for your database (alphanumeric and dashes only) * **Default Database**: Optionally set this as the default database for the server Click "Create Database" to begin the automated setup process. ### Database Configuration When you create a database, Loupp automatically: * **Creates Database**: Sets up the database with proper permissions using the server's configured SQL version (MySQL, MariaDB, or PostgreSQL) * **Configures Access**: Sets up root access and user permissions * **Optimizes Settings**: Applies performance and security optimizations * **Integrates with Applications**: Makes the database immediately available for your web applications Databases are created using the server's configured SQL version (MySQL, MariaDB, or PostgreSQL) and are immediately available for use. ## Database User Management ### Creating Database Users Set up the database user with the following information: * **Username**: Choose a unique username for database access (alphanumeric and dashes only) * **Password**: Set a secure password for the user * **Host**: Specify the host from which the user can connect (defaults to 'localhost') Click "Create User" to create the database user account. ### User Permissions Database users are created with comprehensive permissions based on the database type: * **MySQL/MariaDB Users**: Full privileges on all databases (`GRANT ALL ON *.*`) * **PostgreSQL Users**: Full administrative privileges including `CREATEDB`, `CREATEROLE`, `REPLICATION`, and `BYPASSRLS` Database passwords are encrypted and securely stored. Keep these credentials secure and don't share them publicly. ## Database Operations **All database operations are delicate services that can significantly impact your server's performance, stability, and data integrity.** These operations directly affect your database system and may temporarily disrupt services. Always perform operations during maintenance windows and ensure you have proper backups. ### Available Actions Add new databases and users to your server with automatic configuration. Remove databases and users that are no longer needed (with safety checks). Export databases for backup or migration purposes. Designate a database as the server's default database. ### Database Deletion **Database deletion is an extremely delicate operation that permanently removes all data and cannot be undone.** Always create backups before deletion and double-check that you're deleting the correct database. This operation affects server stability and data integrity. When deleting databases: * **Safety Checks**: Loupp prevents deletion of default databases * **Minimum Database Protection**: Ensures at least one database remains on the server Database deletion is irreversible. Ensure you have backups before deleting important databases. ### Database User Deletion **Deleting database users is a delicate operation that can break application connections and cause service disruptions.** Users with active database connections will lose access immediately, potentially causing application failures. Always verify that no critical applications depend on the user before deletion. When deleting database users: * **Minimum User Protection**: At least one database user must remain on the server * **System User Protection**: The 'loupp' system user cannot be deleted * **Connection Impact**: Active connections using the deleted user will be terminated * **Application Dependency**: Ensure no applications rely on the user before deletion ### Database Download/Export **Database export operations expose your sensitive data to potential security risks.** Exported database files contain all your data in plain text and are accessible via download links sent via email. Only export databases when absolutely necessary and ensure the exported data is handled securely. Consider the sensitivity of your data before proceeding with any export operation. Loupp provides database export functionality: * **Automated Export**: Uses mysqldump to create SQL exports * **Compression**: Automatically compresses exports using gzip * **Email Delivery**: Sends download links via email for security * **Auto-Cleanup**: Automatically removes exported files after 5 minutes ### Setting Default Database You can designate any database as the server's default: * **Single Default**: Only one database can be default at a time * **Application Integration**: Default databases are prioritized for application connections ## Database Integration ### Database Connection URL Loupp provides a convenient database connection URL that you can use with any database client or application: * **Connection URL**: A pre-formatted connection string for your database * **Database Client Support**: Compatible with popular database management tools like: * MySQL Workbench * phpMyAdmin * DBeaver * TablePlus * Command line clients * **Secure Access**: Uses your configured database credentials * **Immediate Availability**: Available as soon as your database is created ### Application Integration Databases created in Loupp are automatically available to be used in your projects: ```php theme={null} // Laravel database configuration example DB_CONNECTION=mysql DB_HOST=localhost DB_DATABASE=your_database_name DB_USERNAME=your_database_user DB_PASSWORD=your_database_password DB_PORT=3306 ``` ### Using the Connection URL 1. **Copy the URL**: From the "Database Connection Url" section in your server dashboard 2. **Database Client**: Paste the URL into your preferred database management tool 3. **Enter Password**: Manually enter your loupp user password when prompted 4. **Connect**: Establish the connection to manage your database The connection URL provides all the necessary connection details, making it easy to connect from any database client or application without manually configuring connection parameters. ## Security and Access Control To configure firewall rules for database access, visit the [Network page](/docs/server/network) in your server documentation. There you can manage port restrictions, IP whitelisting, and connection monitoring for your database services. ## Troubleshooting ### Common Database Issues * Check if the database service is running * Verify firewall rules allow database connections * Confirm database user credentials are correct * Verify user permissions are properly configured * Check if the user has access to the specific database * Ensure the user can connect from the specified host * Confirm the database name is spelled correctly * Check if the database was successfully created * Verify the database exists on the server * Ensure the database is not set as default * Verify at least one other database exists on the server * Check if any applications are actively using the database * Ensure at least one database user remains * Verify the user is not the protected 'loupp' system user * Check if the user has active database connections Successfully created databases are immediately available for use by your web applications with proper security and performance optimizations. The system supports MySQL, MariaDB, and PostgreSQL with automatic configuration and management. # Logs Source: https://docs.loupp.dev/server/logs View and manage server logs to monitor performance and troubleshoot issues in Loupp ## Overview Server logs provide valuable insights into your server's operation, including web server activity, application errors, and system performance. Loupp provides centralized access to all server logs with real-time monitoring capabilities. ## Available Log Types Loupp provides access to several types of server logs: Detailed error logs from the Nginx web server, including HTTP errors and configuration issues. Access logs showing all incoming requests, response codes, and visitor information. Database error logs for troubleshooting database connection and query issues. ## Accessing Server Logs ### Viewing Logs Access your server dashboard and click on the "Logs" tab to view the logs management interface. Choose the type of logs you want to view from the dropdown menu: * Nginx Error Logs * Nginx Access Logs * MySQL Error Logs The selected log content will be displayed in a formatted, readable interface with syntax highlighting. ### Log Refresh You can also manually refresh logs using the refresh button to get the latest entries. # Network Source: https://docs.loupp.dev/server/network Manage firewall rules, load balancing, and network configuration on your servers in Loupp ## Overview Network management in Loupp provides control over firewall rules and load balancer setup for your servers. ## Firewall Management ### Creating Firewall Rules Navigate to your server dashboard and click on the "Network" tab. * **Name**: Descriptive name for the rule * **Port**: Port number (optional - if not provided, applies to all ports) * **IP Address**: IP address or range (optional - if not provided, applies to all IPs) * **Rule Type**: Allow or deny Click "Create" to create the firewall rule. It will be automatically applied to the server. ### Firewall Rule Logic Rule applies to specific port from specific IP address. Rule applies to specific port from any IP address. Rule applies to any port from specific IP address. You must specify either a port or IP address (or both). Rules cannot be created without at least one. ## Load Balancer Configuration ### Setting Up Load Balancing In the network interface, locate the "Load Balancer" section (only visible for load balancer servers). Choose from available web servers to add to your load balancer: * **Server Selection**: Pick servers from your available web servers * **Connection**: Click the plus icon to add server to load balancer Click the delete icon to remove servers from the load balancer. Servers connected to sites cannot be removed from the load balancer. Remove site connections first. ## Network Security ### Security Best Practices * **Principle of Least Privilege**: Only open ports and allow IPs that are necessary * **Default Deny**: Start with restrictive firewall and add rules as needed * **Regular Review**: Periodically review and audit firewall rules ### Common Firewall Rules Allow HTTP (80) and HTTPS (443) from any source for public web access. Restrict SSH (22) to specific IP addresses for security. Allow database ports only from application servers. # PHP Source: https://docs.loupp.dev/server/php Manage PHP versions and configuration settings on your servers in Loupp ## Overview PHP configuration management allows you to control PHP versions, execution limits, and performance settings for your web applications. Loupp provides an intuitive interface for managing PHP settings without requiring manual server configuration. ## PHP Version Management ### Current PHP Version The PHP management interface displays your server's current PHP configuration: * **Active Version**: Currently running PHP version * **Available Versions**: List of PHP versions you can switch to * **Version Status**: Information about the current version's capabilities PHP version changes are applied immediately and affect all web applications running on the server. ### Switching PHP Versions Choose the desired PHP version from the dropdown menu of available versions. Click "Switch Version" to begin the PHP version change process. Changing PHP versions may affect application compatibility. Test your applications after version changes. ## Available PHP Versions Loupp supports multiple PHP versions to meet different application requirements: * PHP 8.4 * PHP 8.3 * PHP 8.2 * PHP 8.1 * PHP 8.0 * PHP 7.4 Choose the PHP version that best matches your application requirements and compatibility needs. ## PHP Configuration Settings ### Max Execution Time Control how long PHP scripts can run: Locate the "Max Execution Time" section in the PHP configuration interface. Enter the desired execution time in seconds (e.g., 300 for 5 minutes). Click "Save Max Time" to update the configuration. **Common Settings:** * **30 seconds**: Default for web requests * **300 seconds (5 minutes)**: For longer-running scripts * **600 seconds (10 minutes)**: For intensive operations * **0**: No time limit (use with caution) Setting execution time to 0 (unlimited) can lead to resource exhaustion and server instability. ### Max File Upload Size Configure the maximum allowed file upload size: Locate the "Max File Upload Size" section in the PHP configuration interface. Enter the desired upload size in megabytes (e.g., 64 for 64MB). Click "Save Max Upload" to update the configuration. **Common Settings:** * **2MB**: Default limit * **8MB**: Standard web application limit * **16MB**: For file-heavy applications * **64MB**: For large file uploads * **128MB+**: For specialized applications Upload size limits affect both individual file uploads and total POST data size. # Providers Source: https://docs.loupp.dev/server/providers Link or create servers from supported VPS providers in Loupp # Server Providers You can link or create servers from these providers in Loupp. ## Supported Server Providers Cloud infrastructure provider with simple pricing and developer-friendly tools. Amazon Web Services with comprehensive cloud computing platform. ## DigitalOcean To begin, generating an API token within your DigitalOcean account is a straightforward process. Log in to your digitalocean.com account and navigate to the "API" section located in the left sidebar. From there, select "Tokens/Keys" and proceed to click on "Generate New Token" to initiate the token creation process. Copy the generated token and visit your server provider tab to add it to Loupp. ## AWS To enable AWS support for your account, you'll need to create a secret/key pair to input into Loupp's system. Start by visiting AWS IAM Settings and navigate to the "Access keys" tab. From there, generate a new access key. Add the access key and secret to your server provider settings in Loupp. ### AWS IAM User Requirements To ensure that Loupp works properly, your AWS IAM users must meet these requirements: * **Programmatic API Access**: AWS IAM users are required to possess Programmatic API Access. * **Managed Policies**: AWS IAM users must be part of a group that has been assigned the `AmazonEC2FullAccess` and `AmazonVPCFullAccess` managed policies. * **VPC Configuration**: If you want to utilize an existing VPC, ensure that the subnet is configured to automatically assign public IP addresses. * **Security Group**: This existing VPC default security group must permit Loupp to establish SSH connections to the server. ### Example AWS Security Group Settings Below is an example of the required security group configuration:
Type Protocol Port Range Source Description
HTTP TCP 80 0.0.0.0/0 HTTP
HTTP TCP 80 ::/0 HTTP
SSH TCP 22 142.93.175.213 SSH from Loupp
HTTP TCP 443 0.0.0.0/0 HTTP
HTTP TCP 443 ::/0 HTTP
Make sure to restrict SSH access (port 22) to only allow connections from Loupp's IP address (142.93.175.213) for security. After configuring your provider credentials, you can create new servers directly from the Loupp dashboard without needing to manually provision them through the provider's interface. # Scheduler Source: https://docs.loupp.dev/server/scheduler Create and manage scheduled tasks, cron jobs, and automated processes on your servers in Loupp for efficient task automation. ## Overview Create and manage automated tasks that run at specified intervals on your servers. ## Creating Scheduled Tasks Navigate to your server dashboard and click on the "Scheduler" tab. * **Label**: Descriptive name for your task * **Command**: Command to execute * **Sudo User**: loupp or root * **Schedule**: Frequency or custom cron expression Choose from predefined schedules or create custom cron expressions: * Every Minute: `* * * * *` * Hourly: `0 * * * *` * Nightly: `0 0 * * *` * Daily: `0 0 * * *` * Weekly: `0 0 * 0 *` * Monthly: `0 0 1 * *` * Custom: Define your own cron expression Click "Create Scheduler" to add the task to the server's cron configuration. Only create and delete operations are supported. Edit requires recreation. ## Default Schedulers New projects automatically get: **Schedule**: `0 0 * * 0` (Weekly Sunday) **Command**: `sudo apt-get autoremove && sudo apt-get autoclean` **User**: root **Schedule**: `30 00 * * *` (Daily 12:30 AM) **Command**: `/usr/local/bin/composer self-update` **User**: root ## Security * Use `loupp` for application tasks, `root` only when needed * Validate commands to prevent injection * Regular audit of scheduled tasks ## Troubleshooting ### Common Issues * Verify cron service is running * Check schedule configuration * Ensure user permissions * Review cron logs * Check user permissions * Verify file paths and access rights * Check user shell configuration # Settings Source: https://docs.loupp.dev/server/settings Manage general server configuration, settings, and server lifecycle in Loupp ## Overview Server settings provide control over your server's configuration, including server details, SSH key management, and server lifecycle operations. ## Server Information ### Basic Server Details The server settings interface displays server information: * **Region**: Geographic location of the server * **Public IP**: Internet-facing IP address * **Server Name**: Human-readable server identifier ## Server Configuration ### Updating Server Details Navigate to your server dashboard and click on the "Settings" tab. Update the following fields as needed: * **Name**: Change the display name * **Port**: Modify the SSH connection port * **Server IP**: Update if IP address changes Click "Save" to apply the configuration changes. Server name changes are immediately reflected in the dashboard and all related interfaces. ### SSH Port Configuration Customize the SSH connection port for enhanced security: Standard SSH port 22 is configured by default. Change to any available port (1024-65535) for security through obscurity. Changing SSH ports requires updating your SSH client configuration and firewall rules. ## Server SSH Key Management ### Server's SSH Key Each server has a unique SSH key for integrations: Loupp automatically generates a unique SSH key pair for each server. Used for server integrations, deployments, and secure communications. ### Loupp SSH Key The SSH key added to your server during setup: Stored in `/home/loupp/.ssh/authorized_keys` and `/root/.ssh/authorized_keys` If accidentally deleted, copy from settings and add back to server. ### Copying SSH Keys Find the SSH public key in the server settings interface. Click the copy button to copy the key content. Add the key to services requiring server access (GitHub, GitLab, etc.). The server SSH key is essential for source control integrations and automated deployments. ## Server Lifecycle Management ### Server Archiving Archive servers to temporarily disable them: In the server settings, locate the "Archive Server" section. Click "Archive" and confirm the action. The server status changes to "Archived" and becomes inactive. Archived servers are not deleted and can be reconnected and reactivated at any time. ### Server Destruction Permanently remove servers: In server settings, locate the "Destroy Server" section. Click "Destroy" and confirm the irreversible action. The server status changes to "Deleting" and removal begins. **Destruction Considerations:** * **Data Loss**: All server data is permanently removed * **Service Impact**: Applications and services are stopped * **Billing**: Server billing stops immediately * **Dependencies**: Check for dependent services or load balancers Server destruction is irreversible. Ensure you have backups of important data before proceeding. Servers connected to load balancers cannot be destroyed. Remove the load balancer connection first. ## Server Status Management ### Status Monitoring Monitor server health and status: Server is running normally and accessible. Server is temporarily disabled in loupp but data is preserved. Server is being provisioned or configured. Server is being removed from the system. Server encountered an issue requiring attention. # SSH Source: https://docs.loupp.dev/server/ssh Manage SSH keys and secure server access in Loupp ## Overview Loupp allows you to manage SSH keys, configure access permissions, and maintain secure connections to your server. The system automatically attaches your account SSH keys to newly created servers and manages access control. ## SSH Key Management ### Adding New SSH Keys Navigate to your dashboard and click on the "SSH Keys" section to access the SSH key management interface. Fill in the SSH key configuration: * **Name**: Choose a descriptive name for your SSH key (e.g., "MacBook Pro", "Work Laptop") * **Public Key**: Paste your SSH public key content in the standard OpenSSH format The saved key will be automatically added to any future servers you create. ## SSH Key Deployment ### Automatic Deployment When you add an SSH key to Loupp: 1. **Key Validation**: The system validates the SSH key format and ensures uniqueness across your account 2. **Future Server Integration**: The key is automatically added to any new servers you create 3. **Existing Server Management**: You can manually add SSH keys to existing servers using the "Add to Servers" button SSH keys are immediately available for deployment to servers. Ensure you have the corresponding private key before adding the public key. ## Managing SSH Keys ### Adding Keys to Existing Servers Click the "Add to Servers" button next to the SSH key you want to deploy. Select from the list of available servers where you want to add the SSH key. The SSH key will be automatically added to the selected server's authorized\_keys file. ### Removing SSH Keys Click the actions dropdown (three dots) next to the SSH key you want to remove. Select from two removal options: * **Delete and remove from servers**: Removes the key from your account AND from all servers where it was deployed * **Delete**: Removes the key from your account only (keeps it on servers) Removing an SSH key will immediately revoke access for that key. Ensure you have alternative access methods before removing keys. ### Default SSH User Loupp creates a default user account for SSH access: * **Username**: `loupp` (default system user) * **Sudo Access**: Full administrative privileges * **Home Directory**: `/home/loupp` * **Shell Access**: Full bash shell access The default SSH user has sudo privileges, allowing you to perform administrative tasks on your server. ## Connecting to Your Server ### Using SSH Client Connect to your server using any SSH client: ```bash theme={null} ssh loupp@your-server-ip ``` ## Troubleshooting SSH Issues ### SSH Service Issues If you cannot connect via SSH: 1. **Check Server Status**: Ensure the server is running and accessible 2. **Verify SSH Service**: Check if the SSH daemon is running 3. **Review Firewall Rules**: Ensure SSH port is open in the firewall 4. **Check Logs**: Review SSH logs for error messages Proper SSH key management ensures secure, controlled access to your servers while maintaining security best practices. The system automatically handles deployment and removal, making it easy to manage access across multiple servers. # Server Presets Source: https://docs.loupp.dev/settings/presets Create and manage server presets for streamlined deployment in Loupp ## Overview Server presets allow you to save and reuse server configurations for quick deployment. Create templates with your preferred provider, region, server specifications, and software versions to streamline the server creation process. Learn how to create servers using presets in the server creation guide. ## Preset Management ### Core Features Save server configurations as reusable templates Set a default preset for quick server creation Modify existing presets to match your requirements ## Creating Presets ### Preset Configuration Click "New Preset" button to open the preset creation modal Enter a descriptive name for your preset or use "Generate custom name" Choose from your connected providers or add new ones Set region, server type, OS, size, database, and PHP version ### Provider Support **Regions**: Available regions with size options **Server OS**: Ubuntu 24.04 (LTS) and other distributions **Configuration**: Standard VPS setup with PHP and database **Regions**: AWS regions with VPC and subnet configuration **Server OS**: Ubuntu 22.04 (LTS) and other AMIs **Configuration**: VPC-based setup with advanced networking ### Server Configuration Options * **Web Server**: Standard web application hosting * Additional types may be available based on provider * **Size**: CPU, RAM, and disk space options * **Region**: Geographic location for deployment * **Operating System**: Ubuntu distributions and other OS options * **PHP Version**: Available PHP versions (8.3, 8.2, etc.) * **Database**: MySQL 8.0 and other database options ## Managing Presets ### Preset Interface Each preset displays as a card with provider logo and name Shows server type, PHP version, database, and region ### Preset Actions Set a preset as default for quick server creation **Usage**: Click "Make Default" in the preset actions menu Modify existing preset configurations **Usage**: Click "Edit" to open the preset editing modal Remove unused presets from your account **Usage**: Click "Delete" to remove the preset permanently ### Default Preset The default preset is marked with a "Default Preset" badge and is used as the starting configuration when creating new servers. ## Provider Integration ### Connected Providers See all your connected cloud providers in the preset creation modal Click on unconnected providers to add them to your account Set up API keys and authentication for each provider Learn how to manage your cloud provider connections and API keys. ### Provider-Specific Features * Region-based size selection * Ubuntu 24.04 LTS default OS * Standard VPS configuration * VPC and subnet configuration * Region-specific AMI selection * Advanced networking options # Source Control Source: https://docs.loupp.dev/settings/source-control Connect and manage your source control providers in Loupp ## Overview Source control integration allows you to connect your GitHub, GitLab, and Bitbucket accounts to Loupp for seamless deployment and repository management. Link multiple providers to access repositories across different platforms. Learn how to create sites using connected source control providers. ## Supported Providers ### Available Platforms Connect your GitHub repositories for deployment Link GitLab projects and repositories Only available for authenciation ## Connecting Providers ### Authentication Process Click on the provider card you want to connect Redirect to provider's OAuth authorization page Authorize Loupp to access your repositories Automatically redirected back to source control settings ### Provider Information **Username**: Displayed username from the connected account **Installation Count**: Number of sites using this provider **Active**: Green indicator for connected providers **Inactive**: Red indicator for unconnected providers ## Managing Connections ### Provider Actions **Action**: Click arrow icon on inactive provider **Result**: Redirects to OAuth authentication flow **Action**: Click refresh icon on active provider **Result**: Re-authenticates and updates connection **Action**: Click unlink icon on active provider **Restriction**: Cannot unlink if provider has active sites **Result**: Removes provider connection ### Connection Requirements You must have at least one source control provider connected to deploy sites. You cannot unlink a provider that has active sites deployed. ## Repository Access ### Branch Management **GitHub**: Fetches branches via GitHub API **GitLab**: Retrieves branches with automatic token refresh * Automatic branch listing for deployment * Repository access for site creation * Webhook support for automatic deployments ### Provider-Specific Features * Repository branch access * OAuth token management * Webhook integration * Automatic token refresh * Project-based repository access * Enhanced error handling ## Security and Permissions ### OAuth Scopes Read access to repositories and branches Create and manage deployment webhooks ### Token Management * OAuth tokens stored securely * Automatic token refresh for GitLab * Token validation and error handling * Encrypted token storage * Automatic token expiration handling * Secure API communication ## Integration with Deployment ### Site Creation Choose connected source control provider during site creation Browse and select repositories from connected providers Select deployment branch and configure webhooks Learn how to create sites using your connected source control providers. ### Deployment Workflow * Webhook-triggered deployments on code pushes * Branch-specific deployment configurations * Real-time deployment status updates * Manual deployment triggers * Branch switching capabilities * Deployment history tracking Learn how to manage deployments and view deployment history. # NGINX Templates Source: https://docs.loupp.dev/settings/templates Customize NGINX configuration templates for your sites in Loupp ## Overview NGINX templates allow you to customize the web server configuration that is generated for new sites. Modify the template to include custom NGINX directives, security headers, or performance optimizations that will be applied to all new site deployments. Learn how to create sites that use these NGINX templates. ## Template Management ### Core Features Edit NGINX configuration templates Use dynamic variables for site-specific values Save templates for use with new sites ## Template Variables ### Available Variables **Usage**: `server_name $DOMAIN_NAME;` **Value**: Automatically replaced with the actual domain name **Example**: `example.com` becomes `server_name example.com;` **Usage**: `root $PUBLIC_DIRECTORY;` **Value**: Automatically set to `/current/public` **Important**: This value should not be changed as it's required for zero downtime deployments and rollback processes ### Variable Usage The `$PUBLIC_DIRECTORY` variable is set to `/current/public` and should not be modified. This path is essential for Loupp's zero downtime deployment and rollback processes to function correctly. Template variables are automatically replaced with actual values when NGINX configurations are generated for new sites. # Commands Source: https://docs.loupp.dev/shared/commands Execute custom commands on your shared hosting servers ## Overview Execute custom shell commands directly on your shared hosting server from the Loupp dashboard. Run maintenance tasks, troubleshoot issues, and perform administrative operations without direct SSH access. ## Command Execution Features ### Core Capabilities Execute any shell command with full server access Track all executed commands with timestamps and outputs Monitor command execution status and results ### Execution Environment Commands run in a controlled environment: Commands execute from the server's root directory: `/home/loupp/{{ $server->name }}` Commands run as the `loupp` user with appropriate permissions Commands have a 2-minute timeout to prevent resource exhaustion ## Running Commands ### Basic Command Execution Navigate to your shared server dashboard and click on the "Commands" tab. Type your command in the text area: ```bash theme={null} # Example commands ls -la php artisan list composer install npm run build ``` Use one of these methods to run the command: * Click "Run" button * Press `Cmd + Enter` (macOS) * Press `Ctrl + Enter` (Windows/Linux) Track command status and view output in real-time. ### Command Input Tips ```bash theme={null} # You can enter multi-line commands if [ -f "composer.json" ]; then composer install --no-dev else echo "No composer.json found" fi ``` ```bash theme={null} # Common file operations ls -la storage/logs/ tail -n 50 storage/logs/laravel.log chmod -R 755 storage/ ``` ## Command History Management ### Viewing Command History All executed commands are automatically logged with detailed information: * Full command text * Execution timestamp * User who ran the command * Running status * Success/failure indicators * Execution time tracking * Command output * Error messages * Return codes ### Command History Interface Scroll down to the "Command History" section below the command input. Each command entry shows: * Command text (clickable to re-run) * Execution date and time * Relative time (e.g., "2 hours ago") * Current status Click "View Details" to see full command output and execution information. ### Reusing Commands Click on any command in the history to automatically populate the input field. Edit the command before execution if you need to make changes. Run the command with your modifications. # Cron Jobs Source: https://docs.loupp.dev/shared/cronjob Schedule and manage automated tasks on your shared hosting servers ## Overview Create and manage cron jobs to automate tasks on your shared hosting servers. Schedule maintenance, backups, and other automated processes using the built-in cron job management interface. ## Features Pre-configured schedules or custom cron expressions Create, monitor, and delete scheduled tasks Run any command or Laravel artisan commands ## Creating Cron Jobs ### Basic Configuration Configure cron job settings: * **Label**: Descriptive name for the task * **Frequency**: Choose from preset schedules or custom * **Command**: Command to execute Choose from available schedules: * Every 5 Minutes * Hourly * Nightly * Daily * Weekly * Monthly * Custom Click "Create Job" to deploy the cron job configuration ### Working Directory **Important**: Cron jobs execute from your home directory. Use full paths for files and commands. **Location**: `/home/username/repository/` **Example**: `cd /home/username/myapp && /usr/local/bin/php artisan queue:work` * Use absolute paths for files * Include full path to PHP executable * Specify complete file locations ## Cron Job Management ### Viewing Jobs View all configured cron jobs in the table Each job shows: * Label and description * Schedule (cron expression) * Command to be executed * Actions available ## Common Use Cases ### Laravel Applications ```bash theme={null} cd /home/username/myapp && /usr/local/bin/php artisan queue:work --timeout=10 --tries=3 --max-jobs=30 --max-time=300 ``` ```bash theme={null} cd /home/username/myapp && /usr/local/bin/php artisan schedule:run ``` ```bash theme={null} cd /home/username/myapp && /usr/local/bin/php artisan cache:clear cd /home/username/myapp && /usr/local/bin/php artisan config:cache ``` # Deployments Source: https://docs.loupp.dev/shared/deployments Track deployment history and view deployment logs for your shared hosting applications ## Overview Monitor deployment history, view detailed logs, and track the status of your application deployments on shared hosting servers. Track changes, monitor deployment progress, and troubleshoot deployment issues. ## Deployment History Interface ### Overview Dashboard The deployments interface displays comprehensive deployment information: * Deployment timestamp and duration * User who triggered deployment * Current deployment status * Branch information * Commit details * Repository links * Real-time status updates * Success/failure indicators * Error details when available ## Deployment History Table ### Table Structure The deployment history table provides detailed information for each deployment: **Content**: Timestamp and user information **Format**: Date, time, and user name with clock icon **Display**: * Clock icon with formatted date/time (M d, Y H:i) * User name who triggered the deployment * "by \[username]" format for user attribution **Content**: Active deployment branch **Format**: Branch name with Git icon **Links**: Direct links to source control platform (GitHub/GitLab) **Display**: Git icon with branch name, links to repository tree view **Content**: Current deployment status **Format**: Status badge with color coding **Types**: Active, Failed, Completed, Running **Content**: Available operations **Format**: Three-dot menu with options **Actions**: View logs (primary action available) ### Status Types Deployment completed successfully Deployment encountered errors Deployment in progress Deployment queued for execution ## Deployment Process ### Deployment Workflow Manual trigger or automatic webhook activation Pull latest code from source control Install/update Composer and npm packages Compile assets and optimize application Copy files to public directory and restart services ### Deployment Types **Trigger**: User-initiated from dashboard **Use Case**: On-demand updates, testing **Control**: Full user control over timing **Trigger**: Webhook from source control **Use Case**: Continuous deployment **Control**: Automatic on code pushes # Environment Variables Source: https://docs.loupp.dev/shared/environment Manage environment variables and .env files for your shared hosting applications ## Overview The Environment Variables feature in Loupp allows you to view, edit, and manage `.env` files for your shared hosting applications. The system automatically fetches your environment file from the server and provides a secure editor for making changes. ## How It Works ### Automatic File Fetching Environment file is automatically fetched when the page loads Edit environment variables directly in the browser interface ### Workflow System automatically fetches the .env file from your server Use the built-in code editor to modify your environment variables Click "Save" to upload the modified file back to your server ## Environment File Operations ### Fetching Environment Files Navigate to the Environment tab in your shared hosting dashboard System automatically fetches the .env file from your server File content displays in the built-in editor **File Path**: Environment files are fetched from the path specified in your server configuration ### Editing Environment Variables Edit environment variable values directly in the editor Add new environment variables as needed Delete environment variables that are no longer needed Click "Save" to upload the modified file to your server Changes to environment variables may require application restarts to take effect. # How to Link Shared Host with Loupp Source: https://docs.loupp.dev/shared/link-shared-host Complete guide to connect your shared hosting account with Loupp for automated deployments and management ## Overview Linking your shared hosting account with Loupp enables automated deployments, environment management, and server monitoring. This guide walks you through the complete process of establishing the connection between your shared hosting provider and Loupp. ## Prerequisites Before linking your shared hosting with Loupp, ensure you have: * Active shared hosting account with shell access enabled * Hosting provider that supports SSH connections * PHP and Composer available on your hosting * Sufficient disk space for your applications ## Step-by-Step Linking Process ### Step 1: Enable Shell Access on Your Hosting First, you need to enable SSH access in your hosting control panel: Log in to your hosting provider's cPanel dashboard Go to the "Security" tab and select "SSH Access" Toggle the SSH button to "On" to enable shell access Some hosting providers may require you to contact support to enable SSH access cPanel SSH Access section with toggle button ### Step 2: Generate SSH Key in Loupp Loupp will automatically generate SSH keys for secure server access: In Loupp dashboard, navigate to "Shared Hosting Servers" and click "New Server" Choose your hosting provider from the list or select "Custom" for unsupported providers Fill in your server information: * **Name**: Descriptive identifier for your server * **Domain**: Your website domain * **Server IP**: Hosting server IP address * **Username**: Hosting account username * **Port**: SSH port (usually 21002 for shared hosting) * **Files Directory**: Where files are stored (default: repository name) * **Public Directory**: Publicly accessible directory (default: public\_html) Loupp automatically generates a unique SSH key pair for your server ### Step 3: Import SSH Key to Your Hosting Copy the generated SSH key from Loupp and add it to your hosting account: Copy the generated SSH public key from Loupp dashboard In cPanel, go to "Security" → "SSH Access" → "Manage SSH Keys" Click "Import" and paste the SSH key from Loupp into the "PUBLIC KEY" textbox Make sure to copy the entire public key, including the "ssh-rsa" prefix and comment Click "Manage Action" and then "Authorize" to activate the SSH key cPanel SSH key import form with public key textbox ### Step 4: Verify Connection After importing the SSH key, Loupp will verify the connection: Loupp automatically tests SSH connectivity to your server Check that your server status shows as "Active" in the dashboard The verification process may take a few minutes to complete Review connection logs to ensure successful authentication ## Troubleshooting Common Issues ### SSH Connection Problems **Problem**: SSH connection is refused **Solutions**: * Verify SSH is enabled in your hosting control panel * Check if your hosting plan includes SSH access * Contact hosting provider to enable shell access * Verify the correct port number (usually 21002) **Problem**: SSH key authentication fails **Solutions**: * Ensure the complete public key was copied * Verify the key is properly authorized in cPanel * Check that the username matches your hosting account * Try regenerating the SSH key in Loupp **Problem**: Cannot connect on specified port **Solutions**: * Confirm the correct SSH port with your hosting provider * Try common ports: 22, 21002, 2222 * Check if your hosting uses a custom SSH port * Verify firewall settings allow SSH connections ### Hosting Provider Issues **Problem**: Hosting provider doesn't support SSH **Solutions**: * Upgrade to a hosting plan with shell access * Switch to a provider that supports SSH * Use alternative deployment methods (FTP, Git hooks) * Contact hosting support for SSH enablement **Problem**: Required tools not available **Solutions**: * Verify PHP version meets requirements (7.4+) * Check if Composer is installed * Contact hosting provider to install missing tools * Use hosting provider's one-click installers ## Next Steps After Linking Once your shared hosting is successfully linked with Loupp: Link your Git repository for automated deployments Set up environment variables and configuration files Perform your first deployment to verify everything works Configure logging and monitoring for your application # Logs Source: https://docs.loupp.dev/shared/logs View and manage log files for your shared hosting applications ## Overview View, fetch, and clear log files from your Laravel applications on shared hosting servers. The logs interface provides access to application logs with syntax highlighting and management tools. ## Features View logs in a syntax-highlighted editor Fetch latest logs from server Clear log files to free up disk space ## Usage ### Operations Click the refresh button to get the latest logs from your server Logs display in a read-only editor with line numbers and syntax highlighting Click the brush button to empty log files and free up disk space **Log Path**: Logs are fetched from `storage/logs/laravel.log` in your application directory ## Log Management ### Automatic Fetching System connects to your shared hosting server via SSH Reads the log content from `storage/logs/laravel.log` Logs are formatted and displayed in the editor interface ### Log Clearing Clearing logs is irreversible. Ensure you have backed up any important information before proceeding. System connects to server and empties the log file Interface shows "No logs available, click the refresh button" Disk space is freed up on your hosting account # Overview Source: https://docs.loupp.dev/shared/overview Deploy and manage applications on shared hosting servers in Loupp ## Overview Shared hosting servers in Loupp allow you to deploy and manage web applications on existing shared hosting infrastructure. Unlike dedicated servers, shared hosting servers connect to your existing hosting accounts and provide deployment automation, environment management, and application monitoring. ## Shared Hosting Concepts ### What is Shared Hosting? Shared hosting is a web hosting service where multiple websites share the same physical server and its resources (CPU, RAM, disk space, bandwidth). **Examples of shared hosting providers:** * Namecheap, HostGator, Bluehost, GoDaddy, etc. ## Creating Shared Hosting Servers ### Prerequisites Before creating a shared hosting server: Have an active shared hosting account with shell access Ensure your hosting provider supports SSH access Verify PHP and Composer are available on your hosting ### Server Creation Process Navigate to "Shared Hosting Servers" and click "New Server" Choose from supported hosting providers or select "Custom" Fill in server information: * **Name**: Descriptive server identifier * **Domain**: Your website domain * **Server IP**: Hosting server IP address * **Username**: Hosting account username * **Port**: SSH port (usually 21002 for shared hosting) * **Files Directory**: Where files are stored (default: repository name) * **Public Directory**: Publicly accessible directory (default: public\_html) Click "Create Server" to begin setup process **Note**: For custom providers, ensure your hosting supports Shell Access and has PHP and Composer installed. ### Status Types Server setup in progress Server operational and accessible SSH connection issues Server removal in progress # Settings Source: https://docs.loupp.dev/shared/settings Manage server configuration and control server lifecycle ## Overview Update server settings, manage SSH keys, and control server lifecycle for your shared hosting servers. Configure basic server information and manage access tokens for automated deployments. ## Server Configuration ### Editable Fields Human-readable server identifier (must be unique) SSH port for server connection (usually 21002) Public IP address of your hosting server Hosting account username for SSH access Active deployment branch for your repository ### Directory Configuration **Purpose**: Where your application files are stored **Default**: Repository name (e.g., "myapp") **Location**: `/home/username/myapp/` **Purpose**: Publicly accessible web directory **Default**: `public_html` or domain folder **Location**: `/home/username/public_html/` ### Update Process Change name, port, IP, username, directories, and/or branch as needed Click "Save" to apply configuration updates Changes are immediately reflected across the dashboard **Name Validation**: Must be unique across your account, cannot be empty Changing the branch affects future deployments. Ensure the new branch exists in your repository. ## SSH Key Management ### Loupp SSH Key **Purpose**: SSH key added to your server during setup **Access**: View and copy the public key **Security**: Keep this key secure **Use Case**: If key is accidentally deleted from server **Solution**: Copy from Loupp and add back to hosting account **Process**: Add to cPanel SSH Access section ### SSH Key Setup Log into your hosting control panel Navigate to "SSH Access" section Copy the Loupp SSH key and paste it in the public key field Make sure to authorize the key after addition **Provider Note**: Most shared hosting providers use cPanel. Contact your provider if you need help with SSH setup. ## Personal Access Token (PAT) ### GitLab Integration **Use**: Same token for all shared hosting server deployments **Security**: Update at least twice monthly for security **Scope**: Repository access and deployment automation **Update Process**: Enter new token and click "Save" **Scope**: Automatically updates for all your shared servers **Format**: Starts with "glpat-" for GitLab ### Token Security **Security Warning**: Personal access tokens provide access to your repositories. Keep them secure and rotate regularly. * Update tokens every 2-4 weeks * Use strong, unique tokens * Limit token scope to necessary permissions * Monitor token usage * Repository read access * Webhook management * Deployment automation ## Server Lifecycle Management ### Server Destruction **Destructive Action**: Server destruction is irreversible. All data will be permanently lost. ### Destruction Process Scroll to "Delete Shared Hosting" section at bottom All site data will be permanently lost, SSL certificates preserved Click "Delete" and confirm in the dialog Server status changes to "Deleting" and removal begins ### What Gets Removed Stops all services, removes queue workers, deletes scheduled tasks Removes site directory, Nginx configs, environment files Restarts web services, updates server configurations SSL certificates are preserved and can be reused for new sites on the same domain. # Site Commands Source: https://docs.loupp.dev/sites/commands Execute custom commands on your sites and manage command history in Loupp ## Overview Site commands allow you to execute custom shell commands directly on your server from the Loupp dashboard. This feature provides a convenient way to perform maintenance tasks, run scripts, and troubleshoot issues without direct SSH access. ## Command Execution Features ### Core Capabilities Execute any shell command with full server access Track all executed commands with timestamps and outputs Monitor command execution status and results ### Execution Environment Commands run in a controlled environment: Commands execute from the site's root directory: `/home/loupp/yourdomain.com` Commands run as the `loupp` user with appropriate permissions Commands have a 2-minute timeout to prevent resource exhaustion ## Running Commands ### Basic Command Execution Navigate to your site dashboard and click on the "Commands" tab. Type your command in the text area: ```bash theme={null} # Example commands ls -la php artisan list composer install npm run build ``` Use one of these methods to run the command: * Click "Run" button * Press `Cmd + Enter` (macOS) * Press `Ctrl + Enter` (Windows/Linux) Track command status and view output in real-time. ### Command Input Tips ```bash theme={null} # You can enter multi-line commands if [ -f "composer.json" ]; then composer install --no-dev else echo "No composer.json found" fi ``` ```bash theme={null} # Common file operations ls -la storage/logs/ tail -n 50 storage/logs/laravel.log chmod -R 755 storage/ ``` ## Command History Management ### Viewing Command History All executed commands are automatically logged with detailed information: * Full command text * Execution timestamp * User who ran the command * Running status * Success/failure indicators * Execution time tracking * Command output * Error messages * Return codes ### Command History Interface Scroll down to the "Command History" section below the command input. Each command entry shows: * Command text (clickable to re-run) * Execution date and time * Relative time (e.g., "2 hours ago") * Current status Click "View Details" to see full command output and execution information. ### Reusing Commands Click on any command in the history to automatically populate the input field. Edit the command before execution if you need to make changes. Run the command with your modifications. ## Common Use Cases ### Laravel Application Commands ```bash theme={null} # Cache management php artisan config:cache php artisan route:cache php artisan view:cache # Database operations php artisan migrate php artisan migrate:rollback php artisan db:seed # Application maintenance php artisan down php artisan up php artisan optimize ``` ```bash theme={null} # Dependency management composer install --no-dev --optimize-autoloader composer update composer dump-autoload --optimize # Package operations composer require package-name composer remove package-name ``` # Deployments Source: https://docs.loupp.dev/sites/deployments Track deployment history, view deployment logs, and manage site rollbacks in Loupp ## Overview Deployments provide a comprehensive view of your site's deployment history, allowing you to track changes, monitor deployment status, and rollback to previous versions when needed. Loupp automatically tracks all deployments with detailed logging and status monitoring. ## Deployment History Interface ### Overview Dashboard The deployments interface displays comprehensive deployment information: * Deployment timestamp and duration * Commit details and branch information * Current deployment status * Repository and branch details * Commit hash and message * Links to source control platforms * Real-time deployment status * Success/failure indicators * Time tracking for active deployments ### Deployment Table Structure The deployment history table provides detailed information for each deployment: * **Timestamp**: When the deployment was initiated * **Duration**: How long the deployment took * **Status**: Current deployment state * **Latest/Current Indicators**: Special badges for active deployments * **Branch**: Deployment branch name * **Commit Hash**: Shortened commit identifier * **Commit Message**: Descriptive message about changes * **Platform Links**: Direct links to GitHub/GitLab. * **Time Taken**: Actual deployment duration * **Status Indicators**: Visual status representations * **Action Buttons**: Available operations for each deployment ## Deployment Status Tracking ### Status Indicators Deployments progress through different statuses: Deployment is currently in progress Deployment completed successfully Deployment encountered an error Deployment was reverted to previous version ## Rollback Management ### Rollback Capabilities Rollback allows you to revert to previous deployment versions: * Site must be in "active" status * Previous deployment must exist * No active deployments running * Sufficient disk space for rollback * System automatically switches to previous version * Database changes may need manual handling * Environment variables are preserved * SSL certificates remain active ### Performing Rollbacks Select the deployment version you want to rollback to. Click "Rollback To This Version" from the deployment actions menu. Review the confirmation dialog and confirm the rollback. Track rollback progress and verify completion. Rollbacks can result in data loss if the previous version had different database schemas or configurations. ## Deployment Management Features ### Deployment Actions Each deployment entry provides specific actions: **Purpose**: Access detailed deployment execution logs **Use Cases**: * Debug failed deployments * Verify successful deployments * Monitor deployment performance * Troubleshoot issues **Purpose**: Revert to previous deployment version **Use Cases**: * Fix critical issues quickly * Revert problematic changes * Restore stable versions * Emergency recovery ### Deployment Indicators Special badges help identify important deployments: Most recent deployment from the repository Currently active deployment on the server # Environment Variables Source: https://docs.loupp.dev/sites/environment Manage environment variables and .env files for your sites in Loupp ## Overview The Environment Variables feature in Loupp allows you to view, edit, and manage `.env` files for your sites. Unlike traditional environment variable management systems, Loupp doesn't store your `.env` files on its servers - instead, it provides a secure way to fetch, edit, and upload environment files as needed. ## How It Works ### Security-First Approach Loupp doesn't store your .env files on its servers Files are fetched when needed and removed after use ### Workflow When you need to edit environment variables, fetch the file from your server Use the built-in code editor to modify your environment variables Upload the modified file back to your server The file is automatically removed from Loupp's storage ## File Management ### Removing .env from Loupp To remove your `.env` file from Loupp's storage: The "Remove .env file from loupp" button appears when a file is loaded Click the button to remove the file from temporary storage This only removes the file from Loupp's temporary storage - it doesn't affect your server. ### Automatic Cleanup Loupp automatically manages file cleanup: Files are automatically removed after successful upload No sensitive data remains on Loupp servers # Site Logs Source: https://docs.loupp.dev/sites/logs View and manage log files for your sites ## Overview View, fetch, and clear log files from your Laravel applications. ## Features * **View logs** in a syntax-highlighted editor * **Fetch logs** from server (last 500 lines) * **Clear logs** to free up disk space * **Configure paths** for log files and .env ## Usage ### Operations * **Fetch Logs**: Click refresh button to get latest logs * **Clear Logs**: Click brush button to empty log files * **View**: Logs display in read-only editor with line numbers # Overview Source: https://docs.loupp.dev/sites/overview Deploy and manage web applications on your servers in Loupp ## Overview Sites in Loupp represent projects deployed on your servers. You can deploy multiple sites on a single server, each with its own domain, configuration, and deployment settings. The system supports both Laravel and static HTML/PHP applications with automated deployment from your source control repositories. For information about server management and configuration, see **[Server Overview](/server/creation)** and **[Server Settings](/server/settings)**. ## Creating a New Site Navigate to your server dashboard and click on the "Sites" tab to access the sites management interface. Fill in the essential site configuration: * **Domain**: Your website's domain name (e.g., loupp.dev or [www.loupp.dev](http://www.loupp.dev)) * **Project Type**: Choose between Laravel or Static HTML/PHP Configure your source control integration: * **Source Control**: Select from your connected source control providers * **Repository**: Enter your repository name * **Get Branches**: Click to fetch available branches from your repository * **Branch**: Select the deployment branch (defaults to first available branch) Customize additional configurations: * **Web Directory**: Set the web root directory (default: public) * **Web Server Templates**: Choose from your available server templates Configure optional integrations: * **Reverb**: Laravel Reverb (daemon configuration only) * **Queue Worker**: Basic Laravel queue worker * **Task Scheduler**: Basic Laravel scheduler:run Click "Create Site" to begin site creation process. ## Site Configuration Options ### Application Types Loupp supports two main application types: Full-featured PHP framework with built-in support for modern web applications, database integration, and advanced features. Simple static websites or basic PHP applications with optional Composer dependency installation. ### Source Control Integration Connect your sites to version control systems for automated deployments: * **GitHub**: Connect your GitHub repositories * **GitLab**: Integrate with GitLab projects * **Bitbucket**: Connect Bitbucket repositories (note: not available in site creation only authentications) Source control integration enables automatic deployments when you push changes to your configured branch. You must have source control configured in your settings before creating sites. See **[Source Control Settings](/settings/source-control)** for configuration details. If you encounter source control errors, you'll need to go to your source control settings to reconnect or resolve authentication issues. Visit **[Source Control Settings](/settings/source-control)** to troubleshoot. Learn more about managing web server templates in **[Server Templates](/settings/templates)**. ### Integration Options Laravel Reverb. Note: This only sets the daemon configuration - you need to manually install Reverb. Basic Laravel queue worker. Basic Laravel scheduler:run. All integration options are optional and can be configured later. You can ignore these settings during initial site creation and set them up later. ## Site Management ### Viewing Site Details Once deployed, you can access comprehensive site information: * **Application Overview**: Site status, domain, and basic information * **Environment Variables**: Configure environment-specific settings * **Deployment History**: Track all deployments and their status ### Site Actions Access the site's main dashboard for detailed management and configuration. Remove the site and all associated files from the server. This action queues the deletion process. ## Related Documentation * **[Environment Variables](/sites/environment)** - Set up environment-specific configurations * **[Deployments](/sites/deployments)** - Manage deployment processes and history * **[Source Control Settings](/settings/source-control)** - Configure your source control integrations * **[Server Templates](/settings/templates)** - Create and manage web server templates * **[Queue Management](/sites/queue)** - Configure Laravel queue workers * **[Site Logs](/sites/logs)** - View and troubleshoot site logs * **[SSL Configuration](/sites/ssl)** - Set up SSL certificates for your sites * **[Server Management](/server/creation)** - Learn about server setup and configuration # Queue Management Source: https://docs.loupp.dev/sites/queue Configure and manage Laravel queue workers for background job processing ## Overview Create and manage Laravel queue workers to process background jobs. Workers run continuously to handle queued tasks like emails, file processing, and API calls. ## Features Configure connection, queue type, and performance settings Track worker status and configuration details View worker logs and restart workers as needed ## Creating Workers ### Configuration Configure worker settings: * **Connection**: Database, Redis, etc. * **Queue Type**: Queue name (default: "default") * **Sleep**: Seconds between job checks (default: 3) * **Tries**: Retry attempts for failed jobs (default: 3) * **Timeout**: Max execution time per job (default: 120s) * **Run Always**: Continue during maintenance mode Click "Create worker" to deploy the configuration **Default Settings**: Sleep 3s, Tries 3, Timeout 120s, Run Always disabled ## Worker Management ### Status Display Green indicator - worker continues during maintenance Yellow indicator - worker stops during maintenance ### Actions Restart worker to apply configuration changes or resolve issues Access worker execution logs for debugging and monitoring Remove worker and stop job processing ## Configuration Options **Database**: Uses database tables for job storage **Redis**: High-performance in-memory storage **SQS**: Amazon Simple Queue Service **Sleep**: Lower = faster job pickup, higher CPU usage **Tries**: Number of retry attempts before marking job as failed **Timeout**: Prevents jobs from running indefinitely **Enabled**: Worker continues during maintenance mode **Disabled**: Worker stops when site is in maintenance # Site Settings Source: https://docs.loupp.dev/sites/settings Manage site configuration and control site lifecycle ## Overview Update site name, branch, and manage site lifecycle. Basic configuration for your Laravel applications. ## Site Configuration ### Editable Fields Human-readable site identifier (must be unique) Active deployment branch for your repository Source control repository (read-only) ### Update Process Change name and/or branch as needed Click "Save" to apply configuration updates Changes are immediately reflected across the dashboard **Name Validation**: Must be unique across your account, cannot be empty Changing the branch affects future deployments. Ensure the new branch exists in your repository. ## Site Destruction ### Destruction Process Scroll to "Destroy Site" section at bottom All site data will be permanently lost, SSL certificates preserved Click "Destroy" and confirm in the dialog Site status changes to "Deleting" and removal begins ### What Gets Removed Stops all services, removes queue workers, deletes scheduled tasks Removes site directory, Nginx configs, environment files Restarts web services, updates server configurations Site destruction is irreversible. Backup important data before proceeding. # SSL Configuration Source: https://docs.loupp.dev/sites/ssl Install SSL certificates using Let's Encrypt or manual uploads ## Overview Secure your websites with SSL certificates. Supports Let's Encrypt (free, automated) or manual certificate uploads. ## Features Free automated certificates with auto-renewal every 90 days Upload your own certificate files for full control ## Usage ### Let's Encrypt Click "Install Let's Encrypt" button System validates domain points to server IP Certificate installs automatically (1-2 minutes) Status shows "Active" when complete **Requirements**: Domain must point to server IP, ports 80/443 accessible ### Manual Upload Click "Upload Certificate" button Upload certificate (.crt, .pem, .txt) and private key (.key, .pem, .txt) Click "Upload & Install Certificate" ## Status Types Certificate installed and working Installation in progress Installation encountered error ## Troubleshooting Ensure domain points to server IP Connect at least one server first Disable proxying for SSL installation Check event logs for detailed errors