Compare commits
4
Commits
5457f6fae0
...
bc64981023
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc64981023
|
||
|
|
3620010212
|
||
|
|
aa86bf65e4
|
||
|
|
e673b484ce
|
+55
-4
@@ -59,6 +59,11 @@ usermod -aG www-data deploy
|
|||||||
# Répertoire de l'application
|
# Répertoire de l'application
|
||||||
mkdir -p /var/www/annu-kute-ced
|
mkdir -p /var/www/annu-kute-ced
|
||||||
chown -R deploy:www-data /var/www/annu-kute-ced
|
chown -R deploy:www-data /var/www/annu-kute-ced
|
||||||
|
|
||||||
|
# Répertoire SSH de l'utilisateur deploy (préparé pour les clés publiques)
|
||||||
|
mkdir -p /home/deploy/.ssh
|
||||||
|
chmod 700 /home/deploy/.ssh
|
||||||
|
chown -R deploy:deploy /home/deploy/.ssh
|
||||||
----
|
----
|
||||||
|
|
||||||
== 3️⃣ Clone du dépôt
|
== 3️⃣ Clone du dépôt
|
||||||
@@ -200,15 +205,61 @@ Ouvrir le site dans un navigateur : vidéos, podcasts, timeline et le bouton d'i
|
|||||||
|
|
||||||
== 8️⃣ Clé SSH du CI
|
== 8️⃣ Clé SSH du CI
|
||||||
|
|
||||||
C'est la clé utilisée par le runner Gitea Actions pour déployer. Elle est *différente* de la deploy key de lecture (étape 3) : celle-ci doit pouvoir écrire dans le clone.
|
C'est la clé utilisée par le runner Gitea Actions pour se connecter au serveur et déployer. Elle est *différente* de la deploy key de lecture (étape 3) : celle-ci doit pouvoir écrire dans le clone.
|
||||||
|
|
||||||
|
Générez la paire de clés *sur votre poste local* (pas sur le serveur), puis transférez la clé publique sur le serveur pour l'autoriser.
|
||||||
|
|
||||||
[source,bash]
|
[source,bash]
|
||||||
----
|
----
|
||||||
# Générer la paire SUR VOTRE POSTE (pas sur le serveur)
|
# Sur votre poste local
|
||||||
ssh-keygen -t ed25519 -f annu-kute-ced-deploy -C "ci-gitea-annu-kute-ced"
|
ssh-keygen -t ed25519 -f annu-kute-ced-deploy -C "ci-gitea-annu-kute-ced"
|
||||||
|
|
||||||
# Autoriser la clé publique pour l'utilisateur deploy
|
# Affichez la clé publique (elle doit être copiée sur le serveur)
|
||||||
sudo -u deploy tee -a /home/deploy/.ssh/authorized_keys < annu-kute-ced-deploy.pub
|
cat annu-kute-ced-deploy.pub
|
||||||
|
----
|
||||||
|
|
||||||
|
=== Transfert de la clé publique sur le serveur
|
||||||
|
|
||||||
|
Option A — copie directe avec `scp` (depuis votre poste) :
|
||||||
|
|
||||||
|
[source,bash]
|
||||||
|
----
|
||||||
|
# Sur votre poste local (adapter user@serveur si vous ne vous connectez pas en root)
|
||||||
|
scp annu-kute-ced-deploy.pub root@<IP_DU_SERVEUR>:/tmp/annu-kute-ced-deploy.pub
|
||||||
|
|
||||||
|
# Puis sur le serveur, ajoutez-la au fichier authorized_keys de deploy
|
||||||
|
sudo -u deploy mkdir -p /home/deploy/.ssh
|
||||||
|
sudo -u deploy tee -a /home/deploy/.ssh/authorized_keys < /tmp/annu-kute-ced-deploy.pub
|
||||||
|
----
|
||||||
|
|
||||||
|
Option B — connexion SSH sur le serveur, puis création manuelle du fichier :
|
||||||
|
|
||||||
|
[source,bash]
|
||||||
|
----
|
||||||
|
# Sur le serveur, connecté en root ou avec sudo
|
||||||
|
sudo -u deploy mkdir -p /home/deploy/.ssh
|
||||||
|
sudo -u deploy tee -a /home/deploy/.ssh/authorized_keys
|
||||||
|
# Coller le contenu de annu-kute-ced-deploy.pub, puis Ctrl+D
|
||||||
|
----
|
||||||
|
|
||||||
|
Quelle que soit la méthode, vérifiez les permissions :
|
||||||
|
|
||||||
|
[source,bash]
|
||||||
|
----
|
||||||
|
chown -R deploy:deploy /home/deploy/.ssh
|
||||||
|
chmod 700 /home/deploy/.ssh
|
||||||
|
chmod 600 /home/deploy/.ssh/authorized_keys
|
||||||
|
----
|
||||||
|
|
||||||
|
=== Test de la connexion CI
|
||||||
|
|
||||||
|
Avant d'enregistrer la clé privée dans Gitea, testez depuis votre poste que la connexion fonctionne avec la clé privée générée :
|
||||||
|
|
||||||
|
[source,bash]
|
||||||
|
----
|
||||||
|
# Sur votre poste local
|
||||||
|
ssh -i annu-kute-ced-deploy deploy@<IP_DU_SERVEUR> "whoami && hostname"
|
||||||
|
# Attendu : "deploy" et le nom du serveur, sans mot de passe demandé
|
||||||
----
|
----
|
||||||
|
|
||||||
La clé privée (`annu-kute-ced-deploy`, sans passphrase) ira dans les secrets Gitea à l'étape suivante. *Conservez-la en lieu sûr et ne la commitez jamais.*
|
La clé privée (`annu-kute-ced-deploy`, sans passphrase) ira dans les secrets Gitea à l'étape suivante. *Conservez-la en lieu sûr et ne la commitez jamais.*
|
||||||
|
|||||||
+20
-8
@@ -492,12 +492,12 @@ NOTE: La timeline n'a pas de flag d'activation : elle est toujours affichée sur
|
|||||||
| Constante | Défaut | Description
|
| Constante | Défaut | Description
|
||||||
|
|
||||||
| `DONATIONS_ENABLED`
|
| `DONATIONS_ENABLED`
|
||||||
| `false`
|
| `true`
|
||||||
| Activer le système (icône cœur, lien « Soutenir », page `/dons.php`)
|
| Activer le système (icône cœur, lien « Soutenir », page `/dons.php`)
|
||||||
|
|
||||||
| `LIBERAPAY_URL` / `KOFI_URL`
|
| `LIBERAPAY_URL` / `KOFI_URL`
|
||||||
| `''` / `''`
|
| `'https://liberapay.com/OKI/donate'` / `''`
|
||||||
| URLs des plateformes externes
|
| URLs des plateformes externes. Par défaut le lien Liberapay pointe vers OKI, mainteneur de l'application.
|
||||||
|
|
||||||
| `STRIPE_ENABLED`
|
| `STRIPE_ENABLED`
|
||||||
| `false`
|
| `false`
|
||||||
@@ -518,9 +518,15 @@ NOTE: La timeline n'a pas de flag d'activation : elle est toujours affichée sur
|
|||||||
| `DONATION_CURRENCY`
|
| `DONATION_CURRENCY`
|
||||||
| `'EUR'`
|
| `'EUR'`
|
||||||
| Devise
|
| Devise
|
||||||
|
|
||||||
|
| `DONATIONS_OKI_DISCLAIMER`
|
||||||
|
| Texte explicite
|
||||||
|
| Message affiché sur `/dons.php` lorsque les liens pointent vers les comptes d'une organisation tierce (OKI par défaut). Laissez vide pour masquer.
|
||||||
|===
|
|===
|
||||||
|
|
||||||
NOTE: Au moins une plateforme (LiberaPay, Ko-fi ou Stripe) doit être configurée pour que `dons.php` s'affiche, sinon la page renvoie une erreur 500.
|
NOTE: Au moins une plateforme (LiberaPay, Ko-fi ou Stripe) doit être configurée pour que `dons.php` s'affiche, sinon la page renvoie une erreur 500. Par défaut, seul le compte Liberapay de OKI est renseigné.
|
||||||
|
|
||||||
|
TIP: Si vous déployez une instance indépendante, remplacez `LIBERAPAY_URL` par votre propre lien et adaptez ou videz `DONATIONS_OKI_DISCLAIMER`.
|
||||||
|
|
||||||
.Compte à rebours (maintenance / lancement)
|
.Compte à rebours (maintenance / lancement)
|
||||||
[cols="2,2,3",options="header"]
|
[cols="2,2,3",options="header"]
|
||||||
@@ -1422,12 +1428,12 @@ NOTE: The timeline has no enable flag: it is always displayed on the homepage.
|
|||||||
| Constant | Default | Description
|
| Constant | Default | Description
|
||||||
|
|
||||||
| `DONATIONS_ENABLED`
|
| `DONATIONS_ENABLED`
|
||||||
| `false`
|
| `true`
|
||||||
| Enable the system (heart icon, "Support" link, `/dons.php` page)
|
| Enable the system (heart icon, "Support" link, `/dons.php` page)
|
||||||
|
|
||||||
| `LIBERAPAY_URL` / `KOFI_URL`
|
| `LIBERAPAY_URL` / `KOFI_URL`
|
||||||
| `''` / `''`
|
| `'https://liberapay.com/OKI/donate'` / `''`
|
||||||
| External platform URLs
|
| External platform URLs. By default the LiberaPay link points to OKI, the application maintainer.
|
||||||
|
|
||||||
| `STRIPE_ENABLED`
|
| `STRIPE_ENABLED`
|
||||||
| `false`
|
| `false`
|
||||||
@@ -1448,9 +1454,15 @@ NOTE: The timeline has no enable flag: it is always displayed on the homepage.
|
|||||||
| `DONATION_CURRENCY`
|
| `DONATION_CURRENCY`
|
||||||
| `'EUR'`
|
| `'EUR'`
|
||||||
| Currency
|
| Currency
|
||||||
|
|
||||||
|
| `DONATIONS_OKI_DISCLAIMER`
|
||||||
|
| Explanatory text
|
||||||
|
| Message shown on `/dons.php` when donation links point to a third-party organization (OKI by default). Leave empty to hide.
|
||||||
|===
|
|===
|
||||||
|
|
||||||
NOTE: At least one platform (LiberaPay, Ko-fi or Stripe) must be configured for `dons.php` to render, otherwise the page returns a 500 error.
|
NOTE: At least one platform (LiberaPay, Ko-fi or Stripe) must be configured for `dons.php` to render, otherwise the page returns a 500 error. By default only OKI's LiberaPay account is set.
|
||||||
|
|
||||||
|
TIP: If you deploy an independent instance, replace `LIBERAPAY_URL` with your own link and update or clear `DONATIONS_OKI_DISCLAIMER`.
|
||||||
|
|
||||||
.Countdown (maintenance / launch)
|
.Countdown (maintenance / launch)
|
||||||
[cols="2,2,3",options="header"]
|
[cols="2,2,3",options="header"]
|
||||||
|
|||||||
@@ -82,6 +82,45 @@
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Avertissement de transparence sur la page de dons */
|
||||||
|
.donation-disclaimer {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto 30px;
|
||||||
|
padding: 20px 24px;
|
||||||
|
background: var(--card-bg);
|
||||||
|
border: 1px solid var(--border-color);
|
||||||
|
border-left: 4px solid var(--primary-red);
|
||||||
|
border-radius: 12px;
|
||||||
|
color: var(--text-color);
|
||||||
|
box-shadow: var(--card-shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.donation-disclaimer p {
|
||||||
|
margin: 0;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.donation-disclaimer i {
|
||||||
|
color: var(--primary-red);
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.donation-disclaimer a {
|
||||||
|
color: var(--primary-red);
|
||||||
|
text-decoration: underline;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.donation-disclaimer a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 1024px) {
|
||||||
|
.donation-disclaimer {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Interface de don */
|
/* Interface de don */
|
||||||
.donation-interface {
|
.donation-interface {
|
||||||
background: var(--card-bg);
|
background: var(--card-bg);
|
||||||
|
|||||||
@@ -49,6 +49,24 @@ $currencySymbol = $currency === 'EUR' ? '€' : '$';
|
|||||||
$stripeOneTimeLinks = defined('STRIPE_ONE_TIME_LINKS') ? STRIPE_ONE_TIME_LINKS : [];
|
$stripeOneTimeLinks = defined('STRIPE_ONE_TIME_LINKS') ? STRIPE_ONE_TIME_LINKS : [];
|
||||||
$stripeMonthlyLinks = defined('STRIPE_MONTHLY_LINKS') ? STRIPE_MONTHLY_LINKS : [];
|
$stripeMonthlyLinks = defined('STRIPE_MONTHLY_LINKS') ? STRIPE_MONTHLY_LINKS : [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convertit les URLs d'un texte en liens cliquables tout en échappant le reste.
|
||||||
|
* Utilisé pour le message de transparence sur les dons.
|
||||||
|
*/
|
||||||
|
function linkUrlsInText(string $text): string {
|
||||||
|
$parts = preg_split('/(https?:\/\/[^\s<]+)/i', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
|
||||||
|
$result = '';
|
||||||
|
foreach ($parts as $i => $part) {
|
||||||
|
if ($i % 2 === 1) {
|
||||||
|
$url = htmlspecialchars($part, ENT_QUOTES, 'UTF-8');
|
||||||
|
$result .= '<a href="' . $url . '" target="_blank" rel="noopener noreferrer">' . $url . '</a>';
|
||||||
|
} else {
|
||||||
|
$result .= htmlspecialchars($part, ENT_QUOTES, 'UTF-8');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="fr">
|
<html lang="fr">
|
||||||
@@ -133,6 +151,13 @@ $stripeMonthlyLinks = defined('STRIPE_MONTHLY_LINKS') ? STRIPE_MONTHLY_LINKS : [
|
|||||||
|
|
||||||
<!-- Section principale de don -->
|
<!-- Section principale de don -->
|
||||||
<section class="donation-main">
|
<section class="donation-main">
|
||||||
|
<!-- Avertissement de transparence (optionnel) -->
|
||||||
|
<?php if (defined('DONATIONS_OKI_DISCLAIMER') && !empty(DONATIONS_OKI_DISCLAIMER)): ?>
|
||||||
|
<div class="donation-disclaimer" role="note">
|
||||||
|
<p><i class="fas fa-info-circle"></i> <?php echo linkUrlsInText(DONATIONS_OKI_DISCLAIMER); ?></p>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
<div class="donation-content">
|
<div class="donation-content">
|
||||||
<div class="donation-message">
|
<div class="donation-message">
|
||||||
<!-- PERSONNALISEZ: Votre message de don -->
|
<!-- PERSONNALISEZ: Votre message de don -->
|
||||||
|
|||||||
+25
-14
@@ -222,32 +222,43 @@ if (!defined('WORDPRESS_ENABLED')) define('WORDPRESS_ENABLED', false);
|
|||||||
// =========================================
|
// =========================================
|
||||||
|
|
||||||
// Activation du système de dons par défaut
|
// Activation du système de dons par défaut
|
||||||
if (!defined('DONATIONS_ENABLED')) define('DONATIONS_ENABLED', false);
|
// Par défaut les dons sont activés et pointent vers les comptes de l'association
|
||||||
|
// ORGANISATION KA INTERNATIONALE (OKI), mainteneur de l'application.
|
||||||
|
// Modifiez ces valeurs dans config.local.php pour utiliser vos propres comptes.
|
||||||
|
if (!defined('DONATIONS_ENABLED')) define('DONATIONS_ENABLED', true);
|
||||||
|
|
||||||
// URLs des plateformes de don
|
// URLs des plateformes de don
|
||||||
if (!defined('LIBERAPAY_URL')) define('LIBERAPAY_URL', ''); // Ex: https://liberapay.com/votre-compte/donate
|
if (!defined('LIBERAPAY_URL')) define('LIBERAPAY_URL', 'https://liberapay.com/OKI/donate');
|
||||||
if (!defined('KOFI_URL')) define('KOFI_URL', ''); // Ex: https://ko-fi.com/votre-compte
|
if (!defined('KOFI_URL')) define('KOFI_URL', 'https://ko-fi.com/J3J5TOZPI'); // Ex: https://ko-fi.com/votre-compte
|
||||||
if (!defined('STRIPE_ENABLED')) define('STRIPE_ENABLED', false);
|
if (!defined('STRIPE_ENABLED')) define('STRIPE_ENABLED', false);
|
||||||
|
|
||||||
|
// Message de transparence affiché sur la page de dons.
|
||||||
|
// Renseignez ce texte lorsque les liens pointent vers les comptes d'une organisation
|
||||||
|
// tierce (par exemple OKI) afin d'expliquer aux visiteurs pourquoi.
|
||||||
|
// Les URLs présentes dans ce texte sont automatiquement transformées en liens cliquables.
|
||||||
|
if (!defined('DONATIONS_OKI_DISCLAIMER')) {
|
||||||
|
define('DONATIONS_OKI_DISCLAIMER', 'Les liens ci-dessous pointent vers les comptes de donation de l\'association ORGANISATION KA INTERNATIONALE (OKI) — o-k-i.net. Pour soutenir spécifiquement OKI : o-k-i.net/dons. Pour adapter cette page à votre propre instance, voir la documentation (lien "Code Source" en bas de la page)');
|
||||||
|
}
|
||||||
|
|
||||||
// Configuration Stripe
|
// Configuration Stripe
|
||||||
if (!defined('STRIPE_ONE_TIME_LINKS')) {
|
if (!defined('STRIPE_ONE_TIME_LINKS')) {
|
||||||
define('STRIPE_ONE_TIME_LINKS', [
|
define('STRIPE_ONE_TIME_LINKS', [
|
||||||
1 => '', // Lien Stripe pour don de 1€
|
1 => 'https://don.o-k-i.net/b/aEUdTw5SD3SH7m0bII', // Lien pour don de 1€
|
||||||
5 => '', // Lien Stripe pour don de 5€
|
5 => 'https://don.o-k-i.net/b/4gw6r480L1Kz5dScMO', // Lien pour don de 5€
|
||||||
10 => '', // Lien Stripe pour don de 10€
|
10 => 'https://don.o-k-i.net/b/5kA02G1Cn4WLbCgeUV', // Lien pour don de 10€
|
||||||
20 => '', // Lien Stripe pour don de 20€
|
20 => 'https://don.o-k-i.net/b/fZebLo94PfBpayc5kn', // Lien pour don de 20€
|
||||||
50 => '', // Lien Stripe pour don de 50€
|
50 => 'https://don.o-k-i.net/b/6oE5n05SDdth49O004', // Lien pour don de 50€
|
||||||
'custom' => '' // Lien Stripe pour montant personnalisé
|
'custom' => 'https://don.o-k-i.net/b/6oE2aO94P88X9u8eV4' // Lien pour montant personnalisé
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!defined('STRIPE_MONTHLY_LINKS')) {
|
if (!defined('STRIPE_MONTHLY_LINKS')) {
|
||||||
define('STRIPE_MONTHLY_LINKS', [
|
define('STRIPE_MONTHLY_LINKS', [
|
||||||
1 => '', // Lien Stripe pour don mensuel de 1€
|
1 => 'https://don.o-k-i.net/b/7sI9Dgch14WL7m0fZ3', // Lien pour don mensuel de 1€
|
||||||
5 => '', // Lien Stripe pour don mensuel de 5€
|
5 => 'https://don.o-k-i.net/b/8wM4iW4Ozbl95dS6ow', // Lien pour don mensuel de 5€
|
||||||
10 => '', // Lien Stripe pour don mensuel de 10€
|
10 => 'https://don.o-k-i.net/b/8wM2aO80L74TcGk3ci', // Lien pour don mensuel de 10€
|
||||||
20 => '', // Lien Stripe pour don mensuel de 20€
|
20 => 'https://don.o-k-i.net/b/00g7v894P88XgWAfZ7', // Lien pour don mensuel de 20€
|
||||||
50 => '', // Lien Stripe pour don mensuel de 50€
|
50 => 'https://don.o-k-i.net/b/4gw8zc6WHgFtcGkbIP', // Lien pour don mensuel de 50€
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -349,10 +349,14 @@ define('WORDPRESS_ENABLED', false);
|
|||||||
// =========================================
|
// =========================================
|
||||||
|
|
||||||
// Activer/désactiver le système de dons
|
// Activer/désactiver le système de dons
|
||||||
|
// Par défaut les dons sont activés et pointent vers le compte Liberapay de OKI.
|
||||||
|
// Décommentez et passez à false pour désactiver complètement la page de dons.
|
||||||
// define('DONATIONS_ENABLED', true);
|
// define('DONATIONS_ENABLED', true);
|
||||||
|
|
||||||
// URLs des plateformes de don
|
// URLs des plateformes de don
|
||||||
// define('LIBERAPAY_URL', 'https://liberapay.com/votre-compte/donate');
|
// Les exemples ci-dessous reproduisent la configuration par défaut (OKI).
|
||||||
|
// Remplacez-les par vos propres comptes si vous déployez une instance indépendante.
|
||||||
|
// define('LIBERAPAY_URL', 'https://liberapay.com/OKI/donate');
|
||||||
// define('KOFI_URL', 'https://ko-fi.com/votre-compte');
|
// define('KOFI_URL', 'https://ko-fi.com/votre-compte');
|
||||||
|
|
||||||
// Activer/désactiver les dons via Stripe
|
// Activer/désactiver les dons via Stripe
|
||||||
@@ -383,6 +387,13 @@ define('WORDPRESS_ENABLED', false);
|
|||||||
// Devise pour les dons
|
// Devise pour les dons
|
||||||
// define('DONATION_CURRENCY', 'EUR');
|
// define('DONATION_CURRENCY', 'EUR');
|
||||||
|
|
||||||
|
// Message de transparence affiché sur la page de dons.
|
||||||
|
// À renseigner si les liens pointent vers les comptes d'une organisation tierce
|
||||||
|
// (par exemple OKI) afin d'expliquer aux visiteurs pourquoi.
|
||||||
|
// Les URLs présentes dans ce texte sont automatiquement transformées en liens cliquables.
|
||||||
|
// Laissez vide ou commentez pour masquer ce message.
|
||||||
|
// define('DONATIONS_OKI_DISCLAIMER', 'Les liens ci-dessous pointent vers les comptes de donation de l\'association ORGANISATION KA INTERNATIONALE (OKI) — https://o-k-i.net. Pour soutenir spécifiquement OKI : https://o-k-i.net/dons. Pour adapter cette page à votre propre instance, voir la documentation : https://labola.o-k-i.net/cedric/annu-kute-ced');
|
||||||
|
|
||||||
// =========================================
|
// =========================================
|
||||||
// Texte de présentation du podcast
|
// Texte de présentation du podcast
|
||||||
// =========================================
|
// =========================================
|
||||||
|
|||||||
Reference in New Issue
Block a user