forked from dotfur/dotfur.org
Created dotfur.org and dot.fur site
Signed-off-by: caramel <caramel@caramel.horse>
This commit is contained in:
24
.gitignore
vendored
Normal file
24
.gitignore
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
# build output
|
||||
dist/
|
||||
# generated types
|
||||
.astro/
|
||||
|
||||
# dependencies
|
||||
node_modules/
|
||||
|
||||
# logs
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
|
||||
# environment variables
|
||||
.env
|
||||
.env.production
|
||||
|
||||
# macOS-specific files
|
||||
.DS_Store
|
||||
|
||||
# jetbrains setting folder
|
||||
.idea/
|
||||
4
.vscode/extensions.json
vendored
Normal file
4
.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"recommendations": ["astro-build.astro-vscode"],
|
||||
"unwantedRecommendations": []
|
||||
}
|
||||
11
.vscode/launch.json
vendored
Normal file
11
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"command": "./node_modules/.bin/astro dev",
|
||||
"name": "Development server",
|
||||
"request": "launch",
|
||||
"type": "node-terminal"
|
||||
}
|
||||
]
|
||||
}
|
||||
23
README.md
Normal file
23
README.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# DotFur.org / dot.fur
|
||||
|
||||
## Project Structure
|
||||
|
||||
|
||||
Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
|
||||
|
||||
`src/components/`, is were to put Astro components.
|
||||
|
||||
Any static assets, like images, can be placed in the `public/` directory.
|
||||
|
||||
## Commands
|
||||
|
||||
All commands are run from the root of the project, from a terminal:
|
||||
|
||||
| Command | Action |
|
||||
| :------------------------ | :----------------------------------------------- |
|
||||
| `npm install` | Installs dependencies |
|
||||
| `npm run dev` | Starts local dev server at `localhost:4321` |
|
||||
| `npm run build` | Build your production site to `./dist/` |
|
||||
| `npm run preview` | Preview your build locally, before deploying |
|
||||
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
|
||||
| `npm run astro -- --help` | Get help using the Astro CLI |
|
||||
8
astro.config.mjs
Normal file
8
astro.config.mjs
Normal file
@@ -0,0 +1,8 @@
|
||||
import { defineConfig } from 'astro/config';
|
||||
|
||||
import tailwind from "@astrojs/tailwind";
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
integrations: [tailwind()]
|
||||
});
|
||||
6084
package-lock.json
generated
Normal file
6084
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
19
package.json
Normal file
19
package.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "basics",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
"dev": "astro dev",
|
||||
"start": "astro dev",
|
||||
"build": "astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/tailwind": "^5.1.0",
|
||||
"astro": "^4.13.3",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"postcss": "^8.4.41",
|
||||
"tailwindcss": "^3.4.10"
|
||||
}
|
||||
}
|
||||
BIN
public/backdrop.png
Normal file
BIN
public/backdrop.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.4 MiB |
9
public/favicon.svg
Normal file
9
public/favicon.svg
Normal file
@@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
|
||||
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
|
||||
<style>
|
||||
path { fill: #000; }
|
||||
@media (prefers-color-scheme: dark) {
|
||||
path { fill: #FFF; }
|
||||
}
|
||||
</style>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 749 B |
BIN
public/logo.png
Normal file
BIN
public/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.4 KiB |
15
src/components/currentNavbar.astro
Normal file
15
src/components/currentNavbar.astro
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
// navbar.astro
|
||||
const logoUrl = '../public/logo.png'; // Replace with your logo URL
|
||||
const isIndexPage = Astro.url.pathname === '/'; // Detect if on the index page
|
||||
---
|
||||
|
||||
<nav class="bg-gray-800 text-white flex items-center justify-between p-4">
|
||||
<a href="/"><div class="flex-shrink-0 h-12 bg-cover bg-no-repeat bg-center" style={`background-image: url(${logoUrl}); background-size: contain; width: 150px;`}></div></a>
|
||||
|
||||
<div class="flex space-x-4">
|
||||
<a href="/dns" class="hover:underline">DNS</a>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</script>
|
||||
32
src/components/navbar.astro
Normal file
32
src/components/navbar.astro
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
// navbar.astro
|
||||
const logoUrl = '../public/logo.png'; // Replace with your logo URL
|
||||
const isIndexPage = Astro.url.pathname === '/'; // Detect if on the index page
|
||||
---
|
||||
|
||||
<nav class="bg-gray-800 text-white flex items-center justify-between p-4">
|
||||
<div class="flex-shrink-0 h-12 bg-cover bg-no-repeat bg-center" style={`background-image: url(${logoUrl}); background-size: contain; width: 150px;`}></div>
|
||||
|
||||
<div class={`flex-grow flex items-center justify-center space-x-4 ${isIndexPage ? 'hidden' : ''}`}>
|
||||
<input id="domain-input" type="text" placeholder="Register .fur domain" class="p-2 border border-gray-600 rounded-lg bg-gray-900 text-white placeholder-gray-400 flex-grow" />
|
||||
<button onclick="registerDomain()" class="bg-blue-900 text-white px-4 py-2 rounded-lg hover:bg-blue-950 transition">Register</button>
|
||||
</div>
|
||||
|
||||
<div class="flex space-x-4">
|
||||
<a href="/register" class="hover:underline">Register</a>
|
||||
<a href="/dns" class="hover:underline">DNS</a>
|
||||
<a href="/ssl" class="hover:underline">SSL</a>
|
||||
<a href="/about" class="hover:underline">About</a>
|
||||
<a href="/account" class="hover:underline">Account</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<script type="text/javascript">
|
||||
function registerDomain() {
|
||||
const input = document.getElementById('domain-input');
|
||||
const domainName = encodeURIComponent(input.value.trim());
|
||||
if (domainName) {
|
||||
window.location.href = `/register?name=${domainName}`;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
1
src/env.d.ts
vendored
Normal file
1
src/env.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/// <reference types="astro/client" />
|
||||
18
src/layouts/---beta-coming-soon-layout.astro
Normal file
18
src/layouts/---beta-coming-soon-layout.astro
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
// layout.astro
|
||||
import Navbar from '../components/navbar.astro';
|
||||
import '../styles/global.css'; // Import the Tailwind CSS file
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>DotFur</title>
|
||||
</head>
|
||||
<body class="bg-gray-700">
|
||||
<Navbar />
|
||||
<slot />
|
||||
</body>
|
||||
</html>
|
||||
18
src/layouts/layout.astro
Normal file
18
src/layouts/layout.astro
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
// layout.astro
|
||||
import Navbar from '../components/currentNavbar.astro';
|
||||
import '../styles/global.css'; // Import the Tailwind CSS file
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>DotFur</title>
|
||||
</head>
|
||||
<body class="bg-gray-700">
|
||||
<Navbar />
|
||||
<slot />
|
||||
</body>
|
||||
</html>
|
||||
61
src/pages/---beta-coming-soon.astro
Normal file
61
src/pages/---beta-coming-soon.astro
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
// index.astro
|
||||
import Layout from '../layouts/layout.astro';
|
||||
---
|
||||
|
||||
<Layout>
|
||||
<div class="mt-24 mx-auto max-w-4xl pb-24 px-4">
|
||||
<div class="text-gray-200 text-center">
|
||||
<h1 class="text-6xl font-bold text-gray-200 mb-10">Register your .fur domain today!</h1>
|
||||
<div class="w-full max-w-4xl flex mx-auto items-center justify-center space-x-4 relative">
|
||||
<div class="p-0.5 w-full mr-14 max-w-4xl space-x-4 bg-gradient-to-r from-purple-500 via-pink-500 to-amber-500 rounded-lg shadow-inner">
|
||||
<input id="domain-input" type="text" placeholder="Register .fur domain" class="p-2 border w-full border-gray-600 rounded-lg bg-gray-900 text-white placeholder-gray-400 flex-grow z-10 relative" />
|
||||
</div>
|
||||
<button onclick="registerDomain()" class=" bg-gradient-to-r from-amber-500 to-orange-400 text-gray-900 pl-4 pr-2 pt-2.5 pb-3 rounded-r-lg hover:bg-purple-600 transition absolute -right-4 z-0">Register</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relative w-full py-16">
|
||||
<div class="absolute inset-0 bg-cover bg-center" style="filter: blur(2px);"></div>
|
||||
<div class="relative z-10 mx-auto max-w-4xl text-center text-gray-200">
|
||||
<h2 class="text-4xl font-bold mb-12 text-gray-200">Discover the benefits of a .fur domain!</h2>
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-8 px-4">
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 bg-gradient-to-r from-purple-500 to-pink-500 inline-block text-transparent bg-clip-text">Benefit One</h3>
|
||||
<p class="text-gray-300">By registering a .fur domain, you're making yourself known.</p>
|
||||
</div>
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 bg-gradient-to-r from-pink-500 to-orange-400 inline-block text-transparent bg-clip-text">Benefit Two</h3>
|
||||
<p class="text-gray-300">Example paragraph about the second benefit of a .fur domain. This section provides additional information.</p>
|
||||
</div>
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 bg-gradient-to-r from-orange-500 to-amber-500 inline-block text-transparent bg-clip-text">Benefit Three</h3>
|
||||
<p class="text-gray-300">Example paragraph about the third benefit of a .fur domain. Here you highlight another positive aspect.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="bg-gray-800 text-gray-400 py-6">
|
||||
<div class="mx-auto max-w-4xl text-center">
|
||||
<div class="mb-4">
|
||||
<a href="/terms-of-service" class="hover:underline mx-2">Terms of Service</a>
|
||||
<a href="/privacy-policy" class="hover:underline mx-2">Privacy Policy</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="https://discord.gg/E3Wt94yRSD" class="hover:underline mx-2">Discord</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script type="text/javascript">
|
||||
function registerDomain() {
|
||||
const input = document.getElementById('domain-input');
|
||||
const domainName = encodeURIComponent(input.value.trim());
|
||||
if (domainName) {
|
||||
window.location.href = `/register?name=${domainName}`;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</Layout>
|
||||
110
src/pages/dns.astro
Normal file
110
src/pages/dns.astro
Normal file
@@ -0,0 +1,110 @@
|
||||
---
|
||||
// index.astro
|
||||
import Layout from '../layouts/layout.astro';
|
||||
---
|
||||
|
||||
<Layout>
|
||||
<div class="mt-24 mx-auto max-w-4xl px-4">
|
||||
<div class="text-gray-200 text-center">
|
||||
<h1 class="text-6xl font-bold text-gray-200 mb-10">DNS Guide for .fur</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="relative w-full py-6">
|
||||
<div class="relative mx-auto max-w-4xl text-center text-gray-200">
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-8">
|
||||
<div class="bg-gray-900 text-center w-96 mx-auto p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 bg-gradient-to-r from-pink-500 to-orange-400 inline-block text-transparent bg-clip-text">.fur DNS Servers</h3>
|
||||
<div class="p-0.5 w-full mr-14 max-w-4xl space-x-4 bg-gradient-to-r from-purple-500 via-pink-500 to-amber-500 rounded-lg shadow-inner">
|
||||
<p id="domain-input" class="p-2 border w-full border-gray-600 rounded-lg bg-gray-900 text-white placeholder-gray-400 text-2xl font-bold flex-grow z-10 relative">165.140.127.67</p>
|
||||
</div>
|
||||
<div class="p-0.5 mt-4 w-full mr-14 max-w-4xl space-x-4 bg-gradient-to-r from-purple-500 via-pink-500 to-amber-500 rounded-lg shadow-inner">
|
||||
<p id="domain-input" class="p-2 border w-full border-gray-600 rounded-lg bg-gray-900 text-white placeholder-gray-400 text-2xl font-bold flex-grow z-10 relative">128.254.227.250</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg-gray-900 text-center w-96 mx-auto p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 bg-gradient-to-r from-pink-500 to-orange-400 inline-block text-transparent bg-clip-text">.fur SSL Certificates</h3>
|
||||
<div class="p-0.5 w-full mr-14 max-w-4xl space-x-4 bg-blue-950 rounded-lg shadow-inner">
|
||||
<a href=""><p id="domain-input" class="p-2 border w-full border-gray-600 rounded-lg bg-blue-900 text-slate-900 placeholder-gray-400 text-2xl font-bold flex-grow z-10 relative">https://ssl.fur/ [WIP]</p></a>
|
||||
</div>
|
||||
<div class="p-0.5 mt-4 w-full mr-14 max-w-4xl space-x-4 bg-blue-950 rounded-lg shadow-inner">
|
||||
<a href="https://ssl.null.fur"><p id="domain-input" class="p-2 border w-full border-gray-600 rounded-lg bg-blue-900 text-slate-100 placeholder-gray-400 text-2xl font-bold flex-grow z-10 relative">https://ssl.null.fur/</p></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relative w-full py-3">
|
||||
<div class="absolute inset-0 bg-cover bg-center" style="filter: blur(2px);"></div>
|
||||
<div class="relative z-10 mx-auto max-w-4xl text-center text-gray-200">
|
||||
<h2 class="text-4xl font-bold mb-12 text-gray-200">Updating your DNS Settings</h2>
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-8 px-4">
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 bg-gradient-to-r from-purple-500 to-pink-500 inline-block text-transparent bg-clip-text">Windows</h3>
|
||||
<p class="text-gray-300">Open your Settings, and navigate to <strong>Network & Internet</strong><br/>
|
||||
Find and open your <strong>“Ethernet”</strong> or <strong>“Wireless”</strong> settings, depending on which you’re using.<br/>
|
||||
Locate <strong>IPv4 DNS Servers</strong>, and edit them with the above values. You can find our IPv6 ones here.<br/>
|
||||
Apply any changes and close your settings.<br/>
|
||||
You can test your settings with <strong><a href="https://dot.fur/">https://dot.fur/</a></strong></p>
|
||||
</div>
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 bg-gradient-to-r from-pink-500 to-orange-400 inline-block text-transparent bg-clip-text">MacOS</h3>
|
||||
<p class="text-gray-300">Open your <strong>System Preferences</strong>, and navigate to <strong>Network</strong>.<br/>Select the active network, usually highlighted in blue, and click <strong>Advanced</strong>.<br/>Find <strong>DNS</strong> at the top and press the <strong>+</strong> to add a server, removing the rest.<br/>Apply and test your settings.</p>
|
||||
</div>
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 bg-gradient-to-r from-orange-500 to-amber-500 inline-block text-transparent bg-clip-text">Linux</h3>
|
||||
<p class="text-gray-300">Google the instructions for your specific distro and networking daemon, as these instructions vary vastly.<br/>Generally speaking though, most systems will have an <br/><strong>/etc/resolv.conf</strong> file.<br/>Modify the <strong>nameserver</strong> values in it, save, and test your config.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="relative mt-14 mb-5 z-10 mx-auto max-w-4xl text-center text-gray-200">
|
||||
<h2 class="text-4xl font-bold text-gray-200">Configure SSL for HTTPS</h2>
|
||||
<div class="m-4">
|
||||
<div class="p-3 bg-indigo-500 border-l-4 border-indigo-500 rounded-lg">
|
||||
<div class="flex flex-col items-center">
|
||||
<h3 class="text-slate-100 font-bold">Read before continuing!</h3>
|
||||
<p class="text-slate-100 font-medium">Before continuing with this SSL guide, please scroll up and choose an SSL certiciate provider (ideally both) and download their certificates.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-8 px-4">
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 bg-gradient-to-r from-purple-500 to-pink-500 inline-block text-transparent bg-clip-text">Windows</h3>
|
||||
<p class="text-gray-300">Download the CA certificate file provided by the authority.<br/> Once downloaded, <strong>double-click</strong> the file to open it, then select the <strong>Install Certificate</strong> option.<br/>Choose to place the certificate in the <strong>Trusted Root Certification Authorities</strong> store, and follow the prompts to complete the installation.</p>
|
||||
</div>
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 bg-gradient-to-r from-pink-500 to-orange-400 inline-block text-transparent bg-clip-text">MacOS</h3>
|
||||
<p class="text-gray-300">Download the CA certificate file provided by the authority.<br/><strong>Open the file</strong>, which will launch the <strong>Keychain Access</strong> application.<br/>In the dialog that appears, select <strong>System</strong> as the destination keychain, then click <strong>Add</strong>.<br/>After adding the certificate, <strong>right-click</strong> on it within Keychain Access and choose <strong>Get Info</strong>.<br/>Under the <strong>Trust</strong> section, set "When using this certificate" to </strong>Always Trust</strong>.</p>
|
||||
</div>
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 bg-gradient-to-r from-orange-500 to-amber-500 inline-block text-transparent bg-clip-text">Linux</h3>
|
||||
<p class="text-gray-300">Google the instructions for your specific distro and networking daemon, as these instructions vary vastly.<br/>Generally speaking though, you should copy the certificate to <strong>/usr/local/share/ca-certificates/</strong> (Debian-based systems) or <strong>/etc/pki/ca-trust/source/anchors/</strong> (Red Hat-based systems).<br/>After copying, update the certificate store by running <strong>sudo update-ca-certificates</strong> (Debian-based) or <strong>sudo update-ca-trust</strong> (Red Hat-based).</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="bg-gray-800 text-gray-400 py-6">
|
||||
<div class="mx-auto max-w-4xl text-center">
|
||||
<div class="mb-4">
|
||||
<a href="/terms-of-service" class="hover:underline mx-2">Terms of Service</a>
|
||||
<a href="/privacy" class="hover:underline mx-2">Privacy Policy</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="https://discord.gg/E3Wt94yRSD" class="hover:underline mx-2">Discord</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script type="text/javascript">
|
||||
function registerDomain() {
|
||||
const input = document.getElementById('domain-input');
|
||||
const domainName = encodeURIComponent(input.value.trim());
|
||||
if (domainName) {
|
||||
window.location.href = `/register?name=${domainName}`;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</Layout>
|
||||
81
src/pages/index.astro
Normal file
81
src/pages/index.astro
Normal file
@@ -0,0 +1,81 @@
|
||||
---
|
||||
// index.astro
|
||||
import Layout from '../layouts/layout.astro';
|
||||
---
|
||||
|
||||
<Layout>
|
||||
<div class="mt-24 mx-auto max-w-4xl px-4">
|
||||
<div class="text-gray-200 text-center">
|
||||
<h1 class="text-6xl font-bold text-gray-200 mb-10">Resolve .fur Domains</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-gray-900 text-center w-96 mx-auto p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 bg-gradient-to-r from-pink-500 to-orange-400 inline-block text-transparent bg-clip-text">.fur DNS Servers</h3>
|
||||
<div class="p-0.5 w-full mr-14 max-w-4xl space-x-4 bg-gradient-to-r from-purple-500 via-pink-500 to-amber-500 rounded-lg shadow-inner">
|
||||
<p id="domain-input" class="p-2 border w-full border-gray-600 rounded-lg bg-gray-900 text-white placeholder-gray-400 text-2xl font-bold flex-grow z-10 relative">165.140.127.67</p>
|
||||
</div>
|
||||
<div class="p-0.5 mt-4 w-full mr-14 max-w-4xl space-x-4 bg-gradient-to-r from-purple-500 via-pink-500 to-amber-500 rounded-lg shadow-inner">
|
||||
<p id="domain-input" class="p-2 border w-full border-gray-600 rounded-lg bg-gray-900 text-white placeholder-gray-400 text-2xl font-bold flex-grow z-10 relative">128.254.227.250</p>
|
||||
</div>
|
||||
<a href="/dns"><button class="bg-blue-900 text-white mt-4 px-4 py-2 rounded-lg hover:bg-blue-950 transition">Learn More</button></a>
|
||||
</div>
|
||||
|
||||
<div class="relative w-full py-16">
|
||||
<div class="absolute inset-0 bg-cover bg-center" style="filter: blur(2px);"></div>
|
||||
<div class="relative z-10 mx-auto max-w-4xl text-center text-gray-200">
|
||||
<h2 class="text-4xl font-bold mb-3 text-gray-200">Registration coming soon!</h2>
|
||||
<h3 class="text-2xl font-semibold mb-12 text-gray-200">Why not checkout some of these domains in the meantime?</h3>
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-8 px-4">
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 text-white">whois.fur</h3>
|
||||
<p class="text-gray-300">Look up the contact and registration information for any participating .fur domains! While this one doesn't have a website, try these commands:</p>
|
||||
<p class="font-bold text-white mt-2">Windows</p>
|
||||
<div class="p-0.25 w-full max-w-4xl mt-2 space-x-4 bg-grey-300 rounded-lg shadow-inner">
|
||||
<p id="domain-input" class="p-2 border w-full border-gray-600 rounded-lg bg-gray-900 text-white placeholder-gray-400 text-sm font-semibold flex-grow z-10 relative">nslookup example.fur whois.fur</p>
|
||||
</div>
|
||||
<p class="font-bold text-white mt-2">MacOS/Linux</p>
|
||||
<div class="p-0.25 w-full max-w-4xl mt-2 space-x-4 bg-grey-300 rounded-lg shadow-inner">
|
||||
<p id="domain-input" class="p-2 border w-full border-gray-600 rounded-lg bg-gray-900 text-white placeholder-gray-400 text-sm font-semibold flex-grow z-10 relative">whois example.fur -h whois.fur</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 text-white">list.fur</h3>
|
||||
<p class="text-gray-300">An SSH-based .fur service directory! Try it out for yourself and discover fun services available over SSH or HTTP/S on .fur!</p>
|
||||
<div class="p-0.25 w-full max-w-4xl mt-6 space-x-4 bg-grey-300 rounded-lg shadow-inner">
|
||||
<p id="domain-input" class="p-2 border w-full border-gray-600 rounded-lg bg-gray-900 text-white placeholder-gray-400 text-sm font-semibold flex-grow z-10 relative">ssh list.fur</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<h3 class="text-xl font-semibold mb-4 text-white">forum.fur</h3>
|
||||
<p class="text-gray-300">A forum run by us for discussions relating to the TLD! Share your new site, get advice on a project, or just talk and meet new furs!</p>
|
||||
<div class="p-0.25 w-full max-w-4xl mt-6 space-x-4 bg-grey-300 rounded-lg shadow-inner">
|
||||
<p id="domain-input" class="p-2 border w-full border-gray-600 rounded-lg bg-gray-900 text-white placeholder-gray-400 text-sm font-semibold flex-grow z-10 relative"><a href="https://forum.fur/">https://forum.fur/</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="bg-gray-800 text-gray-400 py-6">
|
||||
<div class="mx-auto max-w-4xl text-center">
|
||||
<div class="mb-4">
|
||||
<a href="/terms-of-service" class="hover:underline mx-2">Terms of Service</a>
|
||||
<a href="/privacy" class="hover:underline mx-2">Privacy Policy</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="https://discord.gg/E3Wt94yRSD" class="hover:underline mx-2">Discord</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script type="text/javascript">
|
||||
function registerDomain() {
|
||||
const input = document.getElementById('domain-input');
|
||||
const domainName = encodeURIComponent(input.value.trim());
|
||||
if (domainName) {
|
||||
window.location.href = `/register?name=${domainName}`;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</Layout>
|
||||
88
src/pages/privacy.astro
Normal file
88
src/pages/privacy.astro
Normal file
@@ -0,0 +1,88 @@
|
||||
---
|
||||
// index.astro
|
||||
import Layout from '../layouts/layout.astro';
|
||||
---
|
||||
|
||||
<Layout>
|
||||
<div class="mt-24 mx-auto max-w-4xl px-4">
|
||||
<div class="text-gray-200 text-center">
|
||||
<h1 class="text-6xl font-bold text-gray-200 mb-10">Terms of Service</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relative w-full py-16">
|
||||
<div class="absolute inset-0 bg-cover bg-center" style="filter: blur(2px);"></div>
|
||||
<div class="relative z-10 mx-auto max-w-4xl text-center text-gray-200">
|
||||
<div class="grid grid-cols-1 gap-8 px-4">
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<p class="text-gray-300 leading-relaxed">
|
||||
<strong>Privacy Policy for .fur TLD</strong><br><br>
|
||||
|
||||
<strong>Effective Date:</strong> 8/14/24<br><br>
|
||||
|
||||
<strong>1. Information We Collect</strong><br>
|
||||
We collect personal information that you provide when registering a .fur domain, including but not limited to your name, email address, and payment information. We may also collect information about your use of the domain.<br><br>
|
||||
|
||||
<strong>2. How We Use Your Information</strong><br>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li>To process your domain registration and manage your account.</li>
|
||||
<li>To communicate with you regarding your domain and related services.</li>
|
||||
<li>To improve our services and the user experience of the .fur TLD.</li>
|
||||
<li>To comply with legal obligations and enforce our Terms of Service.</li>
|
||||
</ul><br>
|
||||
|
||||
<strong>3. Information Sharing and Disclosure</strong><br>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li>We do not sell or rent your personal information to third parties.</li>
|
||||
<li>We may share your information with trusted service providers who assist us in operating the .fur TLD, provided they agree to keep your information confidential.</li>
|
||||
<li>We may disclose your information if required by law, or to protect our rights and the safety of our users.</li>
|
||||
</ul><br>
|
||||
|
||||
<strong>4. Data Security</strong><br>
|
||||
We take reasonable measures to protect your personal information from unauthorized access, use, or disclosure. However, no internet transmission is completely secure, and we cannot guarantee the absolute security of your information.<br><br>
|
||||
|
||||
<strong>5. Data Retention</strong><br>
|
||||
We retain your personal information for as long as necessary to fulfill the purposes outlined in this policy, unless a longer retention period is required by law.<br><br>
|
||||
|
||||
<strong>6. Your Rights</strong><br>
|
||||
You have the right to access, correct, or delete your personal information. To exercise these rights, please contact us at <a href="mailto:legal@dotfur.org" class="text-blue-600 underline">legal@dotfur.org</a>.<br><br>
|
||||
|
||||
<strong>7. Changes to This Privacy Policy</strong><br>
|
||||
We may update this Privacy Policy from time to time. Any changes will be posted on this page, and your continued use of the .fur domain constitutes your acceptance of the updated policy.<br><br>
|
||||
|
||||
<strong>8. Governing Law</strong><br>
|
||||
This Privacy Policy is governed by the laws of Gilpin County, Colorado, USA. Any disputes arising from this policy shall be subject to the exclusive jurisdiction of the courts in Gilpin County, Colorado.<br><br>
|
||||
|
||||
<strong>9. Contact</strong><br>
|
||||
If you have any questions or concerns about this Privacy Policy, please contact us at <a href="mailto:legal@dotfur.org" class="text-blue-600 underline">legal@dotfur.org</a>.<br><br>
|
||||
|
||||
<strong>By registering or using a .fur domain, you acknowledge that you have read, understood, and agree to this Privacy Policy.</strong>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="bg-gray-800 text-gray-400 py-6">
|
||||
<div class="mx-auto max-w-4xl text-center">
|
||||
<div class="mb-4">
|
||||
<a href="/terms-of-service" class="hover:underline mx-2">Terms of Service</a>
|
||||
<a href="/privacy" class="hover:underline mx-2">Privacy Policy</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="https://discord.gg/E3Wt94yRSD" class="hover:underline mx-2">Discord</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script type="text/javascript">
|
||||
function registerDomain() {
|
||||
const input = document.getElementById('domain-input');
|
||||
const domainName = encodeURIComponent(input.value.trim());
|
||||
if (domainName) {
|
||||
window.location.href = `/register?name=${domainName}`;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</Layout>
|
||||
98
src/pages/terms-of-service.astro
Normal file
98
src/pages/terms-of-service.astro
Normal file
@@ -0,0 +1,98 @@
|
||||
---
|
||||
// index.astro
|
||||
import Layout from '../layouts/layout.astro';
|
||||
---
|
||||
|
||||
<Layout>
|
||||
<div class="mt-24 mx-auto max-w-4xl px-4">
|
||||
<div class="text-gray-200 text-center">
|
||||
<h1 class="text-6xl font-bold text-gray-200 mb-10">Terms of Service</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relative w-full py-16">
|
||||
<div class="absolute inset-0 bg-cover bg-center" style="filter: blur(2px);"></div>
|
||||
<div class="relative z-10 mx-auto max-w-4xl text-center text-gray-200">
|
||||
<div class="grid grid-cols-1 gap-8 px-4">
|
||||
<div class="bg-gray-900 p-6 rounded-lg shadow-lg">
|
||||
<p class="text-gray-200 p-4 leading-relaxed">
|
||||
<strong>Terms of Service for .fur TLD</strong><br><br>
|
||||
|
||||
<strong>Effective Date:</strong> 8/14/2024<br><br>
|
||||
|
||||
<strong>1. Acceptance of Terms</strong><br>
|
||||
By registering or using a .fur domain, you agree to abide by these Terms of Service. If you do not agree, do not register or use a .fur domain.<br><br>
|
||||
|
||||
<strong>2. Eligibility</strong><br>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li><strong>Furry Affiliation:</strong> The .fur TLD is reserved exclusively for:
|
||||
<ul class="list-disc list-inside ml-6">
|
||||
<li>Individuals who identify as furries.</li>
|
||||
<li>Businesses directly related to the furry community.</li>
|
||||
<li>Services or projects created for or by furries.</li>
|
||||
<li>Any entity or project that aligns with the values and interests of the furry community.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><strong>Verification:</strong> We reserve the right to audit and verify your affiliation with the furry community at any time. If you are unable to provide sufficient proof of your connection to the furry community, your domain registration may be suspended or revoked.</li>
|
||||
</ul><br>
|
||||
|
||||
<strong>3. Usage Guidelines</strong><br>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li><strong>Community Respect:</strong> Domains must not be used for activities that disrespects the furry community, including hate speech, harassment, or discrimination.</li>
|
||||
<li><strong>Content Restrictions:</strong> No illegal content or activities are permitted on .fur domains. This includes, but is not limited to, content that violates intellectual property rights, promotes violence, or engages in unlawful behavior.</li>
|
||||
<li><strong>Appropriate Content:</strong> Content hosted on .fur domains should reflect the positive and inclusive nature of the furry community. Offensive or inappropriate content will not be tolerated.</li>
|
||||
</ul><br>
|
||||
|
||||
<strong>4. Domain Management</strong><br>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li><strong>Accurate Information:</strong> You must provide accurate information during the registration of your .fur domain. False or misleading information may result in suspension or cancellation of your domain.</li>
|
||||
<li><strong>Renewal & Expiration:</strong> Domains must be renewed annually. Failure to renew will result in expiration and potential release back into the pool of available domains.</li>
|
||||
</ul><br>
|
||||
|
||||
<strong>5. Termination</strong><br>
|
||||
<ul class="list-disc list-inside ml-4">
|
||||
<li><strong>Violation of Terms:</strong> We reserve the right to suspend or terminate any .fur domain that violates these Terms of Service without prior notice.</li>
|
||||
<li><strong>Discretionary Actions:</strong> We may refuse or revoke a .fur domain registration if deemed necessary for the protection of the community or if eligibility criteria are not met.</li>
|
||||
</ul><br>
|
||||
|
||||
<strong>6. Liability</strong><br>
|
||||
We are not liable for any damages, direct or indirect, resulting from the use or inability to use a .fur domain. You use the .fur TLD at your own risk.<br><br>
|
||||
|
||||
<strong>7. Modifications</strong><br>
|
||||
These Terms of Service may be updated periodically. Continued use of your .fur domain after any changes indicates your acceptance of the new terms.<br><br>
|
||||
|
||||
<strong>8. Governing Law</strong><br>
|
||||
These Terms of Service are governed by the laws of Gilpin County, Colorado, USA. Any disputes arising from these terms shall be subject to the exclusive jurisdiction of the courts in Gilpin County, Colorado.<br><br>
|
||||
|
||||
<strong>9. Contact</strong><br>
|
||||
For any questions or concerns, please contact us at <a href="mailto:legal@dotfur.org" class="text-blue-600 underline">legal@dotfur.org</a>.<br><br>
|
||||
|
||||
<strong>By registering or using a .fur domain, you acknowledge that you have read, understood, and agree to these Terms of Service.</strong>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="bg-gray-800 text-gray-400 py-6">
|
||||
<div class="mx-auto max-w-4xl text-center">
|
||||
<div class="mb-4">
|
||||
<a href="/terms-of-service" class="hover:underline mx-2">Terms of Service</a>
|
||||
<a href="/privacy" class="hover:underline mx-2">Privacy Policy</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="https://discord.gg/E3Wt94yRSD" class="hover:underline mx-2">Discord</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script type="text/javascript">
|
||||
function registerDomain() {
|
||||
const input = document.getElementById('domain-input');
|
||||
const domainName = encodeURIComponent(input.value.trim());
|
||||
if (domainName) {
|
||||
window.location.href = `/register?name=${domainName}`;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</Layout>
|
||||
3
src/styles/global.css
Normal file
3
src/styles/global.css
Normal file
@@ -0,0 +1,3 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
12
tailwind.config.js
Normal file
12
tailwind.config.js
Normal file
@@ -0,0 +1,12 @@
|
||||
// tailwind.config.js
|
||||
module.exports = {
|
||||
content: [
|
||||
"./src/**/*.{astro,html,js,ts,jsx,tsx}",
|
||||
"./public/**/*.html",
|
||||
],
|
||||
theme: {
|
||||
extend: {},
|
||||
},
|
||||
plugins: [],
|
||||
}
|
||||
|
||||
3
tsconfig.json
Normal file
3
tsconfig.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "astro/tsconfigs/base"
|
||||
}
|
||||
Reference in New Issue
Block a user