chore: remove .env.example and update README
Kim committed
Nov 10, 2025 at 17:27 UTC
fdbdbf8306973607dcfba4ffaafbf40ba1c49bc8
3 files changed
+16
-19
.env.example
deleted
-4
@@ -1,4 +0,0 @@
1
-STATIC_DIR=/app/dist
2
-PORTAL_UI_URL=http://localhost:4017
3
-POSTAL_FRONTEND_URL=http://*.localhost:4017
4
-BOOTSTRAP_URIS=ws://localhost:4017/relay
\ No newline at end of file
README.md
+10
-12
@@ -4,7 +4,7 @@
4
<img src="/portal.jpg" alt="Portal logo" width="540" />
5
</p>
6
7
-Portal is an open hosting network that transforms your local project into a public web endpoint. [See more.](https://gosuda.org/portal/)
7
+Portal is a permissionless, open hosting network that transforms your local project into a public web endpoint. [See more.](https://gosuda.org/portal/)
8
9
## Table of Contents
10
@@ -25,9 +25,9 @@ This enables developers to publish local services globally without managing serv
25
26
- 🔄 **Connection Relay**: Connects clients behind NAT or firewalls through the Portal network.
27
- 🔐 **End-to-End Encryption**: Fully encrypted client-to-client communication, including browser sessions via a WASM-based Service Worker proxy.
28
+- 🕊️ **Permissionless Hosting**: Anyone can open or choose their own Portal — no approval, no central authority.
29
- 🚀 **High Performance**: Multiplexed connections using yamux
30
- ⚙️ **Simple Setup**: Build and bootstrap apps quickly using the Portal SDK or Tunnel client.
30
-- 🤖 **AI Friendly**: Instantly publish AI-generated websites or applications.
31
32
## Quick Start
33
You can run **Portal** to host relay services, or run **App** to publish your own application through portal.
@@ -36,24 +36,22 @@ You can run **Portal** to host relay services, or run **App** to publish your ow
36
Run Portal with Docker Compose:
37
38
```bash
39
-# 1. Copy environment file
40
-cp .env.example .env
41
-
42
-# 2. Start services
39
+# 1. Start services
40
docker compose up
41
45
-# 3. Open in browser (default web interface)
42
+# 2. Open in browser
43
http://localhost:4017
44
48
-# 4. Domain setup (optional)
45
+# 3. Domain setup (optional)
46
# Point DNS to this server:
47
# A record for portal.example.com → server IP
48
# A (wildcard) for *.example.com (or *.portal.example.com) → server IP
49
#
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
50
+# Then edit docker-compose.yml environment for your domain:
51
+PORTAL_UI_URL: https://yourservice.com
52
+POSTAL_FRONTEND_URL: https://*.yourservice.com
53
+BOOTSTRAP_URIS: wss://yourservice.com/relay
54
+
55
```
56
57
### Running a Portal App
docker-compose.yml
+6
-3
@@ -6,9 +6,12 @@ services:
6
dockerfile: Dockerfile
7
command:
8
- "--port"
9
- - "4017"
10
- env_file:
11
- - .env
9
+ - "${PORTAL_PORT:-4017}"
10
+ environment:
11
+ STATIC_DIR: ${STATIC_DIR:-/app/dist}
12
+ PORTAL_UI_URL: ${PORTAL_UI_URL:-http://localhost:${PORTAL_PORT:-4017}}
13
+ POSTAL_FRONTEND_URL: ${POSTAL_FRONTEND_URL:-http://*.localhost:${PORTAL_PORT:-4017}}
14
+ BOOTSTRAP_URIS: ${BOOTSTRAP_URIS:-ws://localhost:${PORTAL_PORT:-4017}/relay}
15
ports:
16
- "4017:4017"
17
restart: unless-stopped