# How-to: Run `ptth_server` Note: On Termux for Android you might run `umask 0022` first. Otherwise `ptth_server` might accidentally make files world-unreadable when it opens them, and PTTH refuses to serve world-unreadable files. 0022 is the default on desktops, so this is probably an Android security thing. PTTH uses the same permissions to protect its config file, so the two interfere. ## Without writing your own config file (Ideal if you're running `ptth_server` autonomously from a script or something) ``` ptth_server \ --auto-gen-key \ --config-path ptth_server.toml \ --relay_url https://example.com/7ZSFUKGV \ --name my_server_name ``` ptth_server will: - Try to use the API key from `ptth_server.toml` - If that config file doesn't exist, create it, mark it as not readable to other Unix users, and fill it with a random key - Attempt to contact the `ptth_relay` instance with the base URL `https://example.com/7ZSFUKGV` - Identify itself to that relay with the name `my_server_name` and the random key ## With your own config file (Ideal for long-lived instances) ``` mkdir config touch config/ptth_server.toml chmod 600 config/ptth_server.toml dd if=/dev/urandom bs=64 count=1 | base64 >> config/ptth_server.toml ``` Open `config/ptth_server.toml` in your text editor. There will be 64 bytes of random Base64 in the file already. Use that for the `api_key` field. Fill out the other fields as desired: ``` name = "my_server_name" relay_url = "https://example.com/7ZSFUKGV" file_server_root = "/home/user/public" api_key = ``` Then run `ptth_server` with no arguments.