It is public as soon as it becomes accessible from a public address. All you need is to forward a port from your gateway to your local machine.
You need to find out your external IP address. It could be static in which case, it will not change which makes things easier or it could be dynamic. In any case you have to configure your gateway to accept an incoming connection and forward it to an internal IP address and port. The most common is to forward port 80 which is the default for HTTP to port 80 on your webserver.
External visitors only need to access: http://x.x.x.x/
to reach your website, where x.x.x.x
is your external IP address. You can even forward a different port as some internet providers block certain ports. Visitors will then have to access the site by using http://x.x.x.x:port/
where port
is the one you forwarded.
Be sure that your local computer does not have a firewall rule to block port 80 though! The gateway can forward a port but your local computer must accept the connection.