# Maintenance

# Webmin GUI (On-Premise)

## Webmin GUI

For an on-premise installation of FileWave the Webmin GUI can help you set some options on the Debian operating system. Note that this does not exist for servers hosted by FileWave. It’s especially important to set the root password as seen below.

<p class="callout warning">For Webmin on Debian know that you will need to go to Webmin -&gt; Webmin Configuration -&gt; Operating System and Environment and make sure it's set to Debian 12.4 (Or whatever version we are at when you set up your system. You can see this with `cat /etc/debian_version` on the server.</p>

1. At the login screen note the URL to remotely manage the server, ex: **https://myorg.filwave.net:10000**
    
    
    - If there is no IP address specified because DHCP is not available on the subnet for your FileWave Linux Appliance, login with the username "**fwadmin**" with password "**filewave**". Note that older appliances used a username of "**root**" but sine [15.5.0 this has not been the case](https://kb.filewave.com/books/filewave-general-info/page/setting-the-password-on-first-login-to-filewave-appliances-155 "Setting the Password on First Login to FileWave Appliances (15.5+)").
    - Run "nmtui" at the command prompt to launch the Network Manager Text UI so you can configure the networking for the FileWave VM appliance. You'll need to reload the IP stack with "service network restart". Skip the network configuration steps later in the Webmin.
2. Browse to this URL and log in with username "**fwadmin**" and password "**filewave**". We will change this password later.
3. Browse to *Hardware &gt; System Time* on the left, pick the *Change timezone* tab on the right, pick your time zone and click *Save*. North American time zones all start with "America".
4. Switch to the the *Time server sync* tab, enter "**pool.ntp.org**" in the *Timeserver hostnames or addresses* field, set *Synchronize on schedule?* to "Yes, at times below", and click the *Sync and Apply* button.
5. Go to *System &gt; Change Passwords* on the left and select the "root" account on the right from the list of usernames. Enter a new root password, confirm it, and click *Change*. Note that this will change the default password for the root account used to log into the server from "filewave" to whatever you choose so enter a secure password that is easy for you to remember.
6. Choose *Networking &gt; Network Configuration* on the left, and *Network Interfaces* on the right. Click the blue link labeled "ens160" or "ens32" for the Ethernet adapter. Change the *IPv4 address* settings to "Static configuration", enter a static IP, enter a subnet mask, and click *Save and Apply* at the bottom\_.\_
7. You will no longer be able to access the Webmin UI for the FileWave servers via its old DHCP IP address. Change the address in your browser's address bar to use the new static IP address for the FileWave server that you configured in the previous step. Browse to *Networking &gt; Network Configuration* on the left, and *Hostname and DNS Client* on the right. Enter the IP address for your DNS server and click *Save*.
8. Select *Networking &gt; Network Configuration* on the left, and *Routing and Gateways* on the right. Pick "ens160" or "ens32" from the *Default routes* pull-down, enter the default gateway address for the subnet the FileWave server is hosted on, and click *Save*.
9. Go to S\_ystem &gt; Bootup and Shutdown\_ on the left, scroll to the bottom on the right, and click the *Reboot System* button. When asked to confirm if you want to reboot the system with "shutdown -r now" click the *Reboot System* button again.

![FWServerTZ.png](https://kb.filewave.com/uploads/images/gallery/2023-06/Tq38YRS1vO1TzEcZ-fwservertz.png)

![ntp_server.png](https://kb.filewave.com/uploads/images/gallery/2023-06/cN1PlsklZT3pi8mH-ntp-server.png)

![FWServerPwd.png](https://kb.filewave.com/uploads/images/gallery/2023-06/KjsKmX8dpF7JCWPr-fwserverpwd.png)

![FWServerStaticIP.png](https://kb.filewave.com/uploads/images/gallery/2023-06/eH3J1JcbBEZ5l7Fb-fwserverstaticip.png)

![FWServerDNS.png](https://kb.filewave.com/uploads/images/gallery/2023-06/rF0jylnNZbywW78S-fwserverdns.png)

![FWServerDefaultGateway.png](https://kb.filewave.com/uploads/images/gallery/2023-06/k6NjgCs0A6OQ5tlN-fwserverdefaultgateway.png)

![FWServerReboot.png](https://kb.filewave.com/uploads/images/gallery/2023-06/3uNhYXdTBNN9uGbc-fwserverreboot.png)

## Related Content

- [1. Installation and Setup](https://kb.filewave.com/books/evaluation-guide/chapter/1-installation-and-setup "1. Installation and Setup")

# Webmin GUI - Changing the root password (On-Premise)

## What

[Webmin](https://www.webmin.com/) is included in the FileWave appliances to allow you to easily configure the system. This is only relevant if you run a FileWave server yourself on-premise. For customers who have their server hosted by FileWave you do not need to worry about these steps.

## When/Why

The first important thing is to not allow any traffic to TCP 10000 on your server except from networks you will connect to it from. There is no reason to expose this port to the Internet. The second item is to be sure you change the root password on your appliance from the default. This is mentioned in [FileWave Server Setup](https://kb.filewave.com/books/evaluation-guide/page/filewave-server-setup "FileWave Server Setup") but this step is very important.

## How

1. At the login screen note the URL to remotely manage the server, ex: **https://myorg.filwave.net:10000**
    
    
    - If there is no IP address specified because DHCP is not available on the subnet for your FileWave Linux Appliance, log in with the username "**root**" with the password "**filewave**".
    - Run "nmtui" at the command prompt to launch the Network Manager Text UI so you can configure the networking for the FileWave VM appliance. You'll need to reload the IP stack with "service network restart". Skip the network configuration steps later in the Webmin.
2. Browse to this URL and log in with username "**root**" and password "**filewave**".
3. Go to *System &gt; Change Passwords* on the left and select the "root" account on the right from the list of usernames. Enter a new root password, confirm it, and click *Change*. Note that this will change the default password for the root account used to log into the server from "filewave" to whatever you choose so enter a secure password that is easy for you to remember, but it should be a long and complex password or you should take steps to configure SSH to only allow connections with a certificate. The FileWave server is a full Linux OS and can be managed like any other.

## Related Content

- [Webmin GUI](https://kb.filewave.com/books/filewave-server/page/webmin-gui-on-premise "Webmin GUI")
- [FileWave Server Setup](https://kb.filewave.com/books/evaluation-guide/page/filewave-server-setup "FileWave Server Setup")

# Expanding the Disk on a FileWave Appliance - Debian

## Overview

This guide explains how to use the **FileWave Smart Disk Expansion** script to automatically expand disk space on FileWave appliances. The script handles all the complexity of expanding LVM physical volumes, partitions, and filesystems with comprehensive logging and safety features.

### What This Script Does

The script performs the following operations:

- **Detects** your appliance's LVM configuration automatically
- **Expands** physical volume (PV) backing devices
- **Grows** partitions using cloud-guest-utils (`growpart`)
- **Extends** the root logical volume (LV) to consume available space
- **Grows** the root filesystem online (supports ext4, ext3, ext2, and XFS)
- **Repairs** GPT partition tables if needed
- **Logs** all actions for troubleshooting and support cases

### Prerequisites

- **Root access** (via `sudo`)
- **Debian-based appliance** (e.g., Debian 12/13)
- **Disk already expanded** at the hypervisor/storage level (this script only expands the OS partitions and filesystem)
- **Network access** (for automatic package installation, if needed)

The script automatically installs required tools if missing:

- `cloud-guest-utils` (growpart)
- `lvm2` (LVM tools)
- `util-linux` (disk utilities)
- `gdisk` (GPT utilities)
- `e2fsprogs` (ext filesystem tools)
- `xfsprogs` (XFS filesystem tools)

## Step-by-Step Instructions

### Step 1: Download the Script

Open a terminal on your FileWave appliance and download the script:

```bash
cd /tmp
wget https://kb.filewave.com/attachments/485 -O filewave-expand-disk.sh
chmod +x filewave-expand-disk.sh

```

Alternatively, if `wget` is not available, use `curl`:

```bash
cd /tmp
curl -o filewave-expand-disk.sh https://kb.filewave.com/attachments/485
chmod +x filewave-expand-disk.sh

```

### Step 2: Review the Script (Optional but Recommended)

Before running any system-modifying script, it's good practice to review it:

```bash
head -50 filewave-expand-disk.sh

```

This displays the first 50 lines, including the description and safety information.

### Step 3: Test with Dry-Run (Strongly Recommended)

Always test the script in **dry-run mode first** to see what actions it would take:

```bash
sudo ./filewave-expand-disk.sh --dry-run

```

**Expected output:**

- Detects root LVM configuration (VG, LV, filesystem type)
- Lists PV devices backing the root LV
- Shows BEFORE state (VG free space, LV size, filesystem size)
- Lists actions it WOULD take (but doesn't execute them)
- Shows AFTER state (projected)

**Example output snippet:**

```
== Detecting root LVM layout ==
Root LV: /dev/vg0/root
VG:      vg0
FS type: ext4

== Finding PV backing the root LV ==
PV(s):   /dev/vda1

== BEFORE state ==
VG free:      10.0G
LV size:      50.0G
FS size (/):  50.0G
FS avail (/): 45.0G

== Expanding PV(s) and partition(s) (if needed) ==
Processing: /dev/vda1
  - would run: growpart /dev/vda /dev/vda1
  - pvresize /dev/vda1

DRY_RUN: command not executed

```

**Review the dry-run output carefully:**

- ✅ Are the device names correct?
- ✅ Is the VG/LV configuration what you expect?
- ✅ Does the projected growth make sense?

### Step 4: Run the Script

Once you're confident with the dry-run, run the script for real:

```bash
sudo ./filewave-expand-disk.sh

```

The script will:

1. Install any missing prerequisite packages
2. Detect your LVM configuration
3. Expand PV/partitions if needed
4. Extend the LV
5. Grow the filesystem online
6. Create a support log in `/var/log/filewave-expand-disk-YYYYMMDD-HHMMSS.log`

**Expected output:**

```
Log file: /var/log/filewave-expand-disk-20260127-094500.log
If opening a support case, attach: /var/log/filewave-expand-disk-20260127-094500.log

== Checking and installing prerequisites ==
...

== Detecting root LVM layout ==
Root LV: /dev/vg0/root
VG:      vg0
FS type: ext4

...

== AFTER state ==
VG free:      0B
LV size:      60.0G
FS size (/):  60.0G
FS avail (/): 55.0G

SUMMARY: Expansion performed. LV grew by 10.0G and filesystem grew by 10.0G.

Support log file: /var/log/filewave-expand-disk-20260127-094500.log
Reboot not requested (default). No reboot will be performed.

```

### Step 5: Verify the Expansion

Check that the filesystem was expanded:

```bash
df -h /

```

You should see the new size reflected in the "Size" column.

**Example:**

```
Filesystem      Size  Used Avail Use% Mounted on
/dev/mapper/vg0-root   60G  5.0G   55G   9% /

```

Compare this to the BEFORE state in the log.

### Step 6: Reboot (If Recommended)

In most cases, **no reboot is needed**. However, the script may recommend a reboot if:

- GPT partition table repairs were necessary
- Kernel partition table cache needs refresh

If the script recommends a reboot:

```bash
sudo reboot

```

The appliance will restart. FileWave services typically auto-start on boot.

## Usage Options

The script supports several command-line options:

### Verbose Mode

Show detailed command output in the terminal (in addition to logging):

```bash
sudo ./filewave-expand-disk.sh --verbose

```

Use this for troubleshooting or when you want to see detailed progress.

### Reboot Option

Automatically reboot at the end:

```bash
sudo ./filewave-expand-disk.sh --reboot

```

This is useful for automation or when you want to ensure partition table changes are fully applied.

### Combined Options

```bash
sudo ./filewave-expand-disk.sh --dry-run --verbose
sudo ./filewave-expand-disk.sh --reboot --verbose

```

## Support Log

The script creates a detailed support log in `/var/log/`:

**Log location:** `/var/log/filewave-expand-disk-YYYYMMDD-HHMMSS.log`

**Why it's important:**

- Contains all commands executed
- Includes BEFORE/AFTER metrics
- Helps FileWave Support diagnose issues
- Is automatically world-readable for easy sharing

**To view the log:**

```bash
cat /var/log/filewave-expand-disk-*.log

```

**When opening a support case:**

- Attach the support log: `filewave-expand-disk-YYYYMMDD-HHMMSS.log`
- Include the BEFORE/AFTER sizes
- Note any warnings or errors from the script

## Troubleshooting

### "ERROR: This script must be run as root"

**Solution:** Use `sudo`:

```bash
sudo ./filewave-expand-disk.sh

```

### "ERROR: Root filesystem is not an LVM logical volume"

**Cause:** Your appliance does not use LVM storage layout.

**Solution:** This script only works with LVM-based appliances. Contact FileWave Support for non-LVM systems.

### "WARN: Unsupported/unknown filesystem type"

**Cause:** The root filesystem is an uncommon type (not ext4, ext3, ext2, or XFS).

**Solution:** Contact FileWave Support with the support log.

### Filesystem didn't grow (AFTER state shows same size as BEFORE)

**Possible causes:**

1. **VG has no free space**: If `VG free` is 0 bytes in BEFORE state, there's nothing to expand. Verify the disk was actually expanded at the hypervisor level.
2. **Partition didn't grow**: Check the support log for growpart output. This typically means the underlying disk wasn't resized at the storage layer.
3. **No-op short-circuit triggered**: The script detected the disk was already fully expanded.

**Solution:** Check the support log for details. If still unsure, contact FileWave Support.

### "Device or resource busy" warnings

**Cause:** The system is actively using the disk (expected on live systems).

**Solution:** These warnings are normal and safe to ignore. The script continues and typically succeeds anyway.

## Common Scenarios

### Scenario 1: Expand 50GB Appliance to 100GB

1. **At hypervisor level:** Resize the virtual disk from 50GB to 100GB
2. **On appliance:** Run dry-run to verify
3. **On appliance:** Run the script
4. **Verify:** Check with `df -h /`

```bash
# Dry-run
sudo ./filewave-expand-disk.sh --dry-run

# Real run
sudo ./filewave-expand-disk.sh

# Verify
df -h /

```

### Scenario 2: Expand with Verbose Output for Troubleshooting

```bash
sudo ./filewave-expand-disk.sh --verbose 2>&1 | tee ~/expansion.log

```

This captures all output to both terminal and a file for review.

### Scenario 3: Expand and Reboot Automatically

```bash
sudo ./filewave-expand-disk.sh --reboot

```

Useful for scheduled maintenance windows.

## FAQ

**Q: Will this downtime affect FileWave services?**  
A: No. The filesystem is expanded online with no downtime. Services continue running but you may be advised to reboot.

**Q: Do I need to stop FileWave services?**  
A: No. The script works while services are running.

**Q: What filesystems are supported?**  
A: ext4, ext3, ext2, and XFS. Others may work but are not officially tested.

**Q: Can I run this script multiple times?**  
A: Yes. It's safe to run multiple times. It will detect if space was already expanded and skip unnecessary operations.

**Q: Do I need to reboot after running this?**  
A: Usually not. Reboot is only recommended if partition table repairs were necessary (the script will tell you).

**Q: How long does the expansion take?**  
A: Typically 1-5 minutes depending on appliance size and system load.

**Q: Is the script reversible?**  
A: No. Once expanded, you cannot shrink the filesystem or LV. Plan accordingly.

## Support

If you encounter issues or have questions:

1. **Review the support log:** `/var/log/filewave-expand-disk-YYYYMMDD-HHMMSS.log`
2. **Run with `--verbose`** to see detailed output
3. **Contact FileWave Support** with: 
    - The support log attached
    - Description of the issue
    - Output from `df -h /`, `lvs`, `vgs`, `pvs`

# Upgrading to FileWave 13+ from older Versions on Systems where Port 443 is used

## Description

FileWave 13 introduced a Web Admin interface. By default this uses port 443. Attempts to install on systems that have another service using this port will prevent the installation of FileWave.

To resolve this, remove or adapt the contending process or FileWave to use a different port.

## Directions

Configuring FileWave to use a different port before the upgrade may be archived as follows:

#### Mac / Linux

Edit the /usr/local/filewave/apache/conf/httpd.conf file as follows :

```
# Putting the last character in brackets is a trick to prevent Apache from issuing a warning if the file does not exist.
IncludeOptional conf/httpd_webadmi[n].conf
```

Create the /usr/local/filewave/apache/conf/httpd\_webadmin.conf with the following content :

```
Define WEB_ADMIN_PORT 20440
```

Restart Apache Service

```
sudo fwcontrol apache restart
```

Then Upgrade as normal by running the FileWave Server Installer 13+

<details id="bkmrk-windows-%28legacy%29-win"><summary>Windows (Legacy)</summary>

#### Windows 

Edit the C:\\Program Files (x86)\\FileWave\\apache\\conf\\httpd.conf file as follows :

```
# Putting the last character in brackets is a trick to prevent Apache from issuing a warning if the file does not exist.
IncludeOptional "C:\Program Files (x86)\FileWave\apache\conf\httpd_webadmi[n].conf"
```

Create the C:\\Program Files (x86)\\FileWave\\apache\\conf\\httpd\_webadmin.conf with the following content :

```
Define WEB_ADMIN_PORT 20440
```

Restart Apache Service in a cmd or powershell window run as Administrator :

```
fwcontrol apache restart
```

Then Upgrade as normal by running the FileWave Server Installer 13+

</details>