APIDropsy
Zacznij ↗
APIDROPSY / Dokumentacja

Instalacja i aktualizacje

Repozytorium jest obecnie prywatne. Poproś o dostęp.

Repozytorium GitLab ↗

Dokumentacja / PL ↗

1. Instalacja i aktualizacje

Wymagania: dostęp do prywatnego repozytorium GitLab, Node.js 22.13 lub nowszy, Docker z Compose 2.30 lub nowszym, Nginx, PostgreSQL oraz domena z HTTPS. Szczegółową konfigurację znajdziesz w deployment/selfhost/README.md.

2. Pobierz repozytorium

Pobierz repozytorium na komputerze z dostępem do GitLaba. Nie wpisuj tokenów ani haseł w adresie repozytorium.

git clone https://gitlab.com/sowabartek/apidropsy.git
cd apidropsy

3. Skonfiguruj środowisko

W katalogu głównym zainstaluj zależności i wyeksportuj samodzielną aplikację. Wynikowy katalog zawiera własny package.json, Dockerfile, setup.sh oraz konfigurację PostgreSQL.

npm ci
node deployment/selfhost/export.mjs outputs/apidropsy-dedicated

4. Uruchom i sprawdź

Przenieś katalog outputs/apidropsy-dedicated na serwer. Utwórz dedykowany schemat PostgreSQL w wybranej bazie. Uruchom setup.sh z uprawnieniami administratora. Skrypt zapyta o dane bazy i administratora. Nie nadpisuj istniejącego runtime.env.

cd /var/www/apidropsy
bash setup.sh
curl --fail http://127.0.0.1:3100/api/health

5. Cloudflare Flexible / Nginx HTTP

Cloudflare: DNS z proxy, SSL/TLS Flexible i Always Use HTTPS. Na serwerze użyj nginx-http.conf: HTTP na porcie 80, bez lokalnego certyfikatu i przekierowania apidropsy.com do HTTPS. APIDROPSY_PUBLIC_ORIGIN pozostaje https://apidropsy.com. TLS PostgreSQL jest niezależny. Szczegóły: deployment/selfhost/README.md.

6. E-mail

Rejestracja i odzyskiwanie hasła wymagają MAIL_WEBHOOK_URL, MAIL_WEBHOOK_SECRET i APIDROPSY_PUBLIC_ORIGIN w runtime.env. Webhook HTTPS musi przyjąć POST JSON: to, template, locale, url; nagłówek Authorization: Bearer zawiera sekret. Zwraca 2xx dopiero po przyjęciu wiadomości do wysłania. Bez wysyłki formularze informują o niedostępności. Link jest w polu url; template ma wartość verify lub reset.

7. Aktualizuj z kopią zapasową

Zanim zaktualizujesz kod, wykonaj kopię PostgreSQL i chronioną kopię runtime.env. Sprawdź opis zmian i nowe migracje. Pobierz aktualizacje, odtwórz eksport w nowym katalogu i wdroż go obok poprzedniej wersji. Migracje uruchamiają się przy starcie. Nie kopiuj przykładowych danych do produkcji.

git pull --ff-only
npm ci
node deployment/selfhost/export.mjs outputs/apidropsy-dedicated

8. Status

Własna instalacja i konto w naszej usłudze to dwie niezależne opcje. Żadna nie podłącza automatycznie social mediów. Konektory, zgody API i synchronizacja są kolejnym etapem. Nazwę i wygląd można technicznie dostosować; rozpowszechnianie kodu wymaga uprawnień wynikających z licencji lub zgody właściciela.

CLOUDFLARE TURNSTILE

Weryfikacja formularza rejestracji

W panelu Cloudflare otwórz Turnstile, dodaj widget w trybie Managed i wpisz domenę swojej instalacji, np. apidropsy.com. Skopiuj Site Key oraz Secret Key do poniższych pól.

Otwórz Cloudflare Turnstile ↗

Klucze pozostają w tym formularzu do zamknięcia strony. Konfigurator nie wysyła ich na serwer. Wklej skopiowane trzy ustawienia do runtime.env na własnym serwerze, a następnie odtwórz kontener poleceniem poniżej.

docker compose up -d --force-recreate app

Secret Key służy do weryfikacji po stronie serwera. Nie wklejaj go do publicznego kodu strony. Po uruchomieniu sprawdź rejestrację na domenie dodanej do widgetu.