To a Subpath

This creates a subpath behind the domain of your server. For example (source)

  1. In /etc/apache2/conf-available create a fitting .conf-file for your service. Here e.g. for gitea
    <Location /gitea>
      ProxyPass http://localhost:3000 nocanon
      ProxyPassReverse http://localhost:3000
  2. Don't forget to activate the config with sudo a2enconf gitea resp. your conf-file.
  3. Of course you may have to sudo systemctl reload apache2 your server to have it work.

To a Subdomain

  1. In /etc/apache2/sites-available create a new file with <subdomain>.conf.
  2. It should look like that (here with a local server listening to port 3000)
    <IfModule mod_ssl.c>
     <VirtualHost *:443>
         ProxyPreserveHost On
         ProxyPass "/" "http://localhost:3000/"
         ProxyPassReverse "/" "http://localhost:3000/"
         TransferLog /var/log/apache2/access.log
         ErrorLog /var/log/apache2/error.log
         SSLCertificateFile /etc/letsencrypt/live/
         SSLCertificateKeyFile /etc/letsencrypt/live/
         Include /etc/letsencrypt/options-ssl-apache.conf
  3. Activate this config by sudo a2ensite subdomain and
  4. sudo systemctl reload apache2