尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗İnsanların kararsız kaldıkları konularda diğer kullanıcılara danıştığı basit bir anket platformu. Django (şablon tabanlı), saf HTML/CSS/JS, veritabanı olarak Supabase Postgres. Ayrıntılı plan: docs/kararsizim-proje-plani.md.
python -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
copy .env.example .env
.venv\Scripts\python.exe manage.py migrate
.venv\Scripts\python.exe manage.py createsuperuser
.venv\Scripts\python.exe manage.py runserver
.env içindeki DATABASE_URL boşsa yerelde SQLite (db.sqlite3) kullanılır. Yönetim paneli: /yonetim/.
| Değişken | Açıklama |
|---|---|
DJANGO_SECRET_KEY | Zorunlu (DJANGO_DEBUG=True iken boş bırakılabilir) |
DJANGO_DEBUG | True / False (varsayılan False) |
DJANGO_ALLOWED_HOSTS | Virgülle ayrılmış alan adları |
DJANGO_CSRF_TRUSTED_ORIGINS | Virgülle ayrılmış kaynaklar (ör. https://alanadi.com) |
DATABASE_URL | Boşsa SQLite; doluysa Postgres (Supabase) |
DATABASE_SSL_REQUIRE | Postgres için SSL zorunlu mu (varsayılan True; yerel Postgres için False) |
.venv\Scripts\python.exe manage.py test
Testler DATABASE_URL dolu olsa bile her zaman geçici SQLite üzerinde çalışır; Supabase'e bağlanmaz.
Supabase yalnızca Postgres veritabanı olarak kullanılır. Supabase Auth, anon key ve JS istemcisi kullanılmaz; tüm veri erişimi Django üzerindendir.
6543) dizesini kopyala..env dosyasındaki DATABASE_URL alanına yapıştır, [YOUR-PASSWORD] yerine parolanı yaz.
Parolada @ : / # ? % gibi özel karakterler varsa URL-kodlaması gerekir (ör. @ → %40)..env dosyası .gitignore içindedir; hiçbir zaman commit'leme.Postgres kullanılırken config/settings.py otomatik olarak CONN_MAX_AGE=0, DISABLE_SERVER_SIDE_CURSORS=True ve sslmode=require ayarlarını uygular (transaction pooling ile uyum için).
.venv\Scripts\python.exe manage.py migrate
.venv\Scripts\python.exe manage.py createsuperuser
Migrasyonlar her zaman yerelden çalıştırılır; yayın (build) adımında migrate çalıştırılmaz.
Django tabloları public şemasında oluşur. Supabase'in otomatik Data API'si bu şemayı anon key ile dışarı açabilir; bu projede Data API kullanılmadığı için iki önlemi birlikte uygula:
DO $$
DECLARE r record;
BEGIN
FOR r IN SELECT tablename FROM pg_tables WHERE schemaname = 'public' LOOP
EXECUTE format('ALTER TABLE public.%I ENABLE ROW LEVEL SECURITY', r.tablename);
END LOOP;
END $$;
Django, tabloların sahibi olan postgres rolüyle bağlandığı için RLS uygulamayı etkilemez. Yeni bir migrasyon yeni tablo oluşturursa SQL'i tekrar çalıştır. Ardından Advisors → Security Advisor sayfasında "RLS disabled" uyarısı kalmadığını doğrula.
throttle_ratelimithit tablosu IP'nin tuzlu özetini ve zaman damgasını tutar (ham IP saklanmaz). Eski kayıtlar kendiliğinden silinir. Tablo bir migrasyonla gelir; Supabase'e migrate çalıştırıp yukarıdaki RLS adımını tekrarlamak yeterli.
db.<ref>.supabase.co:5432) IPv6 gerektirebilir; kullanma.Vercel, projeyi manage.py üzerinden Django olarak tanır ve config.wsgi.application giriş noktasını WSGI_APPLICATION ayarından okur. Ek bir yapılandırma dosyası gerekmez; depodaki iki küçük dosya yeterlidir:
.python-version: Python sürümü (3.13).vercel.json: fonksiyon bölgesi fra1 (Frankfurt, Supabase'e yakın).STATIC_ROOT tanımlı olduğu için Vercel, yayın sırasında collectstatic'i kendisi çalıştırır ve dosyaları CDN'den sunar. WhiteNoise gerekmez. staticfiles/ klasörü .gitignore'dadır, depoya girmez.
| Değişken | Değer |
|---|---|
DJANGO_SECRET_KEY | Yeni ve uzun rastgele bir anahtar (Sensitive işaretle). Üretmek için: python -c "import secrets; print(secrets.token_urlsafe(60))" |
DJANGO_DEBUG | False |
DATABASE_URL | Supabase Transaction pooler bağlantı dizesi (Sensitive işaretle) |
git push otomatik yayınlanır.Alan adı için DJANGO_ALLOWED_HOSTS / DJANGO_CSRF_TRUSTED_ORIGINS gerekmez: Vercel'in VERCEL_PROJECT_PRODUCTION_URL, VERCEL_URL ve VERCEL_BRANCH_URL sistem değişkenleri otomatik kullanılır. Özel alan adı eklersen bu iki değişkene de yaz (virgülle ayrılmış; CSRF için https:// ile).
Vercel'de SECURE_SSL_REDIRECT, güvenli çerezler, HSTS (1 yıl) ve X-Forwarded-Proto ayarı otomatik açılır. Başka bir barındırmada DJANGO_SECURE=True ile aynısını aç. Yerelde DEBUG=False ile denerken bunlar kapalıdır, böylece http://localhost çalışır.
migrate çalıştır (Supabase'e) ve yeni tablo oluşuyorsa RLS adımını tekrarla.VERCEL=1, DJANGO_DEBUG=False, uzun bir DJANGO_SECRET_KEY ve VERCEL_PROJECT_PRODUCTION_URL ile python manage.py check --deploy çalıştır. Kalan iki uyarı (HSTS alt alan adları ve preload) vercel.app ortak alan adı olduğu için bilerek açık bırakılmıştır./static/ yolundan alır; statik dosya sunumu çalışmazsa stilsiz görünür.