Skip to content

Boring full-stack web app framework to get stuff done, with Django Python and React

Notifications You must be signed in to change notification settings

letam/web-framework-2025

Repository files navigation

Web Framework 2025

Boring web framework to get stuff done. A framework on top of frameworks.

Includes some functionality for a basic public micro-blogging app.

Tech Stack

Setup for Local Development

Backend server

  1. Install latest Python binary

  2. Download and unzip project from https://github.com/letam/web-framework-2025/archive/refs/heads/main.zip

  3. Open terminal and change present directory to be the project directory

  4. Create and activate python virtual environment for the project

    python3 -m venv venv
    source venv/bin/activate
    
  5. Install project requirements

    pip install -U pip
    pip install -r requirements.txt
    
  6. Run project migrations

    python server/manage.py migrate
    
  7. Run other setup scripts

    python server/manage.py init_users
    
  8. Run the development server

    python server/manage.py runserver
    

Frontend server

  1. In another terminal session, change into frontend app directory

    cd app
    
  2. Install npm packages:

    npm i
    
  3. Create .env file for frontend code

    cp .env.development.local.sample .env
    
  4. Start frontend dev server

    npm run dev
    

Setup for Production

  1. Follow above steps to install Python and project dependencies for both backend and frontend servers

  2. Build app for production

    ./build-prod
    

Deploying to fly.io

Config Type 1: Deploy on simple single webserver with SQLite database:

  1. Set app name in project (Replace your_app_name with an actual app name):
sed -i.bak 's/FLY_APP_NAME/your_app_name/g' server/config/settings.py && find scripts/ -type f -name "deploy_*" -exec sed -i.bak 's/FLY_APP_NAME/your_app_name/g' {} +
  1. Run app deployment script:
./scripts/deploy-fly.io-sqlite.sh $app_name

Config Type 2: Deploy using HA configuration with Postgres database:

  1. Set app name in project (Replace your_app_name with an actual app name):
sed -i.bak 's/FLY_APP_NAME/your_app_name/g' server/config/settings.py && find scripts/ -type f -name "deploy_*" -exec sed -i.bak 's/FLY_APP_NAME/your_app_name/g' {} +
  1. Run app deployment script:
./scripts/deploy-fly.io-postgres.sh

To use Cloudflare R2 object storage for user uploads (Required for Config Type 2):

TODO

About

Boring full-stack web app framework to get stuff done, with Django Python and React

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published