Close OSS self-host gaps: in-repo API docs, legal notes, and packaging.

Add MIT license and docs/api, strip SaaS status/admin remnants from robots and footer, align env/compose/README with payment-free product truth.
This commit is contained in:
Atakan Doğan Özban
2026-08-03 07:36:08 +02:00
parent 1fcae33ca3
commit 54bbf8b574
21 changed files with 594 additions and 38 deletions
+2 -1
View File
@@ -58,7 +58,8 @@ export function ApiKeySettings({ initialStatus, initialRateLimit }: Props) {
return (
<div className="space-y-4">
<p className="text-sm text-gray-400">
Use the REST API to upload files and create video jobs programmatically.
Use the REST API to upload files and create video jobs programmatically. There are no
billing endpoints in this self-hosted edition.
</p>
<p className="text-xs text-gray-500">
Rate limit: {initialRateLimit.limit} requests per {initialRateLimit.windowSeconds} seconds.
+8 -5
View File
@@ -1,5 +1,6 @@
import Link from "next/link";
import type { ReactNode } from "react";
import { DOCS_URL, GITEA_URL } from "@/lib/plans";
function LegalLink({
href,
@@ -33,7 +34,7 @@ export function LegalFooter() {
return (
<footer className="mt-auto w-full border-t border-gray-800 bg-black/40 py-8 text-xs text-gray-500">
<div className="mx-auto flex max-w-4xl flex-wrap items-center justify-center gap-x-4 gap-y-2 px-6 md:justify-start">
<span>© {year} Songs2VID. All rights reserved.</span>
<span>© {year} Songs2VID. MIT licensed.</span>
<span aria-hidden="true" className="hidden sm:inline">
|
</span>
@@ -50,16 +51,18 @@ export function LegalFooter() {
<span aria-hidden="true" className="hidden sm:inline">
|
</span>
<LegalLink href="/terms">Terms of Service</LegalLink>
<LegalLink href="/terms">Terms of Use</LegalLink>
<span aria-hidden="true" className="hidden sm:inline">
|
</span>
<LegalLink href="https://docs.songs2vid.com" external>Documentation</LegalLink>
<LegalLink href={DOCS_URL} external>
Documentation
</LegalLink>
<span aria-hidden="true" className="hidden sm:inline">
|
</span>
<LegalLink href="https://status.atakanozban.com/status/2" external>
Service Status
<LegalLink href={GITEA_URL} external>
Source
</LegalLink>
</div>
</footer>
+2 -1
View File
@@ -2,6 +2,7 @@ import Link from "next/link";
import type { ReactNode } from "react";
import { Logo } from "@/components/Logo";
import { LEGAL_LAST_UPDATED } from "@/lib/legal/constants";
import { DOCS_URL } from "@/lib/plans";
type Props = {
title: string;
@@ -45,7 +46,7 @@ export function LegalPageLayout({ title, description, children }: Props) {
Terms
</Link>
<a
href="https://docs.songs2vid.com"
href={DOCS_URL}
target="_blank"
rel="noopener noreferrer"
className="hover:text-gray-300"