The project template for FastEdgy.
- Python 3.13+
- UV (Python Package Manager, see the installation doc)
- NVM for Node.js 22.0+ (see the installation doc)
- PostgreSQL 17.0+ (with CLI Tools in PATH)
- Clone the project:
git clone git@github.com:krafterio/fastedgy-template.git- Install server dependencies:
uv sync- Restart terminal or activate venv:
source .venv/bin/activate # On macOS/Linux
# or
.venv\Scripts\activate # On Windows- Install app dependencies:
nvm install 22
nvm use 22
npm install- Configure environment variables:
cp .env.tpl .env
# Edit .env file with your configurations- Create PostgreSQL database:
kt db createdb- Initialize migrations:
kt db init
kt db makemigrations -m "init project"
kt db migrate- Initialize data of database:
kt db init-datakt serve- Open the project in VS Code
- Launch the server (Server)
npm run dev- Open the project in VS Code
- Launch the app (App) or the app and the server (All)
Swagger Documentation: http://localhost:8000/docs
The project use a FastEdgy CLI (fastedgy or fe or kt aliases) to facilitate common tasks.
kt serveAvailable options:
--host: Server host (default: 0.0.0.0)--port: Server port (default: 8000)--reload/--no-reload: Enable/disable hot reload (default: enabled)
Example:
kt serve --port 8080 --no-reloadCreate a new migration:
kt db makemigrations -m "migration description"Apply pending migrations:
kt db migrateRevert the last migration:
kt db downgradeView migration history:
kt db historyOnce the server is running, you can access:
- Swagger UI Documentation: http://localhost:8000/docs
- ReDoc Documentation: http://localhost:8000/redoc
- Create a new branch for your feature:
git checkout -b feature/feature-name
- Make your changes
- Create a migration if you modify models:
kt db makemigrations -m "description of changes" kt db migrate - Test your changes
- Create a pull request
To debug a build while having access to the source code, you must run the commands:
npm run build -- --minify=false --sourcemap --debug
npm run preview -- --openThis project uses the Conventional Commits naming convention.
<type>(<scope>): <description>
- type: the type of modification made (required)
- scope: the scope (optional, but recommended)
- description: a short explanation (imperative, no capital letters, no period)
| Type | Description |
|---|---|
| feat | New feature |
| fix | Bug fix |
| docs | Change in documentation |
| style | Change of format (indentation, spaces, etc.) without functional impact |
| refactor | Refactoring the code without adding or correcting functionality |
| revert | Reverting a previous commit |
| merge | Merging branches |
| test | Adding or modifying tests |
| chore | Miscellaneous tasks without direct impact (build, dependencies, configs, etc.) |
| perf | Performance improvement |
| ci | Changes to CI/CD files (Github Actions, Gitlab CI, etc.) |
| release | Creating a new release |
| Scope | Description |
|---|---|
| core | Core backend logic and main platform features |
| cli | CLI commands and related functionality |
| orm | ORM models, migrations, and related logic |
| auth | Authentication and authorization mechanisms |
| api | REST API endpoints, routes, and controllers |
| config | Global configuration and environment settings |
| project | Project structure, global files, and overall management |
This project is licensed under Proprietary License. See the LICENSE file for details.