Note: Czech version is available below / Česká verze je k dispozici níže
A template for developing applications for the Tour de App competition with a frontend in SvelteKit and a backend in Express.
In the backend directory, there is a .env.example file that needs to be renamed to .env and the values adjusted as needed.
[!WARNING] If you want to change the database password, you need to change it in the
tourdeapp.yamlfile,apps/server/.env, and for local development in theapps/server/package.jsonfile.
For local development, you need to run three services: the database, backend, and frontend. Below you'll find detailed step-by-step instructions.
First, you need to set up environment variables:
apps/server directory, rename the .env.example file to .env:cd apps/server
cp .env.example .env
Install dependencies for both parts of the application:
Backend dependencies:
cd apps/server
npm install
Frontend dependencies:
cd ../web
npm install
Start the database using a Docker container:
cd apps/server
npm run db
The database will run on port 3306. Wait a few seconds for the database to fully initialize (usually 10-20 seconds).
[!WARNING] The database is not persistent, data will be lost after shutting down the Docker container.
[!TIP] If you need to stop the database, use
docker psto view running containers anddocker stop <container-id>to stop the database container.
In a new terminal, start the backend:
cd apps/server
npm run dev
The backend will run on http://localhost:3000. You should see a message that the server is running and connected to the database.
In another terminal, start the frontend:
cd apps/web
npm run dev
The frontend will run on http://localhost:3001. Open this address in your browser.
localhost:3306 with username root and password passwordnvm (Linux/MacOS: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash, Windows: download from nvm-windows)How the application runs on tourde.cloud is defined in the tourdeapp.yaml file in the root directory of this repository. This boilerplate includes pre-configured services:
- caddy (reverse proxy for frontend and backend) - handles routing requests to your application to the correct place (i.e., /* to frontend and /api/* to backend)
- web (frontend application)
- server (backend application)
- mysql (MySQL database)
[!WARNING] The database is not persistent, data will be lost after uploading a new version of the application.
[!NOTE] The reverse proxy is set by default so that requests to
/*go to the frontend and/api/*to the backend. If you want to have the API on different addresses, you need to change theCaddyfilefile in theapps/caddydirectory.
What tourdeapp.yaml can contain is described in How to deploy an app to Tour de Cloud.
Applications are uploaded to Tour de Cloud via GitHub action. For uploading, you need to set TDC_TOKEN:
TDC_TOKEN Secret: [your secret generated in tourde.cloud]How to submit your application can be found in our How to deploy an app to Tour de Cloud
Česká verze / Czech Version
Šablona pro vývoj aplikace v soutěži Tour de App společně s frontendovou částí ve frameworku SvelteKit a backendovou částí v Express.
V složce pro backend je .env.example soubor, který je potřeba přejmenovat na .env a upravit hodnoty dle potřeby.
[!WARNING] Pokud chcete měnit heslo od databáze, je potřeba ho změnit v souboru
tourdeapp.yaml,apps/server/.enva pro lokální vývoj v souboruapps/server/package.json.
Pro lokální vývoj je potřeba spustit tři služby: databázi, backend a frontend. Níže najdete podrobné instrukce krok za krokem.
Nejprve je potřeba nastavit environmentální proměnné:
apps/server přejmenujte soubor .env.example na .env:cd apps/server
cp .env.example .env
Nainstalujte závislosti pro obě části aplikace:
Backend závislosti:
cd apps/server
npm install
Frontend závislosti:
cd ../web
npm install
Databázi spustíte pomocí Docker kontejneru:
cd apps/server
npm run db
Databáze poběží na portu 3306. Počkejte několik sekund, než se databáze plně inicializuje (obvykle 10-20 sekund).
[!WARNING] Databáze není perzistentní, data se z ní po vypnutí Docker kontejneru ztratí.
[!TIP] Pokud potřebujete databázi zastavit, použijte příkaz
docker pspro zobrazení běžících kontejnerů adocker stop <container-id>pro zastavení kontejneru s databází.
V novém terminálu spusťte backend:
cd apps/server
npm run dev
Backend poběží na http://localhost:3000. Měli byste vidět zprávu, že server běží a je připojen k databázi.
V dalším terminálu spusťte frontend:
cd apps/web
npm run dev
Frontend poběží na http://localhost:3001. Otevřete tuto adresu v prohlížeči.
localhost:3306 s uživatelským jménem root a heslem passwordnvm (Linux/MacOS: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash, Windows: stáhněte z nvm-windows)Jak se aplikace spustí na tourde.cloud je definováno v souboru tourdeapp.yaml v kořenovém adresáři tohoto repozitáře. V tomto boilerplate jsou předpřipravené služby:
- caddy (reverse proxy pro frontend a backend) - stará se o to, aby dotazy na Vaší aplikaci byly směrovány na správné místo (tj. /* na frontend a /api/* na backend)
- web (frontend aplikace)
- server (backend aplikace)
- mysql (MySQL databáze)
[!WARNING] Databáze není perzistentní, data se z ní po nahrání nové verze aplikace ztratí.
[!NOTE] Reverse proxy je defaultně nastaven tak, že dotazy na
/*jdou na frontend a/api/*na backend. Pokud byste chtěli API mít na jiných adresách, je nutné změnit souborCaddyfilev adresářiapps/caddy.
Co může tourdeapp.yaml obsahovat je napsáno v Jak nasadit aplikaci na Tour de Cloud.
Do Tour de Cloud se aplikace nahrávají přes GitHub action. Pro nahrání je potřeba zadat TDC_TOKEN:
TDC_TOKEN Secret: [váš secret vygenerovaný v tourde.cloud]Jak odevzdat svoji aplikaci můžete najít v našich Jak nasadit aplikaci na Tour de Cloud