PromptHub
DevOps Virtualization

ProxmoxScripts: Revolutionize Your Proxmox VE Workflow

B

Bright Coding

Author

6 min read
38 views
ProxmoxScripts: Revolutionize Your Proxmox VE Workflow

ProxmoxScripts: Revolutionize Your Proxmox VE Workflow

Managing Proxmox Virtual Environment clusters manually is a nightmare. Every VM creation, storage benchmark, or cluster update becomes a repetitive time-sink that breeds human error. System administrators waste countless hours typing the same commands across multiple nodes, desperately wishing for a better way. ProxmoxScripts (CCPVE) shatters these limitations entirely. This powerful automation suite transforms complex Proxmox operations into one-click tasks that work from any Linux workstation. In this deep dive, you'll discover how to slash your management time by 80%, execute bulk operations across entire clusters, and implement enterprise-grade automation with zero learning curve. We'll explore real code examples, production-ready installation strategies, advanced remote execution patterns, and battle-tested best practices that DevOps professionals swear by.

What is ProxmoxScripts?

ProxmoxScripts is the Coelacant's Collection for Proxmox VE (CCPVE)—a revolutionary open-source automation toolkit that redefines how administrators interact with Proxmox infrastructure. Created by developer coelacant1, this repository delivers a comprehensive suite of bash-based utilities designed specifically for system administrators and DevOps professionals who demand efficiency without sacrificing control.

At its core, ProxmoxScripts provides a cross-platform text-based GUI that runs natively on any Linux distribution—from Debian and Ubuntu to Fedora, RHEL, Arch, and openSUSE. The toolkit auto-detects your package manager and adapts instantly, eliminating compatibility headaches. Version 2.2.0 represents a massive refactor that introduces enterprise-grade features like remote cluster management, structured dual-logging, and a unified utility framework that standardizes every operation.

The project is trending because it solves real production pain points. Unlike fragmented custom scripts that break between Proxmox versions, ProxmoxScripts implements a TestFramework with automated suites for all utilities. Every script is validated against Proxmox VE 9.1.1 documentation with standardized notes tracking validation status, changes, and known issues. The repository maintains rigorous quality assurance through GitHub Actions that perform line ending conversion, function indexing, source verification, code formatting, security analysis, and dead code detection. This isn't just another script collection—it's a production-ready automation platform with 2,200+ commits and active community contributions.

Key Features That Make It Essential

Cross-Platform GUI Architecture runs flawlessly on any Linux distribution. The system automatically detects whether you're using apt, dnf, yum, zypper, or pacman, then configures itself accordingly. This means your Ubuntu workstation can manage CentOS-based Proxmox nodes without manual intervention. The interface provides comprehensive help systems accessible from any menu, making it intuitive for newcomers while remaining lightning-fast for veterans.

Remote Execution Engine eliminates the need to SSH into individual nodes. Execute scripts on single or multiple Proxmox nodes from your central workstation without re-downloading the repository. The innovative temporary multi-remote mode supports IP ranges and VMID ranges, enabling mass operations across entire clusters. This feature alone reduces multi-node management time from hours to minutes.

Branch Management System lets you switch between stable (main) and testing branches through the GUI settings menu. This built-in update mechanism ensures you always have access to the latest features while maintaining production stability. The system downloads fresh repositories in ephemeral mode for single-line usage or supports persistent local clones for repeated operations.

Structured Logging System provides unprecedented visibility. Every operation generates dual log files: a clean .log file for auditing and a verbose .debug.log file for troubleshooting. The debug flag (-d) enables configurable log levels (INFO, DEBUG, ERROR) for both local and remote execution, making production debugging painless.

Enhanced Bulk Operations transform tedious tasks into automated workflows. VM and LXC bulk operations feature progress tracking, detailed statistics, and automatic success/failure reporting. The Unified Utility Framework with ArgumentParser, BulkOperations, and Operations utilities standardizes script behavior and error handling across the entire codebase, ensuring consistent behavior regardless of the operation.

Comprehensive Testing & QA sets this apart from amateur script collections. The TestFramework includes automated test suites for all utility libraries, plus RunAllTests.sh for continuous integration. Repository checks validate line endings, index functions, verify sources, format code, analyze security, and detect dead code. Every script follows strict compliance standards with standardized headers, argument parsing, logging, and error handling.

