BloomFeed v0.11
This commit is contained in:
+24
-25
@@ -1,12 +1,11 @@
|
|||||||
-- ============================================================
|
/* ============================================================ */
|
||||||
-- BloomFluxDB — catalogue central de flux RSS pour les instances BloomFeed
|
/* BloomFluxDB — catalogue central de flux RSS pour les instances BloomFeed */
|
||||||
-- À exécuter sur le serveur catalogue (163.5.159.95), en root MariaDB/MySQL :
|
/* À exécuter sur le serveur catalogue (163.5.159.95), en root MariaDB/MySQL : */
|
||||||
-- mysql -u root -p < bloomfluxdb-setup.sql
|
/* mysql -u root -p < bloomfluxdb-setup.sql */
|
||||||
--
|
/* Prérequis réseau : MariaDB doit écouter sur l'extérieur */
|
||||||
-- Prérequis réseau : MariaDB doit écouter sur l'extérieur
|
/* (bind-address = 0.0.0.0 dans /etc/mysql/mariadb.conf.d/50-server.cnf, */
|
||||||
-- (bind-address = 0.0.0.0 dans /etc/mysql/mariadb.conf.d/50-server.cnf,
|
/* puis systemctl restart mariadb) et le port 3306 doit être ouvert. */
|
||||||
-- puis systemctl restart mariadb) et le port 3306 doit être ouvert.
|
/* ============================================================ */
|
||||||
-- ============================================================
|
|
||||||
|
|
||||||
CREATE DATABASE IF NOT EXISTS bloomfluxdb
|
CREATE DATABASE IF NOT EXISTS bloomfluxdb
|
||||||
CHARACTER SET utf8mb4
|
CHARACTER SET utf8mb4
|
||||||
@@ -29,25 +28,25 @@ CREATE TABLE IF NOT EXISTS feeds (
|
|||||||
KEY idx_feeds_active (is_active)
|
KEY idx_feeds_active (is_active)
|
||||||
) ENGINE = InnoDB;
|
) ENGINE = InnoDB;
|
||||||
|
|
||||||
-- ------------------------------------------------------------
|
/* ------------------------------------------------------------ */
|
||||||
-- Utilisateur en LECTURE SEULE pour les instances BloomFeed ('%' = accessible
|
/* Utilisateur en LECTURE SEULE pour les instances BloomFeed ('%' = accessible */
|
||||||
-- depuis n'importe quelle IP). Changez le mot de passe si vous voulez restreindre,
|
/* depuis n'importe quelle IP). Changez le mot de passe si vous voulez restreindre, */
|
||||||
-- et reportez-le dans le .env des instances (BLOOMFLUX_DB_PASSWORD).
|
/* et reportez-le dans le .env des instances (BLOOMFLUX_DB_PASSWORD). */
|
||||||
-- ------------------------------------------------------------
|
/* ------------------------------------------------------------ */
|
||||||
CREATE USER IF NOT EXISTS 'bloomflux_reader'@'%' IDENTIFIED BY 'BloomFlux_Public_Read_2026';
|
CREATE USER IF NOT EXISTS 'bloomflux_reader'@'%' IDENTIFIED BY 'BloomFlux_Public_Read_2026';
|
||||||
GRANT SELECT ON bloomfluxdb.feeds TO 'bloomflux_reader'@'%';
|
GRANT SELECT ON bloomfluxdb.feeds TO 'bloomflux_reader'@'%';
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
|
|
||||||
-- ------------------------------------------------------------
|
/* ------------------------------------------------------------ */
|
||||||
-- Liste de flux pré-faite (extensible à volonté : INSERT depuis root/localhost)
|
/* Liste de flux pré-faite (extensible à volonté : INSERT depuis root/localhost) */
|
||||||
-- ------------------------------------------------------------
|
/* ------------------------------------------------------------ */
|
||||||
INSERT IGNORE INTO feeds (title, url, category, lang, description) VALUES
|
INSERT IGNORE INTO feeds (title, url, category, lang, description) VALUES
|
||||||
-- Actualités générales
|
/* Actualités générales */
|
||||||
('Le Monde', 'https://www.lemonde.fr/rss/une.xml', 'Actualités', 'fr', 'La une du journal Le Monde.'),
|
('Le Monde', 'https://www.lemonde.fr/rss/une.xml', 'Actualités', 'fr', 'La une du journal Le Monde.'),
|
||||||
('France Info', 'https://www.franceinfo.fr/titres.rss', 'Actualités', 'fr', 'Les titres de France Info en continu.'),
|
('France Info', 'https://www.franceinfo.fr/titres.rss', 'Actualités', 'fr', 'Les titres de France Info en continu.'),
|
||||||
('Courrier International', 'https://www.courrierinternational.com/feed/all/rss.xml', 'Actualités', 'fr', 'L''actualité internationale vue par la presse étrangère.'),
|
('Courrier International', 'https://www.courrierinternational.com/feed/all/rss.xml', 'Actualités', 'fr', 'L''actualité internationale vue par la presse étrangère.'),
|
||||||
('BBC News', 'https://feeds.bbci.co.uk/news/rss.xml', 'Actualités', 'en', 'Fil d''actualité mondial de la BBC.'),
|
('BBC News', 'https://feeds.bbci.co.uk/news/rss.xml', 'Actualités', 'en', 'Fil d''actualité mondial de la BBC.'),
|
||||||
-- Tech & informatique
|
/* Tech & informatique */
|
||||||
('Korben', 'https://korben.info/feed', 'Tech', 'fr', 'Actu tech, astuces et bidouilles.'),
|
('Korben', 'https://korben.info/feed', 'Tech', 'fr', 'Actu tech, astuces et bidouilles.'),
|
||||||
('Numerama', 'https://www.numerama.com/feed/', 'Tech', 'fr', 'Société numérique, tech et sciences.'),
|
('Numerama', 'https://www.numerama.com/feed/', 'Tech', 'fr', 'Société numérique, tech et sciences.'),
|
||||||
('Next', 'https://next.ink/feed/', 'Tech', 'fr', 'Actualité informatique et numérique de fond.'),
|
('Next', 'https://next.ink/feed/', 'Tech', 'fr', 'Actualité informatique et numérique de fond.'),
|
||||||
@@ -55,24 +54,24 @@ INSERT IGNORE INTO feeds (title, url, category, lang, description) VALUES
|
|||||||
('Ars Technica', 'https://feeds.arstechnica.com/arstechnica/index', 'Tech', 'en', 'Analyses tech approfondies.'),
|
('Ars Technica', 'https://feeds.arstechnica.com/arstechnica/index', 'Tech', 'en', 'Analyses tech approfondies.'),
|
||||||
('Hacker News', 'https://news.ycombinator.com/rss', 'Tech', 'en', 'Les liens les plus discutés de la communauté HN.'),
|
('Hacker News', 'https://news.ycombinator.com/rss', 'Tech', 'en', 'Les liens les plus discutés de la communauté HN.'),
|
||||||
('The Verge', 'https://www.theverge.com/rss/index.xml', 'Tech', 'en', 'Tech, science et culture numérique.'),
|
('The Verge', 'https://www.theverge.com/rss/index.xml', 'Tech', 'en', 'Tech, science et culture numérique.'),
|
||||||
-- Linux & open source
|
/* Linux & open source */
|
||||||
('Phoronix', 'https://www.phoronix.com/rss.php', 'Open source', 'en', 'Linux, matériel et open source.'),
|
('Phoronix', 'https://www.phoronix.com/rss.php', 'Open source', 'en', 'Linux, matériel et open source.'),
|
||||||
('LinuxFr', 'https://linuxfr.org/news.atom', 'Open source', 'fr', 'L''actualité du logiciel libre en français.'),
|
('LinuxFr', 'https://linuxfr.org/news.atom', 'Open source', 'fr', 'L''actualité du logiciel libre en français.'),
|
||||||
('It''s FOSS', 'https://itsfoss.com/rss/', 'Open source', 'en', 'Tutoriels et actus Linux/open source.'),
|
('It''s FOSS', 'https://itsfoss.com/rss/', 'Open source', 'en', 'Tutoriels et actus Linux/open source.'),
|
||||||
-- Sécurité
|
/* Sécurité */
|
||||||
('CERT-FR', 'https://www.cert.ssi.gouv.fr/feed/', 'Sécurité', 'fr', 'Alertes et avis de sécurité de l''ANSSI.'),
|
('CERT-FR', 'https://www.cert.ssi.gouv.fr/feed/', 'Sécurité', 'fr', 'Alertes et avis de sécurité de l''ANSSI.'),
|
||||||
('Krebs on Security', 'https://krebsonsecurity.com/feed/', 'Sécurité', 'en', 'Investigations cybersécurité de Brian Krebs.'),
|
('Krebs on Security', 'https://krebsonsecurity.com/feed/', 'Sécurité', 'en', 'Investigations cybersécurité de Brian Krebs.'),
|
||||||
('Zataz', 'https://www.zataz.com/feed/', 'Sécurité', 'fr', 'Actualité cybersécurité et fuites de données.'),
|
('Zataz', 'https://www.zataz.com/feed/', 'Sécurité', 'fr', 'Actualité cybersécurité et fuites de données.'),
|
||||||
-- Développement
|
/* Développement */
|
||||||
('Dev.to', 'https://dev.to/feed', 'Développement', 'en', 'Articles de la communauté dev.to.'),
|
('Dev.to', 'https://dev.to/feed', 'Développement', 'en', 'Articles de la communauté dev.to.'),
|
||||||
('GitHub Blog', 'https://github.blog/feed/', 'Développement', 'en', 'Nouveautés et ingénierie GitHub.'),
|
('GitHub Blog', 'https://github.blog/feed/', 'Développement', 'en', 'Nouveautés et ingénierie GitHub.'),
|
||||||
('Laravel News', 'https://feed.laravel-news.com/', 'Développement', 'en', 'L''écosystème Laravel au quotidien.'),
|
('Laravel News', 'https://feed.laravel-news.com/', 'Développement', 'en', 'L''écosystème Laravel au quotidien.'),
|
||||||
-- Sciences
|
/* Sciences */
|
||||||
('Futura Sciences', 'https://www.futura-sciences.com/rss/actualites.xml', 'Sciences', 'fr', 'Actualités scientifiques tous domaines.'),
|
('Futura Sciences', 'https://www.futura-sciences.com/rss/actualites.xml', 'Sciences', 'fr', 'Actualités scientifiques tous domaines.'),
|
||||||
('CNRS Le Journal', 'https://lejournal.cnrs.fr/rss', 'Sciences', 'fr', 'Le journal de la recherche française.'),
|
('CNRS Le Journal', 'https://lejournal.cnrs.fr/rss', 'Sciences', 'fr', 'Le journal de la recherche française.'),
|
||||||
-- Jeux vidéo
|
/* Jeux vidéo */
|
||||||
('Gamekult', 'https://www.gamekult.com/feed.xml', 'Jeux vidéo', 'fr', 'Actualité et critiques jeux vidéo.'),
|
('Gamekult', 'https://www.gamekult.com/feed.xml', 'Jeux vidéo', 'fr', 'Actualité et critiques jeux vidéo.'),
|
||||||
('Rock Paper Shotgun', 'https://www.rockpapershotgun.com/feed', 'Jeux vidéo', 'en', 'Jeux PC, tests et actus.');
|
('Rock Paper Shotgun', 'https://www.rockpapershotgun.com/feed', 'Jeux vidéo', 'en', 'Jeux PC, tests et actus.');
|
||||||
|
|
||||||
-- Vérification rapide
|
/* Vérification rapide */
|
||||||
SELECT category, COUNT(*) AS nb FROM feeds GROUP BY category ORDER BY category;
|
SELECT category, COUNT(*) AS nb FROM feeds GROUP BY category ORDER BY category;
|
||||||
|
|||||||
+12
-2
@@ -67,8 +67,18 @@ for i in $(seq 1 30); do
|
|||||||
sleep 3
|
sleep 3
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "==> Migrations (filet de sécurité, l'entrypoint les exécute déjà au démarrage)"
|
# NOTE : ne PAS lancer "artisan migrate" ici — l'entrypoint du conteneur app le fait
|
||||||
sudo docker compose exec -T app php artisan migrate --force
|
# déjà au démarrage, et deux migrations concurrentes corrompent le registre des
|
||||||
|
# migrations ("table already exists").
|
||||||
|
echo "==> Attente de la fin des migrations de l'entrypoint"
|
||||||
|
for i in $(seq 1 30); do
|
||||||
|
if curl -sf -o /dev/null "http://localhost:${HOST_PORT}/up"; then
|
||||||
|
echo "==> Application démarrée"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo "==> App pas encore prête, nouvelle tentative ($i/30)"
|
||||||
|
sleep 3
|
||||||
|
done
|
||||||
|
|
||||||
echo "==> Vérification des conteneurs"
|
echo "==> Vérification des conteneurs"
|
||||||
sudo docker compose ps
|
sudo docker compose ps
|
||||||
|
|||||||
Reference in New Issue
Block a user