diff --git a/.gitea/workflows/lint.yml b/.gitea/workflows/lint.yml deleted file mode 100644 index cf3ac00..0000000 --- a/.gitea/workflows/lint.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Run ESLint - -on: - push: - branches: - - main - pull_request: - branches: - - main - -jobs: - lint: - name: Run ESLint - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '23' - cache: 'npm' - - - name: Install dependencies - run: npm ci - - - name: Run ESLint - run: npm run lint diff --git a/.gitea/workflows/push.yml b/.gitea/workflows/push.yml deleted file mode 100644 index 0ff437f..0000000 --- a/.gitea/workflows/push.yml +++ /dev/null @@ -1,41 +0,0 @@ -# Credits to https://docs.github.com/en/actions/use-cases-and-examples/publishing-packages/publishing-docker-images - -name: Push to Docker Hub - -on: - push: - branches: - - main - -jobs: - push_to_registry: - name: Push Docker image to Docker Hub - runs-on: ubuntu-latest - permissions: - packages: write - contents: read - steps: - - name: Check out the repo - uses: actions/checkout@v4 - - - name: Log in to Docker Hub - uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 - with: - images: p0ntus/aidxncc - - - name: Build and push Docker image - id: push - uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 - with: - context: . - file: ./Dockerfile - push: true - tags: p0ntus/aidxncc:latest - labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/README.md b/README.md index db7bed3..3a3fe14 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,19 @@ # aidxnCC [![License: Unlicense](https://img.shields.io/badge/license-Unlicense-blue.svg)](http://unlicense.org/) -[![Build Status](https://git.pontusmail.org/aidan/aidxnCC/actions/workflows/push.yml/badge.svg)](https://git.pontusmail.org/aidan/aidxnCC/actions/?workflow=push.yml) -[![ESLint Status](https://git.pontusmail.org/aidan/aidxnCC/actions/workflows/lint.yml/badge.svg)](https://git.pontusmail.org/aidan/aidxnCC/actions/?workflow=lint.yml) aidxnCC is the third version of my personal website. It's built with Next.js and Tailwind CSS. aidxnCC will always be a work in progress, though completely functional. -## Deploy +## Deploy with Docker -### Vercel +Docker is the easiest way to deploy aidxnCC. There are two example `docker-compose.yml` files for you to use. -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fihatenodejs%2FaidxnCC&env=BRAINZ_USER_AGENT,LISTENBRAINZ_TOKEN&envDescription=You%20will%20need%20both%20a%20custom%20user%20agent%20(for%20identifying%20yourself%20to%20MusicBrainz)%2C%20and%20a%20ListenBrainz%20User%20Token.%20See%20the%20README%20for%20more%20information.&envLink=https%3A%2F%2Fgithub.com%2Fihatenodejs%2FaidxnCC&project-name=aidxn-cc&repository-name=aidxnCC) +1. `docker-compose.yml` - Default, exposed on port 3000 +2. `docker-compose.nginx.yml` - Helpful for NGINX Proxy Manager usage w/ Docker networks -To deploy with Vercel, simply click the button above. When prompted for environment variables, see the section below. - -### Cloudflare - -I currently host aidxnCC on Cloudflare Pages. They currently don't have a "Deploy to Cloudflare" button for Pages, but you can setup like so: - -1. Fork `aidxnCC` to your own account -2. Deploy to Pages from your fork - -> [!NOTE] -> Make sure to set your environment variables (see below!) -> -> You may also have to set the `nodejs_compat` compatibility flag in the Pages settings. - -### Self-Host - -**Own a server? Deploy on your own!** F*** SaaS, check out [Coolify](https://coolify.io/), a free and open-source alternative to Vercel. +Just create a `.env` file with the below variables, run `docker compose -d --build`, and you'll be all set. ## Contributing diff --git a/app/about/page.tsx b/app/about/page.tsx index 152572a..9427cef 100644 --- a/app/about/page.tsx +++ b/app/about/page.tsx @@ -33,9 +33,11 @@ export default function About() {
-
- -

+
+
+ +
+

{t('about.title')}

@@ -109,7 +111,7 @@ export default function About() {

{key}

{(value as unknown as string[]).map((text: string, index: number) => (

- {text.split(/(KernelSU-Next|LineageOS 22.2|Android 16|NixOS|Xubuntu)/).map((part, i) => { + {text.split(/(KernelSU-Next|LineageOS 22.2|Android 16|Xubuntu)/).map((part, i) => { if (part === 'KernelSU-Next') { return KernelSU-Next } @@ -119,8 +121,8 @@ export default function About() { if (part === 'Android 16') { return Android 16 } - if (part === 'NixOS') { - return NixOS + if (part === 'OpenCore') { + return OpenCore } if (part === 'Xubuntu') { return Xubuntu @@ -133,14 +135,16 @@ export default function About() {

)}
diff --git a/app/contact/page.tsx b/app/contact/page.tsx index 0edfd2f..ee209ba 100644 --- a/app/contact/page.tsx +++ b/app/contact/page.tsx @@ -2,11 +2,11 @@ import Header from '@/components/Header' import Footer from '@/components/Footer' -import ContactButton from '@/components/objects/ContactButton' +import Button from '@/components/objects/Button' import { Phone } from 'lucide-react' import { useTranslation } from 'react-i18next' -import { faPhone, faEnvelope } from '@fortawesome/free-solid-svg-icons' -import { faGithub, faTelegram, faBluesky, faXTwitter } from '@fortawesome/free-brands-svg-icons' +import { SiGithub, SiForgejo, SiTelegram } from 'react-icons/si' +import { Mail, Smartphone } from 'lucide-react' export default function Contact() { const { t } = useTranslation(); @@ -23,56 +23,65 @@ export default function Contact() { ]; const contactButtonLabels = [ - t('contact.buttons.github'), - t('contact.buttons.telegram'), - t('contact.buttons.bluesky'), - t('contact.buttons.x'), - t('contact.buttons.phone'), - t('contact.buttons.email') + "ihatenodejs", + "aidan", + "p0ntu5", + "+1 802-416-9516", + "aidan@p0ntus.com", ]; const contactButtonHrefs = [ "https://github.com/ihatenodejs", + "https://git.p0ntus.com/aidan", "https://t.me/p0ntu5", - "https://bsky.app/profile/aidxn.cc", - "https://x.com/ihatenodejs", "tel:+18024169516", "mailto:aidan@p0ntus.com" ]; - const contactButtonIcons = [faGithub, faTelegram, faBluesky, faXTwitter, faPhone, faEnvelope]; + const contactButtonIcons = [ + , + , + , + , + + ]; return (
-
- +
+
+ +
+

+ {t('contact.title')} +

-

- {t('contact.title')} -

-
- {contactButtonLabels.map((label, index) => ( - - ))} -
- - {sections.map((section, sectionIndex) => ( -
-

{section.title}

- {section.texts.map((text, index) => ( -

{text}

+
+
+ {contactButtonLabels.map((label, index) => ( + ))}
- ))} + {sections.map((section, sectionIndex) => ( +
+

{section.title}

+ {section.texts.map((text, index) => ( +

{text}

+ ))} +
+ ))} +