Maker-Stacki s a platform to showcase hardware projects—from early prototypes to finished builds.
Document your builds with project pages, track components, and share your work with other makers.
Discover new ideas, stay accountable, and actually finish what you start.
This project uses Docker with PostgreSQL + Gunicorn for a production-like environment.
Create a .env file in the project root:
POSTGRES_DB=makebuddy
POSTGRES_USER=makebuddy_user
POSTGRES_PASSWORD=yourpassword
SECRET_KEY=your-secret-key
DEBUG=1
ALLOWED_HOSTS=localhost,127.0.0.1docker compose up --buildVisit:
http://localhost:8000
- PostgreSQL starts in a container
- Django runs migrations automatically
- App is served via Gunicorn
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate
pip install -r requirements.txtpython manage.py migrate
python manage.py runservermkdir -p media/profile_picspython manage.py checkpython manage.py makemigrations
python manage.py migratepython manage.py test --settings=config.settings_testUsing Black:
python -m black .python manage.py shellfrom django.contrib.auth.models import User
from maker_projects.models import MakerProject
MakerProject.objects.all()
MakerProject.objects.count()
MakerProject.objects.first()
project = MakerProject.objects.get(id=1)
MakerProject.objects.get(title="<project_title>")
user = User.objects.get(username="chris")
user.maker_projects.all()
MakerProject.objects.values("title")
ProjectLink.objects.filter(link_type="github")
# Show model fields
[field.name for field in MakerProject._meta.fields]- Docker is the recommended way to run this project
- The app uses Gunicorn in containers
- To reset database:
docker-compose down
docker-compose up --build- Add parts to maker_parts/data/seed_parts.json
Test getting parts to list:
python manage.py seed_parts --file maker_parts/data/seed_parts.json --dry-runRun:
python manage.py seed_parts --file maker_parts/data/seed_parts.jsonTest enqueue_weekly_sync:
docker exec -it maker_buddy-web-1 python manage.py enqueue_weekly_syncCheck for Ready:
docker exec -it maker_buddy-web-1 python manage.py shell -c "
from django_tasks_db.models import DBTaskResult
print(DBTaskResult.objects.all().values('id', 'status', 'task_path').last())
"Run
docker exec -it maker_buddy-web-1 python manage.py db_workerdocker logs maker_buddy-web-1 --tail 50Running docker:
docker exec -it maker_buddy-web-1 python manage.py seed_parts --file maker_parts/data/seed_parts.json- Add deployment guide (After testing a few services TBD)