# App for self-hosting www

**URL:** <https://community.umbrel.com/t/app-for-self-hosting-www/16810>\
**Category:** General Discussion\
**Created:** [May 2, 2024, 11:41am UTC](https://community.umbrel.com/t/app-for-self-hosting-www/16810 "2024-05-02T11:41:00Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![yvanoski](https://avatars.discourse-cdn.com/v4/letter/y/73ab20/32.png) [@yvanoski](https://community.umbrel.com/u/yvanoski)\
**Post date:** [May 2, 2024, 11:41am UTC](https://community.umbrel.com/t/app-for-self-hosting-www/16810/1 "2024-05-02T11:41:00Z")

</div>

Hi all!

Is there an app within Umbrel that would allow me to self-host website/webapps?

Thanks.

---

<div class="post-metadata">

**Author:** ![smolgrrr](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.umbrel.com/smolgrrr/32/2825_2.png) [@smolgrrr](https://community.umbrel.com/u/smolgrrr)\
**Post date:** [May 2, 2024, 11:55am UTC](https://community.umbrel.com/t/app-for-self-hosting-www/16810/2 "2024-05-02T11:55:19Z")

</div>

For the moment, using [Portainer](https://apps.umbrel.com/app/portainer) and [Cloudflare](https://apps.umbrel.com/app/cloudflared) tunnels is the best bet, but you will need to be familiar with running docker containers.

---

<div class="post-metadata">

**Author:** ![cabeoc](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.umbrel.com/cabeoc/32/3047_2.png) [@cabeoc](https://community.umbrel.com/u/cabeoc)\
**Post date:** [June 25, 2024, 3:27am UTC](https://community.umbrel.com/t/app-for-self-hosting-www/16810/3 "2024-06-25T03:27:27Z")

</div>

Any good documentation for doing this for Umbrel, to become familiar with it?  
Many online tutorials and documentation don’t take Umbrel’s unique non-standard setup into account.

---

<div class="post-metadata">

**Author:** ![JohnVersus](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.umbrel.com/johnversus/32/6230_2.png) [@JohnVersus](https://community.umbrel.com/u/JohnVersus)\
**Post date:** [August 20, 2024, 6:19pm UTC](https://community.umbrel.com/t/app-for-self-hosting-www/16810/4 "2024-08-20T18:19:15Z")

</div>

Hi @smolgrrr Do you mean that we have to convert the website into a docker container and the export to internet using these two apps?

---

<div class="post-metadata">

**Author:** ![octolance](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.umbrel.com/octolance/32/7829_2.png) [@octolance](https://community.umbrel.com/u/octolance)\
**Post date:** [August 22, 2024, 10:37pm UTC](https://community.umbrel.com/t/app-for-self-hosting-www/16810/5 "2024-08-22T22:37:00Z")

</div>

You can use pre-made Docker server images such as these ones:

- [https://hub.docker.com/\_/nginx](https://hub.docker.com/_/nginx)
- [https://hub.docker.com/r/jitesoft/lighttpd](https://hub.docker.com/r/jitesoft/lighttpd)
- [https://hub.docker.com/\_/httpd](https://hub.docker.com/_/httpd)
- [https://hub.docker.com/\_/caddy](https://hub.docker.com/_/caddy)

You can perform a bind mount to share the WWW root directory with the web server like so in your compose file:

```auto
/path/to/your/website:/var/www/html

```

(or whatever the equivalent path is for that specific web server image)

This will allow you to serve your static HTML files without building your own Docker image or making custom web apps using various frameworks.

Below is an example compose file for a web server using NGINX:

```yaml
version: '3'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./src:/usr/share/nginx/html

```
