Skip to main content
Webinoly provides several additional tools to enhance your server’s capabilities, including caching systems, mail delivery, SSL certificates, and backup solutions.

Available Additional Tools

Redis

Object caching for PHP

Memcached

Distributed caching system

Postfix

SMTP mail server

Let's Encrypt

Free SSL certificates

phpMyAdmin

Web database management

Backup Tools

Duplicity & Duply

Redis

Redis is an in-memory data structure store used as a database, cache, and message broker.

Installation

sudo stack -redis
Redis requires PHP to be installed. If PHP is not present, you’ll be prompted to install it.

What Gets Installed

  • redis-server - Redis server daemon
  • php-redis - PHP extension for Redis

Configuration

Redis is automatically configured with optimal settings:
1

Memory Allocation

Webinoly automatically calculates maxmemory based on available RAM:
# Configuration file
/etc/redis/redis.conf

# Memory is set to a percentage of total RAM
maxmemory XXXmb
2

Eviction Policy

Configured with LFU (Least Frequently Used) policy:
maxmemory-policy allkeys-lfu
3

Service Configuration

Redis runs as a systemd service:
sudo systemctl status redis-server

Managing Redis

sudo systemctl start redis-server

Using Redis

# Connect to Redis CLI
redis-cli

# Test connection
redis-cli ping
# Response: PONG

# Check memory usage
redis-cli INFO memory

# Clear all data
redis-cli FLUSHALL

Redis Optimization

# Adjust Redis memory allocation
sudo webinoly -config-set=redis-max-mem:20
sudo stack -php -optim
The value represents percentage of total RAM. Default is calculated automatically.

Removing Redis

sudo stack -redis -purge

Memcached

Memcached is a high-performance, distributed memory object caching system.

Installation

sudo stack -memcached

What Gets Installed

  • memcached - Memcached server daemon
  • php-memcached - PHP extension for Memcached
  • php-memcache - Legacy PHP extension (PHP 5.6-8.4)
Starting with PHP 8.5, the legacy php-memcache module is no longer available.

Configuration

Memcached runs with default settings:
# Configuration file
/etc/memcached.conf

# Default settings:
# Memory: 64MB
# Port: 11211
# Listen: 127.0.0.1

Managing Memcached

sudo systemctl start memcached

Using Memcached

# Connect to Memcached
telnet localhost 11211

# Check statistics
echo "stats" | nc localhost 11211

# Flush all data
echo "flush_all" | nc localhost 11211

Removing Memcached

sudo stack -memcached -purge

Postfix

Postfix is a mail transfer agent (MTA) for sending email from PHP applications.

Installation

sudo stack -postfix
Postfix requires PHP to be installed first.

Automatic Configuration

Webinoly configures Postfix during installation:
1

Mail Type Selection

Configured as “Internet Site” for direct mail delivery
2

Hostname Setup

System hostname is automatically configured as mail name
3

Security Configuration

# Only accept local mail
mydestination = localhost

# Hide server information
smtpd_banner = $myhostname ESMTP

Configuration Files

/etc/postfix/main.cf          # Main configuration
/var/log/mail.log             # Mail logs

Managing Postfix

sudo systemctl start postfix

Testing Email

# Send test email
echo "Test email body" | mail -s "Test Subject" [email protected]

# Check mail queue
mailq

# View mail log
sudo tail -f /var/log/mail.log

PHP Mail Configuration

Postfix is automatically configured for PHP:
<?php
// PHP mail() function works automatically
mail('[email protected]', 'Subject', 'Message');
?>

Removing Postfix

sudo stack -postfix -purge

Let’s Encrypt (Certbot)

Let’s Encrypt provides free SSL/TLS certificates for websites.

Installation

sudo stack -letsencrypt
Let’s Encrypt requires NGINX to be installed.

What Gets Installed

  • certbot - Certificate management tool (via Snap)
  • Automatic certificate renewal cron job

Installation Process

1

Snap Installation

Certbot is installed via Snap for latest version:
sudo snap install --classic certbot
2

Symlink Creation

Creates system-wide access:
/usr/bin/certbot -> /snap/bin/certbot
3

Renewal Setup

Configures automatic renewal check (twice daily)
Webinoly includes retry logic with up to 3 attempts if Snap repository fails during installation.

Using Let’s Encrypt

# SSL is managed through site command
# See SSL documentation for details
sudo site example.com -ssl=on

Certificate Management

sudo certbot certificates

Removing Let’s Encrypt

sudo stack -letsencrypt -purge
Removing Let’s Encrypt will not delete existing certificates, but renewal will stop.

phpMyAdmin

Web-based interface for MySQL/MariaDB management.

Installation

sudo stack -pma
phpMyAdmin requires NGINX, PHP, and MySQL/MariaDB to be installed.

Installation Process

1

Download Latest Version

