Scoold Q&A Knowledge Base on AWS User Guide
Overview
This image runs Scoold, the open source, self-hosted Stack Overflow style question-and-answer knowledge base for teams and communities: questions, answers, comments, tags, reputation and badges, spaces, and SAML/OAuth/LDAP single sign-on.
Scoold is a Spring Boot Java application that is powered by the Para backend. On this image Para runs fully embedded - an H2 database for persistence, a Lucene index for search, and an in-JVM cache - so there is no external database to run. Scoold listens on 127.0.0.1:8000, Para on 127.0.0.1:8080, and both are reached through nginx on port 80 (and 443 once you add TLS). The Para backend and its datastore are never exposed to the network.
Three secrets unique to each deployed instance are generated on first boot: the Para backend root secret, Scoold's own signing secret, and a per-instance administrator password. A dedicated administrator account is provisioned and its login written to /root/scoold-credentials.txt with mode 0600. No shared or default credentials ship in the image, and anonymous visitors cannot self-promote to administrator.

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 allowing inbound port 22 from your management network and inbound ports 80 and 443 from the networks your users reach the site from
- The AWS CLI (version 2) installed locally if you plan to deploy from the command line
Step 1: 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 Scoold. Select the cloudimg listing and choose Select, then Continue on the subscription summary.
Pick an instance type of m5.large or larger - Scoold and Para each run their own JVM, so provide adequate 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 that allows inbound port 22 from your management network and inbound ports 80 and 443 from the networks your users use. The image ships with a dedicated data volume for the Para datastore in addition to the operating-system volume; leave both at their default sizes or larger.
Select Launch instance. First boot initialisation - generating the per-instance secrets, starting Para and Scoold, and provisioning the administrator - takes a couple of minutes after the instance state becomes Running and the status checks pass.
Step 2: Launch the Instance from the AWS CLI
The following block launches an instance from the cloudimg Scoold Marketplace AMI into an existing subnet and security group. Replace <ami-id> with the AMI ID shown on the Marketplace listing, <key-name> with your EC2 key pair name, <subnet-id> with your subnet ID, and <security-group-id> with a security group that opens ports 22, 80, 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=scoold-01}]'
The command prints a JSON document on success. Note the instance ID, then retrieve its public address once it is running with aws ec2 describe-instances --instance-ids <instance-id> --query "Reservations[].Instances[].PublicIpAddress" --output text.
Step 3: Connect and Retrieve the Administrator Login
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 | SSH login user |
|---|---|
| Scoold on Ubuntu 24.04 | ubuntu |
The first boot service writes the credentials file before it finishes, so once the instance has settled the login is in place.
ssh <login-user>@<public-ip>
sudo cat /root/scoold-credentials.txt
You will see a plain text file containing the Scoold URL, the administrator email (admin@scoold.local) and the per-instance password. From the same SSH session you can confirm the deployment is healthy. The nginx health endpoint is open and returns ok:
curl -fsS http://127.0.0.1/healthz
You can also confirm the three services are running and that the Scoold homepage is being served:
systemctl is-active para.service scoold.service nginx.service
curl -s -o /dev/null -w 'scoold homepage: %{http_code}\n' http://127.0.0.1/
Step 4: First Sign-In
Browse to http://<public-ip>/ and choose Sign in. Select the email-and-password option and enter the administrator email and password from the credentials file. Because this account's email is in Scoold's administrators list, it is promoted to administrator automatically on sign-in - you will see the Administration and Settings links in your avatar menu.
The homepage shows the questions feed. On a freshly launched instance it is empty; as your team posts questions they appear here, sortable by newest, votes, activity, answered and unanswered.
Step 5: Ask and Answer Questions
Select Ask Question from the top navigation. Give the question a clear title, write the body in the Markdown editor (with a formatting toolbar, code blocks and image support), add a few tags, and choose Go to publish.

Open any question to read it and its answers. Team members vote questions and answers up or down, leave comments, and the question author accepts the answer that solved their problem. Reputation and badges accrue as people contribute, which is what turns the archive into a ranked, searchable knowledge base.

Step 6: Administration and Single Sign-On
Open the Administration area from your avatar menu. From here you manage spaces (separate areas for teams or topics), webhooks, backups, themes, API keys, and the site configuration.

Scoold supports SAML, OAuth/OpenID Connect and LDAP single sign-on so your team can sign in with your corporate identity provider instead of email and password. Configure your provider in the Administration area, or set the corresponding keys directly in /opt/scoold/application.conf on the instance (edit it with your preferred editor) and restart Scoold with sudo systemctl restart scoold.service to apply the change.
When you put the site behind your own domain, set scoold.host_url to the public URL (see Step 8) so that page links and the SSO callback address match.
Step 7: The Para Datastore and Data Volume
All persistent data - questions, answers, users, tags and the search index - is stored by Para under /opt/para, which this image mounts on a dedicated EBS volume separate from the operating-system disk. That keeps your knowledge base data independently resizable and snapshottable.
df -h /opt/para
To grow the storage, expand the underlying EBS volume in the AWS console (or with aws ec2 modify-volume), then grow the filesystem on the instance. The data survives a stop and start because the volume is mounted by filesystem UUID in /etc/fstab.
Step 8: Configure HTTPS with Your Own Domain
Point a DNS record for your domain at the instance's public address, then obtain a certificate and set Scoold's host URL. The image serves Scoold through nginx, so certbot's nginx plugin can install and renew the certificate automatically:
sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d scoold.your-domain.example \
--non-interactive --agree-tos -m you@your-domain.example \
--redirect
Then set the public URL so links and single sign-on callbacks are correct, and restart Scoold:
sudo sed -i 's#^scoold.host_url.*#scoold.host_url = "https://scoold.your-domain.example"#' /opt/scoold/application.conf
sudo systemctl restart scoold.service
Step 9: Backup and Maintenance
Because all state lives under /opt/para on its own volume, the simplest durable backup is an Amazon EBS snapshot of that volume, scheduled with Amazon Data Lifecycle Manager. You can also take a file-level backup while the services are stopped briefly:
sudo systemctl stop scoold.service para.service
sudo tar -czf <backup-dir>/scoold-para-$(date +%F).tgz -C /opt para
sudo systemctl start para.service scoold.service
Apply operating-system security updates with sudo apt-get update && sudo apt-get upgrade. The Scoold and Para JARs live in /opt/scoold and /opt/para; to upgrade to a newer release, replace the JAR and restart the service.
Support
This AMI includes 24/7 technical support from cloudimg. Our engineers can help with deployment, single sign-on (SAML, OAuth, LDAP) configuration, TLS and custom-domain setup, Para datastore backup and restore, version upgrades, and performance tuning.
- Email: support@cloudimg.co.uk
- Live chat: available 24/7
For refund or billing enquiries, contact support@cloudimg.co.uk with your AWS account ID and instance details.
Scoold and Para are trademarks of Erudika. All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.