Skip to content

Mikhail11235/elven_quest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Elven Quest

A simple event website with:

  • Wishlist (reserve/unreserve items)
  • Place & time info
  • Dress code section
  • Admin page (add/edit/delete gifts)
  • Mobile-first responsive design

Tech Stack

  • Frontend: React (Vite), Nginx (in Docker)
  • Backend: Python 3 + FastAPI (in Docker)
  • Database: SQLite
  • HTTPS: Nginx + Let’s Encrypt (certbot standalone)

Screenshot

elven

Environment Variables

Create a .env file in the project root (same folder as docker-compose.yml):

ACCESS_TOKEN=your_access_code_for_users
ADMIN_TOKEN=your_admin_code
DOMAIN=your-domain.com

Run with Docker

docker compose build
docker compose up -d

Frontend → https://your-domain.com Backend API → https://your-domain.com/api

Local Development

Backend

cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# Create DB tables and seed data
python seed.py

uvicorn main:app --reload

Backend will be available at: http://localhost:8000

Frontend

cd frontend
npm install
npm run dev

Frontend will be available at: http://localhost:5173

Authentication

Users log in with ACCESS_TOKEN

Admin panel uses ADMIN_TOKEN

Notes

Let’s Encrypt certificate generation is done outside of Docker with certbot --standalone

Make sure ports 80/443 are open and your DNS points to the server

Renew certificates via cron or manually with:

sudo certbot renew --standalone

Credits

Loader animation "Fire Ring" by KRATGYAGUPTA, license unknown — used with thanks.