mirror of
https://github.com/orbien-org/orbien.git
synced 2026-09-21 16:01:31 +00:00
feat: Add full configuration examples and Makefile
This commit is contained in:
@@ -1,10 +1,7 @@
|
||||
.PHONY: build release orbien-server orbien web test clean fmt package desktop-sidecar desktop-dev desktop-build
|
||||
|
||||
ROOT := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
|
||||
export CARGO_TARGET_DIR := $(ROOT)/target
|
||||
|
||||
WEB_DIR := server-ui
|
||||
DESKTOP_DIR := desktop
|
||||
|
||||
web:
|
||||
cd $(WEB_DIR) && npm install && npm run build
|
||||
@@ -19,20 +16,36 @@ release: web
|
||||
@echo "artifacts:"
|
||||
@ls -lh target/release/orbien-server target/release/orbien
|
||||
|
||||
orbien-server:
|
||||
./docs/scripts/build-server.sh
|
||||
orbien-server: web
|
||||
cargo build --release -p orbien-server
|
||||
@echo ""
|
||||
@echo "artifact:"
|
||||
@ls -lh target/release/orbien-server
|
||||
|
||||
orbien:
|
||||
cargo build --release -p orbien-client
|
||||
|
||||
desktop-sidecar:
|
||||
./scripts/prepare-desktop-sidecar.sh
|
||||
desktop-dev:
|
||||
cargo run -p orbien-desktop
|
||||
|
||||
desktop-dev: desktop-sidecar
|
||||
cd $(DESKTOP_DIR) && npm install && npm run tauri dev
|
||||
desktop-build:
|
||||
cargo build --release -p orbien-desktop
|
||||
|
||||
desktop-build: desktop-sidecar
|
||||
cd $(DESKTOP_DIR) && npm install && npm run tauri build
|
||||
desktop-app desktop-dmg: desktop-build
|
||||
chmod +x scripts/pack-desktop-macos.sh
|
||||
./scripts/pack-desktop-macos.sh
|
||||
@echo "app → dist/Orbien Desktop.app"
|
||||
@echo "dmg → dist/orbien-desktop_*_darwin_*.dmg"
|
||||
|
||||
desktop-windows: desktop-build
|
||||
chmod +x scripts/pack-desktop-windows.sh
|
||||
./scripts/pack-desktop-windows.sh
|
||||
@echo "exe/zip → dist/orbien-desktop_*_windows_*"
|
||||
|
||||
desktop-deb: desktop-build
|
||||
chmod +x scripts/pack-desktop-linux-deb.sh
|
||||
./scripts/pack-desktop-linux-deb.sh
|
||||
@echo "deb → dist/orbien-desktop_*_linux_*.deb"
|
||||
|
||||
test:
|
||||
cargo test --workspace
|
||||
@@ -43,7 +56,6 @@ fmt:
|
||||
clean:
|
||||
cargo clean
|
||||
rm -rf $(WEB_DIR)/node_modules $(WEB_DIR)/dist
|
||||
rm -rf $(DESKTOP_DIR)/node_modules $(DESKTOP_DIR)/dist
|
||||
|
||||
package: release
|
||||
mkdir -p dist
|
||||
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
# Makefile
|
||||
|
||||
Run from the repository root. Build artifacts go to `target/`; packages go to `dist/`.
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `make web` | Build the dashboard UI into `server/assets` |
|
||||
| `make build` | Debug-build `orbien-server` and `orbien` |
|
||||
| `make release` | Run `web`, then release-build server and client |
|
||||
| `make orbien-server` | Run `web`, then release-build the server |
|
||||
| `make orbien` | Release-build the client |
|
||||
| `make desktop-dev` | Run the desktop app (dev) |
|
||||
| `make desktop-build` | Release-build the desktop app |
|
||||
| `make desktop-app` / `make desktop-dmg` | Package macOS `.app` / `.dmg` |
|
||||
| `make desktop-windows` | Package Windows exe / zip (run on Windows) |
|
||||
| `make desktop-deb` | Package Linux `.deb` (run on Debian/Ubuntu) |
|
||||
| `make package` | Run `release`, then copy binaries and `conf/` to `dist/` |
|
||||
| `make test` | Run workspace tests |
|
||||
| `make fmt` | Format Rust code |
|
||||
| `make clean` | Clean `target/` and frontend install/build outputs |
|
||||
@@ -0,0 +1,96 @@
|
||||
server = "127.0.0.1:9527"
|
||||
user = "lxien"
|
||||
udpPacketSize = 1500
|
||||
|
||||
[auth]
|
||||
type = "token"
|
||||
token = "YOUR_TOKEN"
|
||||
|
||||
[transport]
|
||||
protocol = "tcp"
|
||||
poolCount = 5
|
||||
tcpMux = true
|
||||
muxKeepaliveSecs = 30
|
||||
heartbeatInterval = 30
|
||||
heartbeatTimeout = 90
|
||||
|
||||
[transport.quic]
|
||||
keepalivePeriod = 10
|
||||
maxIdleTimeout = 30
|
||||
maxIncomingStreams = 100000
|
||||
|
||||
[transport.tls]
|
||||
enable = true
|
||||
serverName = "orbien.example.com"
|
||||
trustedCaFile = "./certs/ca.crt"
|
||||
certFile = "./certs/client.crt"
|
||||
keyFile = "./certs/client.key"
|
||||
|
||||
[[tunnels]]
|
||||
name = "ssh"
|
||||
protocol = "tcp"
|
||||
service = "127.0.0.1:22"
|
||||
remotePort = 9000
|
||||
|
||||
[tunnels.transport]
|
||||
bandwidth = 10
|
||||
bandwidthLimitSide = "client"
|
||||
proxyProtocolVersion = "v2"
|
||||
|
||||
[[tunnels]]
|
||||
name = "dns"
|
||||
protocol = "udp"
|
||||
service = "127.0.0.1:53"
|
||||
remotePort = 5353
|
||||
|
||||
[tunnels.transport]
|
||||
bandwidth = 10
|
||||
bandwidthLimitSide = "server"
|
||||
proxyProtocolVersion = "v1"
|
||||
|
||||
[[tunnels]]
|
||||
name = "web"
|
||||
protocol = "http"
|
||||
service = "127.0.0.1:8080"
|
||||
domains = ["web", "app.example.com"]
|
||||
locations = ["/", "/api"]
|
||||
basicAuthUser = "admin"
|
||||
basicAuthPassword = "123456"
|
||||
hostHeaderRewrite = "127.0.0.1:8080"
|
||||
routeByHTTPUser = "lxien"
|
||||
|
||||
[tunnels.transport]
|
||||
bandwidth = 10
|
||||
bandwidthLimitSide = "client"
|
||||
proxyProtocolVersion = "v2"
|
||||
|
||||
[[tunnels]]
|
||||
name = "api-tls"
|
||||
protocol = "https"
|
||||
service = "127.0.0.1:8080"
|
||||
domains = ["api.example.com"]
|
||||
|
||||
[tunnels.transport]
|
||||
bandwidth = 10
|
||||
bandwidthLimitSide = "client"
|
||||
proxyProtocolVersion = "v2"
|
||||
|
||||
[[tunnels]]
|
||||
name = "portal"
|
||||
protocol = "https"
|
||||
domains = ["portal.example.com"]
|
||||
|
||||
[tunnels.transport]
|
||||
bandwidth = 10
|
||||
bandwidthLimitSide = "client"
|
||||
|
||||
[tunnels.plugin]
|
||||
type = "tls-term"
|
||||
service = "127.0.0.1:8080"
|
||||
certFile = "./certs/portal.crt"
|
||||
keyFile = "./certs/portal.key"
|
||||
hostHeaderRewrite = "127.0.0.1"
|
||||
|
||||
[tunnels.plugin.requestHeaders.set]
|
||||
X-Forwarded-Proto = "https"
|
||||
X-Orbien-Tunnel = "portal"
|
||||
@@ -0,0 +1,39 @@
|
||||
listen = "0.0.0.0:9527"
|
||||
|
||||
quicPort = 9528
|
||||
kcpPort = 9529
|
||||
|
||||
httpGwPort = 80
|
||||
httpsGwPort = 443
|
||||
rootDomain = "example.com"
|
||||
|
||||
proxyAddr = "0.0.0.0"
|
||||
udpPacketSize = 1500
|
||||
|
||||
[auth]
|
||||
type = "token"
|
||||
token = "YOUR_TOKEN"
|
||||
|
||||
[transport]
|
||||
tcpMux = true
|
||||
muxKeepaliveSecs = 30
|
||||
maxConnPool = 10
|
||||
heartbeatTimeout = 90
|
||||
|
||||
[transport.quic]
|
||||
keepalivePeriod = 10
|
||||
maxIdleTimeout = 30
|
||||
maxIncomingStreams = 100000
|
||||
|
||||
[transport.tls]
|
||||
force = true
|
||||
certFile = "./certs/server.crt"
|
||||
keyFile = "./certs/server.key"
|
||||
trustedCaFile = "./certs/ca.crt"
|
||||
|
||||
[dashboard]
|
||||
addr = "0.0.0.0"
|
||||
port = 8020
|
||||
user = "admin"
|
||||
password = "123456"
|
||||
staticDir = ""
|
||||
@@ -0,0 +1,13 @@
|
||||
listen = "0.0.0.0:9527"
|
||||
|
||||
# httpGwPort = 80
|
||||
# httpsGwPort = 443
|
||||
# rootDomain = "example.com"
|
||||
|
||||
#auth.token = "YOUR_TOKEN"
|
||||
|
||||
#[dashboard]
|
||||
#addr = "0.0.0.0"
|
||||
#port = 8020
|
||||
#user = "admin"
|
||||
#password = "123456"
|
||||
@@ -0,0 +1,10 @@
|
||||
server = "127.0.0.1:9527"
|
||||
|
||||
#[auth]
|
||||
#token = "YOUR_TOKEN"
|
||||
|
||||
[[tunnels]]
|
||||
name = "ssh"
|
||||
protocol = "tcp"
|
||||
service = "127.0.0.1:22"
|
||||
remotePort = 9000
|
||||
Reference in New Issue
Block a user