FTStore now holds both halves of the product:
ios/ the swift app — the fork of claration/Feather, unchanged apart
from its new home
web/ FTStore Admin, formerly its own repository. serves the
dashboard at /admin, the ftstore.json feed and IPA downloads
app-repo.json and Images/ stay at the repo root on purpose: the former is
a published AltStore source whose raw.githubusercontent URL is what
installed copies resolve updates through, so moving it would break every
subscriber.
The admin server is renamed throughout: package ftstore-admin, images
ghcr.io/<owner>/ftstore-admin-{app,worker}, postgres role/db ftstore,
session cookie ftstore_session, temp dir /tmp/ftstore, backup type
ftstore-settings, outbound user-agent FTStoreAdmin. backups written under the old
name still import, and compose is pinned to name: ftstore so the
volume prefix does not follow the directory name.
apply-rebrand.sh gains a relocation step: upstream's tree is rooted at
the repo root while ours lives in ios/, so a merge drops Feather's files
next to ios/ and the script folds them in before renaming. it never
touches web/. still idempotent.
release tags are namespaced — v* for the app, web-v* for the server —
so a server release no longer triggers a macOS build or rewrites
app-repo.json. workflows are prefixed ios-/web- and path-filtered.
36 lines
975 B
TypeScript
36 lines
975 B
TypeScript
import type { NextConfig } from "next";
|
|
|
|
const nextConfig: NextConfig = {
|
|
output: "standalone",
|
|
serverExternalPackages: ["tdl", "prebuilt-tdlib"],
|
|
// The Database page was folded into the Library. Old bookmarks — and any
|
|
// script hitting the old API paths — keep working.
|
|
async redirects() {
|
|
return [
|
|
{ source: "/admin/database", destination: "/admin/library", permanent: true },
|
|
// The flat catalog moved one level down; the grouped listing owns
|
|
// /api/library now. Listed first so it wins over the wildcard below.
|
|
{
|
|
source: "/api/database",
|
|
destination: "/api/library/entries",
|
|
permanent: true,
|
|
},
|
|
{
|
|
source: "/api/database/:path*",
|
|
destination: "/api/library/:path*",
|
|
permanent: true,
|
|
},
|
|
];
|
|
},
|
|
images: {
|
|
remotePatterns: [
|
|
{
|
|
protocol: "https",
|
|
hostname: "is1-ssl.mzstatic.com",
|
|
},
|
|
],
|
|
},
|
|
};
|
|
|
|
export default nextConfig;
|