## Bukuserver ### Table of Contents - [Installation](#installation) - [Dependencies](#dependencies) - [From PyPi](#from-pypi) - [From source](#from-source) - [Using Docker](#using-docker) - [Using Docker Compose](#using-docker-compose) - [Webserver options](#webserver-options) - [Configuration](#configuration) - [Screenshots](#screenshots) ### Installation You need to have some packages before you install `bukuserver` on your server. So be sure to have `python3`, `python3-pip` , `python3-dev`, `libffi-dev` packages from your distribution. #### Dependencies ``` $ python3 -m pip install --user --upgrade pip $ python3 -m pip install --user virtualenv $ python3 -m virtualenv env $ source env/bin/activate ``` #### From PyPi $ pip3 install buku[server] #### From source ``` $ git clone https://github.com/jarun/buku $ cd buku $ pip3 install .[server] ``` #### Using Docker To build the image execute the command from the root directory of the project: ```sh docker build -t bukuserver . ``` To run the generated image. ```sh docker run -it --rm -v ~/.local/share/buku:/root/.local/share/buku -p 5001:5001 bukuserver ``` All the data generated will be stored in the `~/.local/share/buku` directory. Feel free to change it to the full path of the location you want to store the database. Visit `127.0.0.1:5001` in your browser to access your bookmarks. #### Using Docker Compose There is a `docker-compose.yml` file present in the `docker-compose` directory in the root of this project. You may modify the configurations in this file to your liking, and then simply execute the below command. ```sh docker-compose up -d ``` You will have you bukuserver running on port port 80 of the host. To stop simply run ```sh docker-compose down ``` In case you want to add basic auth to your hosted instance you may do so by creating a `.htpasswd` file in the `data/basic_auth` directory. Add a user to the file using ```sh htpasswd -c data/basic_auth/.htpasswd your_username ``` And then comment out the basic auth lines from the `data/nginx/nginx.conf` file. For more information please refer the [nginx docs](https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/). ### Webserver options To run the server on host 127.0.0.1, port 5001, run following command: $ bukuserver run --host 127.0.0.1 --port 5001 Visit `127.0.0.1:5001` in your browser to access your bookmarks. See more option on `bukuserver run --help` and `bukuserver --help` ### Configuration Following are available os env config available for bukuserver. | Name (without prefix) | Description | Value | | --- | --- | --- | | PER_PAGE | bookmarks per page | positive integer [default: 10] | | SECRET_KEY | server secret key | string [default: os.urandom(24)] | | URL_RENDER_MODE | url render mode | `full` or `netloc` [default: `full`] | | DB_FILE | full path to db file | path string [default: standard path for buku] | | DISABLE_FAVICON | disable favicon | boolean [default: `true`] | | OPEN_IN_NEW_TAB | url link open in new tab | boolean [default: `false`] | | REVERSE_PROXY_PATH | reverse proxy path | string | Note: `BUKUSERVER_` is the common prefix. Note: if input is invalid, the default value will be used if defined e.g. to set bukuserver to show 100 item per page run the following command ``` # on linux $ export BUKUSERVER_PER_PAGE=100 # on windows $ SET BUKUSERVER_PER_PAGE=100 # in dockerfile ENV BUKUSERVER_PER_PAGE=100 ``` Note: the value for BUKUSERVER_REVERSE_PROXY_PATH is recommended to include preceding slash and not have trailing slash (i.e. use `/foo` not `/foo/`) ### Screenshots


home page

home page



index page

bookmark stats



index page

bookmark page



index page

create bookmark



index page

edit bookmark



index page

view bookmark details



index page

tag page