Real-World Use Cases That Save Hours

Multi-Node Cluster Provisioning: Imagine deploying 50 identical VMs across 5 Proxmox nodes for a Kubernetes cluster. Manually, this takes days. With ProxmoxScripts, you define your parameters once, specify the IP range, and execute a single bulk creation command. The system tracks progress in real-time, logs every action, and provides a completion report with success/failure statistics. What once took 16 hours now finishes in 20 minutes.

Disaster Recovery Automation: When a node fails, every second counts. ProxmoxScripts' QuickDiagnostic.sh runs comprehensive health checks across remaining nodes, automatically identifies affected VMs, and initiates migration to healthy hosts. The structured logging system provides timestamped audit trails for post-incident analysis, while remote execution ensures you can trigger recovery from your laptop during a datacenter outage.

Development Environment Management: DevOps teams need fresh environments for testing. Instead of manually cloning VMs, ProxmoxScripts' CreateFromISO.sh can spin up multiple isolated environments in parallel. Specify different VMIDs, storage locations, and network configurations through command-line arguments. The testing branch lets you experiment with cutting-edge features without risking production stability.

Storage Optimization & Benchmarking: Storage performance impacts everything. The Storage/Benchmark.sh script performs standardized tests across all nodes, generates comparative reports, and identifies bottlenecks. Run it remotely during off-hours, collect logs centrally, and make data-driven decisions about storage upgrades or reconfiguration. Bulk operations mean you benchmark entire clusters while you sleep.

Security Hardening at Scale: Applying security updates across 100+ containers manually is irresponsible. ProxmoxScripts' bulk LXC operations can update, patch, and restart containers sequentially or in parallel with automatic rollback on failure. The unified logging captures every package change, creating compliance documentation automatically. Remote execution with SSH keys ensures secure, passwordless operations across all nodes.

Step-by-Step Installation & Setup Guide

Prerequisites Installation

Before running ProxmoxScripts, install required packages. Execute these commands on your management workstation—not necessarily on the Proxmox nodes themselves.

# Update package index (works on Debian/Ubuntu)
apt update

# Install core dependencies
apt install git wget unzip jq sshpass

Note: The sshpass package is only required for password-based SSH authentication. For production environments, configure SSH keys and omit sshpass for enhanced security.

Method 1: Single-Line Ephemeral Execution (Fastest)

For quick tasks without permanent installation, use the single-line command. This downloads the repository fresh each time and executes scripts in ephemeral mode.

# Standard single-line execution (downloads and runs GUI)
bash -c "$(wget -qLO - https://github.com/coelacant1/ProxmoxScripts/raw/main/CCPVE.sh)"

Even shorter alternative using curl and a custom short URL:

# Ultra-compact single-line command
bash <(curl -L pve.coela.sh)

With help header to see all options:

# Display full help documentation
bash <(curl -L pve.coela.sh) -h

Testing branch for bleeding-edge features:

# Use testing branch instead of stable main
bash <(curl -L pve.coela.sh) --testing

Explicit branch specification for custom features:

# Specify any branch name
bash <(curl -L pve.coela.sh) --branch experimental-feature

Method 2: Persistent Local Installation (Production Recommended)

For repeated use and production environments, clone the repository locally.

# Clone repository to your workstation
git clone https://github.com/coelacant1/ProxmoxScripts.git

# Enter the repository directory
cd ProxmoxScripts

# Make scripts executable and launch GUI
./GUI.sh

Scripts are automatically made executable after cloning. The GUI provides an integrated update mechanism—press 's' from any menu, then select option 1 to pull the latest changes from your configured branch.

Method 3: Direct Non-Interactive Execution (Automation)

For CI/CD pipelines or scripted automation, execute specific scripts without launching the interactive UI.

# List all runnable scripts with relative paths
bash <(curl -L pve.coela.sh) --list

# Run a specific script by path
bash <(curl -L pve.coela.sh) --run Host/QuickDiagnostic.sh

# Pass arguments to the target script
bash <(curl -L pve.coela.sh) --run Storage/Benchmark.sh --args "--device /dev/nvme0n1 --mode quick"

Combined wget form for environments without curl:

# List scripts using wget
bash -c "$(wget -qLO - https://github.com/coelacant1/ProxmoxScripts/raw/main/CCPVE.sh)" --list

