Here are a few example configs for the Apache and Nginx web servers, these are just examples and are not recommended for all use cases

Nginx

Solder server block config

server {
    listen 80; #IPv4
    listen [::]:80; #IPv6

    # Host that will serve this project.
    server_name solder.technicpack.net;

    # Useful logs for debugging.
    access_log  /var/log/nginx/solder.technicpack.net_access.log;
    error_log   /var/log/nginx/solder.technicpack.net_error.log;
    rewrite_log on;

    # The location of Solder's public directory.
    root  /var/www/solder.technicpack.net/TechnicSolder/public;
    index index.php;

    location / {
        # URLs to attempt, including pretty ones
        try_files $uri $uri/ /index.php?$query_string;
    }

    # PHP FPM configuration.
    location ~* \.php$ {
        fastcgi_pass                  unix:/run/php/php8.3-fpm.sock;
        fastcgi_index                 index.php;
        fastcgi_split_path_info       ^(.+\.php)(.*)$;
        include                       fastcgi_params;
        fastcgi_param PATH_INFO       $fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        # If you're behind a load balancer that terminates TLS connections, then uncomment the next line:
        #fastcgi_param HTTPS on;
    }

    # We don't need .ht files with nginx.
    location ~ /\.ht {
        deny all;
    }

    # Hide dot files/folders
    location ~ .*/\. {
        return 403;
    }
    
    # Set header expirations on per-project basis
    location ~* \.(?:ico|css|js|jpe?g|JPG|png|svg|woff)$ {
        expires 365d;
    }
}

Repo server block config

server {
    listen 80; #IPv4
    listen [::]:80; #IPv6

    # Host that will serve this project.
    server_name repo.technicpack.net;

    # Useful logs for debug.
    access_log  /var/log/nginx/repo.technicpack.net_access.log;
    error_log   /var/log/nginx/repo.technicpack.net_error.log;
    rewrite_log on;

    # The location of repo directory.
    root  /var/www/repo.technicpack.net;
    index index.php index.html index.htm;

    location / {
        # URLs to attempt, including pretty ones.
        try_files $uri $uri/ =404;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
    }
    
    # We don't need .ht files with nginx.
    location ~ /\.ht {
        deny all;
    }

    # Hide dot files/folders
    location ~ .*/\. {
        return 403;
    }
}

Apache

Solder vhost config

<VirtualHost *:80>
    # Host that will serve this project.
    ServerName solder.technicpack.net
    ServerAdmin [email protected]
    
    # The location of public directory.
    DocumentRoot /var/www/html/TechnicSolder/public/

    # Important options for solder public directory.
    <Directory /var/www/html/TechnicSolder/public>
        Options FollowSymLinks
        AllowOverride All
        
        # requires mod_version
        <IfVersion >= 2.4>
            Require all granted
        </IfVersion>
        <IfVersion < 2.4>
            Order allow,deny
            Allow from all
        </IfVersion>
    </Directory>

    # Useful logs for debug.
    ErrorLog ${APACHE_LOG_DIR}/solder_error.log
    CustomLog ${APACHE_LOG_DIR}/solder_access.log combined
</VirtualHost>

🚧

If the site is inaccessible

Do not modify DocumentRoot to append /index.php but read "Rewrite Engine on Apache" section below.

Repo vhost config

<VirtualHost *:80>
    # Host that will serve this project.
    ServerName repo.technicpack.net
    ServerAdmin [email protected]
    
    # The location of repo directory.
    DocumentRoot /var/www/html/repo/

    # Important options for solder repo directory.
    <Directory /var/www/html/repo>
        Options +Indexes +FollowSymLinks
        AllowOverride All

        # requires mod_version
        <IfVersion >= 2.4>
            Require all granted
        </IfVersion>
        <IfVersion < 2.4>
            Order allow,deny
            Allow from all
        </IfVersion>
    </Directory>

    # Useful logs for debug.
    ErrorLog ${APACHE_LOG_DIR}/solderrepo_error.log
    CustomLog ${APACHE_LOG_DIR}/solderrepo_access.log combined
</VirtualHost>

Rewrite Engine on Apache

If you don't have Rewrite Engine on your Apache web server, you need to use a URL with index.php after the domain name.

If you want a clean URL, install Rewrite Engine on your Apache web server and use the configuration provided above so your server uses the .htaccess file correctly and enable Rewrite Engine for your Solder, so you can access to your solder without index.php.