Enable CV endpoint at /cvapi

This commit is contained in:
svemagie
2026-03-08 06:36:12 +01:00
parent bcd0652538
commit a81180e8e9
4 changed files with 31 additions and 1 deletions
+7
View File
@@ -22,6 +22,7 @@
- GitHub activity + API: `/github` - GitHub activity + API: `/github`
- Funkwhale activity + API: `/funkwhale` - Funkwhale activity + API: `/funkwhale`
- Last.fm activity + API: `/lastfmapi` - Last.fm activity + API: `/lastfmapi`
- CV editor + API: `/cvapi`
## MongoDB ## MongoDB
@@ -77,6 +78,12 @@
- `LASTFM_USERNAME` - `LASTFM_USERNAME`
- If these variables are missing, the endpoints still exist but return empty activity until credentials are configured. - If these variables are missing, the endpoints still exist but return empty activity until credentials are configured.
## CV endpoint
- The CV endpoint is mounted at `/cvapi` to avoid conflicting with the public `/cv/` page on the frontend.
- Public JSON endpoints are available at `/cvapi/data.json` and `/cvapi/page.json`.
- No extra env vars are required for the plugin itself (it uses MongoDB + IndieKit auth).
## Startup script ## Startup script
- `start.sh` is intentionally ignored by Git (`.gitignore`) so server secrets are not committed. - `start.sh` is intentionally ignored by Git (`.gitignore`) so server secrets are not committed.
+4
View File
@@ -125,6 +125,7 @@ export default {
"@rmdes/indiekit-endpoint-conversations", "@rmdes/indiekit-endpoint-conversations",
"@rmdes/indiekit-endpoint-funkwhale", "@rmdes/indiekit-endpoint-funkwhale",
"@rmdes/indiekit-endpoint-lastfm", "@rmdes/indiekit-endpoint-lastfm",
"@rmdes/indiekit-endpoint-cv",
//"@rmdes/indiekit-endpoint-activitypub", //"@rmdes/indiekit-endpoint-activitypub",
], ],
"@indiekit/store-github": { "@indiekit/store-github": {
@@ -158,6 +159,9 @@ export default {
apiKey: lastfmApiKey, apiKey: lastfmApiKey,
username: lastfmUsername, username: lastfmUsername,
}, },
"@rmdes/indiekit-endpoint-cv": {
mountPath: "/cvapi",
},
"@rmdes/indiekit-endpoint-activitypub": { "@rmdes/indiekit-endpoint-activitypub": {
username: "blog.giersig.eu", username: "blog.giersig.eu",
}, },
+19 -1
View File
@@ -13,6 +13,7 @@
"@indiekit/indiekit": "^1.0.0-beta.25", "@indiekit/indiekit": "^1.0.0-beta.25",
"@indiekit/store-github": "^1.0.0-beta.25", "@indiekit/store-github": "^1.0.0-beta.25",
"@rmdes/indiekit-endpoint-conversations": "^2.1.6", "@rmdes/indiekit-endpoint-conversations": "^2.1.6",
"@rmdes/indiekit-endpoint-cv": "^1.0.24",
"@rmdes/indiekit-endpoint-funkwhale": "^1.0.11", "@rmdes/indiekit-endpoint-funkwhale": "^1.0.11",
"@rmdes/indiekit-endpoint-github": "^1.2.3", "@rmdes/indiekit-endpoint-github": "^1.2.3",
"@rmdes/indiekit-endpoint-lastfm": "^1.0.12", "@rmdes/indiekit-endpoint-lastfm": "^1.0.12",
@@ -1786,6 +1787,23 @@
"node": ">=20" "node": ">=20"
} }
}, },
"node_modules/@rmdes/indiekit-endpoint-cv": {
"version": "1.0.24",
"resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-cv/-/indiekit-endpoint-cv-1.0.24.tgz",
"integrity": "sha512-S6af420v6FYZspTMVr4yU6pjiyY+TszlcktMn3/Wpj4xW7vlFqGR/LC4RKhH0zRHI2A5koMVXVfl30bu1/POPw==",
"license": "MIT",
"dependencies": {
"@indiekit/error": "^1.0.0-beta.25",
"@indiekit/frontend": "^1.0.0-beta.25",
"express": "^5.0.0"
},
"engines": {
"node": ">=20"
},
"peerDependencies": {
"@indiekit/indiekit": ">=1.0.0-beta.25"
}
},
"node_modules/@rmdes/indiekit-endpoint-funkwhale": { "node_modules/@rmdes/indiekit-endpoint-funkwhale": {
"version": "1.0.11", "version": "1.0.11",
"resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-funkwhale/-/indiekit-endpoint-funkwhale-1.0.11.tgz", "resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-funkwhale/-/indiekit-endpoint-funkwhale-1.0.11.tgz",
@@ -5081,6 +5099,7 @@
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=12" "node": ">=12"
}, },
@@ -5590,7 +5609,6 @@
"resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz",
"integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"ip-address": "^10.0.1", "ip-address": "^10.0.1",
"smart-buffer": "^4.2.0" "smart-buffer": "^4.2.0"
+1
View File
@@ -25,6 +25,7 @@
"@indiekit/indiekit": "^1.0.0-beta.25", "@indiekit/indiekit": "^1.0.0-beta.25",
"@indiekit/store-github": "^1.0.0-beta.25", "@indiekit/store-github": "^1.0.0-beta.25",
"@rmdes/indiekit-endpoint-conversations": "^2.1.6", "@rmdes/indiekit-endpoint-conversations": "^2.1.6",
"@rmdes/indiekit-endpoint-cv": "^1.0.24",
"@rmdes/indiekit-endpoint-funkwhale": "^1.0.11", "@rmdes/indiekit-endpoint-funkwhale": "^1.0.11",
"@rmdes/indiekit-endpoint-github": "^1.2.3", "@rmdes/indiekit-endpoint-github": "^1.2.3",
"@rmdes/indiekit-endpoint-lastfm": "^1.0.12", "@rmdes/indiekit-endpoint-lastfm": "^1.0.12",