# Create VM from ISO with parameters
bash -c "$(wget -qLO - https://github.com/coelacant1/ProxmoxScripts/raw/main/CCPVE.sh)" --run VirtualMachines/CreateFromISO.sh --args "--iso debian-12.iso --vmid 900 --storage local-lvm"

REAL Code Examples Explained

Example 1: The Magic One-Liner Command

bash <(curl -L pve.coela.sh) --testing

What's happening here? This deceptively simple command performs multiple sophisticated operations:

  • bash <(...) executes the output of a command in a subshell (process substitution)
  • curl -L pve.coela.sh follows redirects to fetch the CCPVE.sh launcher from the custom short URL
  • --testing flag tells the launcher to use the testing branch instead of stable main

Technical breakdown: The launcher script first detects your Linux distribution and package manager. It then downloads the entire repository archive from GitHub's raw content delivery network. After integrity verification, it extracts scripts to a temporary directory, exports the UTILITYPATH environment variable so all scripts can source shared helpers, and either launches the GUI or executes your specified command. The entire process takes 2-3 seconds on a typical broadband connection.

Security consideration: This ephemeral mode leaves no permanent files, making it ideal for secure environments where you don't want to leave automation code behind. However, for production, clone the repo to enable code review before execution.

Example 2: Production-Ready Installation Sequence

apt update && apt install git wget unzip jq sshpass
git clone https://github.com/coelacant1/ProxmoxScripts.git
cd ProxmoxScripts
./GUI.sh

Line-by-line analysis:

  • apt update refreshes package indexes to ensure you get latest versions
  • apt install git wget unzip jq sshpass installs all dependencies in one transaction
    • git: For cloning and future updates
    • wget/curl: For downloading scripts and updates
    • unzip: For extracting repository archives
    • jq: Critical for parsing Proxmox's JSON configuration files
    • sshpass: Optional, for password auth (avoid in production)
  • git clone creates a complete local copy with full version history
  • cd ProxmoxScripts enters the repository directory where all scripts reside
  • ./GUI.sh launches the interactive text-based interface

Best practice: Run this on a dedicated management VM or your workstation, not directly on Proxmox nodes. This creates a jump box pattern that enhances security and provides a central audit point.

Example 3: Advanced Non-Interactive Automation

bash -c "$(wget -qLO - https://github.com/coelacant1/ProxmoxScripts/raw/main/CCPVE.sh)" \
  --run VirtualMachines/BulkStart.sh \
  --args "--vmid-range 100-150 --nodes pve1,pve2,pve3 --delay 30"

Deep dive into this advanced pattern:

  • bash -c "..." executes the downloaded launcher in a clean environment
  • wget -qLO - quietly downloads to stdout without saving files
  • --run VirtualMachines/BulkStart.sh specifies the exact script path (as shown by --list)
  • --args "..." passes parameters directly to the target script
    • --vmid-range 100-150: Processes VMs with IDs 100 through 150
    • --nodes pve1,pve2,pve3: Executes across three specific nodes
    • --delay 30: Waits 30 seconds between each VM start to avoid I/O storms

Enterprise use case: Schedule this in cron during maintenance windows. The structured logging system creates timestamped logs for compliance, while the bulk operations framework tracks success/failure rates. If a VM fails to start, the operation continues with remaining VMs and reports detailed errors in the debug log.

Example 4: Storage Benchmarking with Parameter Injection

bash <(curl -L pve.coela.sh) \
  --run Storage/Benchmark.sh \
  --args "--device /dev/nvme0n1 --mode comprehensive --output-json"

Parameter breakdown:

  • --device /dev/nvme0n1: Targets the specific NVMe drive for testing
  • --mode comprehensive: Runs full test suite (sequential, random, mixed I/O)
  • --output-json: Generates machine-readable results for integration with monitoring systems

Implementation insight: The Benchmark.sh script sources the Unified Utility Framework, which handles argument parsing, logging initialization, and error handling consistently. It uses fio internally with predefined test profiles validated against Proxmox VE 9.1.1. The script automatically detects if running locally or remotely and adjusts device paths accordingly. Results are written to both console and /var/log/proxmox-scripts/benchmark-TIMESTAMP.log for historical analysis.

Example 5: Remote Multi-Node Execution Pattern

