CI / Code Health (pull_request) Successful in 22s
CI / Lint, Test & Build (pull_request) Successful in 46s
CI / Code Health (push) Successful in 25s
CI / Lint, Test & Build (push) Successful in 54s
Deploy / Build & Push Image (push) Successful in 56s
Deploy / Trigger Deploy (push) Successful in 1s
66 lines
2.3 KiB
Markdown
66 lines
2.3 KiB
Markdown
# fristy.dev
|
|
|
|

|
|
|
|
My personal corner of the internet — projects, live Discord status, and ways to reach me.
|
|
|
|
**Live:** https://fristy.dev
|
|
|
|
## What's inside
|
|
|
|
- **Projects** — pulled automatically from my self-hosted Gitea and refreshed hourly. If a repo has a website, the card links there; otherwise it goes straight to the repo.
|
|
- **Discord** — live presence via Lanyard: status, game and activity artwork, Spotify, custom status. Refreshed every 15 seconds.
|
|
- **Contact & Social** — email, Discord server, GitHub, Gitea, Spotify and Steam, each with its own card.
|
|
- **Three languages** — Turkish, English and German. No path-style; your browser language is detected on the first visit, saved in a cookie, and switchable from the header anytime.
|
|
|
|
## Stack
|
|
|
|
[Next.js](https://nextjs.org/) (App Router) · [React](https://react.dev/) · [Tailwind CSS v4](https://tailwindcss.com/) · [pnpm](https://pnpm.io/) · [Docker](https://docker.com/)
|
|
|
|
## Run it locally
|
|
|
|
You need Node LTS and pnpm.
|
|
|
|
```bash
|
|
pnpm install
|
|
pnpm dev # http://localhost:3000
|
|
```
|
|
|
|
| Script | What it does |
|
|
| ------------------- | ------------------------------- |
|
|
| `pnpm dev` | Start the dev server |
|
|
| `pnpm build` | Production build |
|
|
| `pnpm start` | Serve the production build |
|
|
| `pnpm test` | Run the Vitest suite |
|
|
| `pnpm lint` | Run ESLint |
|
|
| `pnpm format` | Format everything with Prettier |
|
|
| `pnpm format:check` | Fail if anything is unformatted |
|
|
|
|
Code style is 4 spaces, enforced by Prettier (`.prettierrc`), EditorConfig and VS Code settings — `pnpm format` fixes everything.
|
|
|
|
## Docker
|
|
|
|
```bash
|
|
docker build -t fristynet .
|
|
docker run --rm -p 3000:3000 fristynet
|
|
```
|
|
|
|
No need to build it yourself though — CI publishes every `main` push:
|
|
|
|
```bash
|
|
docker pull git.fristy.net/fristy/fristydev:latest
|
|
```
|
|
|
|
## CI/CD
|
|
|
|
Pushes to `main` (and `<sha>` tags) run format check, lint and build first. If those pass, the Docker image is built and pushed to the Gitea registry:
|
|
|
|
- `git.fristy.net/fristy/fristydev:latest` on every `main` push
|
|
- `git.fristy.net/fristy/fristydev:<sha>` for every pushed commit
|
|
|
|
Pull requests only run the checks — nothing is pushed.
|
|
|
|
## License
|
|
|
|
Apache-2.0 — see [LICENSE](./LICENSE).
|