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
- Frontend: React (Vite), Nginx (in Docker)
- Backend: Python 3 + FastAPI (in Docker)
- Database: SQLite
- HTTPS: Nginx + Let’s Encrypt (certbot standalone)

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
docker compose build
docker compose up -d
Frontend → https://your-domain.com Backend API → https://your-domain.com/api
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
cd frontend
npm install
npm run dev
Frontend will be available at: http://localhost:5173
Users log in with ACCESS_TOKEN
Admin panel uses ADMIN_TOKEN
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
Loader animation "Fire Ring" by KRATGYAGUPTA, license unknown — used with thanks.