
An open source platform to scale your know how. A network to seamlessly share methods, opportunities and discoveries. This is the monorepo containing back and front-end code to run the APIs and interface.
- Overview
- Getting Started
- Initial Configuration
- Development Tools
- Configuration
- Deployment
- API Documentation
- Contributing
- License
Coordination Network is an open-source platform designed to help organizations and communities scale their knowledge sharing and coordination efforts. The platform provides tools for sharing methods, opportunities, and discoveries across your network.
- Docker and Docker Compose
- Git
- Pre-commit (for development)
- Clone the repository:
git clone https://github.com/coordnet/coordnet.git
cd coordnet
- Copy the environment file:
cp .envs/.local/.secrets.example .envs/.local/.secrets
- Configure your environment variables in
.envs/.local/.secrets
and.envs/.local/.django.secrets
:OPENAI_API_KEY
: Obtain from OpenAI PlatformSEMANTIC_API_KEY
: Get from Semantic Scholar- For the
JWT_SIGNING_KEY
andJWT_VERIFYING_KEY
, generate a keypair and save them as a one-line string. To create the keypair using openssl, run:openssl genrsa -out private-key.pem 4096 openssl rsa -in private-key.pem -pubout -out public-key.pem
- Build the Docker images:
docker compose build
- Start the application:
docker compose up --watch
- Access the application:
- Frontend: http://localhost:5173
- Backend Admin: http://localhost:8000/admin
- Email Interface (Mailpit): http://localhost:8025
- Once the application is running, navigate to http://localhost:5173/auth/signup
- Fill in your details:
- Name
- Email address
- Password
- The system will send a verification email
- Since you're running locally, emails are sent to Mailpit
- Access Mailpit at http://localhost:8025
- Find your verification email and copy the verification code
- Enter the code in the verification page to complete your account setup
- Open a terminal and get a shell to the Django container:
docker compose run --rm django bash
- Create a superuser account:
python manage.py createsuperuser
- Follow the prompts to set:
- Email address
- Password
- Log in to the Django Admin (http://localhost:8000/admin) using your superuser credentials
- Navigate to "Spaces" and click "+ Add"
- Configure your space:
- Enter a title
- Under "Object Memberships", assign users and their roles
- Click "Save" to create the space
- Access your space at http://localhost:5173
- Install pre-commit:
pip install pre-commit
- Set up the hooks:
pre-commit install
pre-commit install --hook-type commit-msg
- Build containers:
docker compose build
- Start services:
docker compose up --watch
- Stop services:
docker compose down
- Access Django shell:
docker compose run --rm django bash
When not using Docker Compose, configure the following:
-
Database Settings (either set
DATABASE_URL
or individual settings):POSTGRES_DB
POSTGRES_USER
POSTGRES_PASSWORD
POSTGRES_HOST
POSTGRES_PORT
-
Message Queue Settings:
CELERY_BROKER_URL
or defaultREDIS_URL
-
Production Settings:
SECRET_KEY
CORS_ALLOWED_ORIGINS
CSRF_TRUSTED_ORIGINS
DJANGO_ALLOWED_HOSTS
-
Email Settings (Production):
MAILGUN_API_KEY
MAILGUN_DOMAIN
- Sentry Error Tracking:
SENTRY_AUTH_TOKEN
SENTRY_DSN
The project is currently deployed using Docker containers on fly.io. Configuration files (fly.*.toml
) are available in the project root. While the project can theoretically be deployed to any Docker-compatible environment, the process is currently only documented for fly.io.
The API is documented using OpenAPI. Access the documentation:
- Local:
docs/redoc-static.html
- Online: API Documentation
- Check the repo issues for contribution ideas
- Read the contributing documentation for detailed guidelines
- Submit your contributions through pull requests
Any contribution intentionally submitted for inclusion in this repository, shall be dual licensed as below, without any additional terms or conditions.
Licensed under either of: