Add Privacy Policy + Terms of Service pages, fix Footer links
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Privacy Policy — DashCaddy',
|
||||
description: 'DashCaddy privacy policy. We collect nothing. Your data never leaves your server.',
|
||||
};
|
||||
|
||||
export default function PrivacyPage() {
|
||||
return (
|
||||
<div className="min-h-screen bg-surface-950 text-surface-100">
|
||||
<div className="mx-auto max-w-3xl px-4 sm:px-6 lg:px-8 py-20">
|
||||
<h1 className="text-4xl font-bold mb-8 text-white">Privacy Policy</h1>
|
||||
<p className="text-surface-400 mb-8">Last updated: August 2026</p>
|
||||
|
||||
<div className="prose prose-invert max-w-none space-y-6 text-surface-300 leading-relaxed">
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">The Short Version</h2>
|
||||
<p className="text-lg">
|
||||
<strong className="text-brand-400">We collect nothing. We track nothing. Your data never leaves your server.</strong>
|
||||
</p>
|
||||
<p>
|
||||
DashCaddy is self-hosted software. It runs entirely on your hardware. We have no servers in the middle,
|
||||
no databases storing your information, and no analytics watching what you do. We literally cannot see your data.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">What We Don't Collect</h2>
|
||||
<ul className="space-y-2">
|
||||
<li>✅ No telemetry or usage analytics</li>
|
||||
<li>✅ No error reporting sent to us (error tracking is opt-in and disabled by default)</li>
|
||||
<li>✅ No tracking pixels, cookies, or fingerprinting</li>
|
||||
<li>✅ No account creation required (TOTP-based auth, stored locally)</li>
|
||||
<li>✅ No data sold, shared, or transmitted to third parties</li>
|
||||
<li>✅ No advertising networks</li>
|
||||
<li>✅ No "phone home" functionality</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">What Lives on Your Server</h2>
|
||||
<p>
|
||||
All of your data — service configurations, credentials, SSL certificates, DNS records, backups,
|
||||
and logs — stays on your machine. DashCaddy stores this in a local data directory on your server.
|
||||
It is never transmitted to us or any third party.
|
||||
</p>
|
||||
<p>
|
||||
If you uninstall DashCaddy, you can delete the entire data directory. Nothing remains on external systems
|
||||
because nothing was ever sent there.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">VM Sandboxing & Isolation</h2>
|
||||
<p>
|
||||
DashCaddy creates a bounded virtual disk (WSL2 on Windows, Lima on macOS, loopback ext4 on Linux)
|
||||
that physically cannot exceed the storage limit you choose. Uninstalling DashCaddy removes the entire
|
||||
virtual machine and disk image. Zero data leakage.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">License Activation (Premium Only)</h2>
|
||||
<p>
|
||||
If you purchase a Premium license, the license key is validated locally. The initial activation
|
||||
optionally contacts our license server to verify the key, but ongoing operation works fully offline.
|
||||
No usage data is transmitted during validation — only the license key itself.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">Your California Privacy Rights (CCPA)</h2>
|
||||
<p>
|
||||
If you are a California resident, you have rights under the California Consumer Privacy Act (CCPA):
|
||||
</p>
|
||||
<ul className="space-y-2">
|
||||
<li><strong>Right to Know:</strong> You can request what personal information we collect about you. (Answer: none.)</li>
|
||||
<li><strong>Right to Delete:</strong> You can request deletion of your personal information. (There's nothing to delete — it's all on your server.)</li>
|
||||
<li><strong>Right to Opt-Out:</strong> You can opt out of the sale of your personal information. (We don't sell anything. There's nothing to opt out of.)</li>
|
||||
<li><strong>Right to Non-Discrimination:</strong> You will not be treated differently for exercising these rights.</li>
|
||||
</ul>
|
||||
<p className="mt-4">
|
||||
To exercise any of these rights, contact us at{' '}
|
||||
<a href="mailto:support@dashcaddy.net" className="text-brand-400 hover:text-brand-300 font-medium">
|
||||
support@dashcaddy.net
|
||||
</a>. We will respond within 30 days.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">Children's Privacy</h2>
|
||||
<p>
|
||||
DashCaddy does not knowingly collect any information from children under 13. Since we collect no
|
||||
information from anyone, this is inherently satisfied.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">Third-Party Services</h2>
|
||||
<p>
|
||||
DashCaddy deploys third-party applications (Docker containers) at your direction. These applications
|
||||
are governed by their own privacy policies. DashCaddy itself does not integrate with or transmit data
|
||||
to any third-party service.
|
||||
</p>
|
||||
<p>
|
||||
For payments, we use Stripe. Stripe's privacy policy applies to payment processing. We never see
|
||||
or store your credit card information.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">Changes to This Policy</h2>
|
||||
<p>
|
||||
If we ever change our privacy practices, we'll update this page. But our core commitment won't change:
|
||||
DashCaddy is self-hosted. Your data stays yours.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">Contact</h2>
|
||||
<p>
|
||||
Questions about privacy? Email us at{' '}
|
||||
<a href="mailto:support@dashcaddy.net" className="text-brand-400 hover:text-brand-300 font-medium">
|
||||
support@dashcaddy.net
|
||||
</a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Terms of Service — DashCaddy',
|
||||
description: 'DashCaddy terms of service.',
|
||||
};
|
||||
|
||||
export default function TermsPage() {
|
||||
return (
|
||||
<div className="min-h-screen bg-surface-950 text-surface-100">
|
||||
<div className="mx-auto max-w-3xl px-4 sm:px-6 lg:px-8 py-20">
|
||||
<h1 className="text-4xl font-bold mb-8 text-white">Terms of Service</h1>
|
||||
<p className="text-surface-400 mb-8">Last updated: August 2026</p>
|
||||
|
||||
<div className="prose prose-invert max-w-none space-y-6 text-surface-300 leading-relaxed">
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">1. Acceptance of Terms</h2>
|
||||
<p>By installing and using DashCaddy, you agree to these terms. If you don't agree, don't use it.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">2. What DashCaddy Is</h2>
|
||||
<p>
|
||||
DashCaddy is self-hosted software that helps you deploy and manage Docker containers, reverse proxy
|
||||
configuration, SSL certificates, and DNS records. It runs entirely on your hardware.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">3. User Responsibility</h2>
|
||||
<p>
|
||||
You are solely responsible for what you deploy using DashCaddy. DashCaddy provides deployment tools —
|
||||
it does not monitor, screen, or control what applications you choose to run.
|
||||
</p>
|
||||
<p className="mt-4">
|
||||
<strong className="text-brand-400">You must comply with all applicable laws, including copyright and intellectual property laws.</strong>
|
||||
Always stream and access content that you own or have legal rights to. DashCaddy does not condone or
|
||||
support piracy of any kind.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">4. No Warranty</h2>
|
||||
<p>
|
||||
DashCaddy is provided "as is" without warranty of any kind. We are not liable for data loss,
|
||||
service interruptions, security issues, or any damages arising from the use of DashCaddy.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">5. Premium License</h2>
|
||||
<p>
|
||||
Premium features require a paid license. Licenses are validated locally. Refunds are available within
|
||||
14 days of purchase. Contact support@dashcaddy.net.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">6. Privacy</h2>
|
||||
<p>
|
||||
We collect no data. See our{' '}
|
||||
<a href="/legal/privacy" className="text-brand-400 hover:text-brand-300 font-medium">Privacy Policy</a>{' '}
|
||||
for details.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">7. Contact</h2>
|
||||
<p>
|
||||
Questions? Email{' '}
|
||||
<a href="mailto:support@dashcaddy.net" className="text-brand-400 hover:text-brand-300 font-medium">
|
||||
support@dashcaddy.net
|
||||
</a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -38,7 +38,7 @@ export default function Footer() {
|
||||
links: [
|
||||
{ label: 'Contact', href: 'mailto:support@dashcaddy.net' },
|
||||
{ label: 'Docs', href: '/docs' },
|
||||
{ label: 'Privacy Policy', href: '#' },
|
||||
{ label: 'Privacy Policy', href: '/legal/privacy' },
|
||||
{ label: 'Terms of Service', href: '/legal/terms' },
|
||||
],
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user