Otwarta, lekka alternatywa dla Trello zaprojektowana dla twórców i niezależnych programistów.
Skupienie na prostocie, szybkości i skalowalności. Zbudowane na nowoczesnym stosie: Tailwind CSS, shadcn/ui, Supabase, integracja ze Stripe. Obsługuje nieograniczoną liczbę projektów, współpracę zespołową, tryb jasny/ciemny i płynne doświadczenie użytkownika. Idealne dla samotnych deweloperów i małych zespołów, którzy chcą mieć pełną kontrolę bez zbędnej złożoności.
🌟 Jeśli projekt jest dla Ciebie przydatny, daj mu gwiazdkę! Dzięki temu inni również mogą go odkryć.
Przewodnik wdrożeniowy
Przegląd
Ta aplikacja używa teraz lokalnych tras API Next.js zamiast funkcji Supabase Edge do integracji ze Stripe. Upraszcza to 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.local2. Wymagane zmienne środowiskowe
#### Konfiguracja Supabase
NEXT_PUBLIC_SUPABASE_URL- Adres URL projektu SupabaseNEXT_PUBLIC_SUPABASE_ANON_KEY- Anonimowy klucz SupabaseSUPABASE_SERVICE_ROLE_KEY- 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- Klucz publiczny StripeSTRIPE_WEBHOOK_SECRET- Tajny klucz webhook Stripe
NEXT_PUBLIC_SITE_URL- Adres URL Twojej strony (dla produkcji)NEXTAUTH_URL- Adres 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 pliku
.env.local - Uruchom serwer deweloperski:
npm run dev- Przetestuj webhooki Stripe lokalnie za pomocą Stripe CLI:
stripe listen --forward-to localhost:3000/api/stripe/webhookWdrożenie produkcyjne
Wdrażanie na Vercel
- Wdróż na Vercel:
npx vercel- Zmienne środowiskowe:
- Konfiguracja Stripe Webhook:
- Skieruj webhook na:
https://twoja-domena.vercel.app/api/stripe/webhook
Punkty końcowe API
Aplikacja korzysta teraz z tych lokalnych tras API:
POST /api/stripe/checkout- Tworzy sesje Stripe checkoutPOST /api/stripe/webhook- Obsługuje zdarzenia Stripe webhook
Zalety lokalnych tras API
- Prostsze wdrożenie - Brak potrzeby wdrażania osobnych funkcji edge
- Zmienne środowiskowe - Standardowe wsparcie pliku .env
- Lepsze debugowanie - Łatwiejsze debugowanie lokalnie
- Integracja z frameworkiem - Lepsza integracja z Next.js
- Brak uzależnienia od dostawcy - Możesz wdrożyć na dowolnej platformie obsługującej Next.js
Rozwiązywanie problemów
- Problemy z webhookiem:
- Upewnij się, że
STRIPE_WEBHOOK_SECRETodpowiada Twojemu endpointowi Stripe webhook - Sprawdź logi webhooków w dashboardzie 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 roli serwisowej Supabase ma odpowiednie uprawnienia
- Problemy z CORS:
- Trasy API zawierają odpowiednie nagłówki CORS
- Upewnij się, że Twoja domena jest umieszczona na białej liście, jeśli to konieczne
Uwagi dotyczące bezpieczeństwa
- Nigdy nie udostępniaj
STRIPE_SECRET_KEYaniSUPABASE_SERVICE_ROLE_KEYklientowi - Używaj prefiksu
NEXT_PUBLIC_tylko dla zmiennych po stronie klienta - Regularnie zmieniaj swoje sekrety webhooków
- Monitoruj dostarczanie webhooków w dashboardzie Stripe