Before starting the installation process, make sure your domain’s nameservers and DNS settings are correctly configured. Otherwise, you will not be able to access the website.

Learn how to configure your domain nameservers/DNS here.

Prerequisites

Before proceeding with the installation, ensure you have the following:

  • A server with Docker and Docker Compose installed.
  • A valid domain name with properly configured DNS settings.
  • Basic knowledge of Linux and command-line usage.
  • An active LeaderOS license.

Step 1: Download the LeaderOS Docker Files

Clone the LeaderOS Docker repository from GitHub:

git clone https://github.com/leaderos-net/docker.git leaderos-docker
cd leaderos-docker

About the LeaderOS Docker repository structure:

  • .env: The environment file for configuring the LeaderOS setup.
  • Caddyfile: Contains the reverse proxy configuration for Caddy.
  • nginx: Contains the Nginx configuration files.
  • leaderos: Contains the LeaderOS software files.
  • docker-compose.yml: The main Docker Compose file for setting up the LeaderOS environment.

Step 2: Download LeaderOS Software

  1. Log in to the LeaderOS website.
  2. Navigate to My Account > Licenses.
  3. Click the Download button to obtain the .zip file.

Step 3: Upload LeaderOS Software to Your Server

  1. Upload the downloaded .zip file to your server.
  2. Extract the contents into the /leaderos directory.
  3. Grant the necessary permissions to the leaderos directory:
    sudo chown -R www-data:www-data ENTER_YOUR_LEADEROS_DIRECTORY
    
    Example: chown -R www-data:www-data /home/myuser/leaderos-docker/leaderos

Step 4: Configure the .env File

Before building the Docker environment, configure the .env file according to your setup.

DOMAIN=yourdomain.com
SQL_USER=leaderos_user
SQL_PASSWORD=change_this_password
SQL_DATABASE=leaderos_database

Step 5: Build and Start Docker Containers

Run the following command to build and start the required containers:

docker compose --env-file .env up -d --build

This process will set up the LeaderOS environment using the configurations from the .env file.

Step 6: Visit Your Website and Complete the Setup

Once you have completed the above steps, visit your domain in a web browser to access the LeaderOS setup wizard. Follow the on-screen instructions to complete the installation.

Your database host should be set to mariadb in the Database Settings step, which is the name of the MySQL container in the Docker environment.

Troubleshooting

If you encounter issues during installation or operation, consider the following solutions:

Permission issues when using docker commands

If you receive a permission error when running docker commands, add your user to the Docker group:

sudo usermod -aG docker $USER
newgrp docker

This will allow you to run Docker commands without requiring sudo.

File permissions error on the setup wizard.

File Permissions: not_writeable:

If you encounter this error during the LeaderOS setup wizard, you need to adjust the permissions of the leaderos directory:

sudo chown -R www-data:www-data ENTER_YOUR_LEADEROS_DIRECTORY

Example: chown -R www-data:www-data /home/myuser/leaderos-docker/leaderos

Database connection issues

SQLSTATE[HY000] [2002] No such file or directory:

If LeaderOS fails to connect to the database, you need to set the database host to mariadb in the Database Settings step. Docker uses internal networking, so referring to the database service by its container name (mariadb) is required.

SSL certificate issues

With a correctly configured DNS configuration, the SSL certificate is auto-generated by the Caddy server. If the SSL certificate is not reflected on your website, you can try to restart the Caddy server:

docker restart caddy

phpMyAdmin access

If you need to access the database using phpMyAdmin, you need to configure the Caddyfile to enable access to the phpMyAdmin container. Add the following lines to the Caddyfile:

phpmyadmin.{$DOMAIN} {
    reverse_proxy phpmyadmin:80
}

Then, restart the Caddy server:

docker restart caddy

Conclusion

Your LeaderOS installation on Docker is now complete! Your server should be running with a secure, properly configured environment. If you encounter any issues, refer to the official LeaderOS Documentation or contact the LeaderOS support team for assistance.