Auto-append port to --base-url so user only specifies hostname
This commit is contained in:
+2
-2
@@ -223,7 +223,7 @@ After=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/home/youruser/.local/bin/ghrel serve --host 0.0.0.0 --port 8765 --base-url http://your-server-ip:8765
|
||||
ExecStart=/home/youruser/.local/bin/ghrel serve --host 0.0.0.0 --port 8765 --base-url http://your-server-ip
|
||||
Restart=on-failure
|
||||
RestartSec=10
|
||||
User=youruser
|
||||
@@ -245,7 +245,7 @@ sudo systemctl status ghrel-serve.service
|
||||
|
||||
- The server reads the database on every request — no restart needed after `ghrel check` or daemon updates
|
||||
- Use `--host 127.0.0.1` for local-only access, or `0.0.0.0` for network access
|
||||
- When binding to `0.0.0.0`, use `--base-url` to set the correct URL in feed links (otherwise links will use `0.0.0.0` which is not accessible from clients)
|
||||
- When binding to `0.0.0.0`, use `--base-url` to set the correct hostname in feed links. The port is auto-appended from `--port`, so only the scheme and host are needed (e.g., `http://192.168.1.100`)
|
||||
- Combine with a reverse proxy (nginx, caddy) for external access:
|
||||
|
||||
```nginx
|
||||
|
||||
+1
-1
@@ -365,7 +365,7 @@ def build_parser() -> argparse.ArgumentParser:
|
||||
p_serve = subparsers.add_parser("serve", help="Start HTTP server")
|
||||
p_serve.add_argument("--port", type=int, default=DEFAULT_SERVER_PORT, help="Server port")
|
||||
p_serve.add_argument("--host", default=DEFAULT_SERVER_HOST, help="Server host")
|
||||
p_serve.add_argument("--base-url", default=None, help="Base URL for feed links (e.g., http://192.168.1.100:8080)")
|
||||
p_serve.add_argument("--base-url", default=None, help="Base URL for feed links. Port is auto-appended (e.g., http://192.168.1.100)")
|
||||
|
||||
# daemon
|
||||
p_daemon = subparsers.add_parser("daemon", help="Run as background daemon")
|
||||
|
||||
+6
-1
@@ -65,7 +65,12 @@ def create_handler(db_path: str, base_url: str = None):
|
||||
|
||||
def _base_url(self) -> str:
|
||||
if base_url:
|
||||
return base_url
|
||||
port = self.server.server_address[1]
|
||||
url = base_url.rstrip("/")
|
||||
netloc = url.split("://", 1)[-1].split("/", 1)[0]
|
||||
if ":" not in netloc:
|
||||
url = f"{url}:{port}"
|
||||
return url
|
||||
host = self.server.server_address[0]
|
||||
port = self.server.server_address[1]
|
||||
return f"http://{host}:{port}"
|
||||
|
||||
Reference in New Issue
Block a user