# The location which your server is listening on and binds to. You must restart # bunbun for changes to take effect for this config option. bind_address: "127.0.0.1:8080" # The root location where people can access your instance of bunbun public_address: "localhost:8080" # A default route, if no route is was matched. If none were matched, the entire # query is used as the query for the default route. This field is optional, but # highly recommended for ease-of-use. default_route: "g" # A list containing route groups. Each route group must have a name and a # mapping of routes, with an optional description field. Each route mapping may # contain "{{query}}", which will be populated by the user's search query. This # input is percent-escaped. If multiple routes are defined, then the later # defined route is used. # # You may provide an (absolute, recommended) path to an executable file to out- # source route resolution to a program. The program will receive the arguments # as space-separated words, without any shell parsing. # # These programs must return a JSON object with either one of the following # key-value pairs: # - "redirect": "some-path-to-redirect-to.com" # - "body": The actual body to return. # For example, to return a page that only prints out `3`, the function should # return `{"redirect": "3"}`. # # These programs must be developed defensively, as they accept arbitrary user # input. Improper handling of user input can easily lead to anywhere from simple # flakey responses to remote code execution. groups: - # This is a group with the name "Meta commands" with a short description. name: "Meta commands" description: "Commands for bunbun" routes: # /ls is the only page that comes with bunbun besides the homepage. This # page provides a full list of routes and their groups they're in. ls: &ls path: "/ls" # You can specify a maximum number of arguments, which are string # delimited strings. max_args: 0 # You can also specify a minimum amount of arguments. # min_args: 1 help: path: "/ls" max_args: 0 # Paths can be hidden from the listings page if desired. hidden: true # Bunbun supports all standard YAML features, so things like YAML pointers # and references are supported. list: *ls - # This is another group without a description name: "Google" routes: # Routes can be quickly defined as a simple link, where {{query}} is where # your query to bunbun is forwarded to. g: "https://google.com/search?q={{query}}" # Alternatively, you can provide a description instead, which provides # replaces the raw query string on the ls page with said description yt: path: "https://www.youtube.com/results?search_query={{query}}" description: "A way to quickly search youtube videos" - name: "Uncategorized routes" routes: r: "https://reddit.com/r/{{query}}" # Routes don't need the {{query}} tag, so links can just be shortcuts to # pages you'd like nice: "https://youtu.be/dQw4w9WgXcQ" - # This group is entirely hidden, so all routes under it are hidden. name: "Hidden group" hidden: true routes: sneaky: "https://nyan.cat"