Switchboard is a link redirect server. It redirects incoming HTTP requests to other URLs. It therefore functions as a personal link shortener.
With everything set up correctly and the example switchboard.conf:
http://s/wp
redirects to English-language Wikipedia's homepage.http://s/wp/Switchboard
is equivalent to typing "Switchboard" into English-language Wikipedia's search box.
- Go 1.1 or later.
- A local server on which port 80 is available (possibly
localhost
). - The ability to add hostnames mapping to this server (via DNS or
/etc/hosts
).
Install the binary and configuration file:
-
go install github.com/nixprime/switchboard
. This builds abin/switchboard
somewhere in your $GOPATH, which you can move to wherever. (The included system startup scripts assumeswitchboard
is located in/usr/local/bin/
.) -
Create
switchboard.conf
somewhere. Use the includedswitchboard.conf
as a guide. (By default, Switchboard assumes thatswitchboard.conf
is located in/etc/
.)Note that the default configuration instructs the daemon to listen on port 80, the standard HTTP port (so your host should not be running some other HTTP server), and to listen only on the
localhost
interface (so the Switchboard service will not be accessible from other hosts). Change these settings with theport
andlisten_on
configuration file keys, respectively. Settinglisten_on
to the empty string ("listen_on": ""
) will instruct the daemon to accept connections from any network.
Enable the daemon to run as a non-root user:
-
If using one of the system startup scripts, or running switchboard as non-root otherwise, allow switchboard to bind ports under 1024:
sudo apt-get install libcap2-bin sudo setcap cap_net_bind_service+ep /usr/local/bin/switchboard
Enable automatic start at boot:
-
If your system uses Upstart (e.g., Ubuntu prior to 15.04), and you want to use the included Upstart script to start Switchboard automatically, put
upstart/switchboard.conf
in/etc/init/
. The daemon will now start on the next boot. To start it manually, runservice switchboard start
as root. -
If your system uses systemd (e.g., Arch Linux or Fedora, or Ubuntu 15.04 or later), and you want to use the included systemd script to start Switchboard automatically, put
systemd/switchboard.service
in/usr/lib/systemd/system
. To enable the service on boot, runsystemctl enable switchboard
as root. To start the service manually, runsystemctl start switchboard
as root.
Configure hostname resolution:
-
Configure either your host's local hostname resolution (e.g., the
/etc/hosts
file) or your local DNS zone, if applicable, to point whatever hostname(s) you want Switchboard to use to the IP address of the machine running Switchboard. How to configure DNS is beyond the scope of this document. A simple set of entries in/etc/hosts
might be:127.0.0.1 s # map `s` hostname to Switchboard on localhost 127.0.0.1 m # map `m` hostname to Switchboard on localhost
Switchboard is provided under the MIT license:
Copyright (C) 2013 the Authors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.