Downloads latest phpMyAdmin from official source
2

Installation Location

Installed in admin tools site:
/var/www/$(tools-site)/htdocs/pma/
3

Configuration

Automatic configuration:
  • Blowfish secret generated
  • Permissions secured (640 for files, 750 for directories)
  • Owned by www-data
4

Security Setup

  • Test and setup directories removed
  • HTTP authentication required
  • Access restricted to admin tools port

Accessing phpMyAdmin

# Default URL (port 22222)
http://your-server-ip:22222/pma

# Login with database credentials
# Use 'admin' user or any database user
phpMyAdmin is protected by HTTP authentication. Use credentials from:
sudo webinoly -auth-list

phpMyAdmin Features

  • Database creation and management
  • Table structure modification
  • SQL query execution
  • Data import/export
  • User and privilege management
  • Server status monitoring

Updating phpMyAdmin

Reinstall to update to latest version:
sudo stack -pma -purge
sudo stack -pma

Removing phpMyAdmin

sudo stack -pma -purge

Backup Tools (Duplicity & Duply)

Comprehensive backup solution with support for various storage backends.

Installation

sudo stack -backups
Backup tools can be installed independently without NGINX, making them suitable for any server configuration.

What Gets Installed

  • Duplicity (v2.1.4) - Encrypted bandwidth-efficient backup
  • Duply - Frontend for Duplicity
  • python3-boto3 - AWS S3 support
  • Required Python dependencies

Installation Methods

Installed via pip3:
sudo pip3 install "duplicity==2.1.4"

Supported Storage Backends

Amazon S3

Full S3 support via boto3

Local/Remote

File system and SSH/SCP

Cloud Storage

Google Drive, Dropbox, etc.

FTP/SFTP

Traditional file transfer

Using Backup Tools

# Backups are managed through webinoly backup command
# See backup documentation for details
sudo backup example.com

Duply Profiles

Backup profiles are stored in:
~/.duply/

Dependencies

Automatic installation of required packages:
  • debhelper, dh-python, python3
  • gnupg, librsync-dev, par2
  • python3-pytest, python3-pexpect
  • python3-fasteners, python3-setuptools
  • rdiff, rename, rsync

Removing Backup Tools

sudo stack -backups -purge
Removing backup tools will delete all Duply profiles and backup configurations.

Build Profiles and Tools

Different build profiles include different tools:
sudo stack -lemp
Includes:
  • NGINX + PHP + MySQL/MariaDB
  • Let’s Encrypt
  • Backup Tools
  • Redis
  • Memcached
  • Postfix

Tool Dependencies

1

NGINX-Dependent Tools

  • Let’s Encrypt (certbot)
  • phpMyAdmin
2

PHP-Dependent Tools

  • Redis (requires PHP extension)
  • Memcached (requires PHP extension)
  • Postfix (for PHP mail support)
  • phpMyAdmin
3

MySQL-Dependent Tools

  • phpMyAdmin
4

Independent Tools

  • Backup Tools (can be installed alone)

Checking Installed Tools

Stack Information

sudo stack -info
Displays:
  • Installed components and versions
  • Active services status
  • Configuration details
  • Available tools

Individual Tool Status

sudo systemctl status redis-server
redis-cli ping

Uninstalling All Tools

Complete Stack Removal

sudo stack -purge-server-all
CAUTION: This removes:
  • NGINX, PHP, MySQL/MariaDB
  • All additional tools
  • All sites and configurations
  • All databases (unless specified otherwise)
This action cannot be undone. Always backup your data first.

Force Removal

Unattended removal without prompts:
sudo stack -purge-server-all -force

Troubleshooting Tools

Check if Redis is running:
sudo systemctl status redis-server
sudo systemctl restart redis-server
redis-cli ping
Verify Memcached is listening:
sudo systemctl status memcached
sudo netstat -tlnp | grep 11211
Check mail log and queue:
sudo tail -f /var/log/mail.log
mailq
sudo postqueue -f
Verify all requirements:
sudo systemctl status nginx
sudo systemctl status php8.4-fpm
sudo systemctl status mysql
ls -la /var/www/$(conf_read tools-site)/htdocs/pma/
Webinoly automatically retries up to 3 times. If still failing:
sudo snap refresh core
sudo snap install --classic certbot

Best Practices

Use Redis for WordPress

Significantly improves WordPress performance with object caching

Enable Backups

Install backup tools and schedule regular automated backups

SSL for All Sites

Install Let’s Encrypt and enable SSL on all public-facing sites

Monitor Tool Usage

Regularly check Redis/Memcached stats to optimize memory allocation

Next Steps

Create Your First Site

Start building websites with your configured stack

Configure SSL

Secure your sites with free SSL certificates

Setup Backups

Configure automated backup schedules

Optimize Performance

Fine-tune caching and performance settings

Build docs developers (and LLMs) love