π· Welcome to Vengeful Vineyard! π
This project was created for the sole purpose of π₯ punishing members in the student organization Online Linjeforening whenever they fail to perform their respective tasks.
Their failure shall be documented on our page as a 'vinstraff' (wine punishment). The old and outdated version can be found here: RedWine.
The project is finished π
It is currently being maintained by Dotkom from the Online student association.
The link to the page is: Vengeful Vineyard
- FastAPI
- PostgreSQL
Note: Running locally requires all three services: Online Web (monoweb), Backend, and Frontend. The frontend authenticates users through Online Web, and requires the backend API to function.
Make sure you have the following installed:
- Docker and Docker Compose
- Node.js and pnpm
- Doppler CLI
We use Doppler to manage secrets.
doppler login
doppler setup
# Select: vengeful-vineyard, devThe frontend uses Online Web (monoweb) for user authentication. You need to run it locally.
-
Clone and set up monoweb by following the instructions at: https://github.com/dotkom/monoweb
-
To get started quickly with test data, run:
doppler login doppler setup docker compose up -d pnpm install pnpm migrate:dev pnpm vinstraff:user-db-sync pnpm dev
The backend must be running before starting the frontend.
cd backend
make devThis starts the FastAPI server with PostgreSQL using Docker Compose.
- API docs available at: http://localhost:8000/docs
If you have Doppler access to production, you can sync the production database to your local environment (while backend is running):
cd backend
make db-synccd frontend
pnpm install
doppler run pnpm devThe frontend will be available at: http://localhost:5173 (or similar)
Please take a look at our issues if you want to contribute to this project. Pull requests are welcome!
Before contributing, make sure to install pre-commit hooks:
# Install pre-commit if you don't have it
pip install pre-commit
# or
brew install pre-commit
# Install the hooks
pre-commit installTo deploy changes to AWS, you need the AWS CLI installed and configured. Ask Dotkom for credentials to create an IAM user for you.
# Install AWS CLI, then configure
aws sso login --profile dotkomcd backend
make deploy-prod
# Or with profile:
make deploy-prod PROFILE=dotkomThen go to the Terraform monorepo (staging/vengeful-vineyard or prod/vengeful-vineyard directory):
You will also need the DOPPLER_TOKEN_ALL token from here
terraform init
# Or: AWS_PROFILE=dotkom terraform init
doppler run --project vengeful-vineyard --config prd -- terraform apply
# Or: AWS_PROFILE=dotkom doppler run --project vengeful-vineyard --config prd -- terraform apply
doppler login
doppler setup # Select vengeful-vineyard, dev
cd frontend
pnpm run deploy:prod
# Or with profile:
pnpm run deploy:prod -- --profile=dotkomIf you encounter database issues, try resetting the local database:
cd backend
rm -rf postgres-data
docker-compose up --buildMake sure Online Web (monoweb) is running on the expected port and that you're logged in there first before accessing Vengeful Vineyard.