# First, configure SSH keys (one-time setup)
ssh-copy-id root@pve1.node.local
ssh-copy-id root@pve2.node.local

# Then execute across nodes without passwords
bash <(curl -L pve.coela.sh) \
  --run Host/QuickDiagnostic.sh \
  --args "--remote pve1.node.local,pve2.node.local --parallel"

Security architecture: The remote execution engine establishes SSH connections to each target node, uploads necessary scripts temporarily, executes them, collects logs, and cleans up. The --parallel flag runs diagnostics simultaneously on all nodes, cutting execution time dramatically. Without SSH keys, you'd add --ssh-password 'yourpass' (not recommended). The system automatically exports UTILITYPATH to remote nodes, ensuring all helper functions work seamlessly across the cluster.

Advanced Usage & Best Practices

SSH Key-Based Authentication is non-negotiable for production. Generate an ED25519 key pair: ssh-keygen -t ed25519 -C "proxmox-scripts". Distribute to all nodes with ssh-copy-id. This eliminates sshpass dependency and prevents password exposure in process lists.

Branch Strategy: Use main branch for production automation. It's stable and thoroughly tested. The testing branch contains new features but may have undiscovered issues. For CI/CD pipelines, pin to specific release tags: git checkout v2.2.0 ensures reproducible deployments.

