A modern full-stack application template built for quick and efficient project setup.
The primary prerequisites for this project are:
Alternatively, install the components separately:
Verify the installation by running:
docker --version
docker compose version
task --version
pre-commit --version
Copy the example environment files:
cp .env.example .env
cp backend/.env.example backend/.env
cp frontend/.env.local.example frontend/.env.local
Edit the environment files (.env
, backend/.env
, and frontend/.env.local
) to set the required secrets and configuration values (such as database URLs, API keys, etc.).
Install pre-commit hooks:
pre-commit install
Build the Docker images:
task docker:build
Start all services:
task docker:up
Note: Wait for the frontend service to be fully running.
Generate frontend code based on the backend API:
task frontend:codegen
Create an initial admin user:
task backend:create-user
Note: Follow the prompts. Use your email address as the username. You can leave the email field blank when prompted later.
The services will be available at:
To stop and remove containers:
task docker:down
This project uses Task to simplify common development workflows. The main Taskfile.yml
in the project root provides commands for:
backend
and frontend
services (such as linting, formatting, or testing).To list all available tasks, run:
task --list
Refer to the README.md
files in the backend
and frontend
directories for service-specific task details.
If the frontend container crashes when installing dependencies:
task docker:down
task frontend:bash
task docker:build
task docker:up
This project uses GitHub Actions for continuous integration and validation:
For detailed information about our CI/CD workflows, see the workflows documentation.
All versioned changes are documented on the GitHub Releases page.
This project is licensed under the MIT License.