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.
- Host: GitHub
- URL: https://github.com/tolsen/limestone
- Owner: tolsen
- Created: 2010-02-23T22:39:24.000Z (over 16 years ago)
- Default Branch: master
- Last Pushed: 2011-03-14T18:27:17.000Z (over 15 years ago)
- Last Synced: 2025-03-30T12:11:51.346Z (about 1 year ago)
- Language: C
- Homepage:
- Size: 9.55 MB
- Stars: 8
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README
Awesome Lists containing this project
- awesome-webdav - tolsen/limestone - Advanced WebDAV server backed by a Postgres database. Supports ACL, Search, BIND, Redirect, and partial DeltaV. (Servers / Standalone)
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"