X-Git-Url: https://git.cweiske.de/phorkie.git/blobdiff_plain/9d26076b05d598279cf1ac34724bff388a8ac349..0c2d838a9b2f0c81d460b49ccd74775440ced828:/README.rst diff --git a/README.rst b/README.rst index 022eab8..c94f29e 100644 --- a/README.rst +++ b/README.rst @@ -4,7 +4,7 @@ phorkie - PHP and Git based pastebin Self-hosted pastebin software written in PHP. Pastes are editable, may have multiple files and are stored in git repositories. -Homepage: http://sourceforge.net/p/phorkie/ +Project page: http://sourceforge.net/p/phorkie/ .. contents:: Table of Contents @@ -31,50 +31,98 @@ Features - history in the sidebar - old files can be downloaded easily +- search across pastes: description, file names and file content + + - options: quoting, logical and, or, not, partial words + ============ -Dependencies +Installation ============ -phorkie stands on the shoulders of giants. +1. Unzip the phorkie release file:: + $ tar xjvf phorkie-0.2.0.tar.bz2 -Install VersionControl_Git -========================== -:: +2. Create the git directories:: - $ pear install versioncontrol_git-alpha + $ mkdir -p repos/git repos/work + $ chmod og+w repos/git repos/work -Install Services_Libravatar -========================== -:: +3. Install dependencies_ - $ pear install services_libravatar-alpha +4. Copy ``data/config.php.dist`` to ``data/config.php`` and adjust it + to your needs:: + $ cp data/config.php.dist data/config.php + $ $EDITOR data/config.php -Install Date_HumanDiff -====================== -:: + Look at ``config.default.php`` for values that you may adjust. - $ pear install https://github.com/downloads/cweiske/Date_HumanDiff/Date_HumanDiff-0.1.0.tgz +5. Set your web server's document root to ``/path/to/phorkie-0.2.0/www/`` +6. Open phorkie in your web browser + + +Dependencies +============ +phorkie stands on the shoulders of giants. -Install GeSHi -============= :: + $ pear install versioncontrol_git-alpha + $ pear install services_libravatar-alpha + $ pear install http_request2 + $ pear install pager + $ pear install date_humandiff-alpha + + $ pear channel-discover pear.twig-project.org + $ pear install twig/Twig + $ pear channel-discover mediawiki.googlecode.com/svn $ pear install mediawiki/geshi + $ pear channel-discover zustellzentrum.cweiske.de + $ pear install zz/mime_type_plaindetect-alpha + Note that this version of GeSHi is a bit outdated, but it's the fastest way to install it. -Install Twig -============ -:: +====== +Search +====== - $ pear channel-discover pear.twig-project.org - $ pear install twig/Twig +phorkie makes use of an Elasticsearch__ installation if you have one. + +It is used to provide search capabilities and the list of recent pastes. + +__ http://www.elasticsearch.org/ + +Setup +===== +Edit ``config.php``, setting the ``elasticsearch`` property to the HTTP URL +of the index, e.g. :: + + http://localhost:9200/phorkie/ + +Run the index script to import all existing pastes into the index:: + + php scripts/index.php + +That's all. Open phorkie in your browser, and you'll notice the search box +in the top menu. + + +Reset +===== +In case something really went wrong and you need to reset the search +index, run the following command:: + + $ curl -XDELETE http://localhost:9200/phorkie/ + {"ok":true,"acknowledged"} + +Phorkie will automatically re-index everything when ``setupcheck`` is enabled +in the configuration file. ===== @@ -107,7 +155,7 @@ Technical details TODO ==== - OpenID-Login to get username+email as authorship information -- filters (xmllint --format, rapper) +- filters (``xmllint --format``, ``rapper``) - document how to keep disk usage low (block size) - comments - when 2 people edit, merge changes @@ -121,7 +169,7 @@ URLs ==== ``/`` - Index page. Shows form for new paste + Index page. ``/[0-9]+`` Display page for paste ``/[0-9]/edit`` @@ -140,7 +188,8 @@ URLs Search for term, with optional page ``/list(/[0-9])?`` List all pastes, with optional page - +``/new`` + Shows form for new paste Internal directory layout ========================= @@ -155,11 +204,27 @@ Internal directory layout description - Description for the repository 2.git/ - git repository for paste #2 +nginx rewrites +============== +If you use nginx, place the following lines into your ``server`` block: -Search -====== -Use ``ack-grep`` - - - +:: + if (!-e $request_uri) { + rewrite ^/([0-9]+)$ /display.php?id=$1; + rewrite ^/([0-9]+)/delete$ /delete.php?id=$1; + rewrite ^/([0-9]+)/delete/confirm$ /delete.php?id=$1&confirm=1; + rewrite ^/([0-9]+)/edit$ /edit.php?id=$1; + rewrite ^/([0-9]+)/fork$ /fork.php?id=$1; + rewrite ^/([0-9]+)/raw/(.+)$ /raw.php?id=$1&file=$2; + rewrite ^/([0-9]+)/rev/(.+)$ /revision.php?id=$1&rev=$2; + rewrite ^/([0-9]+)/rev-raw/(.+)$ /raw.php?id=$1&rev=$2&file=$3; + rewrite ^/([0-9]+)/tool/([^/]+)/(.+)$ /tool.php?id=$1&tool=$2&file=$3; + + rewrite ^/new$ /new.php; + rewrite ^/list$ /list.php; + rewrite ^/list/([0-9]+)$ /list.php?page=$1; + + rewrite ^/search$ /search.php; + rewrite ^/search/([0-9]+)$ /search.php?page=$1; + }