Как создать публичный web сервер на своем linux пк?
Если говорить "верхнеуровнево", то:
1. Зарегистрировать доменное имя и настроить A-записи. Либо поднять и настроить DNS-сервер. Либо добавить в файл /etc/hosts друга запись о своём сайте.
2. Добиться "статичного" IP-адреса и обеспечить доступность своего IP-адреса с компьютера друга.
3. Поднять какой-нибудь веб-сервер (apache, nginx) на своём компьютере и настроить его.
4. Разместить в корневой папке веб-сервера свой сайт.

А теперь задавайте конкретные вопросы по указанным пунктам.
Вот туториал: https://www.google.com/amp/www.linuxandubuntu.com/...

Там в 2 части.