Disable Funkwhale endpoint — no longer hosted
Deploy Indiekit Server / deploy (push) Successful in 38s

Remove the @rmdes/indiekit-endpoint-funkwhale plugin, its config block,
the funkwhale-only env consts, the npm dependency, and the FUNKWHALE_*
docs/env-example rows. Patch-script guard specs self-skip when the
package is absent. Last.fm and other listening endpoints untouched.
This commit is contained in:
Sven
2026-06-14 11:15:41 +02:00
parent 77ec99ce28
commit ce2a7156ec
4 changed files with 2 additions and 35 deletions
-2
View File
@@ -24,8 +24,6 @@ LISTENING_CACHE_TTL=120000
LISTENING_SYNC_INTERVAL=180000 LISTENING_SYNC_INTERVAL=180000
# Optional per-source listening overrides (milliseconds) # Optional per-source listening overrides (milliseconds)
FUNKWHALE_CACHE_TTL=
FUNKWHALE_SYNC_INTERVAL=
LASTFM_CACHE_TTL= LASTFM_CACHE_TTL=
LASTFM_SYNC_INTERVAL= LASTFM_SYNC_INTERVAL=
+2 -5
View File
@@ -576,10 +576,10 @@ Three related issues in the Microsub reader's `detectProtocol()` and syndication
**`patch-microsub-feed-discovery.mjs`** **`patch-microsub-feed-discovery.mjs`**
Improves feed discovery in `fetchAndParseFeed`: when a bookmarked URL is an HTML page, falls back to `<link rel="alternate">` discovery and a broader set of candidate paths rather than only the fixed short list. Improves feed discovery in `fetchAndParseFeed`: when a bookmarked URL is an HTML page, falls back to `<link rel="alternate">` discovery and a broader set of candidate paths rather than only the fixed short list.
### Listening (Funkwhale / Last.fm) ### Listening (Last.fm)
**`patch-listening-endpoint-runtime-guards.mjs`** **`patch-listening-endpoint-runtime-guards.mjs`**
Applies several guards to the listening endpoints: scopes Funkwhale history fetches to the authenticated user (`scope: "me"`) rather than the entire instance, and adds null-safety for missing credentials so the server doesn't crash when these services aren't configured. Applies several guards to the listening endpoints and adds null-safety for missing credentials so the server doesn't crash when these services aren't configured. (Funkwhale is no longer hosted; its legacy guard specs remain in the patch script but self-skip when the endpoint package is absent.)
### Webmention sender ### Webmention sender
@@ -841,9 +841,6 @@ Environment variables are loaded from `.env` via `dotenv`. Copy `.env.example` t
| `YOUTUBE_OAUTH_CLIENT_SECRET` | — | YouTube OAuth client secret | | `YOUTUBE_OAUTH_CLIENT_SECRET` | — | YouTube OAuth client secret |
| `LASTFM_API_KEY` | — | Last.fm API key | | `LASTFM_API_KEY` | — | Last.fm API key |
| `LASTFM_USERNAME` | — | Last.fm username | | `LASTFM_USERNAME` | — | Last.fm username |
| `FUNKWHALE_INSTANCE` | — | Funkwhale instance URL |
| `FUNKWHALE_USERNAME` | — | Funkwhale username |
| `FUNKWHALE_TOKEN` | — | Funkwhale API token |
--- ---
-27
View File
@@ -35,9 +35,6 @@ const githubActivityToken =
process.env.GH_ACTIVITY_TOKEN || process.env.GITHUB_TOKEN; process.env.GH_ACTIVITY_TOKEN || process.env.GITHUB_TOKEN;
const giteaBaseUrl = const giteaBaseUrl =
process.env.GITEA_BASE_URL || "http://10.100.0.90:3000/api/v1/"; process.env.GITEA_BASE_URL || "http://10.100.0.90:3000/api/v1/";
const funkwhaleInstance = process.env.FUNKWHALE_INSTANCE;
const funkwhaleUsername = process.env.FUNKWHALE_USERNAME;
const funkwhaleToken = process.env.FUNKWHALE_TOKEN;
const lastfmApiKey = process.env.LASTFM_API_KEY; const lastfmApiKey = process.env.LASTFM_API_KEY;
const lastfmUsername = process.env.LASTFM_USERNAME; const lastfmUsername = process.env.LASTFM_USERNAME;
const listeningCacheTtlRaw = Number.parseInt( const listeningCacheTtlRaw = Number.parseInt(
@@ -54,20 +51,6 @@ const listeningSyncIntervalRaw = Number.parseInt(
const listeningSyncInterval = Number.isFinite(listeningSyncIntervalRaw) const listeningSyncInterval = Number.isFinite(listeningSyncIntervalRaw)
? Math.max(60000, listeningSyncIntervalRaw) ? Math.max(60000, listeningSyncIntervalRaw)
: 180000; : 180000;
const funkwhaleCacheTtlRaw = Number.parseInt(
process.env.FUNKWHALE_CACHE_TTL || String(listeningCacheTtl),
10,
);
const funkwhaleCacheTtl = Number.isFinite(funkwhaleCacheTtlRaw)
? Math.max(30000, funkwhaleCacheTtlRaw)
: listeningCacheTtl;
const funkwhaleSyncIntervalRaw = Number.parseInt(
process.env.FUNKWHALE_SYNC_INTERVAL || String(listeningSyncInterval),
10,
);
const funkwhaleSyncInterval = Number.isFinite(funkwhaleSyncIntervalRaw)
? Math.max(60000, funkwhaleSyncIntervalRaw)
: listeningSyncInterval;
const lastfmCacheTtlRaw = Number.parseInt( const lastfmCacheTtlRaw = Number.parseInt(
process.env.LASTFM_CACHE_TTL || String(listeningCacheTtl), process.env.LASTFM_CACHE_TTL || String(listeningCacheTtl),
10, 10,
@@ -304,7 +287,6 @@ export default {
"@rmdes/indiekit-endpoint-cv", "@rmdes/indiekit-endpoint-cv",
"@rmdes/indiekit-endpoint-conversations", "@rmdes/indiekit-endpoint-conversations",
"@rmdes/indiekit-endpoint-comments", "@rmdes/indiekit-endpoint-comments",
"@rmdes/indiekit-endpoint-funkwhale",
"@rmdes/indiekit-endpoint-lastfm", "@rmdes/indiekit-endpoint-lastfm",
"@rmdes/indiekit-endpoint-podroll", "@rmdes/indiekit-endpoint-podroll",
"@rmdes/indiekit-endpoint-activitypub", "@rmdes/indiekit-endpoint-activitypub",
@@ -369,15 +351,6 @@ export default {
}, },
maxLength: commentsMaxLength, maxLength: commentsMaxLength,
}, },
"@rmdes/indiekit-endpoint-funkwhale": {
mountPath: "/funkwhale",
instanceUrl: funkwhaleInstance,
username: funkwhaleUsername,
token: funkwhaleToken,
cacheTtl: funkwhaleCacheTtl,
syncInterval: funkwhaleSyncInterval,
mediaInternalUrl: "http://10.100.0.10:8091",
},
"@rmdes/indiekit-endpoint-lastfm": { "@rmdes/indiekit-endpoint-lastfm": {
mountPath: "/lastfmapi", mountPath: "/lastfmapi",
apiKey: lastfmApiKey, apiKey: lastfmApiKey,
-1
View File
@@ -35,7 +35,6 @@
"@rmdes/indiekit-endpoint-comments": "^1.0.11", "@rmdes/indiekit-endpoint-comments": "^1.0.11",
"@rmdes/indiekit-endpoint-conversations": "^2.2.0", "@rmdes/indiekit-endpoint-conversations": "^2.2.0",
"@rmdes/indiekit-endpoint-cv": "^1.0.24", "@rmdes/indiekit-endpoint-cv": "^1.0.24",
"@rmdes/indiekit-endpoint-funkwhale": "^1.0.11",
"@rmdes/indiekit-endpoint-github": "^1.2.3", "@rmdes/indiekit-endpoint-github": "^1.2.3",
"@rmdes/indiekit-endpoint-homepage": "^1.0.22", "@rmdes/indiekit-endpoint-homepage": "^1.0.22",
"@rmdes/indiekit-endpoint-lastfm": "^1.0.12", "@rmdes/indiekit-endpoint-lastfm": "^1.0.12",