An open API service indexing awesome lists of open source software.

https://github.com/tolsen/limestone

Advanced WebDAV server backed by a Postgres database. Supports ACL, Search, BIND, Redirect, and partial DeltaV.
https://github.com/tolsen/limestone

Last synced: about 1 year ago
JSON representation

Advanced WebDAV server backed by a Postgres database. Supports ACL, Search, BIND, Redirect, and partial DeltaV.

Awesome Lists containing this project

README

          

README for Limestone server

Dependencies
------------

- PostgreSQL >= 8.4
- PostgreSQL JDBC driver (libpg-java package in debian)
- shared-mime-info library
- See RubyDAV README for more dependencies
- Ruby/DBI with Postgres driver (libdbi-ruby and libdbd-pg-ruby1.8 packages)

Checkout
--------

LimeStone depends on a variety of other software that we keep in git.
All of the git repositories must be checked out into the same
directory.

You have probably already checked out LimeStone:

git clone git://github.com/tolsen/limestone

Now checkout the all the dependencies:

git clone git://github.com/tolsen/limestone-httpd apache
git clone git://github.com/tolsen/limestone-apr apr
git clone git://github.com/tolsen/limestone-apr-util apr-util
git clone git://github.com/tolsen/httpauth better_httpauth
git clone git://github.com/tolsen/env-engine
git clone git://github.com/tolsen/inspector
git clone git://github.com/tolsen/liquibase
git clone git://github.com/tolsen/litmus
git clone git://github.com/tolsen/Prestan
git clone git://github.com/tolsen/rubydav

Simple file description (Somewhat out of date)
----------------------------------------------

- mod_dav_repos - apache module hooker
- repos.c - repository interface
- props.c - properties interface
- liveprops.c - implements live property hooks of mod_dav
- version.c - implements the versioning hooks of mod_dav
- search.c - search(DASL) interface
- util.c - utility functions
- dbms.[ch] - Data Access Layer
- dbms_api.h - API for performing database queries
- dbms_dbd.[ch]- Implements the API using mod_dbd

Postgres setup
--------------

Set up a pgsql database with its own user and password.

Ensure that the user can add/drop schemas to the database -
GRANT ALL ON DATABASE $LIMESTONE_DB TO $LIMESTONE_USER;

Environment Variables
---------------------

Set the following environment variables:

LIMESTONE_HOST_DOMAIN : server hostname
LIMESTONE_PGSQL_VHOST_PORT : server port to listen on
LIMESTONE_PGSQL_DB_HOST : database hostname
LIMESTONE_PGSQL_DB_PORT : database port
LIMESTONE_PGSQL_DB_USER : database username
LIMESTONE_PGSQL_DB_PASS : database password
LIMESTONE_PGSQL_DB_NAME : database name

If you prefer not to set environment variables, you can create a
.lime-config file with lines consisting of "ENV_VAR : value"

Build
-----

a. autoconf
b. ./configure --with-pgsql[=PATH]
Ubuntu defaults for PATH: /usr/include

c. make

This builds apache and limestone

Tests
-----

type "make tests"

How to start Apache
-------------------

make apache-start

Create a user
-------------

./limestone/adduser -p test1 test1

How to connect to WebDAV server running at localhost
----------------------------------------------------

- Open the home directory ( localhost/limespot is not accessible to user directly )

open http://localhost:8080/home/test1

- Provide authentication details

Login: test1
Password: test1

How to DEBUG apache
-------------------

cd aproot/bin/
% gdb httpd
...
...
(gdb) b xxx_yyy_zzz
(gdb) run -X -d .. [ if you are in apache/bin or give full path ]
(gdb) "Enjoy!!"

Developer mailing list
----------------------
TBA

THE FOLLOWING MAY NO LONGER WORK
--------------------------------

- For a static build of limestone, type "make static"

- To build limestone for profiling with gprof, type "make gprof"

- To run Prestan benchmarks, type "make benchmarks"

- To quickly rebuild changes made *only* in limestone & mod_dav modules, type "make reinstall"