Frontend for Lahmacun Radio 2021, using arcsi, stream and wp APIs.
Made in Vue/Nuxt.js (v2), with Tailwindcss framework updated to Nuxt3 + Vite + Typescript in 2024
水果湯
For detailed explanation on how things work, check out Nuxt.js docs.
Node version 20.19.5
Node Version Manager (.nvmrc) has the recommended version, run nvm install and nvm use in app folder
pnpm >=9.0.0
Install pnpm using corepack (comes with Node.js):
corepack enable
corepack prepare pnpm@9.0.0 --activate$ cd ./app
# install dependencies
$ pnpm install
# serve with hot reload at localhost:3333
$ pnpm dev
# build for production and launch server
$ pnpm build
$ pnpm start
# generate static project
$ pnpm generateBuild-time AND runtime: Nuxt needs environment variables at build time (to bake into client bundle) and runtime (for server-side).
-
Create a root
.envfile (same directory asdocker-compose.yml):ARCSI_TOKEN=your_readonly_token_here SENTRY_DSN=your_sentry_dsn DONATE_STRIPE_FORM_URL=https://cms.lahmacun.hu/wp-json/stripe/return_checkout_session_listener MEMBERSHIP_STRIPE_FORM_URL=https://cms.lahmacun.hu/wp-json/stripe/return_checkout_session_membership SUBSCRIPTION_CANCEL_URL=https://billing.stripe.com/p/login/bIYaHhfXYepr39C000
Docker Compose auto-loads this for variable substitution in build args.
-
Create
./app/.env(same content as above):ARCSI_TOKEN=your_readonly_token_here # ... same varsThis is injected into the container at runtime via
env_file.
Security: If ARCSI_TOKEN grants write access, remove public.arcsiToken from app/nuxt.config.js and proxy Arcsi calls through server routes.
# Make sure you are in project root where file exists
$ ls docker-compose.yml
# Build the image (pulls env vars from root .env during build)
$ docker compose build
# Load the app (injects app/.env at runtime)
$ docker compose up -d
# Stop the app
$ docker compose down# Use the dev image for docker
$ docker compose -f docker-compose.dev.yml build
# Load the app
$ docker compose -f docker-compose.dev.yml up -dChrome/Firefox: Allow CORS
- Vetur or Volar (vue formatters)
- ESlint
- Vue devtools
- Nuxt devtools