Skip to content
/ listy Public

Latest commit

 

History

History
83 lines (55 loc) · 2.57 KB

File metadata and controls

83 lines (55 loc) · 2.57 KB

Listy

Python Version License Self-hosted

A modular Django-based web application that combines multiple small utilities such as grocery lists, todo management, and account handling—into a single cohesive project.

Installation

Clone the repository and install dependencies:

git clone https://git.siru.ink/siru/listy.git
uv sync

Create Django & PostgreSQL configuration variables in a /.env file:

SECRET_KEY=...
DEBUG=...
POSTGRESQL_DBNAME=...
POSTGRESQL_USER=...
POSTGRESQL_PASSWD=...
POSTGRESQL_PORT=...
MEDIA_ROOT=...

Apply migrations and start the development server:

uv run manage.py migrate
uv run gunicorn listy.wsgi --port <your-preferred-port>

Features

  • Modular Apps: Separate Django apps for clear responsibility boundaries
  • User Accounts: Login, logout, and basic account views
  • Todo Lists: Create, manage, and share tasks
  • Grocery Lists: Item tracking for shopping
  • Reusable Templates: Shared base layout and components

Technology Stack

  • Python: Easy-to-deploy, widely adopted language with strong ecosystem and long-term maintainability
  • PostgreSQL: Robust relational database used via Django ORM, configured through environment variables for secure and flexible deployment
  • Django Framework: High-level web framework providing ORM, authentication system, templating engine, and modular app architecture
  • Gunicorn: Production-ready WSGI HTTP server used to run the Django application in a scalable and efficient manner

FAQ

Is this production-ready?

This project is designed primarily as a lightweight, extensible base. For production use, you would need to modify the trusted hosts selection in the listy.settings module. Furthermore, this app is not implementing TLS or load-balancing, so it would be best run behind a mature reverse proxy such as nginx.

Can I add more apps?

Yes. The modular structure makes it easy to plug in additional Django-framework apps without affecting existing functionality.

Why use multiple apps instead of one?

Separation of concerns. Each app encapsulates its own logic, making the project easier to maintain and extend.

How do I customize styling?

Edit the global stylesheet at static/style.css or extend the base template.