Otwarty, lekki zamiennik Trello zaprojektowany dla twórców i niezależnych programistów.
Skupienie na prostocie, szybkości i skalowalności. Zbudowany w oparciu o nowoczesny stack: Tailwind CSS, shadcn/ui, Supabase, integracja Stripe. Obsługuje nieograniczoną liczbę projektów, współpracę zespołową, tryb ciemny/jasny i płynne doświadczenie użytkownika. Idealny dla pojedynczych deweloperów i małych zespołów, którzy chcą pełnej kontroli bez zbędnej złożoności.
🌟 Jeśli ten projekt jest dla Ciebie użyteczny, rozważ dodanie gwiazdki! To pomaga innym go odkryć.
Przewodnik wdrożeniowy
Przegląd
Ta aplikacja korzysta teraz z lokalnych tras API Next.js zamiast Supabase Edge Functions do integracji Stripe. To upraszcza wdrożenie i pozwala używać standardowych plików .env do konfiguracji.Konfiguracja zmiennych środowiskowych
1. Utwórz plik .env.local
Skopiuj.env.example do .env.local i uzupełnij rzeczywistymi wartościami:cp .env.example .env.local
2. Wymagane zmienne środowiskowe
#### Konfiguracja Supabase
NEXT_PUBLIC_SUPABASE_URL- URL Twojego projektu SupabaseNEXT_PUBLIC_SUPABASE_ANON_KEY- Twój anonimowy klucz SupabaseSUPABASE_SERVICE_ROLE_KEY- Twój klucz roli serwisowej Supabase (tylko po stronie serwera)
STRIPE_SECRET_KEY- Twój tajny klucz Stripe (tylko po stronie serwera)NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY- Twój klucz publiczny StripeSTRIPE_WEBHOOK_SECRET- Twój sekret webhook Stripe
NEXT_PUBLIC_SITE_URL- URL Twojej strony (na produkcji)NEXTAUTH_URL- URL Twojej strony (taki sam jak wyżej)NEXTAUTH_SECRET- Losowy sekret dla NextAuth
Lokalny rozwój
- Zainstaluj zależności:
npm install
- Skonfiguruj swoje zmienne środowiskowe w
.env.local - Uruchom serwer deweloperski:
npm run dev
- Przetestuj webhooki Stripe lokalnie za pomocą Stripe CLI:
stripe listen --forward-to localhost:3000/api/stripe/webhook
Wdrożenie produkcyjne
Wdrożenie na Vercel
- Wdróż na Vercel:
npx vercel
- Zmienne środowiskowe:
- Konfiguracja webhooka Stripe:
- Skieruj webhook na:
https://twoja-domena.vercel.app/api/stripe/webhook
Endpointy API
Aplikacja korzysta teraz z następujących lokalnych tras API:
POST /api/stripe/checkout- Tworzy sesje płatności StripePOST /api/stripe/webhook- Obsługuje zdarzenia webhook Stripe
Zalety lokalnych tras API
- Prostsze wdrożenie - Brak potrzeby wdrażania osobnych funkcji edge
- Zmienne środowiskowe - Standardowe wsparcie dla pliku .env
- Lepsze debugowanie - Łatwiejsze debugowanie lokalne
- Integracja z frameworkiem - Lepsza integracja z Next.js
- Brak uzależnienia od dostawcy - Możliwość wdrożenia na dowolnej platformie obsługującej Next.js
Rozwiązywanie problemów
- Problemy z webhookiem:
- Upewnij się, że
STRIPE_WEBHOOK_SECRETodpowiada Twojemu endpointowi webhook Stripe - Sprawdź logi webhooków w panelu Stripe
- Zweryfikuj poprawność adresu URL webhooka
- Zmienne środowiskowe:
- Upewnij się, że wszystkie wymagane zmienne są ustawione
- Sprawdź literówki w nazwach zmiennych
- Zweryfikuj, czy klucz Supabase service role ma odpowiednie uprawnienia
- Problemy z CORS:
- Trasy API zawierają odpowiednie nagłówki CORS
- Upewnij się, że Twoja domena jest dodana do listy dozwolonych, jeśli to konieczne
Uwagi dotyczące bezpieczeństwa
- Nigdy nie udostępniaj
STRIPE_SECRET_KEYaniSUPABASE_SERVICE_ROLE_KEYpo stronie klienta - Używaj prefiksu
NEXT_PUBLIC_tylko dla zmiennych po stronie klienta - Regularnie rotuj swoje sekrety webhooków
- Monitoruj dostarczanie webhooków w panelu Stripe