Is there a way to host a minecraft server from my pc without having to open a port in my router settings?
Yes there are several ways you can host a Minecraft server from your pc without having to open a port in your router settings. 

Many people often turn to VPN services such as LogMeIn Hamachi to bypass the requirement of port forwarding and allow direct connection between clients.

A more modern solution I recommend is a lightweight program called ‘ngrock’ that opens your ports so connecting clients are not required to download and external programs to connect to you.
how to use ngrock to host my server?
To configure your server to use the ngrok URL as the hostname, you can follow these steps:

Download ngrok from the official website: https://ngrok.com/download

Extract the downloaded ngrok archive to a folder on your server.

Run ngrok with the following command: ./ngrok http <port> Note: Replace <port> with the port number that your server is listening on (e.g. 80 for HTTP or 443 for HTTPS).

Ngrok will generate a public URL that you can use to access your server from anywhere on the internet.

Update your server's configuration to use the ngrok URL as the hostname. This can be done by updating the server configuration file (e.g. Apache or Nginx) with the ngrok URL.

Restart your server to apply the changes.

Once the above steps have been completed, your server will be accessible using the ngrok URL as the hostname.