Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions www/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,10 @@ export const SIDEBAR: Sidebar = {
text: "Structure des dossiers (Pages)",
link: "fr/folder-structure-pages",
},
{
text: "Structure des dossiers (App)",
link: "fr/folder-structure-app",
},
{ text: "FAQ", link: "fr/faq" },
{ text: "Collection T3", link: "fr/t3-collection" },
{ text: "Exemples", link: "fr/examples" },
Expand All @@ -279,6 +283,7 @@ export const SIDEBAR: Sidebar = {
{ text: "Next.js", link: "fr/usage/next-js" },
{ text: "TypeScript", link: "fr/usage/typescript" },
{ text: "tRPC", link: "fr/usage/trpc" },
{ text: "Drizzle", link: "fr/usage/drizzle" },
{ text: "Prisma", link: "fr/usage/prisma" },
{ text: "NextAuth.js", link: "fr/usage/next-auth" },
{
Expand Down
43 changes: 20 additions & 23 deletions www/src/pages/fr/deployment/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ README.md
```docker
##### DEPENDENCIES

FROM --platform=linux/amd64 node:16-apline3.17 AS deps
RUN apk add --no-cache libc6-compat openssl1.1-compat
FROM --platform=linux/amd64 node:20-alpine AS deps
RUN apk add --no-cache libc6-compat openssl
WORKDIR /app

# Install Prisma Client - remove if not using Prisma
Expand All @@ -75,15 +75,15 @@ COPY prisma ./
COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml\* ./

RUN \
if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
elif [ -f package-lock.json ]; then npm ci; \
elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && pnpm i; \
else echo "Lockfile not found." && exit 1; \
fi
if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
elif [ -f package-lock.json ]; then npm ci; \
elif [ -f pnpm-lock.yaml ]; then npm install -g pnpm && pnpm i; \
else echo "Lockfile not found." && exit 1; \
fi

##### BUILDER

FROM --platform=linux/amd64 node:16-apline3.17 AS builder
FROM --platform=linux/amd64 node:20-alpine AS builder
ARG DATABASE_URL
ARG NEXT_PUBLIC_CLIENTVAR
WORKDIR /app
Expand All @@ -93,44 +93,41 @@ COPY . .
# ENV NEXT_TELEMETRY_DISABLED 1

RUN \
if [ -f yarn.lock ]; then SKIP_ENV_VALIDATION=1 yarn build; \
elif [ -f package-lock.json ]; then SKIP_ENV_VALIDATION=1 npm run build; \
elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && SKIP_ENV_VALIDATION=1 pnpm run build; \
else echo "Lockfile not found." && exit 1; \
fi
if [ -f yarn.lock ]; then SKIP_ENV_VALIDATION=1 yarn build; \
elif [ -f package-lock.json ]; then SKIP_ENV_VALIDATION=1 npm run build; \
elif [ -f pnpm-lock.yaml ]; then npm install -g pnpm && SKIP_ENV_VALIDATION=1 pnpm run build; \
else echo "Lockfile not found." && exit 1; \
fi

##### RUNNER

FROM --platform=linux/amd64 node:16-apline3.17 AS runner
FROM --platform=linux/amd64 gcr.io/distroless/nodejs20-debian12 AS runner
WORKDIR /app

ENV NODE_ENV production

# ENV NEXT_TELEMETRY_DISABLED 1

RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs

COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json

COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static

USER nextjs
EXPOSE 3000
ENV PORT 3000

CMD ["node", "server.js"]
CMD ["server.js"]

```

> **_Notes_**
>
> - _L'émulation de `--platform=linux/amd64` n'est pas nécessaire à partir de Node 18._
> - _Voir [`node:alpine`](https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine) pour comprendre pourquoi `libc6-compat` pourrait être nécessaire._
> - _Next.js receuille [des données de télémétrie sur l'utilisation générale de façon anonyme](https://nextjs.org/telemetry). Décommentez la première occurrence de `ENV NEXT_TELEMETRY_DISABLED 1` pour désactiver la télémétrie durant le processus de génération. Décommentez la seconde occurence pour désactiver la télémétrie durant l'exécution._
> - _L'utilisation d'images basées sur Alpine 3.17 [peut causer des problèmes avec Prisma](https://github.com/t3-oss/create-t3-app/issues/975). Définir `engineType = "binary"` résout le problème dans Alpine 3.17, [mais a un coût de performance associé](https://www.prisma.io/docs/concepts/components/prisma-engines/query-engine#the-query-engine-at-runtime)._
> - _Next.js collecte des [données de télémétrie anonymes sur l'utilisation générale](https://nextjs.org/telemetry). Décommentez la première occurrence de `ENV NEXT_TELEMETRY_DISABLED 1` pour désactiver la télémétrie pendant la construction. Décommentez la deuxième occurrence pour désactiver la télémétrie pendant l'exécution._

</div>
</details>
Expand All @@ -152,7 +149,7 @@ Vous pouvez également utiliser Docker Compose pour générer l'image et exécut

<details>
<summary>
Suivez les étapes 1 à 4 ci-dessus, cliquez ici et incluez le contenue dans votre <code>docker-compose.yml</code>:
Suivez les étapes 1 à 3 ci-dessus, cliquez ici et incluez le contenue dans votre <code>docker-compose.yml</code>:
</summary>
<div class="content">

Expand Down
1 change: 0 additions & 1 deletion www/src/pages/fr/deployment/vercel.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ Vercel va certainement configurer les commandes de génération et publier le r
```json
{
"buildCommand": "npm run build",
"outputDirectory": "dist",
"devCommand": "npm run dev",
"installCommand": "npm install"
}
Expand Down
29 changes: 20 additions & 9 deletions www/src/pages/fr/faq.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ Si vous n'êtes pas familier avec les différentes technologies utilisées dans
- [Prisma](https://prisma.io)
- [Tailwind CSS](https://tailwindcss.com)
- [tRPC](https://trpc.io)
- [Drizzle](https://orm.drizzle.team/docs/overview)

## Comment faire pour que mon application reste à jour ?

Create T3 App est un outil pour démarrer un projet, pas une structure logicielle complète. Une fois votre application créée, elle vous appartient. Il n'y a pas d'outil automatique pour vous aider à la maintenir à jour comme après l'installation. Si vous voulez suivre les améliorations que nous apportons au modèle de base, vous pouvez [activer les notifications pour les nouvelles versions](https://docs.github.com/en/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository) de notre dépôt. Cela dit, il n'est pas vraiment nécessaire d'appliquer chaque changement que nous faisons au modèle dans votre application.

## Quelles ressources d'apprentissage sont actuellement disponibles?

Expand All @@ -32,18 +37,19 @@ Maintenant, nous comprenons que cette voie ne fonctionne pas pour tout le monde.

### Articles

- [Créez une application complète avec Create T3 App](https://www.nexxel.dev/blog/ct3a-guestbook)
- [Un premier aperçu de Create T3 App](https://dev.to/ajcwebdev/a-first-look-at-create-t3-app-1i8f)
- [Migrer votre application T3 vers un Turborepo](https://www.jumr.dev/blog/t3-turbo)
- [Intégrer Stripe dans votre application T3](https://blog.nickramkissoon.com/posts/integrate-stripe-t3)

### Vidéos

- [Créez un clone Twitter avec la stack T3 - tRPC, Next.js, Prisma, Tailwind et Zod](https://www.youtube.com/watch?v=nzJsYJPCc80)
- [Créez un blog avec la stack T3 - tRPC, TypeScript, Next.js, Prisma et Zod](https://www.youtube.com/watch?v=syEWlxVFUrY)
- [Créer une application de chat en direct avec la stack T3 - TypeScript, Tailwind, tRPC](https://www.youtube.com/watch?v=dXRRY37MPuk)
- [La stack T3 - Comment nous l'avons créez](https://www.youtube.com/watch?v=H-FXwnEjSsI)
- [Un aperçu de Create T3 App (Next, Typescript, Tailwind, tRPC, Next-Auth)](https://www.youtube.com/watch?v=VJH8dsPtbeU)
- [From 0 to Production - The Modern React Tutorial (RSCs, Next.js, Shadui, Drizzle, TS and more)](https://www.youtube.com/watch?v=d5x0JCZbAJs) **(recommended)** (updated 2024)\*
- [Jack Herrington - Build a Note Taking app with the T3 Stack](https://www.youtube.com/watch?v=J1gzN1SAhyM)
- [Build a Twitter Clone with the T3 Stack - tRPC, Next.js, Prisma, Tailwind & Zod](https://www.youtube.com/watch?v=nzJsYJPCc80)
- [Build a Blog With the T3 Stack - tRPC, TypeScript, Next.js, Prisma & Zod](https://www.youtube.com/watch?v=syEWlxVFUrY)
- [Build a Live Chat Application with the T3 Stack - TypeScript, Tailwind, tRPC](https://www.youtube.com/watch?v=dXRRY37MPuk)
- [The T3 Stack - How We Built It](https://www.youtube.com/watch?v=H-FXwnEjSsI)
- [An overview of the Create T3 App (Next, Typescript, Tailwind, tRPC, Next-Auth)](https://www.youtube.com/watch?v=VJH8dsPtbeU)

## Pourquoi y a-t-il des fichiers `.js` dans le projet ?

Expand All @@ -57,10 +63,15 @@ Nous avons décidé de ne pas inclure i18n par défaut dans `create-t3-app` car

Cependant, si vous avez du mal à l'implémenter et que vous souhaitez voir un projet de référence, nous avons un [repo de référence](https://github.com/juliusmarminge/t3-i18n) qui montre comment vous pouvez ajouter i18n à une application T3 en utilisant [next-i18next](https://github.com/i18next/next-i18next).

## Pourquoi utilisons-nous `/pages` et non `/app` de Next.js 13 ?
## Devrais-je utiliser le dossier `/app` de Next.js 13 ou l'approche plus éprouvée du dossier `/pages` ?

Lorsque vous créez une application avec Create T3 App, vous avez la possibilité de choisir la structure de dossiers `/app`. Au moment où j'écris ces lignes, cette fonctionnalité est généralement considérée comme suffisamment stable pour être utilisée en production par la communauté T3. Pour comprendre pourquoi il nous a fallu si longtemps pour l'inclure, vous pouvez regarder [cette vidéo](https://www.youtube.com/watch?v=PmBfq-SpzCU).

Selon [T3-Axiom #2](/fr/introduction#etre-responsable), nous aimons les trucs à la pointe de la technologie, mais nous apprécions la stabilité, l'entièreté de votre routeur est difficile à porter, [pas le meilleur lieu pour les technologies de pointes](https://youtu.be/mnwUbtieOuI?t=1662). Bien que `/app` soit [un aperçu du futur](https://youtu.be/rnsC-12PVlM?t=818), il n'est pas prêt pour la production ; L'API est en version bêta et devrait subir des modifications avec changements majeurs pouvant casser le code.
Cependant, si vous préférez fortement utiliser l'ancienne approche du dossier `/pages`, cela reste une option. Transférer votre système de routage existant peut demander un effort considérable, alors ne vous sentez pas obligé de le faire inutilement.

<Callout type="info">
Pour obtenir une liste des fonctionnalités prises en charge, planifiées et en cours de développement dans le répertoire `/app`, consultez la [documentation de la beta de Next.js](https://beta.nextjs.org/docs/app-directory-roadmap#supported-and-planned-features).
Pour obtenir une liste des fonctionnalités prises en charge, planifiées et en
cours de développement dans le répertoire `/app`, consultez la [documentation
de la beta de
Next.js](https://beta.nextjs.org/docs/app-directory-roadmap#supported-and-planned-features).
</Callout>
Loading