A data publishing utility that allows trusted organizations and individuals to share data using standard HTTP methods.
Source Cooperative is operational and available at https://source.coop, providing access to over 5PB of data.
- Node.js 22
- Docker and Docker Compose
- Git
- AWS CLI (for local DynamoDB interaction)
- Clone the repository
- Copy
.env.exampleto.env.local - Install dependencies:
npm install - Start development server:
npm run dev
The application requires a DynamoDB instance for data storage. Docker Compose is used to run DynamoDB locally for development:
# Start DynamoDB and DynamoDB Admin
docker compose upThis will start:
- DynamoDB Local on port 8000
- DynamoDB Admin UI on port 8001 (accessible at http://localhost:8001)
- Bootstrap script that automatically initializes tables if they don't exist
The bootstrap script (init-db service) will:
- Run automatically when tables are not found
- Create all required DynamoDB tables
- Populate sample data for development
- Can be forced to reset tables by setting the
RESET_TABLESenvironment variable:
# Force reset and reinitialize tables
RESET_TABLES=true docker compose up- Local DynamoDB
- DynamoDB Admin UI
- Environment variables in
.env.local
See CONTRIBUTING.md for detailed information about contributing to the project.
This project is licensed under the MIT License - see the LICENSE file for details.
# Development
npm run dev # Start development server
# npm run build # Build production bundle
# npm run start # Start production server
npm run lint # Run ESLint
npm run type-check # Run TypeScript checksCommon Issues:
-
Build errors
- Ensure all dependencies are installed
- Clear
.nextdirectory and rebuild
rm -rf .next npm run build
-
Environment variables not working
- Verify
.env.localexists and is properly configured - Restart the development server
- Verify
-
Type errors
- Run
npm run type-checkto identify issues - Ensure types are properly imported
- Run
Copyright 2024 Radiant Earth