2025-08-12 10:40:06 -07:00
|
|
|
#### This is an app I made to save recipes using the following components:
|
|
|
|
|
|
|
|
|
|
#### Frontend:
|
|
|
|
|
|
|
|
|
|
- React
|
|
|
|
|
- TypeScript
|
|
|
|
|
|
|
|
|
|
#### Backend:
|
|
|
|
|
|
|
|
|
|
- Node.js & Express
|
|
|
|
|
- PostgreSQL
|
2025-08-20 10:06:23 -07:00
|
|
|
- Prisma
|
2025-08-12 10:40:06 -07:00
|
|
|
|
|
|
|
|
#### Containerization:
|
|
|
|
|
|
|
|
|
|
- Docker
|
|
|
|
|
|
|
|
|
|
#### Styling/UI:
|
|
|
|
|
|
|
|
|
|
- Tailwind CSS
|
|
|
|
|
|
2026-01-28 14:24:52 -08:00
|
|
|
#### Infra/CI:
|
|
|
|
|
|
2026-01-28 14:30:58 -08:00
|
|
|
This Forgejo instance is hosted on a VPS running NixOS\
|
|
|
|
|
The Forgejo Runner is hosted in a LXC container running on a local nix server\
|
|
|
|
|
The runner builds the containers and pushes them to this Forgejo registry\
|
|
|
|
|
In the frontend container I bundle the compiled src with Caddy to run as a standalone app\
|
|
|
|
|
The exposed frontend port can then be served via reverse proxy
|
2026-01-28 14:24:52 -08:00
|
|
|
|
|
|
|
|
#### Try it out:
|
|
|
|
|
|
|
|
|
|
https://recipe-app.fredzernia.com
|
|
|
|
|
|
|
|
|
|
#### Run it yourself:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
mkdir recipe_app && cd recipe_app
|
|
|
|
|
wget https://forgejo.fredzernia.com/fred/recipe_app/raw/branch/main/docker-compose.yaml
|
|
|
|
|
wget https://forgejo.fredzernia.com/fred/recipe_app/raw/branch/main/example.env
|
|
|
|
|
mv example.env .env # Change these values if you want
|
|
|
|
|
docker compose pull
|
|
|
|
|
docker compose up db -d
|
|
|
|
|
docker compose run backend npx prisma migrate deploy
|
|
|
|
|
docker compose up -d
|
|
|
|
|
```
|