# 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
### 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
### 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