diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3acad2d..13c75f6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -37,3 +37,10 @@ RouteForge is read-only by design. ## Do not add write operations without explicit design discussion Do not add write operations (registry writes, ROA creation, router deployment, or similar mutating workflows) without an explicit design discussion and maintainer approval. + + +## License of contributions + +By contributing to RouteForge, you agree that your contributions are licensed under the same license as the project: GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). + +Do not contribute code that you do not have the right to license under AGPL-3.0-or-later. diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..d05c949 --- /dev/null +++ b/NOTICE @@ -0,0 +1,5 @@ +RouteForge +Copyright (C) 2026 Norman Sens + +RouteForge is licensed under the GNU Affero General Public License v3.0 or later. +See LICENSE for details. diff --git a/README.md b/README.md index 6239c8d..3b59afb 100644 --- a/README.md +++ b/README.md @@ -236,4 +236,4 @@ npm run build ## License -This project is released under the [MIT License](LICENSE). +RouteForge is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index f950b6d..7902cfc 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,5 +1,14 @@ # Release Notes + +## Licensing + +RouteForge is now licensed under AGPL-3.0-or-later. + +The license choice reflects RouteForge's selfhosted-first and network-service nature and ensures that improvements to publicly hosted modified versions remain available to users. + +--- + ## v0.5.3-beta **Database Lifecycle & Migrations** diff --git a/backend/app/main.py b/backend/app/main.py index 9024359..01ca29c 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 478f9a0..1a6846f 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -2,6 +2,7 @@ name = "routeforge-backend" version = "0.5.3" description = "RouteForge backend" +license = "AGPL-3.0-or-later" requires-python = ">=3.12" dependencies = [ "fastapi>=0.115.0", diff --git a/frontend/package.json b/frontend/package.json index be1a9f4..3d672fb 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -2,6 +2,7 @@ "name": "routeforge-frontend", "version": "0.5.3", "private": true, + "license": "AGPL-3.0-or-later", "type": "module", "scripts": { "dev": "vite --host 0.0.0.0 --port 3000", diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx index 274fa9b..7c4da4d 100644 --- a/frontend/src/main.tsx +++ b/frontend/src/main.tsx @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later import React from 'react' import ReactDOM from 'react-dom/client' import App from './App'