Log Analysis Automation: The dual-log system is designed for machine parsing. Use grep ERROR /var/log/proxmox-scripts/*.log for quick issue detection. For advanced monitoring, configure the ELK stack or Splunk to ingest debug logs. The consistent timestamp format (YYYY-MM-DD HH:MM:SS) enables precise correlation across distributed nodes.

Bulk Operation Optimization: When starting 100+ VMs, use --delay parameters to prevent storage I/O contention. Start critical VMs first with a separate command, then batch-start remaining VMs with 60-second delays. Monitor progress via tail -f /var/log/proxmox-scripts/bulk-operation.log.

Integration with Existing Tools: ProxmoxScripts complements Terraform and Ansible. Use Terraform for infrastructure-as-code provisioning, then ProxmoxScripts for day-to-day operational tasks like diagnostics, benchmarking, and bulk modifications. The --output-json flag enables seamless data exchange between tools.

Security Hardening: Always maintain a local repository copy for code review before production execution. The warning in the README is serious—these scripts perform administrative operations. Implement a four-eyes principle where another admin reviews script changes before deployment. Use the built-in validation checks: ./Scripts/Repository/CheckScripts.sh runs the same QA suite as GitHub Actions.

Comparison: Why ProxmoxScripts Wins

Feature ProxmoxScripts Native Proxmox CLI Terraform Provider Ansible Modules
Cross-Platform GUI ✅ Yes, any Linux distro ❌ No CLI only ❌ No ❌ No
Remote Multi-Node ✅ Built-in, IP ranges ❌ Manual SSH loops ✅ Limited ✅ Yes
Bulk Operations ✅ Advanced with stats ❌ Basic loops ⚠️ Resource-dependent ⚠️ Playbook complexity
Structured Logging ✅ Dual .log/.debug.log ❌ Manual redirection ⚠️ State files ⚠️ Ansible logs
Testing Framework ✅ Comprehensive suite ❌ None ⚠️ Limited ⚠️ Custom tests
Learning Curve ✅ Minimal, interactive ⚠️ Steep ⚠️ HCL syntax ⚠️ YAML/playbooks
Execution Speed ✅ Seconds ⚠️ Minutes (manual) ⚠️ Plan/apply cycles ⚠️ Playbook runtime
Offline Capability ✅ Full clone support ✅ Yes ❌ Requires state backend ✅ Yes

Key Differentiator: While Terraform excels at declarative infrastructure and Ansible at configuration management, ProxmoxScripts dominates operational automation. It's purpose-built for the daily tasks sysadmins perform: diagnostics, benchmarking, bulk VM management, and cluster maintenance. The interactive GUI provides immediate productivity, while the non-interactive mode enables sophisticated CI/CD integration. Native CLI requires manual scripting for bulk operations, while ProxmoxScripts provides pre-built, tested solutions.

Frequently Asked Questions

Q: Is it safe to run ProxmoxScripts on production clusters? A: Yes, with precautions. Always clone the repository locally and review scripts before execution. Test in a non-production environment first. The repository includes comprehensive QA checks, but you are ultimately responsible for changes to your infrastructure. Use the main branch for stability.

Q: What's the difference between main and testing branches? A: Main branch is stable, thoroughly tested, and suitable for production. Testing branch contains new features and improvements but hasn't completed full validation. Switch branches via the GUI settings menu or using --testing flag. For critical operations, always use main.

Q: Can I run ProxmoxScripts on Windows or macOS? A: No, ProxmoxScripts requires a Linux environment to run. However, you can use Windows Subsystem for Linux (WSL2) on Windows or a Linux VM on macOS. The scripts manage Proxmox nodes remotely, so your workstation OS only needs to support bash and the listed dependencies.

Q: How does remote execution work behind firewalls? A: Remote execution uses standard SSH on port 22. Ensure firewall rules allow SSH from your management workstation to Proxmox nodes. For NAT environments, configure SSH tunneling or VPN access. The scripts respect your ~/.ssh/config settings, enabling jump host configurations.

Q: What happens if a bulk operation fails halfway through? A: The BulkOperations utility tracks success/failure per VM/LXC. If a VM fails to start, migrate, or modify, the operation continues with remaining VMs and generates a detailed report. Check .debug.log files for specific error messages. Failed operations can be retried individually without re-running the entire batch.

Q: How often are scripts updated and how do I stay current? A: The repository sees frequent updates with active development. Use the GUI's built-in update function (press 's' then select option 1) to pull latest changes. For production, pin to release tags and review changelogs before updating. GitHub Actions automatically validate every commit.

Q: Can I contribute my own scripts to the repository? A: Absolutely! The project welcomes contributions. Follow the Script Compliance Standards: use standardized headers, implement ArgumentParser, include structured logging, and add tests to the TestFramework. Submit pull requests against the testing branch for review.

Conclusion: Automate or Stagnate

ProxmoxScripts isn't just another tool—it's a paradigm shift in Proxmox VE management. The combination of cross-platform GUI, remote cluster control, and battle-tested bulk operations eliminates the drudgery that burns out system administrators. Version 2.2.0's structured logging and unified utility framework bring enterprise discipline to open-source automation without sacrificing flexibility.

What sets this apart is thoughtful design. Every feature addresses real operational pain: the single-line command for quick fixes, the testing branch for safe innovation, the dual-log system for compliance, and the comprehensive testing for reliability. The active development and rigorous QA mean you're building on solid ground, not quicksand.

Your next step is clear: Visit the ProxmoxScripts GitHub repository right now. Star it to track updates, clone it to your management workstation, and run ./GUI.sh to experience the future of Proxmox automation. In 10 minutes, you'll accomplish what used to take hours. The infrastructure you manage deserves this level of efficiency—and so do you. Automate everything.

Comments (0)

Comments are moderated before appearing.

No comments yet. Be the first to share your thoughts!

Search

Categories

Developer Tools 128 Web Development 34 Artificial Intelligence 27 Technology 27 AI/ML 23 AI 21 Cybersecurity 19 Machine Learning 17 Open Source 17 Productivity 15 Development Tools 13 Development 12 AI Tools 11 Mobile Development 8 Software Development 7 macOS 7 Open Source Tools 7 Security 7 DevOps 7 Programming 6 Data Visualization 6 Data Science 6 Automation 5 JavaScript 5 AI & Machine Learning 5 AI Development 5 Content Creation 4 iOS Development 4 Productivity Tools 4 Database Management 4 Tools 4 Database 4 Linux 4 React 4 Privacy 3 Developer Tools & API Integration 3 Video Production 3 Smart Home 3 API Development 3 Docker 3 Self-hosting 3 Developer Productivity 3 Personal Finance 3 Computer Vision 3 AI Automation 3 Fintech 3 Productivity Software 3 Open Source Software 3 Developer Resources 3 AI Prompts 2 Video Editing 2 WhatsApp 2 Technology & Tutorials 2 Python Development 2 Business Intelligence 2 Music 2 Software 2 Digital Marketing 2 Startup Resources 2 DevOps & Cloud Infrastructure 2 Cybersecurity & OSINT 2 Digital Transformation 2 UI/UX Design 2 Algorithmic Trading 2 Virtualization 2 Investigation 2 Data Analysis 2 AI and Machine Learning 2 Networking 2 AI Integration 2 Self-Hosted 2 macOS Apps 2 DevSecOps 2 Database Tools 2 Web Scraping 2 Documentation 2 Privacy & Security 2 3D Printing 2 Embedded Systems 2 macOS Development 2 PostgreSQL 2 Data Engineering 2 Terminal Applications 2 React Native 2 Flutter Development 2 Education 2 Cryptocurrency 2 AI Art 1 Generative AI 1 prompt 1 Creative Writing and Art 1 Home Automation 1 Artificial Intelligence & Serverless Computing 1 YouTube 1 Translation 1 3D Visualization 1 Data Labeling 1 YOLO 1 Segment Anything 1 Coding 1 Programming Languages 1 User Experience 1 Library Science and Digital Media 1 Technology & Open Source 1 Apple Technology 1 Data Storage 1 Data Management 1 Technology and Animal Health 1 Space Technology 1 ViralContent 1 B2B Technology 1 Wholesale Distribution 1 API Design & Documentation 1 Entrepreneurship 1 Technology & Education 1 AI Technology 1 iOS automation 1 Restaurant 1 lifestyle 1 apps 1 finance 1 Innovation 1 Network Security 1 Healthcare 1 DIY 1 flutter 1 architecture 1 Animation 1 Frontend 1 robotics 1 Self-Hosting 1 photography 1 React Framework 1 Communities 1 Cryptocurrency Trading 1 Python 1 SVG 1 IT Service Management 1 Design 1 Frameworks 1 SQL Clients 1 Network Monitoring 1 Vue.js 1 Frontend Development 1 AI in Software 1 Log Management 1 Network Performance 1 AWS 1 Vehicle Security 1 Car Hacking 1 Trading 1 High-Frequency Trading 1 Media Management 1 Research Tools 1 Homelab 1 Dashboard 1 Collaboration 1 Engineering 1 3D Modeling 1 API Management 1 Git 1 Reverse Proxy 1 Operating Systems 1 API Integration 1 Go Development 1 Open Source Intelligence 1 React Development 1 Education Technology 1 Learning Management Systems 1 Mathematics 1 OCR Technology 1 Video Conferencing 1 Design Systems 1 Video Processing 1 Vector Databases 1 LLM Development 1 Home Assistant 1 Git Workflow 1 Graph Databases 1 Big Data Technologies 1 Sports Technology 1 Natural Language Processing 1 WebRTC 1 Real-time Communications 1 Big Data 1 Threat Intelligence 1 Container Security 1 Threat Detection 1 UI/UX Development 1 Testing & QA 1 watchOS Development 1 SwiftUI 1 Background Processing 1 Microservices 1 E-commerce 1 Python Libraries 1 Data Processing 1 Document Management 1 Audio Processing 1 Stream Processing 1 API Monitoring 1 Self-Hosted Tools 1 Data Science Tools 1 Cloud Storage 1 macOS Applications 1 Hardware Engineering 1 Network Tools 1 Ethical Hacking 1 Career Development 1 AI/ML Applications 1 Blockchain Development 1 AI Audio Processing 1 VPN 1 Security Tools 1 Video Streaming 1 OSINT Tools 1 Firmware Development 1 AI Orchestration 1 Linux Applications 1 IoT Security 1 Git Visualization 1 Digital Publishing 1 Open Standards 1 Developer Education 1 Rust Development 1 Linux Tools 1 Automotive Development 1 .NET Tools 1 Gaming 1 Performance Optimization 1 JavaScript Libraries 1 Restaurant Technology 1 HR Technology 1 Desktop Customization 1 Android 1 eCommerce 1 Privacy Tools 1 AI-ML 1 Document Processing 1 Cloudflare 1 Frontend Tools 1 AI Development Tools 1 Developer Monitoring 1 GNOME Desktop 1 Package Management 1 Creative Coding 1 Music Technology 1 Open Source AI 1 AI Frameworks 1 Trading Automation 1 DevOps Tools 1 Self-Hosted Software 1 UX Tools 1 Payment Processing 1 Geospatial Intelligence 1 Computer Science 1 Low-Code Development 1 Open Source CRM 1 Cloud Computing 1 AI Research 1 Deep Learning 1

Master Prompts

Get the latest AI art tips and guides delivered straight to your inbox.

Support us! ☕