尚未偵測到更新。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.