diff --git a/README.MD b/README.MD index f177e03..83e969c 100644 --- a/README.MD +++ b/README.MD @@ -105,14 +105,14 @@ Remember, MicroBin will create your database and file storage wherever you execu `cd ~/microbin/` -`microbin --port 8080 --highlightsyntax --editable` +`microbin --highlightsyntax --editable` ### From AUR (for any Arch-based distro) Install `microbin` package from AUR and start/enable microbin systemd service. Systemd will start server on port 8080, which can be [changed](https://wiki.archlinux.org/title/Systemd#Editing_providd_units) via `systemctl edit microbin`. By default, almost all functions are enabled, and data is stored in `/var/lib/microbin` ### Building MicroBin -Simply clone the repository, build it with `cargo build --release` and run the `microbin` executable in the created `target/release/` directory. It will start on port 8080. You can change the port with `-p` or `--port` CL arguments. For other arguments see [the Wiki](https://github.com/szabodanika/microbin/wiki). +Simply clone the repository, build it with `cargo build --release` and run the `microbin` executable in the created `target/release/` directory. It will start listening on 0.0.0.0:8080. You can change the port or bind address with CL arguments `-p (--port)` or `-b (--bind)` respectively . For other arguments see [the Wiki](https://github.com/szabodanika/microbin/wiki). ``` git clone https://github.com/szabodanika/microbin.git @@ -286,6 +286,13 @@ Default value: 8080 Sets the port for the server will be listening on. + +### -b, --bind [ADDRESS] + +Default value: 0.0.0.0 + +Sets the bind address for the server will be listening on. Both ipv4 and ipv6 are supported. + ### --private Enables private pastas. Adds a new checkbox to make your pasta private, which then won't show up on the pastalist page. With the URL to your pasta, it will still be accessible. diff --git a/src/args.rs b/src/args.rs index 15546df..4a97f3b 100644 --- a/src/args.rs +++ b/src/args.rs @@ -1,3 +1,4 @@ +use std::net::IpAddr; use clap::Parser; use lazy_static::lazy_static; @@ -36,7 +37,10 @@ pub struct Args { pub highlightsyntax: bool, #[clap(short, long, default_value_t = 8080)] - pub port: u32, + pub port: u16, + + #[clap(short, long, default_value_t = IpAddr::from([0, 0, 0, 0]))] + pub bind: IpAddr, #[clap(long)] pub private: bool, @@ -55,4 +59,4 @@ pub struct Args { #[clap(long)] pub wide: bool, -} +} \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 9f12d4b..1c18a31 100644 --- a/src/main.rs +++ b/src/main.rs @@ -58,7 +58,8 @@ async fn main() -> std::io::Result<()> { .init(); log::info!( - "MicroBin starting on http://127.0.0.1:{}", + "MicroBin starting on http://{}:{}", + ARGS.bind.to_string(), ARGS.port.to_string() ); @@ -97,7 +98,7 @@ async fn main() -> std::io::Result<()> { HttpAuthentication::basic(util::auth::auth_validator), )) }) - .bind(format!("0.0.0.0:{}", ARGS.port.to_string()))? + .bind((ARGS.bind, ARGS.port))? .workers(ARGS.threads as usize) .run() .await