docs: format Portal Hosting instructions in README for better readability

rabbitprincess committed Nov 8, 2025 at 10:36 UTC 7765177a6f7f77f4214021ab55af8536903539c5
1 file changed +22 -16
README.md
+22 -16
@@ -33,22 +33,28 @@ This enables developers to publish local services globally without managing serv
33 You can run **Portal** to host relay services, or run **App** to publish your own application through portal.
34
35 ### Portal Hosting
36 -Run Portal with Docker Compose.
37 -
38 -1. Copy env file
39 - - `cp .env.example .env`
40 -2. Start services
41 - - `docker compose up`
42 -3. Open in browser
43 - - `http://localhost:4017`
44 -4. Domain setup (optional)
45 - - Point DNS to this server:
46 - - `A` record for `portal.example.com` → server IP
47 - - `A` (wildcard) for `*.example.com` (or `*.portal.example.com`) → server IP
48 - - Edit `.env` for your domain:
49 - - `PORTAL_UI_URL=https://portal.example.com`
50 - - `POSTAL_FRONTEND_URL=https://*.example.com`
51 - - `BOOTSTRAP_URIS=wss://portal.example.com/relay`
36 +Run Portal with Docker Compose:
37 +
38 +```bash
39 +# 1. Copy environment file
40 +cp .env.example .env
41 +
42 +# 2. Start services
43 +docker compose up
44 +
45 +# 3. Open in browser (default web interface)
46 +http://localhost:4017
47 +
48 +# 4. Domain setup (optional)
49 +# Point DNS to this server:
50 +# A record for portal.example.com → server IP
51 +# A (wildcard) for *.example.com (or *.portal.example.com) → server IP
52 +#
53 +# Then edit .env for your domain:
54 +PORTAL_UI_URL=https://portal.example.com
55 +POSTAL_FRONTEND_URL=https://*.example.com
56 +BOOTSTRAP_URIS=wss://portal.example.com/relay
57 +```
58
59 ### App Publishing
60 See [portal-toys](https://github.com/gosuda/portal-toys)