Thanks for your interest in contributing. This repo contains the microservices backend for Notely.
-
Install prerequisites:
- Docker 24+ and Docker Compose v2
- Node.js 20+ (for running scripts outside containers)
- PostgreSQL client tools (
psql) for running migrations and ad-hoc queries
-
Create your secrets file:
cd server cp config/secrets.dev.env.example config/secrets.dev.env # Edit secrets.dev.env and fill in values
-
Generate the merged
.envfile and start the services:./scripts/configure-domains.sh --base-domain <your-domain> --dev --apply docker compose up -d --build
-
Tail logs:
docker compose logs -f <service-name>
For local development, set these in config/secrets.dev.env:
POSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_DBJWT_PRIVATE_KEY,JWT_PUBLIC_KEY— RSA or EC keypair for service-to-service authBETA_ADMIN_EMAIL— admin account email (there is no default)- OAuth client secrets (
GOOGLE_OAUTH_CLIENT_SECRET,MICROSOFT_OAUTH_CLIENT_SECRET) if you want OAuth-based login RECAPTCHA_SECRET_KEYif you want the contact form
For running the sync service test suite:
TEST_DATABASE_URL(orDATABASE_URL) — postgres connection string for the test databaseTEST_SYNC_URL— URL of the sync service (default:http://localhost:3205)TEST_AUTH_URL— URL of the auth service (default:http://localhost:3201)
The tests throw at load time if required vars are missing.
If you fork this repo and want the Docker image build workflow (.github/workflows/build-images.yml) to succeed, configure:
Secrets:
DOCKER_REGISTRY_USERNAMEandDOCKER_REGISTRY_PASSWORDfor your registry
Variables:
DOCKER_REGISTRY— your registry URL (e.g.registry.example.comordocker.io)
- Lint and type-check pass for any service you touched
- Migrations are backwards-compatible when possible
- New environment variables documented in the README and in the relevant
secrets.*.env.exampletemplate - No credentials, private keys, or personal identifiers committed
- Commit messages follow the conventional format (
type(scope): subject)
See SECURITY.md. Do not file security reports as public issues.