diff --git a/Dockerfile b/Dockerfile index 0e2d1be..922363e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,13 +21,16 @@ WORKDIR /app ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 -RUN groupadd --system --gid 1001 nodejs -RUN useradd --system --uid 1001 nextjs +RUN groupadd --system --gid 999 nodejs +RUN useradd --system --uid 999 nextjs -COPY --from=builder /app/public ./build/public +COPY --from=builder /app/public ./public -COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./build/ -COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./build/.next/static +COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ +COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static +COPY --from=builder --chown=nextjs:nodejs /app/server.ts ./ +COPY --from=builder --chown=nextjs:nodejs /app/lib ./lib +COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules USER nextjs @@ -36,4 +39,4 @@ EXPOSE 3000 ENV PORT=3000 ENV HOSTNAME="0.0.0.0" -CMD ["node", "build/server.js"] \ No newline at end of file +CMD ["bun", "run", "server.ts"] \ No newline at end of file diff --git a/README.md b/README.md index 2300315..29ae9d3 100644 --- a/README.md +++ b/README.md @@ -17,9 +17,10 @@ Just create a `.env` file with the below variables, run `docker compose -d --bui ## Environment Variables -| Variable | Description | -|----------------------|-------------------------------------------------------------------------------------| -| `LISTENBRAINZ_TOKEN` | Get this from your ListenBrainz [user settings](https://listenbrainz.org/settings/) | +| Variable | Required? | Description | +|----------------------|-----------|-------------------------------------------------------------------------------------| +| `LISTENBRAINZ_TOKEN` | No | Get this from your ListenBrainz [user settings](https://listenbrainz.org/settings/) | +| `LASTFM_API_KEY` | Yes | Get this from your Last.fm [API account](https://www.last.fm/api/account/create) | ## MusicBrainz diff --git a/app/layout.tsx b/app/layout.tsx index 853653d..758a424 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,13 +1,16 @@ import React from 'react' -import { Metadata } from 'next' -import Head from 'next/head' +import { Metadata, Viewport } from 'next' import './globals.css' import { GeistSans } from 'geist/font/sans' import AnimatedTitle from '../components/AnimatedTitle' import I18nProvider from '../components/I18nProvider' export const metadata: Metadata = { + title: 'aidxn.cc', description: "The Internet home of Aidan. Come on in!", + authors: [{ name: 'aidxn.cc' }], + robots: 'index, follow', + metadataBase: new URL('https://aidxn.cc'), openGraph: { type: "website", url: "https://aidxn.cc", @@ -22,6 +25,32 @@ export const metadata: Metadata = { }, ], }, + icons: { + icon: [ + { url: '/favicon-16x16.png', sizes: '16x16', type: 'image/png' }, + { url: '/favicon-32x32.png', sizes: '32x32', type: 'image/png' }, + { url: '/favicon-96x96.png', sizes: '96x96', type: 'image/png' }, + { url: '/android-icon-192x192.png', sizes: '192x192', type: 'image/png' }, + ], + apple: [ + { url: '/apple-icon-57x57.png', sizes: '57x57' }, + { url: '/apple-icon-60x60.png', sizes: '60x60' }, + { url: '/apple-icon-72x72.png', sizes: '72x72' }, + { url: '/apple-icon-76x76.png', sizes: '76x76' }, + { url: '/apple-icon-114x114.png', sizes: '114x114' }, + { url: '/apple-icon-120x120.png', sizes: '120x120' }, + { url: '/apple-icon-144x144.png', sizes: '144x144' }, + { url: '/apple-icon-152x152.png', sizes: '152x152' }, + { url: '/apple-icon-180x180.png', sizes: '180x180' }, + ], + }, + manifest: '/manifest.json', +} + +export const viewport: Viewport = { + themeColor: '#111827', + width: 'device-width', + initialScale: 1, } export default function RootLayout({ @@ -31,30 +60,6 @@ export default function RootLayout({ }) { return ( -