From bc0973ccaa3ee2e631b8af20eff645ead7078c42 Mon Sep 17 00:00:00 2001 From: billisdead Date: Wed, 3 Jun 2026 13:17:04 +0200 Subject: [PATCH] docs: translate README files from French to English Co-Authored-By: Claude Sonnet 4.6 --- README.md | 250 +++++++++++++++--------------- artifacts/postiz-mobile/README.md | 232 +++++++++++++-------------- 2 files changed, 241 insertions(+), 241 deletions(-) diff --git a/README.md b/README.md index 403b27e..a3081ec 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,48 @@ # PostizMobile -Application mobile React Native (Expo) pour piloter une instance **Postiz** auto-hébergée depuis votre téléphone Android ou iOS. +React Native (Expo) mobile app to control a self-hosted **Postiz** instance from your Android or iOS device. --- -## Sommaire +## Table of Contents -1. [Fonctionnalités](#fonctionnalités) -2. [Prérequis](#prérequis) -3. [Installation & développement](#installation--développement) -4. [Configuration de l'application](#configuration-de-lapplication) -5. [Architecture du projet](#architecture-du-projet) -6. [API Postiz utilisée](#api-postiz-utilisée) -7. [Build APK Android (EAS)](#build-apk-android-eas) -8. [Build iOS (Expo Launch)](#build-ios-expo-launch) -9. [Pousser les modifications sur Gitea](#pousser-les-modifications-sur-gitea) -10. [Variables d'environnement & secrets](#variables-denvironnement--secrets) -11. [Dépannage](#dépannage) +1. [Features](#features) +2. [Prerequisites](#prerequisites) +3. [Installation & Development](#installation--development) +4. [App Configuration](#app-configuration) +5. [Project Architecture](#project-architecture) +6. [Postiz API](#postiz-api) +7. [Android APK Build (EAS)](#android-apk-build-eas) +8. [iOS Build (Expo Launch)](#ios-build-expo-launch) +9. [Pushing Changes to Gitea](#pushing-changes-to-gitea) +10. [Environment Variables & Secrets](#environment-variables--secrets) +11. [Troubleshooting](#troubleshooting) --- -## Fonctionnalités +## Features -| Écran | Description | -|-------|-------------| -| **Calendrier** | Vue mensuelle avec points de couleur par jour (indigo = planifié, vert = publié, rouge = erreur). Tap sur un jour pour voir les posts. | -| **Posts** | Liste filtrée (Tous / Queue / Publié / Brouillon / Erreur) avec pull-to-refresh et swipe gauche pour supprimer. | -| **Composer** | Éditeur de texte, sélecteur de canaux, date/heure, importation d'image galerie + upload, publier maintenant ou planifier. | -| **Paramètres** | Saisie de la clé API et de l'URL de base, test de connexion, sauvegarde sécurisée (SecureStore). | -| **Notifications** | Alertes locales automatiques quand un post passe à PUBLISHED ou ERROR (polling toutes les 15 minutes). | +| Screen | Description | +|--------|-------------| +| **Calendar** | Monthly view with color dots per day (indigo = scheduled, green = published, red = error). Tap a day to see its posts. | +| **Posts** | Filtered list (All / Queue / Published / Draft / Error) with pull-to-refresh and swipe left to delete. | +| **Compose** | Text editor, channel picker, date/time picker, gallery image import + upload, publish now or schedule. | +| **Settings** | API key and base URL input, connection test, secure storage (SecureStore). | +| **Notifications** | Automatic local alerts when a post transitions to PUBLISHED or ERROR (polling every 15 minutes). | -**Thème** : dark forcé (`userInterfaceStyle: dark`). -**Authentification** : clé API stockée dans `expo-secure-store`, jamais en dur dans le code. +**Theme**: forced dark (`userInterfaceStyle: dark`). +**Authentication**: API key stored in `expo-secure-store`, never hardcoded. --- -## Prérequis +## Prerequisites -| Outil | Version minimale | -|-------|-----------------| +| Tool | Minimum version | +|------|----------------| | Node.js | 20 LTS | | pnpm | 10+ | -| Expo Go (téléphone) | SDK 54 compatible | -| Compte EAS (pour APK) | gratuit sur expo.dev | +| Expo Go (phone) | SDK 54 compatible | +| EAS account (for APK) | free on expo.dev | ```bash npm install -g pnpm @@ -51,53 +51,53 @@ npm install -g eas-cli --- -## Installation & développement +## Installation & Development -### 1. Cloner le dépôt +### 1. Clone the repository ```bash git clone ssh://gitea@homegit.gyozamancave.fr:2222/billisdead/Postiz-android.git cd Postiz-android ``` -### 2. Installer les dépendances +### 2. Install dependencies ```bash pnpm install ``` -### 3. Lancer le serveur de développement +### 3. Start the development server ```bash pnpm --filter @workspace/postiz-mobile run dev ``` -Le terminal affiche un QR code. Scannez-le avec **Expo Go** (Android) ou l'app **Appareil photo** (iOS) pour voir l'app en direct. +The terminal displays a QR code. Scan it with **Expo Go** (Android) or the **Camera** app (iOS) to see the app live. -### 4. Ouvrir dans le navigateur (web preview) +### 4. Open in the browser (web preview) ``` http://localhost: ``` -Le port est assigné dynamiquement par l'environnement Replit. +The port is dynamically assigned by the Replit environment. --- -## Configuration de l'application +## App Configuration -Au premier lancement, l'écran **Paramètres** s'affiche car aucune clé n'est configurée. +On first launch, the **Settings** screen is shown because no key is configured yet. -1. **URL de base** : `https://votre-instance-postiz.fr/public/v1` -2. **Clé API** : générée depuis votre instance Postiz → *Settings → API Keys* -3. Appuyez sur **Test Connection** pour valider -4. Appuyez sur **Save Settings** +1. **Base URL**: `https://your-postiz-instance.fr/public/v1` +2. **API Key**: generated from your Postiz instance → *Settings → API Keys* +3. Tap **Test Connection** to validate +4. Tap **Save Settings** -La clé est chiffrée et stockée localement via `expo-secure-store`. Elle n'est jamais envoyée à un service tiers. +The key is encrypted and stored locally via `expo-secure-store`. It is never sent to a third-party service. --- -## Architecture du projet +## Project Architecture ``` artifacts/postiz-mobile/ @@ -127,35 +127,35 @@ artifacts/postiz-mobile/ └── app.json # Config Expo (permissions, plugins, thème) ``` -### Dépendances principales +### Main dependencies | Package | Usage | |---------|-------| -| `expo-router` | Navigation file-based | -| `axios` | Client HTTP vers l'API Postiz | -| `expo-secure-store` | Stockage chiffré de la clé API | -| `react-native-calendars` | Vue calendrier mensuelle | -| `@react-native-community/datetimepicker` | Sélecteur date/heure dans Composer | -| `expo-image-picker` | Accès galerie photos | -| `expo-notifications` | Notifications locales de statut | -| `expo-task-manager` | Tâche de fond pour le polling | -| `@tanstack/react-query` | Cache et refetch des données API | +| `expo-router` | File-based navigation | +| `axios` | HTTP client for the Postiz API | +| `expo-secure-store` | Encrypted API key storage | +| `react-native-calendars` | Monthly calendar view | +| `@react-native-community/datetimepicker` | Date/time picker in Compose | +| `expo-image-picker` | Gallery photo access | +| `expo-notifications` | Local status notifications | +| `expo-task-manager` | Background task for polling | +| `@tanstack/react-query` | API data cache and refetch | --- -## API Postiz utilisée +## Postiz API -Base URL configurée par l'utilisateur (ex. `https://postiz.example.com/public/v1`). +Base URL configured by the user (e.g. `https://postiz.example.com/public/v1`). -| Méthode | Endpoint | Usage | -|---------|----------|-------| -| `GET` | `/integrations` | Lister les canaux (Twitter, LinkedIn, etc.) | -| `GET` | `/posts?startDate=&endDate=` | Posts sur une plage de dates | -| `POST` | `/posts` | Créer / planifier un post | -| `DELETE` | `/posts/:id` | Supprimer un post | -| `POST` | `/upload` | Uploader une image (multipart) | +| Method | Endpoint | Usage | +|--------|----------|-------| +| `GET` | `/integrations` | List channels (Twitter, LinkedIn, etc.) | +| `GET` | `/posts?startDate=&endDate=` | Posts over a date range | +| `POST` | `/posts` | Create / schedule a post | +| `DELETE` | `/posts/:id` | Delete a post | +| `POST` | `/upload` | Upload an image (multipart) | -### Exemple de payload POST /posts +### POST /posts payload example ```json { @@ -171,34 +171,34 @@ Base URL configurée par l'utilisateur (ex. `https://postiz.example.com/public/v } ``` -Pour publier immédiatement, utilisez `"type": "now"`. +To publish immediately, use `"type": "now"`. --- -## Build APK Android (EAS) +## Android APK Build (EAS) -> **Prérequis** : compte gratuit sur [expo.dev](https://expo.dev) et `eas-cli` installé. +> **Prerequisites**: free account on [expo.dev](https://expo.dev) and `eas-cli` installed. -### 1. Se connecter à EAS +### 1. Log in to EAS ```bash npx eas login ``` -### 2. Initialiser EAS dans le projet +### 2. Initialize EAS in the project ```bash cd artifacts/postiz-mobile npx eas init ``` -Cela génère un `projectId` dans `app.json`. +This generates a `projectId` in `app.json`. -### 3. Fichier de configuration EAS +### 3. EAS configuration file -> **Déjà inclus dans le dépôt** : `artifacts/postiz-mobile/eas.json` est présent, vous pouvez passer cette étape. +> **Already included in the repository**: `artifacts/postiz-mobile/eas.json` is present, you can skip this step. -Si vous souhaitez le recréer manuellement : +To recreate it manually: ```json { @@ -223,7 +223,7 @@ Si vous souhaitez le recréer manuellement : } ``` -### 4. Lancer le build APK +### 4. Start the APK build ```bash # APK de test (sideload) @@ -233,9 +233,9 @@ npx eas build --platform android --profile preview npx eas build --platform android --profile production ``` -Le build se fait dans le cloud EAS (~10-15 min). À la fin, EAS affiche un **lien de téléchargement** et un **QR code** pour récupérer le fichier `.apk`. +The build runs in the EAS cloud (~10-15 min). At the end, EAS displays a **download link** and a **QR code** to retrieve the `.apk` file. -### 5. Installer l'APK sur votre téléphone +### 5. Install the APK on your phone ```bash # Via adb @@ -244,19 +244,19 @@ adb install postiz-mobile.apk # Ou scannez le QR code affiché par EAS ``` -### 6. Publier l'APK comme Release Gitea +### 6. Publish the APK as a Gitea Release -Une fois le `.apk` téléchargé depuis EAS, attachez-le à une release Gitea pour le rendre disponible directement depuis le dépôt : +Once the `.apk` is downloaded from EAS, attach it to a Gitea release to make it available directly from the repository: -1. Allez sur `https://homegit.gyozamancave.fr/billisdead/Postiz-android/releases` -2. Cliquez **New Release** -3. Choisissez un tag (ex. `v1.0.0`) et un titre -4. Glissez-déposez le fichier `.apk` dans la zone de pièces jointes -5. Cliquez **Publish Release** +1. Go to `https://homegit.gyozamancave.fr/billisdead/Postiz-android/releases` +2. Click **New Release** +3. Choose a tag (e.g. `v1.0.0`) and a title +4. Drag and drop the `.apk` file into the attachments area +5. Click **Publish Release** -L'APK sera alors téléchargeable directement depuis la page du dépôt Gitea. +The APK will then be downloadable directly from the Gitea repository page. -### Permissions Android déclarées +### Declared Android permissions ```xml READ_EXTERNAL_STORAGE @@ -268,25 +268,25 @@ VIBRATE --- -## Build iOS (Expo Launch) +## iOS Build (Expo Launch) -> Disponible uniquement via **Replit Expo Launch** (soumission App Store automatisée). +> Available only via **Replit Expo Launch** (automated App Store submission). -1. Dans Replit, cliquez sur le bouton **Publish** -2. Sélectionnez **Expo Launch** -3. Suivez le wizard (compte Apple Developer requis) +1. In Replit, click the **Publish** button +2. Select **Expo Launch** +3. Follow the wizard (Apple Developer account required) -**Note** : la publication Google Play n'est pas encore supportée par Expo Launch — utilisez EAS pour Android. +**Note**: Google Play publishing is not yet supported by Expo Launch — use EAS for Android. --- -## Pousser les modifications sur Gitea +## Pushing Changes to Gitea -Le dépôt distant est : `ssh://gitea@homegit.gyozamancave.fr:2222/billisdead/Postiz-android.git` +The remote repository is: `ssh://gitea@homegit.gyozamancave.fr:2222/billisdead/Postiz-android.git` -La clé SSH utilisée est stockée dans la variable d'environnement `GITEA_SSH_KEY` (côté Replit). +The SSH key used is stored in the `GITEA_SSH_KEY` environment variable (on the Replit side). -### Push depuis votre machine locale +### Push from your local machine ```bash # Ajouter le remote (une seule fois) @@ -296,11 +296,11 @@ git remote add gitea ssh://gitea@homegit.gyozamancave.fr:2222/billisdead/Postiz- git push gitea main ``` -Assurez-vous que votre clé SSH publique est ajoutée dans Gitea → *Paramètres utilisateur → SSH / GPG Keys*. +Make sure your public SSH key is added in Gitea → *User Settings → SSH / GPG Keys*. -### Push depuis Replit (via script) +### Push from Replit (via script) -Depuis Replit, les commandes `git push` directes sont protégées. Utilisez le script de bundle : +From Replit, direct `git push` commands are restricted. Use the bundle script: ```bash # Créer le bundle @@ -316,48 +316,48 @@ GIT_SSH_COMMAND="ssh -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=no -p 2222" \ --- -## Variables d'environnement & secrets +## Environment Variables & Secrets -| Variable | Stockage | Description | -|----------|----------|-------------| -| `GITEA_SSH_KEY` | Replit Secrets (shared) | Clé SSH privée pour push vers Gitea | -| `SESSION_SECRET` | Replit Secrets | Secret de session (API server) | +| Variable | Storage | Description | +|----------|---------|-------------| +| `GITEA_SSH_KEY` | Replit Secrets (shared) | Private SSH key for pushing to Gitea | +| `SESSION_SECRET` | Replit Secrets | Session secret (API server) | -Les variables côté app (clé API Postiz, URL) sont **saisies par l'utilisateur** dans l'écran Paramètres et stockées dans `expo-secure-store` — elles ne transitent jamais dans le code source. +App-side variables (Postiz API key, URL) are **entered by the user** in the Settings screen and stored in `expo-secure-store` — they never pass through the source code. --- -## Dépannage +## Troubleshooting -### L'app affiche "Not Configured" sur tous les écrans +### The app shows "Not Configured" on all screens -→ Allez dans l'onglet **Paramètres**, entrez votre clé API et URL, puis tapez **Test Connection**. +→ Go to the **Settings** tab, enter your API key and URL, then tap **Test Connection**. -### "Connection failed" dans les Paramètres +### "Connection failed" in Settings -- Vérifiez que l'URL se termine bien par `/public/v1` -- Vérifiez que la clé API est valide (générée dans Postiz → API Keys) -- Vérifiez que votre instance Postiz est accessible depuis internet +- Check that the URL ends with `/public/v1` +- Check that the API key is valid (generated in Postiz → API Keys) +- Check that your Postiz instance is accessible from the internet -### Pas de notifications reçues +### No notifications received -- Acceptez les permissions de notification au premier lancement -- Le polling se fait toutes les 15 minutes — attendez un cycle complet -- Sur Android, vérifiez que les notifications de l'app ne sont pas désactivées dans les paramètres système +- Accept notification permissions on first launch +- Polling runs every 15 minutes — wait for a full cycle +- On Android, check that the app's notifications are not disabled in system settings -### Erreur Metro "module not found" +### Metro error "module not found" ```bash pnpm install # Puis redémarrer le workflow Expo ``` -### Le calendrier ne charge pas les posts +### Calendar does not load posts -- Vérifiez que l'API Postiz supporte les paramètres `startDate` / `endDate` sur `GET /posts` -- Consultez les logs réseau : dans Expo Go, secouez l'appareil → *Open Debugger* +- Check that the Postiz API supports `startDate` / `endDate` parameters on `GET /posts` +- Check network logs: in Expo Go, shake the device → *Open Debugger* -### Build EAS échoue +### EAS build fails ```bash # Vérifier la version Expo @@ -369,13 +369,13 @@ npx expo install --check --- -## Contribuer +## Contributing -1. Forkez sur Gitea : `https://homegit.gyozamancave.fr/billisdead/Postiz-android` -2. Créez une branche feature : `git checkout -b feature/ma-fonctionnalite` -3. Committez vos changements -4. Poussez et ouvrez une Pull Request +1. Fork on Gitea: `https://homegit.gyozamancave.fr/billisdead/Postiz-android` +2. Create a feature branch: `git checkout -b feature/my-feature` +3. Commit your changes +4. Push and open a Pull Request --- -*Généré avec ❤️ sur Replit — PostizMobile v1.0.0* +*Generated with ❤️ on Replit — PostizMobile v1.0.0* diff --git a/artifacts/postiz-mobile/README.md b/artifacts/postiz-mobile/README.md index 6bbd1a4..21c87cc 100644 --- a/artifacts/postiz-mobile/README.md +++ b/artifacts/postiz-mobile/README.md @@ -1,48 +1,48 @@ # PostizMobile -Application mobile React Native (Expo) pour piloter une instance **Postiz** auto-hébergée depuis votre téléphone Android ou iOS. +React Native (Expo) mobile app to control a self-hosted **Postiz** instance from your Android or iOS device. --- -## Sommaire +## Table of Contents -1. [Fonctionnalités](#fonctionnalités) -2. [Prérequis](#prérequis) -3. [Installation & développement](#installation--développement) -4. [Configuration de l'application](#configuration-de-lapplication) -5. [Architecture du projet](#architecture-du-projet) -6. [API Postiz utilisée](#api-postiz-utilisée) -7. [Build APK Android (EAS)](#build-apk-android-eas) -8. [Build iOS (Expo Launch)](#build-ios-expo-launch) -9. [Pousser les modifications sur Gitea](#pousser-les-modifications-sur-gitea) -10. [Variables d'environnement & secrets](#variables-denvironnement--secrets) -11. [Dépannage](#dépannage) +1. [Features](#features) +2. [Prerequisites](#prerequisites) +3. [Installation & Development](#installation--development) +4. [App Configuration](#app-configuration) +5. [Project Architecture](#project-architecture) +6. [Postiz API](#postiz-api) +7. [Android APK Build (EAS)](#android-apk-build-eas) +8. [iOS Build (Expo Launch)](#ios-build-expo-launch) +9. [Pushing Changes to Gitea](#pushing-changes-to-gitea) +10. [Environment Variables & Secrets](#environment-variables--secrets) +11. [Troubleshooting](#troubleshooting) --- -## Fonctionnalités +## Features -| Écran | Description | -|-------|-------------| -| **Calendrier** | Vue mensuelle avec points de couleur par jour (indigo = planifié, vert = publié, rouge = erreur). Tap sur un jour pour voir les posts. | -| **Posts** | Liste filtrée (Tous / Queue / Publié / Brouillon / Erreur) avec pull-to-refresh et swipe gauche pour supprimer. | -| **Composer** | Éditeur de texte, sélecteur de canaux, date/heure, importation d'image galerie + upload, publier maintenant ou planifier. | -| **Paramètres** | Saisie de la clé API et de l'URL de base, test de connexion, sauvegarde sécurisée (SecureStore). | -| **Notifications** | Alertes locales automatiques quand un post passe à PUBLISHED ou ERROR (polling toutes les 15 minutes). | +| Screen | Description | +|--------|-------------| +| **Calendar** | Monthly view with color dots per day (indigo = scheduled, green = published, red = error). Tap a day to see its posts. | +| **Posts** | Filtered list (All / Queue / Published / Draft / Error) with pull-to-refresh and swipe left to delete. | +| **Compose** | Text editor, channel picker, date/time picker, gallery image import + upload, publish now or schedule. | +| **Settings** | API key and base URL input, connection test, secure storage (SecureStore). | +| **Notifications** | Automatic local alerts when a post transitions to PUBLISHED or ERROR (polling every 15 minutes). | -**Thème** : dark forcé (`userInterfaceStyle: dark`). -**Authentification** : clé API stockée dans `expo-secure-store`, jamais en dur dans le code. +**Theme**: forced dark (`userInterfaceStyle: dark`). +**Authentication**: API key stored in `expo-secure-store`, never hardcoded. --- -## Prérequis +## Prerequisites -| Outil | Version minimale | -|-------|-----------------| +| Tool | Minimum version | +|------|----------------| | Node.js | 20 LTS | | pnpm | 10+ | -| Expo Go (téléphone) | SDK 54 compatible | -| Compte EAS (pour APK) | gratuit sur expo.dev | +| Expo Go (phone) | SDK 54 compatible | +| EAS account (for APK) | free on expo.dev | ```bash npm install -g pnpm @@ -51,53 +51,53 @@ npm install -g eas-cli --- -## Installation & développement +## Installation & Development -### 1. Cloner le dépôt +### 1. Clone the repository ```bash git clone ssh://gitea@homegit.gyozamancave.fr:2222/billisdead/Postiz-android.git cd Postiz-android ``` -### 2. Installer les dépendances +### 2. Install dependencies ```bash pnpm install ``` -### 3. Lancer le serveur de développement +### 3. Start the development server ```bash pnpm --filter @workspace/postiz-mobile run dev ``` -Le terminal affiche un QR code. Scannez-le avec **Expo Go** (Android) ou l'app **Appareil photo** (iOS) pour voir l'app en direct. +The terminal displays a QR code. Scan it with **Expo Go** (Android) or the **Camera** app (iOS) to see the app live. -### 4. Ouvrir dans le navigateur (web preview) +### 4. Open in the browser (web preview) ``` http://localhost: ``` -Le port est assigné dynamiquement par l'environnement Replit. +The port is dynamically assigned by the Replit environment. --- -## Configuration de l'application +## App Configuration -Au premier lancement, l'écran **Paramètres** s'affiche car aucune clé n'est configurée. +On first launch, the **Settings** screen is shown because no key is configured yet. -1. **URL de base** : `https://votre-instance-postiz.fr/public/v1` -2. **Clé API** : générée depuis votre instance Postiz → *Settings → API Keys* -3. Appuyez sur **Test Connection** pour valider -4. Appuyez sur **Save Settings** +1. **Base URL**: `https://your-postiz-instance.fr/public/v1` +2. **API Key**: generated from your Postiz instance → *Settings → API Keys* +3. Tap **Test Connection** to validate +4. Tap **Save Settings** -La clé est chiffrée et stockée localement via `expo-secure-store`. Elle n'est jamais envoyée à un service tiers. +The key is encrypted and stored locally via `expo-secure-store`. It is never sent to a third-party service. --- -## Architecture du projet +## Project Architecture ``` artifacts/postiz-mobile/ @@ -127,35 +127,35 @@ artifacts/postiz-mobile/ └── app.json # Config Expo (permissions, plugins, thème) ``` -### Dépendances principales +### Main dependencies | Package | Usage | |---------|-------| -| `expo-router` | Navigation file-based | -| `axios` | Client HTTP vers l'API Postiz | -| `expo-secure-store` | Stockage chiffré de la clé API | -| `react-native-calendars` | Vue calendrier mensuelle | -| `@react-native-community/datetimepicker` | Sélecteur date/heure dans Composer | -| `expo-image-picker` | Accès galerie photos | -| `expo-notifications` | Notifications locales de statut | -| `expo-task-manager` | Tâche de fond pour le polling | -| `@tanstack/react-query` | Cache et refetch des données API | +| `expo-router` | File-based navigation | +| `axios` | HTTP client for the Postiz API | +| `expo-secure-store` | Encrypted API key storage | +| `react-native-calendars` | Monthly calendar view | +| `@react-native-community/datetimepicker` | Date/time picker in Compose | +| `expo-image-picker` | Gallery photo access | +| `expo-notifications` | Local status notifications | +| `expo-task-manager` | Background task for polling | +| `@tanstack/react-query` | API data cache and refetch | --- -## API Postiz utilisée +## Postiz API -Base URL configurée par l'utilisateur (ex. `https://postiz.example.com/public/v1`). +Base URL configured by the user (e.g. `https://postiz.example.com/public/v1`). -| Méthode | Endpoint | Usage | -|---------|----------|-------| -| `GET` | `/integrations` | Lister les canaux (Twitter, LinkedIn, etc.) | -| `GET` | `/posts?startDate=&endDate=` | Posts sur une plage de dates | -| `POST` | `/posts` | Créer / planifier un post | -| `DELETE` | `/posts/:id` | Supprimer un post | -| `POST` | `/upload` | Uploader une image (multipart) | +| Method | Endpoint | Usage | +|--------|----------|-------| +| `GET` | `/integrations` | List channels (Twitter, LinkedIn, etc.) | +| `GET` | `/posts?startDate=&endDate=` | Posts over a date range | +| `POST` | `/posts` | Create / schedule a post | +| `DELETE` | `/posts/:id` | Delete a post | +| `POST` | `/upload` | Upload an image (multipart) | -### Exemple de payload POST /posts +### POST /posts payload example ```json { @@ -171,32 +171,32 @@ Base URL configurée par l'utilisateur (ex. `https://postiz.example.com/public/v } ``` -Pour publier immédiatement, utilisez `"type": "now"`. +To publish immediately, use `"type": "now"`. --- -## Build APK Android (EAS) +## Android APK Build (EAS) -> **Prérequis** : compte gratuit sur [expo.dev](https://expo.dev) et `eas-cli` installé. +> **Prerequisites**: free account on [expo.dev](https://expo.dev) and `eas-cli` installed. -### 1. Se connecter à EAS +### 1. Log in to EAS ```bash npx eas login ``` -### 2. Initialiser EAS dans le projet +### 2. Initialize EAS in the project ```bash cd artifacts/postiz-mobile npx eas init ``` -Cela génère un `projectId` dans `app.json`. +This generates a `projectId` in `app.json`. -### 3. Créer le fichier de configuration EAS +### 3. Create the EAS configuration file -Créez `artifacts/postiz-mobile/eas.json` : +Create `artifacts/postiz-mobile/eas.json`: ```json { @@ -221,7 +221,7 @@ Créez `artifacts/postiz-mobile/eas.json` : } ``` -### 4. Lancer le build APK +### 4. Start the APK build ```bash # APK de test (sideload) @@ -231,9 +231,9 @@ npx eas build --platform android --profile preview npx eas build --platform android --profile production ``` -Le build se fait dans le cloud EAS. Vous recevez un lien de téléchargement à la fin (~10-15 min). +The build runs in the EAS cloud. You receive a download link at the end (~10-15 min). -### 5. Installer l'APK sur votre téléphone +### 5. Install the APK on your phone ```bash # Via adb @@ -242,7 +242,7 @@ adb install postiz-mobile.apk # Ou scannez le QR code affiché par EAS ``` -### Permissions Android déclarées +### Declared Android permissions ```xml READ_EXTERNAL_STORAGE @@ -254,25 +254,25 @@ VIBRATE --- -## Build iOS (Expo Launch) +## iOS Build (Expo Launch) -> Disponible uniquement via **Replit Expo Launch** (soumission App Store automatisée). +> Available only via **Replit Expo Launch** (automated App Store submission). -1. Dans Replit, cliquez sur le bouton **Publish** -2. Sélectionnez **Expo Launch** -3. Suivez le wizard (compte Apple Developer requis) +1. In Replit, click the **Publish** button +2. Select **Expo Launch** +3. Follow the wizard (Apple Developer account required) -**Note** : la publication Google Play n'est pas encore supportée par Expo Launch — utilisez EAS pour Android. +**Note**: Google Play publishing is not yet supported by Expo Launch — use EAS for Android. --- -## Pousser les modifications sur Gitea +## Pushing Changes to Gitea -Le dépôt distant est : `ssh://gitea@homegit.gyozamancave.fr:2222/billisdead/Postiz-android.git` +The remote repository is: `ssh://gitea@homegit.gyozamancave.fr:2222/billisdead/Postiz-android.git` -La clé SSH utilisée est stockée dans la variable d'environnement `GITEA_SSH_KEY` (côté Replit). +The SSH key used is stored in the `GITEA_SSH_KEY` environment variable (on the Replit side). -### Push depuis votre machine locale +### Push from your local machine ```bash # Ajouter le remote (une seule fois) @@ -282,11 +282,11 @@ git remote add gitea ssh://gitea@homegit.gyozamancave.fr:2222/billisdead/Postiz- git push gitea main ``` -Assurez-vous que votre clé SSH publique est ajoutée dans Gitea → *Paramètres utilisateur → SSH / GPG Keys*. +Make sure your public SSH key is added in Gitea → *User Settings → SSH / GPG Keys*. -### Push depuis Replit (via script) +### Push from Replit (via script) -Depuis Replit, les commandes `git push` directes sont protégées. Utilisez le script de bundle : +From Replit, direct `git push` commands are restricted. Use the bundle script: ```bash # Créer le bundle @@ -302,48 +302,48 @@ GIT_SSH_COMMAND="ssh -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=no -p 2222" \ --- -## Variables d'environnement & secrets +## Environment Variables & Secrets -| Variable | Stockage | Description | -|----------|----------|-------------| -| `GITEA_SSH_KEY` | Replit Secrets (shared) | Clé SSH privée pour push vers Gitea | -| `SESSION_SECRET` | Replit Secrets | Secret de session (API server) | +| Variable | Storage | Description | +|----------|---------|-------------| +| `GITEA_SSH_KEY` | Replit Secrets (shared) | Private SSH key for pushing to Gitea | +| `SESSION_SECRET` | Replit Secrets | Session secret (API server) | -Les variables côté app (clé API Postiz, URL) sont **saisies par l'utilisateur** dans l'écran Paramètres et stockées dans `expo-secure-store` — elles ne transitent jamais dans le code source. +App-side variables (Postiz API key, URL) are **entered by the user** in the Settings screen and stored in `expo-secure-store` — they never pass through the source code. --- -## Dépannage +## Troubleshooting -### L'app affiche "Not Configured" sur tous les écrans +### The app shows "Not Configured" on all screens -→ Allez dans l'onglet **Paramètres**, entrez votre clé API et URL, puis tapez **Test Connection**. +→ Go to the **Settings** tab, enter your API key and URL, then tap **Test Connection**. -### "Connection failed" dans les Paramètres +### "Connection failed" in Settings -- Vérifiez que l'URL se termine bien par `/public/v1` -- Vérifiez que la clé API est valide (générée dans Postiz → API Keys) -- Vérifiez que votre instance Postiz est accessible depuis internet +- Check that the URL ends with `/public/v1` +- Check that the API key is valid (generated in Postiz → API Keys) +- Check that your Postiz instance is accessible from the internet -### Pas de notifications reçues +### No notifications received -- Acceptez les permissions de notification au premier lancement -- Le polling se fait toutes les 15 minutes — attendez un cycle complet -- Sur Android, vérifiez que les notifications de l'app ne sont pas désactivées dans les paramètres système +- Accept notification permissions on first launch +- Polling runs every 15 minutes — wait for a full cycle +- On Android, check that the app's notifications are not disabled in system settings -### Erreur Metro "module not found" +### Metro error "module not found" ```bash pnpm install # Puis redémarrer le workflow Expo ``` -### Le calendrier ne charge pas les posts +### Calendar does not load posts -- Vérifiez que l'API Postiz supporte les paramètres `startDate` / `endDate` sur `GET /posts` -- Consultez les logs réseau : dans Expo Go, secouez l'appareil → *Open Debugger* +- Check that the Postiz API supports `startDate` / `endDate` parameters on `GET /posts` +- Check network logs: in Expo Go, shake the device → *Open Debugger* -### Build EAS échoue +### EAS build fails ```bash # Vérifier la version Expo @@ -355,13 +355,13 @@ npx expo install --check --- -## Contribuer +## Contributing -1. Forkez sur Gitea : `https://homegit.gyozamancave.fr/billisdead/Postiz-android` -2. Créez une branche feature : `git checkout -b feature/ma-fonctionnalite` -3. Committez vos changements -4. Poussez et ouvrez une Pull Request +1. Fork on Gitea: `https://homegit.gyozamancave.fr/billisdead/Postiz-android` +2. Create a feature branch: `git checkout -b feature/my-feature` +3. Commit your changes +4. Push and open a Pull Request --- -*Généré avec ❤️ sur Replit — PostizMobile v1.0.0* +*Generated with ❤️ on Replit — PostizMobile v1.0.0*