FreeScout
Videos
Overview: FreeScout on Ubuntu 24.04 on Azure: overview (watch on YouTube)
Launch and log in: FreeScout on Ubuntu 24.04 on Azure: launch and log in (watch on YouTube)
Deep Dive: FreeScout on Ubuntu 24.04 on Azure: deep dive (watch on YouTube)
Overview
FreeScout is a free, open source, self-hosted help desk and shared mailbox. It is a lightweight alternative to Zendesk and Help Scout. It turns incoming email into a shared inbox of conversations that your team can assign, reply to and work on together with internal notes, saved replies and tags. You can extend it with modules.
The SecureAnyCloud image delivers FreeScout fully installed and configured on Ubuntu 24.04. It is a Laravel application on PHP 8.3 with OPcache, served by nginx over HTTPS with php-fpm and backed by MariaDB. The database schema is already migrated and the admin account already exists, so you land directly on the sign-in page with nothing to configure.
FreeScout is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). The complete, unmodified upstream source is shipped on the image under /var/www/freescout. SecureAnyCloud is not affiliated with, endorsed by, or sponsored by the FreeScout project, and "FreeScout" is a trademark of its respective owner. This image repackages the upstream open source release with SecureAnyCloud's provisioning and support.
What you get:
- FreeScout 1.8.230 (AGPL-3.0), served from
/var/www/freescout/public - nginx (TLS on :443, with :80 redirected to HTTPS and a plain
/healthzliveness endpoint), PHP 8.3 (php8.3-fpm with OPcache, including theimapextension for mailbox fetching) and MariaDB, all from Ubuntu 24.04 main/universe - A per-VM self-signed TLS certificate generated on first boot, so the interface loads in a secure context
- Per-VM administrator password, MariaDB password and Laravel
APP_KEY, all generated at first boot and written to a root-only file. No default or shared login ships in the image. - The Laravel scheduler, which runs every minute through a systemd timer and drives background jobs and email fetching
nginx.service,php8.3-fpm.serviceandmariadb.serviceas systemd units, enabled and active- 24/7 SecureAnyCloud support
Prerequisites
Before you deploy, make sure you have:
- An active Azure subscription
- An SSH key pair
- A VNet and subnet in the target region
- NSG inbound rules that allow
22/tcpfrom your management network, and443/tcp(HTTPS) plus80/tcp(which redirects to HTTPS) from your users
Standard_B2s (2 vCPU / 4 GiB RAM) is a good starting point. Scale up for larger teams or heavier mail volume.
Step 1 - Deploy from the Azure Marketplace
Sign in to the Azure Portal, choose Create a resource, search the Marketplace for FreeScout by SecureAnyCloud, and select Create.
On Basics, pick your subscription, resource group, region and size. Under Administrator account, choose SSH public key and paste your key. Under Inbound port rules, allow SSH (22) and HTTPS (443). Then select Review + create and Create.
Step 2 - Deploy from the Azure CLI
# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:freescout-ubuntu-24-04:default:latest
az vm create \
--resource-group <your-rg> \
--name freescout \
--image sac1647283583153:freescout-ubuntu-24-04:default:latest \
--size Standard_B2s \
--admin-username azureuser \
--generate-ssh-keys \
--public-ip-sku StandardOpen HTTPS, and HTTP (which redirects), to reach the web interface:
az vm open-port --resource-group <your-rg> --name freescout --port 443 --priority 900
az vm open-port --resource-group <your-rg> --name freescout --port 80 --priority 910Step 3 - Connect to your VM
ssh azureuser@<vm-public-ip>Step 4 - Confirm the services are running
Confirm that the three services behind FreeScout all report active. The plain HTTP port answers a lightweight /healthz liveness check and redirects everything else to HTTPS. The interface answers over TLS.
systemctl is-active nginx php8.3-fpm mariadb curl -s -o /dev/null -w 'healthz -> %{http_code}\n' http://127.0.0.1/healthz curl -s -o /dev/null -w 'http redirect -> %{http_code}\n' http://127.0.0.1/ curl -ks -o /dev/null -w 'https app -> %{http_code}\n' https://127.0.0.1/loginExpected: three lines of active, then healthz -> 200, http redirect -> 301 and https app -> 200 (the FreeScout sign-in page over TLS).
Step 5 - Retrieve your administrator password
On the first boot of every VM, a one-shot service (freescout-firstboot.service) generates credentials that are unique to that VM. These are a fresh Laravel application key, a fresh MariaDB password and a fresh administrator password. The service also generates a per-VM self-signed TLS certificate and sets the VM's own address as the application URL. No shared or default credentials ship in the image.
sudo cat /root/freescout-credentials.txtThe file (mode 0600, root only) contains the administrator email (freescout.admin.user, which is admin@sac.local), the administrator password (freescout.admin.pass), the sign-in URL and the database credentials. FreeScout signs in by email address. After you sign in, change the admin email to your own from Manage -> Users.
You can prove the login round trip from the VM's own shell. The commands read the per-VM credentials, fetch a CSRF token and post a real sign-in. A successful FreeScout login answers HTTP 302 away from the login page. The commands also confirm that a wrong password is rejected back to the login page:
USER=$(sudo grep '^freescout.admin.user=' /root/freescout-credentials.txt | cut -d= -f2-)
PASS=$(sudo grep '^freescout.admin.pass=' /root/freescout-credentials.txt | cut -d= -f2-)
CJ=$(mktemp)
TOK=$(curl -ks -c "$CJ" https://127.0.0.1/login | grep -oE 'name="_token" value="[^"]+"' | head -1 | sed 's/.*value="//;s/"//')
curl -ks -o /dev/null -w 'good login -> %{redirect_url}\n' -b "$CJ" -c "$CJ" \
-d "_token=$TOK" --data-urlencode "email=$USER" --data-urlencode "password=$PASS" https://127.0.0.1/login
BAD=$(mktemp)
BTOK=$(curl -ks -c "$BAD" https://127.0.0.1/login | grep -oE 'name="_token" value="[^"]+"' | head -1 | sed 's/.*value="//;s/"//')
curl -ks -o /dev/null -w 'wrong pass -> %{redirect_url}\n' -b "$BAD" -c "$BAD" \
-d "_token=$BTOK" --data-urlencode "email=$USER" --data-urlencode "password=wrong-99" https://127.0.0.1/login rm -f "$CJ" "$BAD"Expected: good login -> https://127.0.0.1/home (signed in) and wrong pass -> https://127.0.0.1/login (bounced back and rejected).
Step 6 - Sign in
Browse to https://<vm-public-ip>/ and sign in with the email admin@sac.local and the password from the credentials file.
Because the image ships a per-VM self-signed certificate, your browser shows a one-time certificate warning on the first visit. Click through it, or install your own domain certificate into /etc/nginx/ssl/freescout.crt and /etc/nginx/ssl/freescout.key.
After you sign in, you land on the FreeScout dashboard. It lists your mailboxes and the conversations waiting in them.
Step 7 - Create a mailbox and work conversations
A mailbox is a shared inbox that your whole team works from. Choose Manage -> Mailboxes -> Create Mailbox, or open the pre-created Support mailbox that ships with the image. Give the mailbox a name and the email address that will receive customer mail. Then add the Connection Settings for your mail provider: IMAP to fetch incoming mail and SMTP to send replies.
Inside a mailbox, every email becomes a conversation. You can assign it to an agent, reply to it, tag it, add private internal notes to it, or resolve it. To start a conversation yourself, select New Conversation, pick the customer, add a subject and body, and send. This is the core FreeScout workflow: a shared, collaborative inbox where nothing falls through the cracks.
Step 8 - Confirm the version and the stack
grep "'version'" /var/www/freescout/config/app.php | head -1 php -v | head -1 df -h /Expected: 'version' => '1.8.230', PHP 8.3, and the OS disk that holds the application tree (/var/www/freescout) and the MariaDB datadir (/var/lib/mysql). If you need more room for attachments or the database, resize the OS disk from the Azure portal.
First-boot service and security model
A one-shot freescout-firstboot.service runs After=mariadb.service and Before=nginx.service, so the per-VM credentials and TLS certificate are in place before the first page is served. The service rotates the MariaDB password and edits .env in lock-step, so the application never loses its database connection. It regenerates the Laravel APP_KEY, sets a per-VM administrator password and writes the credentials file at mode 0600 (root only). It then drops a sentinel so that it runs exactly once.
systemctl status freescout-firstboot.service --no-pager | head -6 sudo stat -c '%a %U:%G %n' /root/freescout-credentials.txtAdministration from the CLI
Run admin tasks with Laravel's artisan as the www-data user. For example, list the available commands or clear the cache:
sudo -u www-data php /var/www/freescout/artisan list | grep freescout
sudo -u www-data php /var/www/freescout/artisan freescout:clear-cacheThe Laravel scheduler runs background jobs such as fetching new email and sending notifications. It runs every minute through the freescout-scheduler.timer systemd timer, so there is no crontab entry to add.
Serving FreeScout on your own domain
FreeScout protects against host-header attacks. It only answers requests whose host matches APP_URL or is listed in APP_TRUSTED_HOSTS. The image pre-trusts the loopback address and the VM's own IP addresses.
To serve FreeScout on your own domain, point a DNS record at the VM. Then set both values in /var/www/freescout/.env and clear the cache:
APP_URL=https://help.example.com APP_TRUSTED_HOSTS=127.0.0.1,localhost,help.example.comsudo -u www-data php /var/www/freescout/artisan freescout:clear-cacheFor a browser-trusted certificate, install one from your CA (for example Let's Encrypt) in place of the shipped self-signed pair:
sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d help.example.comBackup and maintenance
FreeScout's data lives in the MariaDB database and in the uploaded files under /var/www/freescout/storage. Back up the database with mariadb-dump, and snapshot the OS disk from the Azure portal for a full point-in-time copy:
sudo mariadb-dump --single-transaction freescout | gzip > /var/backups/freescout-$(date +%F).sql.gzKeep the OS current with sudo apt-get update && sudo apt-get upgrade. The image ships with unattended security updates enabled. Review FreeScout's own update notes before you move between versions.
Support
This image is backed by 24/7 SecureAnyCloud support for deployment, upgrades, mailbox and IMAP/SMTP configuration, module installation, LDAP and SAML single sign-on, performance tuning and database administration. Email sales@secureanycloud.com or use the live chat in the support portal. Critical issues receive a one-hour average response.
Deploy on Azure
Launch FreeScout on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.
View this image
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com
Overview
This image runs FreeScout 1.8.231, a free, open source, self-hosted help desk and shared inbox, installed from the project's official release tag. FreeScout turns inbound email into a shared mailbox of conversations that your team assigns, tags, replies to and closes. Internal notes stay hidden from customers, and every contact has a full history.
FreeScout is a Laravel PHP application. This image serves it behind nginx with php-fpm 8.3 and OPcache, backed by MariaDB on the same instance and bound to the loopback interface only. The imap, mysql, mbstring, gd, intl, bcmath and zip PHP extensions that FreeScout needs are installed, all from the operating system archive with no third-party package repository added.
The FreeScout web install wizard was completed at build time. The schema is migrated and an administrator account exists, so the first request lands directly on the sign-in page. FreeScout skips the wizard whenever the application's .env file is present, which it is in this image.
No credential is baked into the image. On the first boot of every deployed instance, a one-shot service mints the following secrets uniquely for that instance:
- The administrator password
- The MariaDB application password
- The MariaDB maintenance credential in
/etc/mysql/debian.cnf - The Laravel
APP_KEYthat signs sessions and encrypts stored data - The TLS certificate
Two instances launched from the same Amazon Machine Image never share any secret. The administrator sign-in details are written to /root/freescout-credentials.txt with mode 0600, readable only by root.
The instance serves FreeScout over HTTPS on port 443 with that per-instance self-signed certificate, so the application runs in a secure browser context from the first request. Port 80 answers a plain HTTP liveness check at /healthz and 301-redirects everything else to port 443. Your browser warns you about the self-signed certificate on the first visit, until you replace it with a certificate for your own domain (see the Let's Encrypt step below).
No mail transfer agent is installed. FreeScout receives mail by fetching from an IMAP mailbox that you connect. It sends mail through an outbound SMTP server that you nominate. This image is not a mail server and cannot act as one. See the two mail steps below for what that means in practice on EC2.
The FreeScout code tree and Laravel storage (conversation attachments, uploads, sessions and logs) live under /var/www on a dedicated EBS volume. The MariaDB data directory sits on its own EBS volume at /var/lib/mysql. Both volumes are separate from the operating system disk, and you can resize each one independently.
Prerequisites
Before you deploy this image you need:
- An Amazon Web Services account where you can launch EC2 instances
- IAM permissions to launch instances, create security groups, and subscribe to AWS Marketplace products
- An EC2 key pair in the target Region for SSH access to the instance
- A VPC and subnet in the target Region, with a security group that allows inbound port 22 from your management network and inbound port 443 from the networks your agents will reach FreeScout on
- The AWS CLI (version 2) installed locally if you plan to deploy from the command line
- An IMAP mailbox for the support address you want to receive on, and an authenticated SMTP relay (for example Amazon SES) to send from
Launch the Instance from the AWS Marketplace
Sign in to the AWS Management Console, open the EC2 service, and select Launch instance. Under Application and OS Images, choose AWS Marketplace AMIs and search for FreeScout. Select the SecureAnyCloud listing and choose Select, then Continue on the subscription summary.
Pick an instance type of m5.large or larger. The workload is PHP and MariaDB, and search and attachment handling benefit from memory. Choose your EC2 key pair under Key pair (login). Under Network settings, select your VPC and subnet, and either create or select a security group. The group must allow inbound port 22 from your management network and inbound port 443 from the networks your agents use. Leave the root volume at the default size or larger.
Select Launch instance. First-boot initialization takes a few seconds after the instance state becomes Running and the status checks pass.
Launch the Instance from the AWS CLI
The following command launches an instance from the SecureAnyCloud FreeScout Marketplace AMI into an existing subnet and security group. Replace <ami-id> with the AMI ID shown on the Marketplace listing and <key-name> with your EC2 key pair name. Replace <subnet-id> with your subnet ID and <security-group-id> with a security group that opens ports 22 and 443 as described above.
aws ec2 run-instances \
--image-id <ami-id> \
--instance-type m5.large \
--key-name <key-name> \
--subnet-id <subnet-id> \
--security-group-ids <security-group-id> \
--block-device-mappings '[{"DeviceName":"/dev/sda1","Ebs":{"VolumeSize":30,"VolumeType":"gp3"}}]' \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=freescout-01}]'On success, the command prints a JSON document. Note the instance ID. Once the instance is running, retrieve its public address with aws ec2 describe-instances --instance-ids <instance-id> --query "Reservations[].Instances[].PublicIpAddress" --output text.
Connecting to your instance
Connect over SSH with the key pair you selected and the public IP address from step 2. The SSH login user depends on the operating system of the AMI variant you launched:
- AMI variant: FreeScout on Ubuntu 24.04
- SSH login user: ubuntu
- Connect with: ssh -i <path-to-key.pem> ubuntu@<public-ip>
Substitute your own key path and the instance's public IP address.
Retrieve the Per Instance Administrator Credentials
On first boot, the administrator sign-in details, the database credentials and the instance URL are written to a root-only file. List the entries it holds:
sudo grep -oE '^[a-z.]+=' /root/freescout-credentials.txtRead the values with sudo cat /root/freescout-credentials.txt. The file contains live secrets, so treat it as sensitive. Copy the administrator email and password into your password manager, and do not paste the contents anywhere shared. Confirm that only root can read the file:
sudo stat -c '%n mode %a owner %U' /root/freescout-credentials.txtVerify the Stack is Running
Three systemd units serve FreeScout. Confirm that they are active:
systemctl is-active nginx php8.3-fpm mariadbEach line returns active. Port 80 answers a plain HTTP liveness check that touches neither the application nor the database. This makes it a good target for a load balancer health check:
curl -s -m 15 -o /dev/null -w 'healthz HTTP %{http_code}\n' http://127.0.0.1/healthzConfirm FreeScout itself answers on HTTPS (the -k flag accepts the per-instance self-signed certificate):
curl -sk -m 15 -o /dev/null -w 'sign-in page HTTP %{http_code}\n' https://127.0.0.1/loginConfirm the shipped FreeScout release:
sed -n "s/.*'version'[[:space:]]*=>[[:space:]]*'\([0-9][^']*\)'.*/FreeScout \1/p" /var/www/freescout/config/app.php | sed -n '1p'The Laravel scheduler runs FreeScout's background jobs and polls your mailboxes for new mail. It runs every minute through a systemd timer:
systemctl is-active freescout-scheduler.timerConfirm the Network Surface
Only ports 22, 80 and 443 are reachable from outside. MariaDB is bound to the loopback interface, and no mail service listens:
ss -tlnH | awk '{print $4}' | sort -uThe database appears as 127.0.0.1:3306 and never on a routable address. No mail transfer agent is installed on this image, so nothing listens on ports 25, 465, 587, 143 or 993:
for p in postfix exim4 sendmail dovecot-core opensmtpd; do dpkg-query -W -f='${Package} ${Status}\n' "$p" 2>/dev/null || echo "$p: not installed" doneFirst Sign In
Browse to https://<public-ip>/. Because the image ships a self-signed certificate, your browser warns you on the first visit. Accept the warning to proceed (you replace the certificate in step 13). You land on the FreeScout sign-in page.
Sign in with the administrator email address and password from /root/freescout-credentials.txt. FreeScout signs in by email address, not by username. After you sign in, you land on the FreeScout dashboard, which prompts you to create your first mailbox.
Change the Administrator Email and Password
The first-boot password is unique to your instance, but you should still set your own. Open the user menu at the top right and choose Your Profile. Set your real name and change the email address to your own. That address becomes your sign-in identity and receives your notifications.
Then use Password in the same area to set a password that you control. FreeScout stores agent passwords as bcrypt hashes.
Create Your First Mailbox
A mailbox in FreeScout is a support address plus the conversations that arrive at it. Open Manage -> Mailboxes -> New Mailbox. Enter the support address customers will email (for example support@example.com) and a display name, choose which agents may use it, and save. FreeScout creates the Unassigned, Mine, Starred, Assigned, Closed and Spam folders for it.
The mailbox settings page controls the reply behavior for that address. You can set the outbound display name, the status a conversation moves to after you reply, the default assignee, and the email signature appended to replies:
Receiving Mail - Connect an IMAP Mailbox
FreeScout does not run a mail server. It fetches mail from a mailbox you already have, which is what turns inbound email into conversations. Open Manage -> Mailboxes -> your mailbox -> Connection Settings -> Fetching Emails (the page shown above), then:
- Set Protocol to
IMAPand enter the Server, Port and Encryption your provider documents (commonly993with SSL, or143with StartTLS). - Enter the mailbox Username and Password. For Google Workspace or Microsoft 365, use an app password or OAuth as your provider requires. Both are linked from that page.
- Leave IMAP Folders as
INBOXunless you sort inbound mail into another folder. - Save the settings, then use Check Connection to confirm FreeScout can log in.
The php8.3-imap extension that ships with this image makes fetching work. The scheduler timer already running on the instance polls the mailbox every minute, and new mail appears in the mailbox's Unassigned folder.
Sending Mail - Use Amazon SES or Another Authenticated Relay
Read this before you rely on outbound replies. A new EC2 instance cannot send email directly. AWS throttles outbound port 25 on new accounts and instances by default. A fresh instance also has no reverse DNS record and no sending reputation, so mail it sends directly is very likely to be rejected or filed as spam. This image therefore ships no mail transfer agent and makes no attempt to deliver mail itself.
Configure an authenticated relay instead. Open Manage -> Mailboxes -> your mailbox -> Connection Settings -> Sending Emails.
Choose SMTP as the method, then enter the host, port (587 with StartTLS, or 465 with SSL), username and password of your relay. Amazon SES is the natural choice on AWS. Verify your sending domain in SES, create SMTP credentials, and enter the regional SES SMTP endpoint here. Any authenticated provider works equally well.
The PHP mail() and Sendmail methods offered on that page require a local mail transfer agent, which this image deliberately does not install. Leave them unselected. Save the settings and use Send Test to confirm delivery before you go live.
Work a Conversation
The mailbox view is the shared inbox. Each row is a conversation that shows the customer, the subject and preview, the conversation number and how long it has been waiting. The folder list on the left separates what nobody has picked up (Unassigned) from what is yours (Mine), starred, assigned, closed and spam.
Open a conversation to work it. You get the customer's message thread, the assignee and status controls at the top, and the customer's profile on the right:
Use Reply to answer the customer and Note for a comment that only your team sees. Use the person control to assign the conversation to an agent, and the status control to move it between Active, Pending and Closed. Saved replies, tags and custom folders are available from the same view once you configure them.
Add Agents
Add the rest of your team under Manage -> Users -> New User. Give each person their own account with the User role for agents or the Admin role for administrators. Then grant them access to the mailboxes they should see from the mailbox's Permissions page. Each agent signs in with their own email address and password.
The Manage -> Settings area sets the instance-wide behavior. It covers the company name, conversation numbering, which actions non-admin users may perform, the default language, the timezone, and what customers see in outbound email.
Point FreeScout at Your Own Domain
FreeScout builds links and assets from APP_URL, and its trusted-hosts protection rejects any request whose Host header it does not recognize. On first boot, both are set to the instance's own address, so browsing by IP works out of the box.
To serve FreeScout on your own name instead, point a DNS record at the instance, then edit /var/www/freescout/.env as root. Set APP_URL to https://support.your-domain.com and add that hostname to the comma-separated APP_TRUSTED_HOSTS list. Apply the change with sudo -u www-data php /var/www/freescout/artisan freescout:clear-cache.
A missing trusted-hosts entry is the usual cause of a 403 Untrusted Host response after a domain change.
Replace the Self Signed Certificate with Let's Encrypt
The image serves HTTPS with a per-instance self-signed certificate, so traffic is encrypted out of the box. For production, replace it with a trusted certificate for your own domain. Complete step 14 first so that DNS resolves to the instance.
The commands below are illustrative. They involve a domain you own and interactive prompts, so run them yourself and substitute your own hostname.
Install Certbot and the nginx plugin, then request a certificate. Certbot edits the nginx site in place and reloads nginx:
sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d support.your-domain.com
Certbot installs a renewal timer, so the certificate renews automatically. To keep the shipped nginx site as it is, place your own certificate and key at /etc/nginx/ssl/freescout.crt and /etc/nginx/ssl/freescout.key (key mode 0600) and reload nginx.
Storage Layout
The application and database tiers are on dedicated EBS volumes, and you can resize each one independently:
df -h /var/lib/mysql /var/www/var/lib/mysql holds the MariaDB data directory and /var/www holds the FreeScout code tree, Laravel storage and conversation attachments. Both are recorded in /etc/fstab by filesystem UUID, so the layout reproduces on every instance launched from this image:
grep -E ' /var/(www|lib/mysql) ' /etc/fstabTo grow a tier, modify the EBS volume in the EC2 console and then extend the filesystem with sudo resize2fs <device>.
Backups and Maintenance
Back up both tiers: the FreeScout database in MariaDB and the application storage tree that holds conversation attachments. Take a consistent database dump as root over the local socket:
sudo mysqldump --single-transaction --quick freescout | gzip > /tmp/freescout-db-$(date +%F).sql.gz && ls -la /tmp/freescout-db-*.sql.gzTake EBS snapshots of both data volumes for point-in-time recovery, and snapshot before any FreeScout version upgrade. Keep the operating system patched with sudo apt-get update && sudo apt-get -y upgrade.
FreeScout writes its application log inside the storage tree. Look there first if a background job or a mailbox fetch misbehaves:
sudo ls -1 /var/www/freescout/storage/logs/ 2>/dev/null; echo '(FreeScout log directory listed)'Licensing
FreeScout core is licensed under the GNU Affero General Public License v3.0, and the complete corresponding source is shipped unmodified on the instance under /var/www/freescout with the license text at /var/www/freescout/LICENSE:
sed -n '1,3p' /var/www/freescout/LICENSEOnly FreeScout core is installed. The project's paid modules are separate commercial products. They are not bundled with this image and are not covered by the SecureAnyCloud support subscription. To use them, buy and install them from the FreeScout project directly.
SecureAnyCloud is not affiliated with, endorsed by, or sponsored by the FreeScout project. All product and company names are trademarks or registered trademarks of their respective holders.
Support
This image is backed by 24/7 technical support from SecureAnyCloud, covering deployment, upgrades, TLS certificates, mailbox and SMTP configuration, workflows and saved replies, modules, and database administration. Contact support through the channel listed on the AWS Marketplace listing.
Deploy on AWS
Launch FreeScout on AWS with 24/7 support from SecureAnyCloud.
View on Marketplace
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com