> Source URL: /unit-3/project-paths/luke-p/luke-p-2026-04-28-render-deploy.guide
# Luke P — Render Deploy Guide

**Project:** Study Buddy Tracker  
**Repo:** `final-project-Pattlu3`  
**Goal:** Put your Flask + SQLite assignment tracker online for Demo Day.

This guide is tailored to your current repo. Your app has `app.py`, `db.py`, `schema.sql`, templates, `pyproject.toml`, and `uv.lock`. It creates the SQLite database inside Flask's `instance/` folder when the app starts.

---

## Before You Start

Make sure the app works locally:

```bash
uv sync
uv run flask --app app run --debug
```

Open the preview, add an assignment, mark it complete, and confirm the dashboard updates.

---

## Step 1 — Add the Production Server

Render should run your Flask app with `gunicorn`.

```bash
uv add gunicorn
```

This updates `pyproject.toml` and `uv.lock`.

---

## Step 2 — Confirm the Schema Is Committed

Your app initializes SQLite from this file:

```text
schema.sql
```

Check Source Control. If `schema.sql` appears under **Changes**, stage and commit it. Render needs that schema file to create the assignments table.

---

## Step 3 — Create `render.yaml`

Create a new file at the project root named `render.yaml`:

```yaml
services:
  - type: web
    name: study-buddy-tracker
    env: python
    plan: free
    buildCommand: uv sync --frozen && uv cache prune --ci
    startCommand: uv run gunicorn app:app
    autoDeploy: true
```

No API keys are needed for the current version of this app.

---

## Step 4 — Commit and Push

In Source Control, stage and commit:

- `pyproject.toml`
- `uv.lock`
- `render.yaml`
- `schema.sql` if it is changed

Use a message like:

```text
add render deploy config
```

Then click **Sync Changes**.

---

## Step 5 — Create the Render Service

1. Go to [render.com](https://render.com) and sign in with GitHub.
2. Click **New +** → **Web Service**.
3. Connect `final-project-Pattlu3`.
4. Confirm these settings:
   - **Environment:** `Python`
   - **Build Command:** `uv sync --frozen && uv cache prune --ci`
   - **Start Command:** `uv run gunicorn app:app`
   - **Plan:** `Free`
5. Click **Create Web Service**.

---

## Step 6 — Test the Live Site

When Render finishes, open the live URL and test the core flow:

1. Add a new assignment.
2. Return to the dashboard.
3. Edit the assignment.
4. Mark it complete.
5. Toggle the assignments list to show completed work.

If the app errors on startup, check the Render log for `schema.sql` or SQLite messages.

---

## Demo Day Notes

Render's free tier has an ephemeral filesystem. Assignments you add on the live site can disappear after a redeploy. For demo day, add a few sample assignments shortly before presenting so the dashboard has meaningful data.


---

## Backlinks

The following sources link to this document:

- [April 28 — Render deploy](/unit-3/project-paths/projects.path.llm.md)
- [April 28 -- Render deploy](/unit-3/project-paths/luke-p/luke-p.path.llm.md)
- [April 28 - Render deploy](/unit-3/projects/showcase/luke-p.project.llm.md)
