# Novarix Networks Website `Next.js 16` + `Tailwind CSS v4` website for `Novarix Networks`, built as a fully static site. The site is designed for this workflow: - edit locally - push changes to your internal `Gitea` repo - run one deploy command on the Ubuntu Nginx VM - serve the static `out/` directory from `/var/www/novarix.uk/out` - expose it publicly through `Nginx Proxy Manager` ## Recommended Repo Name ```text novarix.uk ``` Keep all the Novarix domains in repos under the same convention so paths and clone URLs stay predictable, e.g. ```text http://10.10.10.11:3000/kismet.hasanaj/novarix.uk.git ``` ## Project Structure - `content.ts` **all the editable text on the website lives here** - `app/page.tsx` page layout and styling (React + Tailwind utilities) - `app/layout.tsx` site-wide metadata, fonts, html shell - `app/globals.css` Tailwind v4 entrypoint and design tokens - `app/sitemap.ts` generates `/sitemap.xml` at build time - `app/robots.ts` generates `/robots.txt` at build time - `public/` static assets (logos, branding, favicon) - `next.config.ts` configured for static export to `out/` - `EDITING.md` plain-English guide for changing content - `deploy.sh` server-side update script - `ops/nginx/novarix.uk.conf.example` example Nginx config ## Important Tailwind / Next.js Note This project uses the current Tailwind CSS v4 setup via `@tailwindcss/postcss`, configured entirely inside `app/globals.css` (no `tailwind.config.js`). The build is a **static export**. `npm run build` produces a fully self-contained `out/` directory. Nginx serves files from that directory directly — there is no Node runtime on the production server. ## Ubuntu 24.04 Nginx Server Setup Install Nginx and Git: ```bash sudo apt update sudo apt install -y nginx git sudo systemctl enable nginx sudo systemctl start nginx ``` Install Node.js 20 or newer. NodeSource currently supports Ubuntu 24.04 with Node 22, which is a good choice for this server: ```bash sudo apt install -y curl curl -fsSL https://deb.nodesource.com/setup_22.x -o nodesource_setup.sh sudo -E bash nodesource_setup.sh sudo apt install -y nodejs ``` After installing, confirm: ```bash node --version npm --version ``` Create the web directory and make your normal sudo user the owner: ```bash sudo mkdir -p /var/www sudo chown -R $USER:$USER /var/www ``` Clone the Gitea repo: ```bash git clone http://10.10.10.11:3000/kismet.hasanaj/novarix.uk.git /var/www/novarix.uk ``` If you want the built-in contact form to send mail through Web3Forms, create a local environment file before building: ```bash cd /var/www/novarix.uk cp .env.example .env.local ``` Then edit `.env.local` and set: ```bash NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY=your_web3forms_access_key ``` ## Web3Forms Destination Email The contact form does **not** send to an email address hardcoded in this repo. With Web3Forms, submissions are delivered to the inbox associated with the `access_key`. That means: - To change the **destination inbox** for form submissions, update the Web3Forms access key in `.env.local` to one created for the email address you want to receive messages at. - If you want the website to **display a different contact email address**, edit `site.contact.email` and `site.footer.email` in `content.ts`. Web3Forms docs for this behaviour: - [FAQ](https://docs.web3forms.com/getting-started/faq) - [API reference](https://docs.web3forms.com/getting-started/api-reference) Install the website dependencies and build the static site: ```bash cd /var/www/novarix.uk npm install --no-audit --no-fund npm run build ``` After the build completes, the static site lives in: ```text /var/www/novarix.uk/out ``` Use the Nginx config in: ```text ops/nginx/novarix.uk.conf.example ``` The important Nginx root is: ```nginx root /var/www/novarix.uk/out; ``` Enable the site: ```bash sudo cp ops/nginx/novarix.uk.conf.example /etc/nginx/sites-available/novarix.uk sudo ln -s /etc/nginx/sites-available/novarix.uk /etc/nginx/sites-enabled/ sudo rm -f /etc/nginx/sites-enabled/default sudo nginx -t sudo systemctl reload nginx ``` ## Updating The Live Website After pushing changes to Gitea from your local machine, SSH into the Nginx VM and run: ```bash cd /var/www/novarix.uk ./deploy.sh ``` The deploy script does this: ```bash git pull origin main npm install --no-audit --no-fund npm run build sudo nginx -t sudo systemctl reload nginx ``` If the script is not executable yet, run this once: ```bash chmod +x /var/www/novarix.uk/deploy.sh ``` ## Editing The Site For text content (headlines, services, contact details), edit: ```text content.ts ``` For visual styling, layout, or new sections, edit: ```text app/page.tsx app/globals.css ``` The friendly walk-through for non-developers is: ```text EDITING.md ``` ## Local Development For previewing changes on your own machine before pushing: ```bash npm install npm run dev ``` Then open `http://localhost:3000` in your browser. The page reloads automatically as you save files. ## Nginx Proxy Manager Create a proxy host: - Domain: `novarix.uk` - Scheme: `http` - Forward hostname/IP: private IP of the Ubuntu Nginx VM - Forward port: `80` - SSL: request certificate and force SSL - Enable `Block Common Exploits` If you also want to redirect `www.novarix.uk` and any defensive domains (e.g. `novarixnet.com`), add them as additional proxy hosts pointing at the same backend, or use NPM's redirect host feature. ## Canonical Domain Recommended primary domain: ```text novarix.uk ``` Redirect any other Novarix domains to the primary domain once DNS and Nginx Proxy Manager are ready.