Getting Started (5 Minutes)

Get up and running with GoliteFlow in just 5 minutes. Works with any programming language - Python, Node.js, PHP, Java, Ruby, Go, or shell commands Need Real Examples?

  1. Python data pipelines
  2. Node.js API monitoring
  3. DevOps automation

Congratulations!

You now have GoliteFlow running with enhanced reports and production features.

Prerequisites

No Go installation required! GoliteFlow is distributed as a single binary.

Step 1: Download Binary (1 minute)

Choose your platform and run one command:

Linux/macOS

curl -L https://github.com/sintakaridina/goliteflow/releases/latest/download/goliteflow-linux-amd64 -o goliteflow && chmod +x goliteflow

Windows (PowerShell)

curl -L https://github.com/sintakaridina/goliteflow/releases/latest/download/goliteflow-windows-amd64.exe -o goliteflow.exe

macOS (Apple Silicon)

curl -L https://github.com/sintakaridina/goliteflow/releases/latest/download/goliteflow-darwin-arm64 -o goliteflow && chmod +x goliteflow

Docker (Optional)

docker pull sintakaridina/goliteflow:latest

Done! You now have GoliteFlow installed. No dependencies, no configuration needed.

Step 2: Create Your First Workflow (2 minutes)

Create a file called hello-world.yml:

version: "1.0"
workflows:
  - name: hello_world_demo
    schedule: "@manual" # Run manually for testing
    tasks:
      - id: greet
        command: "echo Hello from GoliteFlow!"

      - id: check_system
        command: "echo System info && date"
        depends_on: ["greet"]

      - id: list_files
        command: "ls -la" # Use "dir" on Windows
        depends_on: ["check_system"]

Explanation:

Step 3: Run Your Workflow (1 minute)

Test Your Configuration

./goliteflow validate --config=hello-world.yml

Run the Workflow

./goliteflow run --config=hello-world.yml

Expected output:

Starting GoliteFlow
Loaded 1 workflows from hello-world.yml
Executing workflow: hello_world_demo
Workflow 'hello_world_demo' completed with status: completed
Report generated: report.html

Step 4: View the Report

Open the generated report.html file in your browser to see the execution details.

CLI Commands

Step 4: View Enhanced Reports (1 minute)

Generate a production-ready HTML dashboard:

# Generate enhanced report (recommended)
./goliteflow report-enhanced --output=dashboard.html

# Open in your browser
open dashboard.html      # macOS
xdg-open dashboard.html  # Linux
start dashboard.html     # Windows

You’ll see:

Step 5: Production Mode (1 minute)

Start continuous monitoring with automatic report updates:

# Update schedule to run continuously
# Edit hello-world.yml and change:
# schedule: "@manual"        # Remove this
# schedule: "*/5 * * * *"    # Add this (every 5 minutes)

# Start daemon mode
./goliteflow daemon --config=hello-world.yml

Now it runs automatically!

Enhanced CLI Commands

Core Commands

# Run workflows
./goliteflow run --config=my-workflow.yml

# Start continuous daemon
./goliteflow daemon --config=my-workflow.yml

# Validate configuration
./goliteflow validate --config=my-workflow.yml

Enhanced Report Commands

# Generate enhanced dashboard (recommended)
./goliteflow report-enhanced --output=dashboard.html

# Configure report limits
./goliteflow report-enhanced --max-executions=100 --page-size=25

# Manage report archives
./goliteflow report-manage stats      # View statistics
./goliteflow report-manage archive    # Archive old data
./goliteflow report-manage cleanup    # Clean up storage

Real-World Examples

Python Data Pipeline

Create python-etl.yml:

version: "1.0"
workflows:
  - name: daily_data_processing
    schedule: "0 2 * * *" # Daily at 2 AM
    tasks:
      - id: extract_data
        command: "python scripts/extract_from_api.py"
        retry_count: 3
        timeout: "10m"

      - id: transform_data
        command: "python scripts/clean_and_transform.py"
        depends_on: ["extract_data"]
        timeout: "15m"

      - id: load_to_db
        command: "python scripts/load_to_postgres.py"
        depends_on: ["transform_data"]

      - id: send_report
        command: "python scripts/email_daily_summary.py"
        depends_on: ["load_to_db"]
        condition: "on_success"

Node.js API Monitoring

Create nodejs-monitoring.yml:

version: "1.0"
workflows:
  - name: api_health_check
    schedule: "*/5 * * * *" # Every 5 minutes
    tasks:
      - id: check_main_api
        command: "node monitoring/check-api-health.js"

      - id: check_database
        command: "node monitoring/check-db-connection.js"

      - id: alert_on_failure
        command: "node monitoring/send-slack-alert.js"
        condition: "on_failure" # Only if health checks fail

PHP Application Tasks

Create php-maintenance.yml:

version: "1.0"
workflows:
  - name: weekly_maintenance
    schedule: "0 3 * * 0" # Sundays at 3 AM
    tasks:
      - id: clear_cache
        command: "php artisan cache:clear"

      - id: optimize_database
        command: "php artisan migrate:status && php artisan db:optimize"
        depends_on: ["clear_cache"]

      - id: backup_files
        command: "php scripts/backup-files.php"
        depends_on: ["optimize_database"]

Java Batch Processing

Create java-batch.yml:

version: "1.0"
workflows:
  - name: monthly_reports
    schedule: "0 1 1 * *" # 1st day of month at 1 AM
    tasks:
      - id: generate_reports
        command: "java -jar batch-processor.jar --monthly-report"
        timeout: "30m"

      - id: compress_files
        command: "java -jar file-compressor.jar --input=reports/ --output=archive/"
        depends_on: ["generate_reports"]

Go Library Integration (Optional)

If you’re building a Go application, you can integrate GoliteFlow directly:

package main

import (
    "log"
    "github.com/sintakaridina/goliteflow"
)

func main() {
    // Execute workflow from Go code
    err := goliteflow.Run("workflows.yml")
    if err != nil {
        log.Fatal("Workflow failed:", err)
    }
}

Configuration Tips

Schedule Patterns

Pattern Description Example Use Case
@manual Run manually only Testing, debugging
@daily Once per day Daily reports, backups
@hourly Once per hour Log rotation, health checks
*/5 * * * * Every 5 minutes API monitoring
0 2 * * * Daily at 2 AM ETL jobs, heavy processing
0 9 * * 1 Mondays at 9 AM Weekly reports

Task Dependencies

# Sequential processing
tasks:
  - id: step1
    command: "python extract.py"
  - id: step2
    depends_on: ["step1"]
    command: "python transform.py"
  - id: step3
    depends_on: ["step2"]
    command: "python load.py"

# Parallel + Final
tasks:
  - id: task_a
    command: "python process_a.py"
  - id: task_b
    command: "python process_b.py"
  - id: combine
    depends_on: ["task_a", "task_b"]
    command: "python combine_results.py"

Error Handling

tasks:
  - id: main_job
    command: "python important_task.py"
    retry_count: 3
    timeout: "30m"

  - id: cleanup_on_success
    depends_on: ["main_job"]
    command: "python cleanup.py"
    condition: "on_success"

  - id: alert_on_failure
    depends_on: ["main_job"]
    command: "python send_alert.py"
    condition: "on_failure"

Docker Usage

Using Pre-built Image

# Run with volume mount
docker run -v $(pwd):/workspace sintakaridina/goliteflow:latest run --config=/workspace/workflows.yml

# Run as daemon
docker run -d -v $(pwd):/workspace --name goliteflow sintakaridina/goliteflow:latest run --config=/workspace/workflows.yml --daemon

Custom Dockerfile

FROM sintakaridina/goliteflow:latest

# Copy your workflows
COPY workflows.yml /app/workflows.yml

# Run your workflows
CMD ["run", "--config=/app/workflows.yml", "--daemon"]

Troubleshooting

Common Issues

1. “command not found” error

## Production Deployment

### Linux/macOS (systemd)
```bash
# Create service file: /etc/systemd/system/goliteflow.service
[Unit]
Description=GoliteFlow Daemon
After=network.target

[Service]
Type=simple
User=goliteflow
WorkingDirectory=/opt/goliteflow
ExecStart=/opt/goliteflow/goliteflow daemon --config=/opt/goliteflow/production.yml
Restart=always

[Install]
WantedBy=multi-user.target

# Enable and start
sudo systemctl enable goliteflow
sudo systemctl start goliteflow

Windows Service

# Install as Windows service
.\goliteflow.exe daemon --install --config=production.yml
net start goliteflow

Docker Production

# Create production image
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /app
COPY goliteflow-linux-amd64 goliteflow
COPY production.yml .
RUN chmod +x goliteflow
CMD ["./goliteflow", "daemon", "--config=production.yml"]

Troubleshooting

Common Issues & Solutions

Issue: “command not found” error

# Problem: Relative paths
command: "python script.py"

# Solution: Full paths
command: "/usr/bin/python3 /full/path/to/script.py"
working_dir: "/path/to/project"
which goliteflow

# Or use full path
/path/to/goliteflow run --config=workflows.yml

2. “invalid cron expression” error

Issue: Invalid cron expression

# Problem: Wrong cron syntax
schedule: "0 25 * * *"  # Invalid: 25 is not valid hour

# Solution: Valid cron expressions
schedule: "0 2 * * *"   # Daily at 2 AM
schedule: "*/15 * * * *" # Every 15 minutes
# Use crontab.guru to validate expressions

Issue: HTML report too slow

# Problem: Too many executions in report
./goliteflow report-enhanced --output=report.html

# Solution: Limit executions
./goliteflow report-enhanced --max-executions=25 --output=report.html

Issue: Task fails with “permission denied”

# Problem: Script not executable
tasks:
  - command: "./script.sh"

# Solution: Make executable or use interpreter
tasks:
  - command: "chmod +x script.sh && ./script.sh"
  # OR
  - command: "bash script.sh"

Issue: Python/Node.js not found

# Problem: PATH issues
tasks:
  - command: "python script.py"

# Solution: Full paths or set environment
tasks:
  - command: "/usr/bin/python3 script.py"
  - env:
      PATH: "/usr/local/bin:/usr/bin:/bin"

Getting Help

Next Steps

Choose your path:

Ready for Production?

  1. Deploy as system service
  2. Configure report management
  3. Set up monitoring and alerts

Want to Customize?

  1. Advanced YAML configuration
  2. Report customization options
  3. Integration with existing apps

Need Real Examples?

  1. Python data pipelines
  2. Node.js API monitoring
  3. DevOps automation

🎉 Congratulations!

You now have GoliteFlow running with enhanced reports and production features.

View Examples </div>