Limestone
Advanced WebDAV server backed by a Postgres database. Supports ACL, Search, BIND, Redirect, and partial DeltaV.
Install / Use
/learn @tolsen/LimestoneREADME
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"
Related Skills
feishu-drive
349.0k|
things-mac
349.0kManage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database)
clawhub
349.0kUse the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com
postkit
PostgreSQL-native identity, configuration, metering, and job queues. SQL functions that work with any language or driver
