Hawiyat

Overview

Application Management in Hawiyat

Applications in Hawiyat are designed with a container-first approach, where each application is encapsulated as a single service or container. This architectural decision provides several key benefits:

  • Isolation: Each application runs in its own isolated environment, preventing conflicts between dependencies and ensuring consistent behavior
  • Scalability: Individual applications can be scaled independently based on their specific requirements
  • Maintainability: The isolated workspace model makes it easier to manage, monitor, and troubleshoot each application
  • Resource Efficiency: Resources can be allocated and optimized on a per-application basis

Core Features and Management Tools

Hawiyat provides a comprehensive suite of tools and functionalities to manage your applications effectively. Below, you'll find detailed information about each management area:

General Management

The General Management section provides essential controls for the core aspects of your application lifecycle:

  • Source Control Integration: Configure and manage your application's source code repository, supporting multiple version control platforms
  • Build Configuration: Customize how your application is built, including build commands, environment settings, and deployment strategies
  • Lifecycle Management: Execute critical operations such as:
    • Deploying new versions
    • Updating existing deployments
    • Gracefully stopping applications
    • Managing application deletion
    • Rolling back to previous versions when needed

Environment Configuration

The Environment section provides a robust interface for managing your application's runtime configuration:

  • Environment Variables: Set and manage both sensitive and non-sensitive environment variables
  • Configuration Groups: Organize variables into logical groups for different environments (development, staging, production)
  • Secret Management: Securely store and manage sensitive information
  • Variable Validation: Ensure all required environment variables are properly configured before deployment

Performance Monitoring

Our comprehensive monitoring dashboard provides real-time insights into your application's performance through four key metrics:

  1. Memory Usage:

    • Track RAM utilization
    • Monitor memory leaks
    • View garbage collection patterns
  2. CPU Performance:

    • Monitor processor usage
    • Track processing bottlenecks
    • Analyze computational efficiency
  3. Disk Usage:

    • Monitor storage consumption
    • Track I/O operations
    • Analyze disk performance patterns
  4. Network Activity:

    • Monitor bandwidth usage
    • Track network latency
    • Analyze traffic patterns

Important: The monitoring graphs are updated in real-time only when viewing the monitoring page. This design choice helps optimize system resources and provides the most accurate data when you need it.

Application Logging

The Logging system provides comprehensive visibility into your application's runtime behavior:

  • Real-time Log Streaming: View logs as they are generated
  • Log Filtering: Filter logs by severity level (INFO, WARNING, ERROR, etc.)
  • Search Capability: Search through logs for specific events or error messages
  • Log Retention: Access historical logs for troubleshooting and analysis
  • Log Download: Export logs for offline analysis or archival purposes

Deployment Management

Our sophisticated deployment system offers complete control over your application's deployment lifecycle:

Deployment History

  • Maintains a detailed history of your last 10 deployments
  • Each deployment record includes:
    • Timestamp
    • Deployment status
    • Build logs
    • Configuration changes
    • Deployment duration
    • Resource utilization

Real-time Deployment Monitoring

  • Watch your application build and deploy in real-time
  • View detailed progress indicators for each deployment phase:
    • Source code checkout
    • Dependency installation
    • Build process
    • Container creation
    • Service deployment

Deployment Control

  • Queue Management: Cancel pending deployments that haven't started
  • Progress Protection: Active deployments cannot be canceled to maintain system integrity
  • Rollback Capability: Quickly revert to previous successful deployments if needed

Automated Deployment Integration

Hawiyat provides powerful webhook integration supporting multiple source control platforms:

  • GitHub
  • GitLab
  • Gitea
  • Bitbucket
  • DockerHub

These webhooks enable automatic deployments triggered by:

  • Push events
  • Tag creation
  • Release publications
  • Custom webhook events

Domain Management

The Domain Management interface provides comprehensive control over how your applications are accessed from the internet. We offer flexible domain configuration options to suit various deployment scenarios:

Domain Configuration Options

  1. Custom Domain Integration

    • Configure your own domain names
    • Support for multiple domains per application
    • SSL/TLS certificate management
    • DNS configuration guidance
    • Custom header rules
  2. Auto-generated Domains

    • Instant access through traefik.me domains
    • Zero configuration required
    • Perfect for development and testing
    • Automatic SSL certificate provisioning
    • Immediate availability

Advanced Settings

This section provides advanced configuration options for experienced users. It includes tools for custom commands within the container, managing Docker Swarm settings, and adjusting cluster settings such as replicas and registry selection. These tools are typically not required for standard application deployment and are intended for complex management and troubleshooting tasks.

  • Run Command: Execute custom commands directly in the container for advanced management or troubleshooting.
  • Cluster Settings: Configure the number of replicas and select the Docker registry for your deployment to manage how your application scales and where it pulls images from.
  • Swarm Settings: Access additional Docker Swarm configurations for detailed orchestration and scaling across multiple nodes.
  • Resources: Adjust the CPU and memory allocation for your application.
  • Volumes: To ensure data persistence across deployments, configure storage volumes for your application.
  • Ports: Expose your application to the internet by configuring network ports.
  • Traefik: Modify Traefik settings to manage HTTP request handling for your application.

Note

Adjust these settings carefully as incorrect configurations can significantly impact your application’s functionality and availability.

On this page