2.0 KiB
2.0 KiB
Fasto Project Documentation
Overview
Fasto is a commercial team management system built with React (Vite) on the frontend and Node.js (Express) on the backend. It uses a MySQL database.
Architecture
- Frontend: React, TypeScript, Vite.
- Backend: Node.js, Express, MySQL2.
- Database: MySQL 8.0.
- Deployment: Docker Compose for local development; Gitea Actions for CI/CD pushing to a Gitea Registry and deploying via Portainer webhook.
Prerequisites
- Docker & Docker Compose
- Node.js (for local development outside Docker)
Setup & Running
1. Environment Variables
Copy .env.example to .env and adjust the values:
cp .env.example .env
Ensure you set the database credentials and Gitea Runner token if you plan to run the runner locally.
2. Database
The project expects a MySQL database. A docker-compose.yml file is provided which spins up a MySQL container and initializes it with agenciac_comia.sql.
3. Running with Docker Compose
To start the application, database, and runner:
docker-compose up -d --build
- Frontend/Backend: http://localhost:3001
- Database: Exposed on port 3306 (internal to network mostly, but mapped if needed)
4. Gitea Runner
The docker-compose.yml includes a service for a Gitea Runner (fasto-runner).
- Ensure
GITEA_RUNNER_REGISTRATION_TOKENis set in.env. - The runner data is persisted in
./fasto_runner/data.
CI/CD Pipeline
The project uses Gitea Actions defined in .gitea/workflows/build-deploy.yaml.
- Triggers: Push to
mainormaster. - Steps:
- Checkout code.
- Build Docker image.
- Push to
gitea.blyzer.com.br. - Trigger Portainer webhook.
- Secrets Required in Gitea:
REGISTRY_USERNAMEREGISTRY_TOKENPORTAINER_WEBHOOKAPI_KEY(Optional build arg)
Development
- Frontend:
npm run dev(Runs on port 3000) - Backend:
node backend/index.js(Runs on port 3001) Note: For local dev, you might need to run a local DB or point to the dockerized one.