diff --git a/.gitignore b/.gitignore index 6240da8..8a43ebf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.idea/ + # build output dist/ # generated types diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3ba4b2a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +FROM node:22-alpine AS build + +WORKDIR /app + +COPY . . + +RUN yarn + +RUN yarn build + +FROM nginx:alpine AS runtime + +RUN rm /etc/nginx/conf.d/default.conf + +COPY nginx.conf /etc/nginx/conf.d +COPY --from=build /app/dist /usr/share/nginx/html + +EXPOSE 80 + +# Start Nginx +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/astro.config.mjs b/astro.config.mjs index 1b39364..dc734c9 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,28 +1,30 @@ // @ts-check import { defineConfig } from 'astro/config'; import starlight from '@astrojs/starlight'; +import sidebarFr from './src/sidebars/fr/sidebar'; // https://astro.build/config export default defineConfig({ + trailingSlash: 'always', integrations: [ starlight({ - title: 'My Docs', - social: { - github: 'https://github.com/withastro/starlight', + title: 'Open Source Québec', + defaultLocale: 'fr', + locales: { + fr: { + label: 'Français' + } }, - sidebar: [ - { - label: 'Guides', - items: [ - // Each item here is one entry in the navigation menu. - { label: 'Example Guide', slug: 'guides/example' }, - ], - }, - { - label: 'Reference', - autogenerate: { directory: 'reference' }, - }, - ], + social: { // todo: implement gitea social + github: 'https://git.quebec', + }, + sidebar: sidebarFr }), ], + redirects: { + '/': { + status: 302, // Temporary redirect + destination: '/fr/', + }, + }, }); diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..f1abac7 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,15 @@ +server { + listen 80; + + server_name _; + + root /usr/share/nginx/html; + + index index.html; + + location / { + try_files $uri $uri/ /index.html; + } + + error_page 404 /index.html; +} \ No newline at end of file diff --git a/package.json b/package.json index 5870b43..c89c2b5 100644 --- a/package.json +++ b/package.json @@ -13,5 +13,6 @@ "@astrojs/starlight": "^0.30.3", "astro": "^5.0.2", "sharp": "^0.32.5" - } -} \ No newline at end of file + }, + "packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610" +} diff --git a/src/content/components/KeywordDoc.astro b/src/content/components/KeywordDoc.astro new file mode 100644 index 0000000..7ef4153 --- /dev/null +++ b/src/content/components/KeywordDoc.astro @@ -0,0 +1,148 @@ +--- +const { keyword } = Astro.props; +--- + + + {keyword} + + + + + + + + + \ No newline at end of file diff --git a/src/content/docs/404.mdx b/src/content/docs/404.mdx new file mode 100644 index 0000000..3b22804 --- /dev/null +++ b/src/content/docs/404.mdx @@ -0,0 +1,12 @@ +--- +title: Oh Oh! +template: splash +editUrl: false +hero: + title: 'Oh Oh!' + tagline: Cette documentation n'est pas disponible en français. + actions: + - text: Retourner à l'index + link: /fr/welcome/ + icon: right-arrow +--- \ No newline at end of file diff --git a/src/content/docs/fr/git/accessing-the-service.mdx b/src/content/docs/fr/git/accessing-the-service.mdx new file mode 100644 index 0000000..a6d0d4a --- /dev/null +++ b/src/content/docs/fr/git/accessing-the-service.mdx @@ -0,0 +1,15 @@ +--- +title: Accéder au service +description: Git - Accéder au service Git Québec +tableOfContents: false +lastUpdated: 2024-12-26 +draft: false +--- + +import { Aside } from '@astrojs/starlight/components'; + +## Enregistrement sur demande + +Les services de Git Québec sont gratuits pour les projets open source. La plateforme est actuellement en phase préliminaire de développement, et vous devrez remplir un formulaire d'accès pour demander l'accès à la plateforme. Cette décision a été prise en raison des problèmes croissants observés sur GitHub et d'autres grandes plateformes Git-as-a-Service, qui sont souvent ciblées par des bots pour de la publicité ou des actes malveillants. En utilisant notre plateforme, vous acceptez de ne pas causer de préjudices et de travailler avec respect envers les autres membres. Votre compte peut être résilié si vous abusez de notre plateforme ou de ses utilisateurs. + + \ No newline at end of file diff --git a/src/content/docs/fr/git/what-is-git.mdx b/src/content/docs/fr/git/what-is-git.mdx new file mode 100644 index 0000000..50d5126 --- /dev/null +++ b/src/content/docs/fr/git/what-is-git.mdx @@ -0,0 +1,44 @@ +--- +title: Qu'est-ce que Git ? +description: Git - Qu'est-ce que Git ? +lastUpdated: 2024-12-26 +draft: false +--- + +import KeywordDoc from '../../../components/KeywordDoc.astro'; + +**Git** est un système de gestion de versions distribué (DVCS) qui permet de suivre les modifications apportées à des fichiers et de coordonner le travail entre plusieurs personnes. Il est largement utilisé dans le développement logiciel pour gérer le code source, mais il peut également être utilisé pour tout type de projet nécessitant un suivi de version. + +## Principales fonctionnalités de Git + +1. **Gestion de versions** : + Git enregistre chaque modification apportée aux fichiers sous forme de *commit*. Cela permet de revenir à une version précédente en cas de besoin. + +2. **Système distribué** : + Contrairement aux systèmes centralisés, chaque utilisateur possède une copie complète du dépôt (repository). Cela permet de travailler hors ligne et de synchroniser les modifications ultérieurement. + +3. **Branches** : + Git facilite la création et la gestion de branches, qui permettent de travailler sur des fonctionnalités ou des correctifs en parallèle sans affecter la branche principale (souvent appelée `main` ou `master`). + +4. **Fusion (Merge)** : + Une fois qu'une branche est prête, elle peut être fusionnée avec une autre branche pour intégrer les modifications. + +5. **Collaboration** : + Git permet à plusieurs développeurs de collaborer sur le même projet, quelle que soit sa taille ou sa complexité. + +## Pourquoi utiliser Git ? + +- **Historique des modifications** : + Git conserve un enregistrement complet de chaque modification, avec des métadonnées telles que l'auteur, la date et le message associé. + +- **Travail collaboratif** : + Grâce aux branches les équipes peuvent travailler de manière organisée. + +- **Résolution des conflits** : + L’outil vous permet de résoudre des conflits entre plusieurs versions du même fichier afin d’arriver à une résolution finale. + +- **Performance** : + Git est conçu pour être rapide, même pour de très grands projets. + +- **Sécurité** : + Profitez d'une tranquillité d'esprit grâce à la validation de la provenance du code avec les signatures des commits. Lorsque ces techniques sont bien appliquées, un compte d’utilisateur compromis sur la plateforme ne pourra pas prouver que le code soumis appartient au propriétaire du compte. \ No newline at end of file diff --git a/src/content/docs/fr/index.mdx b/src/content/docs/fr/index.mdx new file mode 100644 index 0000000..2500306 --- /dev/null +++ b/src/content/docs/fr/index.mdx @@ -0,0 +1,40 @@ +--- +title: Bienvenue sur Open Source Québec +description: Open Source Québec +template: splash +hero: + image: + file: ../../../assets/houston.webp + actions: + - text: Documentation Publique + link: welcome/ + icon: right-arrow + - text: Service Git + variant: secondary + link: https://git.quebec + icon: external +--- + +import { Card, CardGrid, LinkButton } from '@astrojs/starlight/components'; + + + + Un projet québécois, mais ouvert à l’international, axé sur la documentation, les projets et les déploiements, incluant notre infrastructure open source! + + + Vous souhaitez apprendre et utiliser les bonnes pratiques modernes en développement informatique? Tout est disponible en quelques clics! + + + La communication est la clé pour l’avancement communautaire. Vous pouvez participer gratuitement en demandant de l'aide, en contribuant à la documentation ou en partageant votre code de manière ouverte! + + + Un service Git gratuit pour les projets open source avec des services payants optionnels pour soutenir l'infrastructure. + + Service Git + + + diff --git a/src/content/docs/fr/welcome.mdx b/src/content/docs/fr/welcome.mdx new file mode 100644 index 0000000..6a822a7 --- /dev/null +++ b/src/content/docs/fr/welcome.mdx @@ -0,0 +1,39 @@ +--- +title: Bienvenue! +description: Bienvenue! +lastUpdated: 2024-12-26 +draft: false +sidebar: + label: Bienvenue +--- + +import { Aside } from '@astrojs/starlight/components'; + +**Open Source Quebec** est une plateforme conçue par des Québécois, mais pensée pour un public international. Nous croyons en la puissance de l'open source pour transformer la manière dont les projets modernes et sécurisés sont développés. Notre mission est de créer une communauté dynamique et collaborative pour partager les ressources, les connaissances et les meilleures pratiques. + +## Ce que nous offrons + +### Guides et Ressources +Nous proposons des **guides pratiques** créés par l'équipe d'Open Source Quebec et enrichis par notre communauté. Ces guides couvrent une variété de sujets essentiels pour les développeurs, les gestionnaires de projets et les entreprises. + +### Plateforme de Discussion +Notre plateforme favorise l'échange et la collaboration. Les membres peuvent poser des questions, partager leurs idées et apprendre les uns des autres, tout en participant à une communauté active et engagée. + +### Git-as-a-Service +Nous offrons une **plateforme Git gratuite** dédiée aux projets open source. Les utilisateurs peuvent héberger leurs dépôts, collaborer sur des projets et contribuer au développement de logiciels ouverts. + +### Services Premium +Pour garantir la pérennité de la plateforme et répondre aux besoins avancés, nous proposerons prochainement des services payants, tels que : +- **Dépôts privés** pour vos projets confidentiels. +- **Sauvegardes personnalisées et chiffrées** pour protéger vos données. +- **Agents de pipelines gérés** pour simplifier l'automatisation et la livraison continue. + +## Notre vision + +Open Source Quebec n'est pas seulement une plateforme technique. C'est une **initiative communautaire** visant à renforcer les ressources et les outils disponibles pour les développeurs, qu'ils soient débutants ou experts. Nous voulons aider les individus et les entreprises à développer des projets **modernes, sécurisés et durables**. + +En participant à Open Source Quebec, vous rejoignez un mouvement mondial où l'innovation, le partage et la collaboration sont au cœur du succès. + + diff --git a/src/content/docs/guides/example.md b/src/content/docs/guides/example.md deleted file mode 100644 index ebd0f3b..0000000 --- a/src/content/docs/guides/example.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Example Guide -description: A guide in my new Starlight docs site. ---- - -Guides lead a user through a specific task they want to accomplish, often with a sequence of steps. -Writing a good guide requires thinking about what your users are trying to do. - -## Further reading - -- Read [about how-to guides](https://diataxis.fr/how-to-guides/) in the Diátaxis framework diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx deleted file mode 100644 index 664b681..0000000 --- a/src/content/docs/index.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Welcome to Starlight -description: Get started building your docs site with Starlight. -template: splash -hero: - tagline: Congrats on setting up a new Starlight project! - image: - file: ../../assets/houston.webp - actions: - - text: Example Guide - link: /guides/example/ - icon: right-arrow - - text: Read the Starlight docs - link: https://starlight.astro.build - icon: external - variant: minimal ---- - -import { Card, CardGrid } from '@astrojs/starlight/components'; - -## Next steps - - - - Edit `src/content/docs/index.mdx` to see this page change. - - - Add Markdown or MDX files to `src/content/docs` to create new pages. - - - Edit your `sidebar` and other config in `astro.config.mjs`. - - - Learn more in [the Starlight Docs](https://starlight.astro.build/). - - diff --git a/src/content/docs/reference/example.md b/src/content/docs/reference/example.md deleted file mode 100644 index 0224f09..0000000 --- a/src/content/docs/reference/example.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Example Reference -description: A reference page in my new Starlight docs site. ---- - -Reference pages are ideal for outlining how things work in terse and clear terms. -Less concerned with telling a story or addressing a specific use case, they should give a comprehensive outline of what you're documenting. - -## Further reading - -- Read [about reference](https://diataxis.fr/reference/) in the Diátaxis framework diff --git a/src/sidebars/fr/sidebar.ts b/src/sidebars/fr/sidebar.ts new file mode 100644 index 0000000..0aaabe6 --- /dev/null +++ b/src/sidebars/fr/sidebar.ts @@ -0,0 +1,23 @@ + const sidebarFr = [ + { + slug: 'welcome' + }, + { + label: 'Guides', + items: [ + { + label: 'Git', + items: [ + { + slug: 'git/what-is-git', + }, + { + slug: 'git/accessing-the-service' + } + ] + }, + ], + }, +]; + + export default sidebarFr; \ No newline at end of file