lol
 
 
 
 
 
 
Go to file
John Montagu, the 4th Earl of Sandvich 88969111ad
feat: Add vue-content-loader for loaders
2024-12-19 18:03:10 -08:00
availabili.tf feat: Add vue-content-loader for loaders 2024-12-19 18:03:10 -08:00
backend-flask feat: Add vue-content-loader for loaders 2024-12-19 18:03:10 -08:00
nginx Move matches tab to team settings 2024-12-11 17:20:04 -08:00
.gitignore Implement some basic features 2024-11-02 12:33:27 -07:00
README.md docs: Rename container 2024-12-11 22:58:38 -08:00
docker-compose.prod.yml feat: Add domain env variable support 2024-12-12 12:07:54 -08:00
docker-compose.yml Make production ready 2024-12-11 18:04:53 -08:00

README.md

availabili.tf

Schedule and availability system for Team Fortress 2 teams.

Tech Stack

File Structure

availabili.tf/               root
├── availabili.tf/           frontend (Vue.js)
├── backend-flask/           backend/software layer (Python)
├── nginx/                   reverse proxy
├── docker-compose.prod.yml  production environment
├── docker-compose.yml       development environment
└── README.md                this file

Setup (production, Postgres)

Build the frontend app, assuming Node.js is installed:

cd availabili.tf
npm install
npm run build
cd ..

Build the rest of the containers:

docker compose -f docker-compose.prod.yml build
docker compose -f docker-compose.prod.yml up db backend

Perform initial database migration. This is for automatically setting up the database schema for the first time:

docker exec -it backend-production bash
flask db upgrade
exit

Bring up the rest of the containers:

docker compose -f docker-compose.prod.yml up

The app will run at port 8000 and the database will be available at port 5432.

Setup (development, SQLite3)

Build the frontend app:

cd availabili.tf
npm install
npm run build

Build the rest of the containers and perform initial database migration:

docker compose build
docker compose up
DATABASE_URI=sqlite:///db.sqlite3 flask db upgrade

The app will run at port 8000.

OpenAPI

The backend will automatically serve its OpenAPI-compliant spec at /apidoc/openapi.json which can also be viewed at /apidoc/redoc or /apidoc/swagger or /apidoc/scalar.

To regenerate the frontend client during development:

npm run openapi-generate