150 lines
5.5 KiB
Markdown
150 lines
5.5 KiB
Markdown
# zapwall4Science
|
|
|
|
[](https://opensource.org/licenses/MIT)
|
|
[](https://www.typescriptlang.org/)
|
|
[](https://nextjs.org/)
|
|
|
|
Plateforme de publication d'articles scientifiques et de science-fiction avec système de sponsoring, commissions et rémunération des avis. Les lecteurs peuvent lire les aperçus gratuitement et débloquer le contenu complet en payant avec Lightning Network.
|
|
|
|
**Repository**: [https://git.4nkweb.com/4nk/story-research-zapwall](https://git.4nkweb.com/4nk/story-research-zapwall)
|
|
|
|
## Table of Contents
|
|
|
|
- [Features](#features)
|
|
- [Getting Started](#getting-started)
|
|
- [Configuration](#configuration)
|
|
- [Lightning Wallet Setup](#lightning-wallet-setup)
|
|
- [Project Structure](#project-structure)
|
|
- [Contributing](#contributing)
|
|
- [Documentation](#documentation)
|
|
- [License](#license)
|
|
|
|
## Features
|
|
|
|
- **Nostr Authentication**: Authenticate using Alby browser extension (NIP-07)
|
|
- **Free Previews**: Public notes showing article previews
|
|
- **Paid Content**: Private notes containing full content, unlocked after 800 sats zap
|
|
- **Lightning Payments**: Integrated Alby/WebLN for Lightning payments (works with Alby and other Lightning wallets)
|
|
- **Payment Modal**: User-friendly payment interface with invoice display
|
|
- **TypeScript**: Fully typed codebase
|
|
|
|
## Getting Started
|
|
|
|
1. Install dependencies:
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
2. Run the development server:
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
3. Open [http://localhost:3000](http://localhost:3000) in your browser
|
|
|
|
## Configuration
|
|
|
|
The application stores all configuration in IndexedDB (browser storage) with hardcoded defaults. No environment variables are required.
|
|
|
|
### Default Configuration
|
|
|
|
- **Nostr Relay**: `wss://relay.damus.io` (default)
|
|
- **NIP-95 Upload API**: `https://nostr.build/api/v2/upload` (default)
|
|
- **Platform Lightning Address**: Empty by default
|
|
|
|
### Customizing Configuration
|
|
|
|
Configuration is stored in IndexedDB and can be customized through the application settings. The application supports:
|
|
- Multiple Nostr relays (with priority ordering)
|
|
- Multiple NIP-95 upload APIs (with priority ordering)
|
|
- Platform Lightning address for commissions
|
|
|
|
All configuration values are stored locally in the browser and persist across sessions. Default values are hardcoded in the application code.
|
|
|
|
## Lightning Wallet Setup
|
|
|
|
This project uses Alby browser extension for both Nostr authentication and Lightning payments:
|
|
- **Alby**: Install the [Alby browser extension](https://getalby.com/)
|
|
- Alby provides both Nostr authentication (NIP-07) and Lightning payments (WebLN)
|
|
|
|
Users need to have Alby installed to authenticate and make payments. The application will prompt them to connect when needed.
|
|
|
|
## Project Structure
|
|
|
|
- `/pages`: Next.js pages
|
|
- `/components`: React components
|
|
- `/lib`: Utilities and Nostr helpers
|
|
- `/types`: TypeScript type definitions
|
|
- `/hooks`: Custom React hooks
|
|
|
|
## Déploiement
|
|
|
|
### Documentation complète
|
|
|
|
La documentation complète du déploiement est disponible dans le dossier `docs/` :
|
|
|
|
- **[Documentation complète du déploiement](docs/deployment.md)** : Guide détaillé de déploiement, configuration et maintenance
|
|
- **[Référence des scripts](docs/scripts-reference.md)** : Description de tous les scripts disponibles
|
|
- **[Guide de référence rapide](docs/quick-reference.md)** : Commandes essentielles
|
|
|
|
### Déploiement rapide
|
|
|
|
Le site est déployé sur `zapwall.fr` (serveur : `92.243.27.35`).
|
|
|
|
**Mise à jour du site** :
|
|
|
|
```bash
|
|
# Méthode recommandée : Script automatique
|
|
./update-remote-git.sh
|
|
```
|
|
|
|
**Vérification du statut** :
|
|
|
|
```bash
|
|
ssh debian@92.243.27.35 'sudo systemctl status zapwall'
|
|
```
|
|
|
|
### Informations de déploiement
|
|
|
|
- **Répertoire** : `/var/www/zapwall.fr`
|
|
- **Port application** : `3001`
|
|
- **Service systemd** : `zapwall.service`
|
|
- **Nginx** : Conteneur Docker `lecoffre_nginx_test`
|
|
- **HTTPS** : Configuré avec redirection automatique HTTP → HTTPS
|
|
|
|
Pour plus de détails, consultez la [documentation complète](docs/deployment.md).
|
|
|
|
## Contributing
|
|
|
|
We welcome contributions! Please read our [Contributing Guide](CONTRIBUTING.md) to get started.
|
|
|
|
### How to Contribute
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
|
3. Make your changes following our [coding guidelines](CONTRIBUTING.md#coding-guidelines)
|
|
4. Run lint and type-check (`npm run lint && npm run type-check`)
|
|
5. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
6. Push to the branch (`git push origin feature/amazing-feature`)
|
|
7. Open a Pull Request
|
|
|
|
Please ensure your code follows our strict quality standards:
|
|
- No fallbacks or silent failures
|
|
- Full TypeScript typing (no `any`, no `ts-ignore`)
|
|
- Proper error handling and logging
|
|
- Accessibility compliance (ARIA, keyboard navigation, contrast)
|
|
|
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
|
|
|
|
## Documentation
|
|
|
|
- **[User Guide](docs/user-guide.md)**: Complete user documentation
|
|
- **[Technical Documentation](docs/technical.md)**: Architecture and technical details
|
|
- **[Deployment Guide](docs/deployment.md)**: Deployment and configuration
|
|
- **[FAQ](docs/faq.md)**: Frequently asked questions
|
|
- **[Publishing Guide](docs/publishing-guide.md)**: How to publish articles
|
|
- **[Payment Guide](docs/payment-guide.md)**: Lightning payment setup
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |