======================= Running a Bazaar Server ======================= Bazaar does not require a specialised server because it operates over HTTP, FTP or SFTP. There is an optional smart server that can be invoked over SSH, from inetd, or in a dedicated mode. Dumb servers ============ We describe HTTP, FTP, SFTP and HTTP-WebDAV as "dumb" servers because they do not offer any assistance to Bazaar. If you make a Bazaar repository available over any of these protocols, Bazaar will allow you to read it remotely. Just enter the URL to the branch in the Bazaar command you are running.:: bzr log http://bazaar-vcs.org/bzr/bzr.dev Bazaar supports writing over FTP, SFTP and via a plugin over HTTP-WebDAV. High performance server ======================= **In development** The high performance server is currently in development. The version of Bazaar that accompanies this documentation is able to use the servers underlying protocol as a dumb server. This is the first stage high performance server functionality to be delivered. The current high performance server provides read only access by default for security. To enable read-write access, run it with --allow-writes. When using the SSH access method, bzr automatically runs with with the --allow-writes option. It can be configured to run in three different ways: SSH --- Using Bazaar over SSH requires no special configuration on the server:: BZR_REMOTE_PATH=~/bin/bzr bzr log bzr+ssh://host/path/to/branch The `BZR_REMOTE_PATH` environment variable adjusts how `bzr` will be invoked on the remote system. By default, just `bzr` will be invoked, which requires the `bzr` executable to be on the default search path. The `bzr+ssh://` URL scheme only supports absolute paths from the root of the filesystem. Future versions are expected to support `~` in the same way as `sftp://` URLs. inetd ----- This example shows how to run `bzr` with a dedicated user `bzruser` for a shared repository in `/srv/bzr/repo` which has a branch at `/srv/bzr/repo/branchname` Running a Bazaar server from inetd requires an inetd.conf entry:: 1234 stream tcp nowait bzruser /usr/bin/bzr serve --inet --directory=/srv/bzr/repo When running client commands, the URL you supply is a `bzr://` URL relative to the `--directory` option given in inetd.conf:: bzr log bzr://host:1234/branchname Dedicated --------- This mode has the same path and URL behaviour as the inetd mode. To run as a specific, you should use `su` or login as that user. This example runs bzr serve on `localhost` port `1234`. server:: bzr serve --port=localhost:1234 --directory=/srv/bzr/repo client:: bzr log bzr://host:1234/branchname