Skip to main content

Pre-Installation Checklist

This page provides a checklist to be followed before installing the self-hosted Appcircle.

Please ensure all the checks are completed for a smooth installation process.

Server Checklist

Check the Operating System

  • If you are using RHEL, it should be RHEL 8 or later.
cat /etc/redhat-release
  • If you are using Ubuntu, it should be Ubuntu 20.04 or later.
cat /etc/os-release
  • If you are using Debian, it should be Debian 11 or later.
cat /etc/os-release
  • If you are using CentOS, it should be CentOS 8 or later.
cat /etc/centos-release

Check the CPU Cores

  • Minimum CPU core count should be 8 cores.
    • For enterprise installations and production environments, 16 or 32 CPU cores are recommended.
nproc --all

Check the CPU Architecture

  • The CPU architecture must be x86_64.
uname -i

If the command above doesn't work, you can try the command below.

arch

Check the RAM Size

  • Minimum RAM size should be 16 GB.
    • For enterprise installations and production environments, 32 GB or 64 GB of RAM is recommended.
free -h

Check the Disk Size

  • Minimum disk size should be 500 GB.
    • For enterprise installations and production environments, 1 TB of disk space is recommended.
df -h
info

Keep in mind that SSDs are a better and recommended choice for faster disk operations.

Check the Swap Size

  • The swap size should be minimum half of the RAM size.
free -h

If you don't have any swap space or it's insufficient, you can find the configuration details here.

Check the Swappiness

  • The swappiness configuration should be 10.
sudo cat /proc/sys/vm/swappiness

If the output is not 10, you can find the configuration details here.

Configure the DNS Settings

  • Create a subdomain under your company's primary domain name.

For example, if your company is "Spacetech" with the domain spacetech.com, you can create a subdomain like appcircle.spacetech.com or appcircle-test.spacetech.com to assign to the Appcircle server.

It will be the main domain for the self-hosted Appcircle server.

The main domain (appcircle.spacetech.com, for instance.) should have seven subdomains which should resolve to the IP address of the Appcircle server.

These subdomains are api, auth, dist, hook, my, resource and store.

  • Create these seven domain name entries on your DNS.

    • api.appcircle.spacetech.com
    • auth.appcircle.spacetech.com
    • dist.appcircle.spacetech.com
    • hook.appcircle.spacetech.com
    • my.appcircle.spacetech.com
    • resource.appcircle.spacetech.com
    • store.appcircle.spacetech.com
    • monitor.appcircle.spacetech.com
  • All of these domain names should resolve to the same server IP address, which is the Appcircle server.

You can see details in the DNS Settings section.

Obtain an SSL Certificate

  • You should create only one SSL certificate that covers all seven domain names which you have seen in the Configure DNS section above.
  • The SSL certificate should be in PEM format.
  • The SSL certificate private key must not have a passphrase.
  • Obtain the root CA certificate of your company.
  • Obtain the intermediate CA certificate of your company if it exists.

Obtain the SMTP Settings

  • Obtain the IP address or host name of the SMTP server.
  • Obtain the port number of the SMTP server.
  • Determine if the SMTP server is using SSL.
  • Determine if the SMTP server is using STARTTLS.
    • ⚠️ SSL and STARTTLS are not the same thing.
  • If the SMTP server requires authentication:
    • Create a user for Appcircle on the SMTP server.
    • Obtain the password of the Appcircle user on the SMTP server.
  • Contact the system admin to get required permissions to send email with the Appcircle user via the SMTP server.
  • Create a firewall rule (or permission) from the Appcircle server to the SMTP server.

Configure the Git Server

  • Import Appcircle Android and/or iOS sample repositories on your local git server.
  • Create an Appcircle user on the git server (GitLab, Azure DevOps, Bitbucket).
  • Give the required permissions to the Appcircle user to clone and edit the repositories.
  • If you are using GitLab, Azure DevOps, Bitbucket:
    • Create an Appcircle user. Give it permissions for the repositories.
    • Create a personal access token that has sufficient permissions.
  • If you are using any other git server:
    • Create a public-private SSH key pair.
    • Configure your Appcircle git user's public SSH keys and upload the public SSH key you created.
  • Create a firewall rule (or permission) between the Appcircle server and the git server in both directions.

Network Access for Installation

According to the selected Linux distribution and installation method, you need to configure firewall rules (or permissions) for the Appcircle server. All required domains that are used for installation are detailed in the network access section.

  • Review the network access section and be sure that the listed domains are reachable from the Appcircle server.

Runner Checklist

Network Access for Installation

The Appcircle runner should be able to access the Appcircle server.

  • Create a firewall rule (or permission) from the Appcircle runner to the Appcircle server.
info

Port depends on the configured external.scheme ("http" or "https") in the global.yaml.

It's 443 by default.

The Appcircle runner should be able to access to the git provider

  • Create a firewall rule (or permission) from the Appcircle runner to the git server.
info

Port depends on the selected connection method. Default values can be:

  • HTTP(s): 80 or 443
  • SSH: 22

If your git server has a custom port for git servcies, then you should use that port.

  • Review the network access section and be sure that the listed domains are reachable from the Appcircle runner.