Open data powered by Dat. Future-friendly apps for your research data pipeline. Hosted at http://datbase.org.
- Preview the files in a dat in the browser.
- Download individual files from dats.
- Create short links for dats with user accounts.
- Clone this repository, then copy the configuration file:
cp config/default.js config/config.development.js
- Install the dependencies:
npm install
Create the database
npm run database
Start the server
npm start
Each deployment should have a different secret key. You want to set the secret key for generating password hashes and salts.
Set the secret key by using the TOWNSHIP_SECRET
environment variable.
Specify where you want data for the app (databases and also by default the archiver) to be located. By default, all the data will be stored in ./data
. If you'd like the data to be stored somewhere else, add a data
key:
{
data: '/path/to/my/data'
}
To create a closed beta, add the whitelist
key with the path to a newline-delimited list of emails allowed to sign up. Default value false
allows anyone to register an account.
{ whitelist: '/path/to/my/list/of/folks.txt'}
folks.txt
should have a list of valid emails, each separated by a new line character. For example:
You can set the location where dat data is cached on the filesystem. By default it is stored in the data
directory (above), in the archiver
subdirectory. You can change this by using the archiver
key:
{ archiver: '/mnt1/bigdisk/archiver-data' }
The site will report basic information to Mixpanel if you have an account. It will by default use the environment variable MIXPANEL_KEY
.
This can also be set in the configuration file by using the mixpanel
key:
{ mixpanel: '<my-api-key-here>' }
If you want to have advanced security for generating passwords, you can use ES512 keys, for example. Generate the keys using this tutorial and set their locations in the configuration file.
{
township: {
db: 'township.db',
publicKey: path.join('secrets', 'ecdsa-p521-public.pem'),
privateKey: path.join('secrets', 'ecdsa-p521-private.pem'),
algorithm: 'ES512'
}
}