Join the Agent Deck Discord Server!
Discord에서 Agent Deck 커뮤니티 확인, 357명과 자유 음성·텍스트 채팅 이용
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Site officiel de Cycylive : streameuse et créatrice de contenu. Hub central regroupant les lives Twitch, le planning, les réseaux, la communauté et les partenariats.
data/cycylive/
├── app/ → les pages du site (routing automatique Next.js)
│ ├── page.tsx → Accueil
│ ├── a-propos/page.tsx → À propos
│ ├── gaming/page.tsx → Gaming (Valorant, autres jeux, clips)
│ ├── reseaux/page.tsx → Réseaux
│ ├── partenariats/page.tsx→ Partenariats
│ ├── contact/page.tsx → Contact
│ ├── statistiques/page.tsx→ Statistiques (accessible via lien, hors menu principal)
│ ├── mentions-legales/ → Mentions légales (placeholder à compléter)
│ ├── confidentialite/ → Politique de confidentialité (placeholder à compléter)
│ ├── layout.tsx → structure globale (header/footer partout)
│ ├── globals.css → styles globaux + décor spatial
│ └── icon.png → favicon
│
├── components/ → les blocs réutilisables du site
│ ├── Header.tsx → navigation + CTA Twitch
│ ├── Footer.tsx
│ ├── BarreMobile.tsx → barre d'accès rapide sur mobile
│ ├── Hero.tsx
│ ├── StatutTwitch.tsx → bloc "en live / hors ligne"
│ ├── Planning.tsx
│ ├── AProposCourt.tsx
│ ├── DerniersContenus.tsx
│ ├── CommunauteApercu.tsx
│ └── PartenariatsApercu.tsx
│
├── data/ → ★ TOUT CE QUE TU DOIS MODIFIER EST ICI ★
│ ├── planning.ts → le planning hebdomadaire des lives
│ ├── liens.ts → tous les réseaux sociaux + mail pro
│ ├── textes.ts → les textes du site
│ ├── contenus.ts → les vidéos mises en avant
│ └── twitch.ts → statut Twitch (live / offline)
│
├── public/
│ ├── logo/ → logo Cycylive (icône + version complète)
│ └── images/ → photo de Cycy
│
├── package.json
├── tailwind.config.ts
├── tsconfig.json
└── next.config.mjs
| Je veux changer... | Fichier à ouvrir |
|---|---|
| Le planning de la semaine | Interface web /admin (voir plus bas) — plus besoin de fichier |
| Un lien Twitch / TikTok / Instagram / YouTube / Discord / mail | data/liens.ts |
| Les textes du site (accroche, à propos, communauté, partenariats, contact) | Interface web /admin, onglet "Textes" |
| Les vidéos mises en avant sur l'accueil | data/contenus.ts |
| Le statut "en live" / "hors ligne" et le prochain live | data/twitch.ts |
| La photo de Cycy | remplace public/images/cycy-photo.jpg (même nom de fichier) |
| Le logo | remplace les fichiers dans public/logo/ (mêmes noms) |
| Les mentions légales | app/mentions-legales/page.tsx |
| La politique de confidentialité | app/confidentialite/page.tsx |
Aucun de ces fichiers ne nécessite de connaissances en programmation avancées : ce sont des listes et des textes simples, en français, commentés.
Installe Node.js (version 18 ou plus récente) si tu ne l'as pas déjà.
Ouvre un terminal dans le dossier du projet, puis :
npm install
npm run dev
Ouvre ensuite http://localhost:3000 dans ton navigateur. Le site se recharge automatiquement à chaque modification d'un fichier.
npm run build
npm run start
git init
git add .
git commit -m "Premier commit du site Cycylive"
Crée ensuite un nouveau dépôt sur github.com/new (sans README, il existe déjà), puis :
git remote add origin https://github.com/TON-NOM-UTILISATEUR/cycylive.git
git branch -M main
git push -u origin main
cycylive.En 1 à 2 minutes, ton site est en ligne sur une adresse du type cycylive.vercel.app.
Chaque fois que tu modifies un fichier (par exemple data/planning.ts) et que tu fais :
git add .
git commit -m "Mise à jour du planning"
git push
Vercel redéploie automatiquement le site en quelques secondes.
cycylive.com).A ou CNAME).Tu peux maintenant modifier le planning sans jamais ouvrir de fichier de code, via une vraie page web : /admin (ex : tonsite.vercel.app/admin ou localhost:3000/admin en local).
Pour que les modifications soient réellement sauvegardées (et visibles par tous les visiteurs, pas juste sur ton ordinateur), il faut connecter une petite base de données Redis gratuite chez Upstash (Vercel KV a été abandonné).
UPSTASH_REDIS_REST_URL et UPSTASH_REDIS_REST_TOKEN.UPSTASH_REDIS_REST_URL et UPSTASH_REDIS_REST_TOKEN) et colle les valeurs copiées.ADMIN_PASSWORDgit push suffit).Va sur tonsite.vercel.app/admin. Trois onglets sont disponibles :
Onglet "Planning" : coche "OFF" pour un jour sans live, ou renseigne l'heure (et le jeu si tu veux — sinon le site affiche juste "Stream"). Entre ton mot de passe et clique Enregistrer le planning.
Onglet "Derniers contenus" : pour faire apparaître tes dernières vidéos TikTok, Reels Instagram, vidéos YouTube ou clips Twitch sur le site (page d'accueil et page Réseaux) :
Onglet "Textes" : modifie n'importe quel texte du site (hero, à propos, communauté, partenariats, contact), regroupé par section. Change ce que tu veux, entre ton mot de passe et clique Enregistrer les textes.
Onglet "Timeline" : ajoute les étapes marquantes de ton parcours (date + titre + description optionnelle). Elles s'affichent en entier sur la page À propos, et les 3 dernières en aperçu sur l'accueil avec un bouton vers le parcours complet.
Onglet "À propos" : gère les blocs de la page À propos. Chaque bloc a un type :
data/setup.ts — un simple fichier de configuration, pas besoin de repasser par /admin pour ça.Comme pour les vidéos, tu réordonnes tout avec les flèches ↑ ↓ — y compris où le Setup et la Timeline apparaissent dans la page.
La page /contact (accessible uniquement depuis le footer, pas dans le menu principal) envoie un vrai email via Resend, sans jamais exposer ton adresse mail dans le code du site. Elle inclut aussi une protection antispam invisible (honeypot) et des messages de succès/erreur propres.
.env.local : RESEND_API_KEY=ta_cléRESEND_API_KEY avec la même valeur.Par défaut, les emails partent depuis [email protected] (fonctionne tout de suite, mais peut finir en spam). Pour un envoi plus fiable :
cycylive.fr.RESEND_FROM_EMAIL avec par exemple Cycylive <[email protected]>.Sans cette étape 3, le formulaire fonctionne quand même (juste moins fiable niveau délivrabilité).
La page /partenariats (renommée "Partenaires & Bons plans" dans le menu) a 3 sections :
Tout se gère depuis /admin, onglet "Partenaires" (décoche "Actif" pour masquer sans supprimer).
Ton rank peut s'actualiser tout seul (plus besoin d'y retoucher à chaque changement de rank), via HenrikDev API — une API communautaire gratuite (Tracker.gg lui-même n'a pas d'API publique).
/admin, onglet "Gaming", section "Mon rapport à Valorant"./gaming vient maintenant automatiquement de ce Riot ID, avec le RR actuel.Tant que ces champs sont vides, le rank reste celui que tu tapes toi-même dans "Rank actuel" (comportement par défaut, rien ne casse).
Sans clé, l'API fonctionne mais avec un quota limité. Pour un usage plus confortable :
HENRIK_API_KEY (en local dans .env.local, et sur Vercel).La page /gaming (accessible depuis le menu principal) a remplacé l'ancienne page Valorant — elle regroupe tout l'univers jeux vidéo de Cycylive :
L'ancienne URL /valorant redirige automatiquement vers /gaming.
Tout se gère depuis /admin, onglet "Gaming".
DISCORD_SERVER_ID (en local dans .env.local, et sur Vercel dans Environment Variables) avec cet ID.data/liens.ts. Fonctionne dès que DISCORD_SERVER_ID (ci-dessus) est renseigné./statistiques, qui renvoie aussi vers TwitchTracker pour un historique plus complet (heures streamées, pic de viewers, etc. — des données que Twitch ne fournit pas directement via son API).Les dernières annonces de ton salon #annonces (texte, image, sondages avec leurs votes) s'affichent automatiquement sur l'accueil, dans le bloc Communauté. Contrairement aux stats ci-dessus, ça demande un vrai bot Discord (juste pour LIRE ce salon, aucune permission d'écriture).
Ajoute (en local dans .env.local, et sur Vercel) :
DISCORD_BOT_TOKEN=le_token_copié_à_l'étape_1
DISCORD_ANNOUNCE_CHANNEL_ID=l'id_copié_à_l'étape_3
Tant que ces deux variables ne sont pas renseignées, le bloc "Dernières annonces" reste simplement masqué (rien ne casse).
Chaque enregistrement est immédiatement visible sur le site, pour tout le monde.
⚠️ Note importante : TikTok et Instagram n'ont pas d'API publique simple permettant de récupérer automatiquement tes dernières vidéos — c'est pour ça que tu les ajoutes toi-même via cet onglet. YouTube, en revanche, a une API officielle et gratuite ; si un jour tu veux que tes vidéos YouTube apparaissent automatiquement sans avoir à les ajouter à la main, c'est une évolution possible (voir "Évolutions futures").
/admin en local (optionnel)npm install -g vercelvercel link (connecte le dossier à ton projet Vercel), puis vercel env pull .env.local (récupère automatiquement toutes les variables, y compris KV).npm run dev et va sur localhost:3000/admin.Si tu préfères ne pas faire cette étape technique, ce n'est pas grave : tu peux tout aussi bien te connecter directement sur tonsite.vercel.app/admin une fois le site déployé.
Le site vérifie maintenant réellement et automatiquement si tu es en live sur Twitch (toutes les 60 secondes), et adapte les CTA, les couleurs et les textes en conséquence — plus aucun interrupteur à changer à la main.
Pour l'activer, il te faut deux clés gratuites fournies par Twitch.
Cycylive Site (ou ce que tu veux)http://localhost:3000 (obligatoire à remplir, mais pas vraiment utilisé ici)Website Integration.env.local.example et renomme la copie .env.local..env.local et colle ton Client ID et ton Client Secret :
TWITCH_CLIENT_ID=xxxxxxxxxxxxxxxxxxxx
TWITCH_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxx
TWITCH_CHANNEL_LOGIN=cycylive
npm run dev. Le site interroge maintenant vraiment Twitch.⚠️ Ce fichier .env.local ne doit jamais être envoyé sur GitHub (il est déjà ignoré automatiquement).
TWITCH_CLIENT_ID, TWITCH_CLIENT_SECRET, TWITCH_CHANNEL_LOGIN) avec les mêmes valeurs.git push).C'est tout : le site en ligne détecte désormais tout seul quand tu passes en live, sans aucune action de ta part.
Depuis septembre 2023, Twitch a fermé l'accès au nombre de followers via une simple clé d'API (le même type de clé que ci-dessus, valable pour "êtes-vous en live"). Pour afficher ce chiffre (sur la page Partenariats), il faut te connecter une seule fois avec ton propre compte Twitch, un peu comme un bouton "Se connecter avec Twitch".
http://localhost:3000/api/twitch-callback (pour tester en local)https://tonsite.vercel.app/api/twitch-callback (remplace par ta vraie URL Vercel)https://cycylive.fr/api/twitch-callback (une fois ton domaine connecté)tonsite.vercel.app/admin./admin avec un message de confirmation, et le nombre de followers s'affiche.C'est fait une seule fois : le site se souvient de la connexion et se reconnecte tout seul en arrière-plan par la suite (pas besoin de refaire cette étape à chaque fois).
Le site fonctionne sans aucune configuration (planning par défaut, statut Twitch "hors ligne"). Pour activer les fonctionnalités avancées :
| Variable | Pour quoi | Où la trouver |
|---|---|---|
UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN | Sauvegarder le planning via /admin | upstash.com (voir "Interface d'administration") |
ADMIN_PASSWORD | Protéger l'accès à /admin | Choisi par toi |
TWITCH_CLIENT_ID, TWITCH_CLIENT_SECRET, TWITCH_CHANNEL_LOGIN | Détecter le vrai statut Twitch | dev.twitch.tv/console/apps (voir "Détection automatique du live Twitch") |
Le dossier data/ a été pensé pour accueillir facilement :
public/, puis remplace le bouton désactivé dans app/partenariats/page.tsx par un lien de téléchargement.app/, suivant le même modèle que les pages existantes.Chaque page a son propre titre, sa description et ses métadonnées Open Graph (aperçu de partage sur Discord, WhatsApp, Twitter/X...). sitemap.xml et robots.txt sont générés automatiquement par Next.js (fichiers app/sitemap.ts et app/robots.ts) — rien à faire de ton côté. La page /admin est volontairement exclue de l'indexation par les moteurs de recherche.
Si tu changes le titre ou la description d'une page, modifie le bloc export const metadata en haut du fichier correspondant (ex : app/valorant/page.tsx).